專利名稱:在數(shù)據(jù)處理系統(tǒng)中數(shù)據(jù)混合串并總線接口及其方法
技術(shù)領(lǐng)域:
本發(fā)明總的來(lái)說(shuō)涉及嵌入式控制器系統(tǒng),更具體地說(shuō)涉及在嵌入式控制器系統(tǒng)中的串并總線接口。
在采用嵌入式微控制器的系統(tǒng)中,對(duì)微控制器的可用的I/O引腳和設(shè)備上的存儲(chǔ)器的限制造成對(duì)系統(tǒng)設(shè)計(jì)的難以接受的制約??捎玫腎/O引腳的數(shù)量限制了能夠被微控制器訪問(wèn)的地址空間的大小。還限制了地址空間中的總線設(shè)備的大小和數(shù)量。這不僅限制了軟件和數(shù)據(jù)可用的存儲(chǔ)器的容量,而且限制了微控制器可訪問(wèn)的外部設(shè)備。此外,設(shè)備上的非易失性存儲(chǔ)器容量一般非常有限,這使得外部存儲(chǔ)器中對(duì)操作軟件的存儲(chǔ)顯得非常重要。微控制器通常是一次性可編程(“OTP”)器件,因此一旦將軟件裝入芯片上的非易失性存儲(chǔ)器后,就不能修改。在不更換微控制器芯片的情況下,不能更新系統(tǒng)軟件。
因此,需要將系統(tǒng)軟件存儲(chǔ)在外部存儲(chǔ)器空間中的非易失性可編程存儲(chǔ)器中。然后,更新系統(tǒng)軟件可以通過(guò)將新的軟件下載到非易失性存儲(chǔ)器中。然而,將系統(tǒng)軟件存儲(chǔ)在外部存儲(chǔ)器空間中而不是存儲(chǔ)在芯片中也有I/O引腳的數(shù)量受到限制的問(wèn)題。
因此,需要有一種將微控制器與包含其操作軟件的非易失性存儲(chǔ)器接口的方法和電路,于是在不超過(guò)微控制器的引腳數(shù)目的情況下,通過(guò)將新的軟件下載到非易失性存儲(chǔ)器中能夠很容易地更新軟件。
本發(fā)明采用與串并雙向總線接口(以下稱為串/并接口)相關(guān)的微控制器上的串行口實(shí)現(xiàn)上述目的。串/并接口接收來(lái)自微控制器的串行循環(huán),然后將它們變成非易失性存儲(chǔ)器能夠識(shí)別的循環(huán),非易失性存儲(chǔ)器是一個(gè)并行的總線設(shè)備。表示將被下載的代碼的數(shù)據(jù)被計(jì)時(shí),從微控制器的串行口到串/并接口。串/并接口將該數(shù)據(jù)送至其并行數(shù)據(jù)總線,使數(shù)據(jù)讀入串/并接口的地址空間中的非易失性存儲(chǔ)器。采用與串/并接口相關(guān)的微控制器中的串行口的優(yōu)點(diǎn)在于使微控制器上的有限的輸入/輸出(“I/O”)引腳能夠?yàn)椴⑿锌偩€設(shè)備所用,其中包括需要由微控制器實(shí)時(shí)訪問(wèn)的隨機(jī)存取存儲(chǔ)器(“RAM”)。
本發(fā)明的另一優(yōu)點(diǎn)是能夠使系統(tǒng)軟件動(dòng)態(tài)地更新。在操作過(guò)程中,微控制器在其系統(tǒng)軟件的控制下運(yùn)行,該系統(tǒng)軟件被存儲(chǔ)在一個(gè)微控制器的I/O口的地址空間的RAM中。操作碼在開(kāi)始時(shí)通過(guò)串/并接口和微控制器串行口從非易失性存儲(chǔ)器裝入RAM中。然后更新的軟件可以通過(guò)微控制器串行口下載到非易失性存儲(chǔ)器,同時(shí)微控制器在RAM中的軟件碼的控制下運(yùn)行。以這種方式可以實(shí)現(xiàn)本發(fā)明的另一目的。
為了最大限度地增加微控制器串行口和非易失性存儲(chǔ)器之間傳遞的數(shù)據(jù),就需要最大限度地減少微控制器和串/并接口之間的聯(lián)系。本發(fā)明是通過(guò)將邏輯電路包括在串/并接口中以便控制數(shù)據(jù)流來(lái)實(shí)現(xiàn)的。
為了更好地理解本發(fā)明,以上簡(jiǎn)要地?cái)⑹隽吮景l(fā)明的特征和優(yōu)點(diǎn)。本領(lǐng)域的一般技術(shù)人員應(yīng)理解,在不脫離本發(fā)明的精神和范圍的情況下可對(duì)本發(fā)明做各種改進(jìn)。下面結(jié)合附圖描述本發(fā)明,附圖中
圖1是采用本發(fā)明的微控制器系統(tǒng)的一個(gè)實(shí)施例的框圖;圖2是本發(fā)明的串/并接口的一個(gè)實(shí)施例的框圖;圖3是本發(fā)明的串/并接口的另一個(gè)實(shí)施例的框圖;圖4是圖3的行、列/計(jì)數(shù)狀態(tài)的流程圖;和圖5是圖3的讀/寫狀態(tài)的流程圖。
在以下的描述中,提供具體的細(xì)節(jié)是為了易于理解本發(fā)明。在以下描述中省略了對(duì)理解本發(fā)明不是必要的內(nèi)容和屬于本領(lǐng)域的一般技術(shù)人員的普通常識(shí)的內(nèi)容。當(dāng)處理“實(shí)際高”和“實(shí)際低”的邏輯信號(hào)的混合時(shí),為了避免混淆采用了術(shù)語(yǔ)“要求”和“求反”以及各種合乎規(guī)則的形式?!耙蟆笔侵高壿嬓盘?hào)有效或邏輯真狀態(tài),“求反”是指邏輯信號(hào)無(wú)效或邏輯假狀態(tài)。
下面參看附圖,其中相同或類似的部分用相同的參考號(hào)表示。
本發(fā)明解決了微控制器系統(tǒng)中的引腳方面的問(wèn)題,下面還將詳細(xì)描述操作軟件的動(dòng)態(tài)更新。參照?qǐng)D1,圖中畫出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的微控制器系統(tǒng)100。微控制器101通過(guò)三條信號(hào)線,即復(fù)位線111、串行時(shí)鐘線112和Rx/TxD線113,與串/并接口102聯(lián)系。由復(fù)位線111上的信號(hào)起動(dòng)對(duì)并行總線設(shè)備103下載數(shù)據(jù)或?qū)Σ⑿锌偩€設(shè)備103裝載數(shù)據(jù)的操作。取決于操作,或?qū)?lái)自微控制器101串行口的串行數(shù)據(jù)計(jì)時(shí),或?qū)⑷ノ⒖刂破?01串行口的串行數(shù)據(jù)計(jì)時(shí)。串行數(shù)據(jù)在雙向串行數(shù)據(jù)線Rx/TxD線113上的微控制器101雙向串行口和串/并接口102之間交換。微控制器101的串行時(shí)鐘通過(guò)串行時(shí)鐘線112被送至串/并接口102。在卸載時(shí),或?qū)懖僮鲿r(shí),通過(guò)串/并接口102接收串行數(shù)據(jù),并提供給并行雙向數(shù)據(jù)總線122。數(shù)據(jù)總線122是m位的并行數(shù)據(jù)線,其中m是預(yù)定的整數(shù)位。相反,在裝載時(shí),或讀操作時(shí),總線設(shè)備103建立向雙向數(shù)據(jù)總線122上的微控制器101發(fā)送的數(shù)據(jù),該數(shù)據(jù)由串/并接口102接收。對(duì)來(lái)自Rx/TxD線113上的串/并接口102的數(shù)據(jù)定時(shí),該數(shù)據(jù)是在微控制器101串行口上接收的?;?qū)懟蜃x數(shù)據(jù)的地址提供給地址線121上的串/并接口102。地址線121是n位地址總線,其中n是預(yù)定的整數(shù)位。當(dāng)采用讀/寫(“R/W”)控制總線123執(zhí)行讀或?qū)懖僮鲿r(shí),串/并接口102通知總線設(shè)備103。串/并接口102可以訪問(wèn)一個(gè)以上的總線設(shè)備。在這樣的實(shí)施例中,R/W控制總線123將在它的一條線上采用一個(gè)芯片選擇信號(hào)。芯片選擇操作和電路對(duì)本領(lǐng)域的一般技術(shù)人員是能夠理解的。在本發(fā)明的一個(gè)實(shí)施例中,總線設(shè)備103可以用存儲(chǔ)器來(lái)實(shí)現(xiàn),包括非易失性存儲(chǔ)器,或外部總線設(shè)備。此外應(yīng)注意的是,總線設(shè)備103可以是通過(guò)并行總線聯(lián)系的數(shù)據(jù)處理系統(tǒng)中的任何設(shè)備。
微控制器系統(tǒng)100還可以包括其它總線設(shè)備,如在微控制器101的地址空間中的總線設(shè)備104。向并行數(shù)據(jù)總線142上的總線設(shè)備104傳輸或從中接收數(shù)據(jù),由微控制器101的地址總線141提供讀或?qū)懖僮鞯牡刂贰N⒖刂破?01通過(guò)要求讀/寫總線143通知總線設(shè)備104進(jìn)行讀或?qū)懖僮?。為了更好地理解本發(fā)明,可以參看圖2,圖2表示串/并接口102的一個(gè)實(shí)施例。
操作由微控制器101(圖2中未示出)要求復(fù)位線111開(kāi)始。根據(jù)復(fù)位線111上的信號(hào),控制邏輯電路207通過(guò)要求接口復(fù)位線272,使地址邏輯電路203和時(shí)序邏輯電路201復(fù)位。然后微控制器101對(duì)地址線121上的將被要求的初始n位地址定時(shí)。初始n位地址對(duì)應(yīng)將要被裝載或下載的第一數(shù)據(jù)塊的位置。該地址被時(shí)序邏輯電路201產(chǎn)生的寄存器時(shí)鐘211定時(shí),送入移位寄存器202。時(shí)序邏輯電路201在串行時(shí)鐘112上接收來(lái)自微控制器101的串行時(shí)鐘。寄存器時(shí)鐘211與串行時(shí)鐘112同步。微控制器101可以將初始地址一字節(jié)一字節(jié)地傳送。在本實(shí)施例中,微控制器101順序地傳送地址的字節(jié),直到n位地址傳送完畢。時(shí)序邏輯電路201累加串行時(shí)鐘周期。接收n位以后,時(shí)序邏輯電路201通過(guò)要求地址鎖存212,將出現(xiàn)在移位寄存器202上的并行總線221上的地址鎖存入地址邏輯電路203。并行總線221的長(zhǎng)度是Z位,其中Z是預(yù)定的整數(shù)。
傳送初始地址以后,微控制器101發(fā)送一個(gè)命令字節(jié)??刂七壿嬰娐?07在串行時(shí)鐘線112上接收來(lái)自微控制器101的串行時(shí)鐘。它累加時(shí)鐘周期,直到命令字節(jié)的八位被定時(shí)。然后,鎖存命令字節(jié),該命令字節(jié)是在移位寄存器202的并行總線221上接收的。命令字節(jié)的第一位的狀態(tài)確定是進(jìn)行讀操作還是進(jìn)行寫操作??刂七壿嬰娐?07利用這一判斷建立讀/寫允許線271的狀態(tài)。根據(jù)讀/寫允許線271的狀態(tài),輸入數(shù)據(jù)緩沖器205和輸出數(shù)據(jù)緩沖器206被允許或禁止。
當(dāng)微控制器101向其串行口發(fā)出讀命令時(shí),讀操作開(kāi)始。通過(guò)數(shù)據(jù)時(shí)鐘線213,時(shí)序邏輯電路201的串行時(shí)鐘信號(hào)112送至輸出數(shù)據(jù)緩沖器206。由讀/寫允許線271上的信號(hào)允許輸出數(shù)據(jù)緩沖器206操作。在讀/寫控制總線123上還要求讀狀態(tài),通知總線設(shè)備103(圖2中未示出)正在進(jìn)行讀操作。串行讀出m位數(shù)據(jù),然后控制邏輯電路207要求地址計(jì)數(shù)器遞增273,使地址邏輯電路203對(duì)下一個(gè)m位數(shù)據(jù)塊尋址。當(dāng)m位數(shù)據(jù)已經(jīng)提供給微控制器101以后,時(shí)序邏輯電路201停止向輸出數(shù)據(jù)緩沖器206發(fā)送時(shí)鐘信號(hào)。微控制器101通過(guò)重復(fù)這一操作,順序接收m位數(shù)據(jù)塊。當(dāng)微控制器101要求復(fù)位線111時(shí),停止讀操作,表示下一次操作應(yīng)對(duì)串/并接口102復(fù)位。
當(dāng)根據(jù)軟件代碼中的指令微控制器101將數(shù)據(jù)寫入其串行口時(shí),開(kāi)始寫操作。此處雖沒(méi)有展示該操作,但是本領(lǐng)域的一般技術(shù)人員是能夠理解的。輸入數(shù)據(jù)緩沖器205在移位寄存器202的并行總線221上接收m位數(shù)據(jù)塊。根據(jù)數(shù)據(jù)時(shí)鐘213,該數(shù)據(jù)被鎖存進(jìn)輸入數(shù)據(jù)緩沖器205。通過(guò)輸入數(shù)據(jù)緩沖器控制線274,控制邏輯電路207可以控制將數(shù)據(jù)鎖存進(jìn)輸入數(shù)據(jù)緩沖器205中。在另一實(shí)施例中,可以用另外的裝置將數(shù)據(jù)鎖存進(jìn)輸入數(shù)據(jù)緩沖器205中。這種裝置在本領(lǐng)域中是人所共知的??刂七壿嬰娐?07還接收數(shù)據(jù)時(shí)鐘213。據(jù)此控制邏輯電路207要求讀/寫控制總線123上的寫狀態(tài),使總線設(shè)備103訪問(wèn)數(shù)據(jù)總線122上的數(shù)據(jù)。控制邏輯電路207還要求地址計(jì)數(shù)器遞增273,使得地址邏輯電路203使地址計(jì)數(shù)器遞增。然后通過(guò)地址邏輯電路203在地址總線121上提供將要下載的下一個(gè)n位數(shù)據(jù)塊的位置的地址。寫操作繼續(xù)執(zhí)行這些步驟,直到所有下載的數(shù)據(jù)都被傳輸。然后微控制器101通過(guò)要求復(fù)位線111,發(fā)出信號(hào)停止寫操作,通知串/并接口102對(duì)下一次操作復(fù)位。
可以以交錯(cuò)的方式一字節(jié)一字節(jié)地下載數(shù)據(jù)。在這樣的一個(gè)實(shí)施例中,如果已經(jīng)打算進(jìn)行寫操作,那么命令字節(jié)的最后四位包含第一輸出字節(jié)的較低的四位(“低半字節(jié)”)。如果已經(jīng)打算進(jìn)行讀操作,那么忽略一至七命令字節(jié)的位值??刂七壿嬰娐?07對(duì)命令字節(jié)的第一位解碼,檢測(cè)寫操作,指示輸入數(shù)據(jù)緩沖器205鎖存這四位。然后,由微控制器101發(fā)送的第一輸出字節(jié)的低半字節(jié)包含第一數(shù)據(jù)字節(jié)的高四位字節(jié)(“高半字節(jié)”),第一輸出字節(jié)的高半字節(jié)包含將被下載的下一個(gè)數(shù)據(jù)字節(jié)的低半字節(jié)??刂七壿嬰娐?07通過(guò)輸入數(shù)據(jù)緩沖器控制線274將輸出字節(jié)鎖存進(jìn)輸入數(shù)據(jù)緩沖器205的內(nèi)部寄存器中(未示出)。這是將兩個(gè)半字節(jié)組合成一個(gè)全數(shù)據(jù)字節(jié),以交錯(cuò)方式傳輸。本領(lǐng)域的一般技術(shù)人員會(huì)理解,采用這一方法的數(shù)據(jù)字節(jié)的傳遞與數(shù)據(jù)表示方式是最低有效位(“LSB”)在先還是最高有效位(“MSB”)在先無(wú)關(guān)??刂七壿嬰娐?07繼續(xù)一字節(jié)一字節(jié)地累加輸入數(shù)據(jù),直到所有的m位數(shù)據(jù)都已經(jīng)組合。然后將數(shù)據(jù)裝入輸入數(shù)據(jù)緩沖器205,如上所述繼續(xù)進(jìn)行操作。為了進(jìn)一步理解本發(fā)明,現(xiàn)在參照?qǐng)D3,圖3表示本發(fā)明的另一實(shí)施例的框圖。
在圖3中,操作以微控制器101(圖3中未示出)要求復(fù)位線111開(kāi)始,使得讀/寫狀態(tài)裝置307,行、列-計(jì)數(shù)狀態(tài)裝置308,和命令邏輯電路309復(fù)位。然后,微控制器101開(kāi)始在地址總線121上下載一個(gè)初始地址,在地址總線121上將開(kāi)始下載或裝載操作。通過(guò)在Rx/TxD線113上將來(lái)自其串行口的地址定時(shí),傳輸n位地址。該地址被定時(shí),送至串/并接口102上的移位寄存器202;地址可以一字節(jié)一字節(jié)地轉(zhuǎn)移。微控制器101還在串行時(shí)鐘線112上輸出其串行時(shí)鐘。時(shí)鐘發(fā)生器301在接口時(shí)鐘線311上接收串行時(shí)鐘112和輸出接口串行時(shí)鐘脈沖。接口時(shí)鐘與串行時(shí)鐘112同步。時(shí)鐘發(fā)生器301可以在串行時(shí)鐘112的每個(gè)上升沿和下降沿輸出一個(gè)接口時(shí)鐘脈沖。移位寄存器202的定時(shí)受接口時(shí)鐘線311上的信號(hào)控制。
初始地址被X個(gè)帶鎖存的多路復(fù)用器304-0至304-X存儲(chǔ),其中X是預(yù)定的整數(shù),等于帶鎖存的多路復(fù)用器的個(gè)數(shù)。可以一字節(jié)一字節(jié)地存儲(chǔ)初始地址。帶鎖存的多路復(fù)用器304-1至帶鎖存的多路復(fù)用器304-X與移位寄存器202的并行總線321耦連。將存儲(chǔ)傳輸?shù)膍位地址的當(dāng)前塊的一個(gè)帶鎖存的多路復(fù)用器被通過(guò)對(duì)行、列-計(jì)數(shù)狀態(tài)裝置308的輸出總線381上的行、列計(jì)數(shù)信號(hào)解碼來(lái)選擇。n位地址塊可以是一字節(jié)長(zhǎng)。來(lái)自微控制器101的當(dāng)前塊被定時(shí),并被送至移位寄存器202,地址被鎖存進(jìn)帶鎖存的多路復(fù)用器304-0至帶鎖存的多路復(fù)用器304-X中的一個(gè),這一個(gè)是通過(guò)線311上的接口時(shí)鐘脈沖選擇的。所有的n位地址被傳送以后,地址裝入地址計(jì)數(shù)器303。
由行、列-計(jì)數(shù)狀態(tài)裝置308產(chǎn)生行和列選擇信號(hào)。行、列-計(jì)數(shù)狀態(tài)裝置308在接口時(shí)鐘線311上接收來(lái)自時(shí)鐘發(fā)生器301的接口時(shí)鐘脈沖。行、列-計(jì)數(shù)狀態(tài)裝置308的一個(gè)實(shí)施例的流程圖示于圖4。
復(fù)位以后,行、列-計(jì)數(shù)狀態(tài)裝置308對(duì)接口時(shí)鐘線311上接收的接口串行時(shí)鐘脈沖進(jìn)行累加。累加時(shí)鐘脈沖的邏輯電路在行、列-計(jì)數(shù)狀態(tài)裝置308中,未詳細(xì)地畫出。如果累加的時(shí)鐘脈沖數(shù)未達(dá)到Y(jié),那么行、列-計(jì)數(shù)狀態(tài)裝置308使列計(jì)數(shù)遞增,輸出行和列計(jì)數(shù),并使接口時(shí)鐘線311上接收的接口串行時(shí)鐘周期繼續(xù)。Y是對(duì)應(yīng)將要在單個(gè)下載周期中下載的數(shù)據(jù)時(shí)鐘長(zhǎng)度的預(yù)選擇的整數(shù)。此外,在一個(gè)周期下載全部m位數(shù)據(jù)的實(shí)施例中,Y等于m。逐個(gè)字節(jié)下載的實(shí)施例中,Y的值應(yīng)等于八。另外,在本發(fā)明中,微控制器101首先發(fā)送n位地址后,行、列-計(jì)數(shù)狀態(tài)裝置308可以設(shè)置Y。例如。在整個(gè)地址作為一塊發(fā)送的實(shí)施例中,Y初始設(shè)置等于n。接收n位以后,行、列-計(jì)數(shù)狀態(tài)裝置308可以將Y設(shè)為一個(gè)新的的預(yù)選值。在m位數(shù)據(jù)在一塊中被下載的實(shí)施例中,這個(gè)新的的預(yù)選值是m。在n位地址和m位數(shù)據(jù)被一字節(jié)一字節(jié)地傳送的實(shí)施例中,Y應(yīng)是一個(gè)固定值八。
如果如果累加的時(shí)鐘脈沖數(shù)未達(dá)到Y(jié),那么行、列-計(jì)數(shù)狀態(tài)裝置308使行計(jì)數(shù)遞增,使列計(jì)數(shù)復(fù)位,并在其輸出總線381上輸出行和列計(jì)數(shù)。如果在復(fù)位線111未收到來(lái)自微控制器101的復(fù)位信號(hào),那么如前所述,行、列-計(jì)數(shù)狀態(tài)裝置308繼續(xù)累加時(shí)鐘周期,繼續(xù)遞增行和列計(jì)數(shù)。如果在復(fù)位線111已經(jīng)接收復(fù)位信號(hào),那么行、列-計(jì)數(shù)狀態(tài)裝置308復(fù)位。當(dāng)下一次操作開(kāi)始時(shí),行、列-計(jì)數(shù)狀態(tài)裝置308開(kāi)始累加被接收的周期。行、列-計(jì)數(shù)狀態(tài)裝置308的操作順序的定時(shí)受其內(nèi)部時(shí)鐘(未示出)的控制。內(nèi)部時(shí)鐘不需要與線311上的接口串行時(shí)鐘脈沖同步,內(nèi)部時(shí)鐘的頻率可以遠(yuǎn)遠(yuǎn)大于線331上接口串行時(shí)鐘脈沖的頻率。
發(fā)送n位初始地址以后,微控制器101發(fā)送一個(gè)命令字節(jié)。命令邏輯電路309將在輸出線381上的從行、列-計(jì)數(shù)狀態(tài)裝置308接收的行和列地址解碼。八位命令字節(jié)被定時(shí),送入移位寄存器302以后,命令邏輯電路309對(duì)在移位寄存器302的并行總線321上接收的命令字節(jié)鎖存。命令字節(jié)的第一位的狀態(tài)通知串/并接口102,進(jìn)行的操作是讀還是寫。命令邏輯電路309確定命令字節(jié)的第一位的狀態(tài),并將讀/寫狀態(tài)裝置307的狀態(tài)通過(guò)命令邏輯電路309的輸入線391傳送。在本發(fā)明的一個(gè)實(shí)施例中,數(shù)據(jù)是一字節(jié)一字節(jié)傳送的,如果將要進(jìn)行寫操作,那么如上所述命令字節(jié)的最后四位包括將要下載的第一個(gè)數(shù)據(jù)字節(jié)的最低半字節(jié)。
讀/寫操作由讀/寫狀態(tài)裝置307控制。讀/寫狀態(tài)裝置307的一個(gè)實(shí)施例的流程圖示于圖5。讀/寫狀態(tài)裝置307通過(guò)行、列-計(jì)數(shù)狀態(tài)裝置308在行和列地址總線381上接收輸出的行和列地址。如果未對(duì)命令邏輯電路尋址,那么讀/寫狀態(tài)裝置307檢驗(yàn)命令邏輯電路309的輸出線391的狀態(tài)。如果線391處于讀狀態(tài),那么讀/寫狀態(tài)裝置307要求讀/寫控制總線123上的讀。然后命令讀數(shù)據(jù)緩沖器206通過(guò)線371鎖存數(shù)據(jù)總線122上的數(shù)據(jù)。將被傳送的數(shù)據(jù)的第一塊駐留在裝入地址計(jì)數(shù)器303的初始地址中。傳送m位以后,如果未要求復(fù)位,那么讀/寫狀態(tài)裝置307使地址計(jì)數(shù)器303遞增,因此將要讀出的數(shù)據(jù)的下一塊出現(xiàn)在地址總線121上。地址計(jì)數(shù)器303根據(jù)通過(guò)地址計(jì)數(shù)器遞增線372從讀/寫狀態(tài)裝置307接收的地址遞增信號(hào),使地址總線121上的地址遞增。鎖存該數(shù)據(jù)后,讀數(shù)據(jù)緩沖器206通過(guò)串行數(shù)據(jù)線Rx/TxD線113對(duì)數(shù)據(jù)定時(shí)。對(duì)數(shù)據(jù)的定時(shí)受接口串行時(shí)鐘線311上的時(shí)鐘發(fā)生器301要求的串行時(shí)鐘脈沖控制。使地址計(jì)數(shù)器303遞增以后,重復(fù)循環(huán),直到微控制器101(未示出)在復(fù)位線111上要求復(fù)位。
如果進(jìn)行寫操作,那么讀/寫狀態(tài)裝置307累加接收的位數(shù)。當(dāng)接收m位時(shí),讀/寫狀態(tài)裝置307要求在讀/寫控制總線123的寫。然后讀/寫狀態(tài)裝置307檢驗(yàn)是否要求復(fù)位。如果要求復(fù)位,那么讀/寫狀態(tài)裝置307復(fù)位,否則通過(guò)地址計(jì)數(shù)器遞增線372使地址計(jì)數(shù)器303遞增。重復(fù)這一循環(huán),直到微控制器101在復(fù)位線111上要求復(fù)位。讀/寫狀態(tài)裝置307的操作順序的定時(shí)受其內(nèi)部時(shí)鐘(未示出)的控制。內(nèi)部時(shí)鐘不需要與線311上的接口串行時(shí)鐘脈沖同步,內(nèi)部時(shí)鐘的頻率可以遠(yuǎn)遠(yuǎn)大于線331上接口串行時(shí)鐘脈沖的頻率。
在寫操作中,將要寫入數(shù)據(jù)字節(jié)122的數(shù)據(jù)被數(shù)據(jù)邏輯電路305接收。可以從微控制器101一字節(jié)一字節(jié)地傳輸數(shù)據(jù)。在這樣的一個(gè)實(shí)施例中,如上所述命令字節(jié)包括將要下載的第一數(shù)據(jù)字節(jié)的最低半字節(jié)。數(shù)據(jù)邏輯電路305接收在移位寄存器202的并行總線321上的命令字節(jié)。微控制器101通過(guò)其串行口Rx/TxD線113發(fā)送下一個(gè)字節(jié),該字節(jié)包括其較低四位中的第一數(shù)據(jù)字節(jié)的高半字節(jié),和其較高四位中的下一個(gè)數(shù)據(jù)字節(jié)的低半字節(jié)。數(shù)據(jù)邏輯電路305接收由移位寄存器302的并行總線321傳輸?shù)南乱粋€(gè)字節(jié),并鎖存該輸出字節(jié)。然后數(shù)據(jù)邏輯電路305將第一數(shù)據(jù)字節(jié)的低半字節(jié)和高半字節(jié)連在—起,傳送給數(shù)據(jù)總線122。微控制器101以交錯(cuò)的方式在串行線Rx/TxD線113上繼續(xù)傳輸數(shù)據(jù)。如上所述,數(shù)據(jù)邏輯電路305鎖存接收的輸出字節(jié),并將數(shù)據(jù)的每個(gè)字節(jié)的低半字節(jié)和高半字節(jié)連在一起。對(duì)數(shù)據(jù)邏輯電路305的數(shù)據(jù)的鎖存受線311上產(chǎn)生的接口串行時(shí)鐘脈沖的控制。本領(lǐng)域的一般技術(shù)人員會(huì)理解,采用這一方法的數(shù)據(jù)字節(jié)的傳遞與數(shù)據(jù)表示方式是最低有效位(“LSB”)在先還是最高有效位(“MSB”)在先無(wú)關(guān)。m位數(shù)據(jù)已經(jīng)傳輸以后,通過(guò)讀/寫狀態(tài)裝置307要求讀/寫控制總線123上的寫狀態(tài),數(shù)據(jù)被寫入總線設(shè)備103。如果傳送m位以后沒(méi)有要求復(fù)位,那么讀/寫狀態(tài)裝置307使地址計(jì)數(shù)器303遞增,因此將要讀出的數(shù)據(jù)的下一塊出現(xiàn)在地址總線121上。地址計(jì)數(shù)器303根據(jù)通過(guò)地址計(jì)數(shù)器遞增線372從讀/寫狀態(tài)裝置307接收的地址遞增信號(hào),使地址總線121上的地址遞增。以這種方式傳輸數(shù)據(jù)的后來(lái)的m位塊,直到所有將要下載的數(shù)據(jù)被傳送,微控制器101要求復(fù)位線111上的復(fù)位。然后串/并接口102準(zhǔn)備開(kāi)始下一次操作。
本發(fā)明的數(shù)據(jù)處理系統(tǒng)有效地解決了具有有限數(shù)量的并行I/O總線的嵌入式控制器接口總線設(shè)備的問(wèn)題,本發(fā)明還能對(duì)數(shù)據(jù)處理系統(tǒng)的操作軟件進(jìn)行動(dòng)態(tài)更新。雖然以上詳細(xì)地描述了本發(fā)明及其優(yōu)點(diǎn),但是本領(lǐng)域的一般技術(shù)人員應(yīng)理解,在不脫離本發(fā)明的精神和范圍的前提下可做各種修改和改進(jìn)。
權(quán)利要求
1.一種微控制器系統(tǒng)包括具有至少一條并行輸入/輸出(“I/O”)總線和一個(gè)串行數(shù)據(jù)口的微控制器;串/并接口邏輯電路,具有一個(gè)串行數(shù)據(jù)口,一條并行地址總線,和一條并行數(shù)據(jù)總線,所述串行數(shù)據(jù)口用于與所述微控制器的所述串行數(shù)據(jù)口聯(lián)系,其中在所述微控制器的所述串行數(shù)據(jù)口上傳遞的第一數(shù)據(jù)值作為一個(gè)并行數(shù)據(jù)值出現(xiàn)在所述并行數(shù)據(jù)總線上,所述串/并接口邏輯電路在所述串/并接口邏輯電路的所述并行地址總線上提供一個(gè)地址;以及總線設(shè)備,用于接收所述串/并接口邏輯電路的所述并行地址總線上的所述地址,所述總線設(shè)備訪問(wèn)所述數(shù)據(jù)總線,以便傳遞所述并行數(shù)據(jù)值。
2.根據(jù)權(quán)利要求1的微控制器系統(tǒng),其特征在于所述串/并接口邏輯電路還包括移位寄存器,用于接收串行數(shù)據(jù)值,所述移位寄存器具有一條并行輸出總線;與所述微控制器相連的時(shí)序邏輯電路,用于接收串行時(shí)鐘信號(hào),所述時(shí)序邏輯電路提供對(duì)所述移位寄存器定時(shí)的第一時(shí)鐘信號(hào);輸出數(shù)據(jù)緩沖器,用于接收所述串/并接口邏輯電路的所述并行數(shù)據(jù)總線上的第二數(shù)據(jù)值,所述輸出數(shù)據(jù)緩沖器能夠在從所述時(shí)序邏輯電路中接收所述第一時(shí)鐘信號(hào)時(shí)鎖存所述第二數(shù)據(jù)值,所述輸出數(shù)據(jù)緩沖器在所述串/并接口邏輯電路的所述串行數(shù)據(jù)口上要求所述第二數(shù)據(jù)值;地址邏輯電路,用于接收來(lái)自所述移位寄存器的所述并行總線的一個(gè)地址數(shù)據(jù)值,所述地址數(shù)據(jù)值能夠起動(dòng)一個(gè)計(jì)數(shù)器;控制邏輯電路,用于接收來(lái)自所述移位寄存器的所述并行輸出總線的一個(gè)命令值,其中所述控制邏輯電路構(gòu)成所述串/并接口邏輯電路,以便反映進(jìn)行的操作;以及輸入數(shù)據(jù)緩沖器,用于接收來(lái)自所述移位寄存器的所述并行輸出總線的下載的數(shù)據(jù)值,所述輸入數(shù)據(jù)緩沖器在所述串/并接口邏輯電路的所述并行數(shù)據(jù)總線上提供所述下載數(shù)據(jù)值,其中所述輸入數(shù)據(jù)緩沖器能夠鎖存所述下載的數(shù)據(jù)值。
3.根據(jù)權(quán)利要求2的微控制器系統(tǒng),其特征在于所述控制邏輯電路提供多個(gè)輸入數(shù)據(jù)緩沖器控制信號(hào),所述輸入數(shù)據(jù)緩沖器能夠根據(jù)所述多個(gè)輸入數(shù)據(jù)緩沖器控制信號(hào)鎖存所述下載的數(shù)據(jù)值。
4.根據(jù)權(quán)利要求2的微控制器系統(tǒng),其特征在于所述控制邏輯電路還包括命令邏輯電路,用于接收所述命令值,并提供第一命令信號(hào);讀/寫狀態(tài)裝置,用于根據(jù)從所述命令邏輯電路接收的第一命令信號(hào)控制所述串/并接口邏輯電路的讀/寫操作;以及行、列-計(jì)數(shù)狀態(tài)裝置,用于輸出多個(gè)行/列寄存器選擇信號(hào),所述多個(gè)行/列寄存器選擇信號(hào)是根據(jù)來(lái)自所述時(shí)序邏輯電路的多個(gè)時(shí)鐘信號(hào)產(chǎn)生的,其中所述地址邏輯電路包括多個(gè)地址寄存器,能夠根據(jù)所述多個(gè)行/列選擇信號(hào)進(jìn)行選擇,并且所述輸入數(shù)據(jù)緩沖器能夠根據(jù)所述多個(gè)行/列選擇信號(hào)進(jìn)行選擇。
5.根據(jù)權(quán)利要求4的微控制器系統(tǒng),其特征在于所述多個(gè)地址寄存器還包括多個(gè)帶鎖存的多路復(fù)用器。
6.根據(jù)權(quán)利要求1的微控制器系統(tǒng),其特征在于所述串/并接口邏輯電路還包括移位寄存器,用于接收串行數(shù)據(jù)值,所述移位寄存器具有一條并行輸出總線;時(shí)鐘發(fā)生器,用于接收與所述串行數(shù)據(jù)值同步的外部串行時(shí)鐘信號(hào),所述時(shí)鐘發(fā)生器根據(jù)所述外部串行時(shí)鐘信號(hào)產(chǎn)生多個(gè)接口串行時(shí)鐘脈沖,其中所述移位寄存器根據(jù)所述多個(gè)接口串行時(shí)鐘脈沖將所述串行數(shù)據(jù)值定時(shí);狀態(tài)裝置,其中所述狀態(tài)裝置根據(jù)所述時(shí)鐘發(fā)生器產(chǎn)生的所述多個(gè)接口串行時(shí)鐘脈沖產(chǎn)生行/列地址信號(hào);帶鎖存的多路復(fù)用器,用于存儲(chǔ)在所述移位寄存器的所述并行輸出總線上接收的一個(gè)地址數(shù)據(jù)值,根據(jù)來(lái)自所述狀態(tài)裝置的所述行/列地址信號(hào)選擇所述帶鎖存的多路復(fù)用器接收所述地址數(shù)據(jù)值;地址計(jì)數(shù)器,用于選擇在所述串/并接口邏輯電路的并行地址總線上的一個(gè)地址,其中所述地址計(jì)數(shù)器從存在所述帶鎖存的多路復(fù)用器中的所述地址數(shù)據(jù)值接收一個(gè)初始地址值,根據(jù)地址計(jì)數(shù)器遞增信號(hào),所述地址計(jì)數(shù)器遞增初始地址值;命令邏輯電路,用于接收來(lái)自所述移位寄存器的所述并行輸出總線的命令值,所述命令邏輯電路對(duì)所述命令值解碼,以便選擇讀和寫中的一種操作,所述命令邏輯電路根據(jù)所述命令值產(chǎn)生一個(gè)操作選擇信號(hào);讀數(shù)據(jù)緩沖器,用于接收來(lái)自所述串/并接口邏輯電路的并行數(shù)據(jù)總線的第二數(shù)據(jù)值,所述讀數(shù)據(jù)緩沖器能夠從串行數(shù)據(jù)線發(fā)送第二數(shù)據(jù)值,根據(jù)所述時(shí)鐘發(fā)生器產(chǎn)生的所述多個(gè)接口串行時(shí)鐘脈沖,所述第二數(shù)據(jù)值被定時(shí),放在所述串行數(shù)據(jù)線上;讀/寫狀態(tài)裝置,用于接收來(lái)自所述命令邏輯電路的所述操作選擇信號(hào),所述讀/寫狀態(tài)裝置向所述串/并接口邏輯電路的并行數(shù)據(jù)總線發(fā)送一個(gè)控制信號(hào),并據(jù)此向所述讀數(shù)據(jù)緩沖器發(fā)送一個(gè)允許信號(hào),其中所述讀/寫狀態(tài)裝置接收來(lái)自所述時(shí)鐘發(fā)生器發(fā)出的所述多個(gè)接口串行時(shí)鐘脈沖,和來(lái)自所述狀態(tài)裝置的所述行/列地址信號(hào),所述讀/寫狀態(tài)裝置據(jù)此向所述地址計(jì)數(shù)器發(fā)送所述地址計(jì)數(shù)器遞增信號(hào);以及數(shù)據(jù)邏輯電路,用于接收來(lái)自所述移位寄存器的所述并行輸出總線的串行數(shù)據(jù)值,所述數(shù)據(jù)邏輯電路能夠根據(jù)所述行/列地址信號(hào)進(jìn)行選擇,并在所述串/并接口邏輯電路的所述并行數(shù)據(jù)總線上輸出所述串行數(shù)據(jù)值。
7.一種與串/并接口邏輯電路進(jìn)行聯(lián)系的方法,包括以下步驟起動(dòng)所述串/并接口邏輯電路;向所述串/并接口邏輯電路發(fā)送多個(gè)地址位,其中所述多個(gè)地址位的至少一部分包括地址空間中的一個(gè)地址;要求一個(gè)命令值的第一命令位,以便選擇讀和寫中的一種操作;向所述串/并接口邏輯電路發(fā)送所述命令值;根據(jù)第一命令位選擇所述讀和所述寫中的一種操作;以及向所述串/并接口邏輯電路發(fā)送一個(gè)復(fù)位信號(hào)。
8.根據(jù)權(quán)利要求7的方法,其特征在于所述第一命令位表示應(yīng)進(jìn)行寫操作,所述寫操作將至少第一數(shù)據(jù)位寫入所述串/并接口邏輯電路。
9.根據(jù)權(quán)利要求8的方法,其特征在于所述寫操作將第一數(shù)據(jù)值寫入所述串/并接口邏輯電路的字節(jié)增量中,所述命令值是一個(gè)命令字節(jié)。
10.根據(jù)權(quán)利要求9的方法,其特征在于所述執(zhí)行寫操作的步驟還包括以下步驟裝載帶有第一數(shù)據(jù)字節(jié)的第二半字節(jié)的所述命令字節(jié)的第一半字節(jié);將所述命令字節(jié)寫入所述串/并接口邏輯電路;裝載帶有所述第一數(shù)據(jù)字節(jié)的第二半字節(jié)的第一輸出字節(jié)的第一半字節(jié),和帶有第二數(shù)據(jù)字節(jié)的第一半字節(jié)的所述第一輸出字節(jié)的第二半字節(jié);將所述第一輸出字節(jié)寫入所述串/并接口邏輯電路;裝載帶有所述第二數(shù)據(jù)字節(jié)的第二半字節(jié)的第二輸出字節(jié)的第一半字節(jié),和帶有第三數(shù)據(jù)字節(jié)的第一半字節(jié)的所述第二輸出字節(jié)的第二半字節(jié);將所述第二輸出字節(jié)寫入所述串/并接口邏輯電路;以及將多個(gè)其后的輸出字節(jié)寫入所述串/并接口,其中下一個(gè)輸出字節(jié)的第一半字節(jié)與前一個(gè)數(shù)據(jù)字節(jié)的第二半字節(jié)一起裝載,所述下一個(gè)輸出字節(jié)的第二半字節(jié)與下一個(gè)數(shù)據(jù)字節(jié)的第一半字節(jié)一起裝載。
11.根據(jù)權(quán)利要求7的方法,其特征在于所述第一命令位表示應(yīng)進(jìn)行讀操作,讀操作還包括以下步驟向所述串/并接口邏輯電路發(fā)送所述命令值;和從所述串/并接口邏輯電路讀出一個(gè)數(shù)據(jù)位。
12.根據(jù)權(quán)利要求11的方法,其特征在于所述讀操作從所述串/并接口邏輯電路的多個(gè)字節(jié)增量中讀出一個(gè)數(shù)據(jù)值,并且一個(gè)數(shù)據(jù)位被裝入多個(gè)字節(jié)增量的至少一個(gè)字節(jié)增量中。
13.一種與串/并接口邏輯電路進(jìn)行聯(lián)系的方法,包括以下步驟要求一個(gè)復(fù)位信號(hào),以便起動(dòng)所述串/并接口邏輯電路;向所述串/并接口邏輯電路發(fā)送一個(gè)地址位,所述地址位包括一個(gè)地址值的一部分,所述地址值對(duì)并行總線設(shè)備中的一個(gè)位置尋址;向所述串/并接口邏輯電路發(fā)送一個(gè)命令值,其中所述命令值的第一位用于選擇讀和寫中的一種操作;在所述串/并接口邏輯電路和數(shù)據(jù)處理電路中轉(zhuǎn)移多個(gè)數(shù)據(jù)字節(jié);以及要求對(duì)所述串/并接口邏輯電路復(fù)位的復(fù)位信號(hào)。
14.根據(jù)權(quán)利要求13的方法,其特征在于所述發(fā)送一個(gè)地址位的步驟發(fā)送字節(jié)增量中的多個(gè)地址位。
15.根據(jù)權(quán)利要求14的方法,其特征在于發(fā)送字節(jié)增量中的所述多個(gè)地址位的步驟還包括以下步驟向所述串/并接口邏輯電路發(fā)送第一字節(jié),所述第一字節(jié)是具有至少三字節(jié)長(zhǎng)度的一個(gè)地址的第一字節(jié);向所述串/并接口邏輯電路發(fā)送第二字節(jié),所述第二字節(jié)是具有至少三字節(jié)長(zhǎng)度的地址的第二字節(jié);以及向所述串/并接口邏輯電路發(fā)送第三字節(jié),所述第三字節(jié)是具有至少三字節(jié)長(zhǎng)度的地址的第三字節(jié)。
全文摘要
一種微控制器系統(tǒng)包括:具有至少一條并行輸入/輸出總線和一個(gè)串行數(shù)據(jù)口的微控制器;具有一個(gè)串行數(shù)據(jù)口的串/并接口邏輯電路,一條并行地址總線,和一條并行數(shù)據(jù)總線,該串行數(shù)據(jù)口與微控制器的串行數(shù)據(jù)口聯(lián)系,在微控制器串行數(shù)據(jù)口上傳遞的第一數(shù)據(jù)值出現(xiàn)在并行數(shù)據(jù)總線上,串/并接口邏輯電路在其并行地址總線上提供地址;和總線設(shè)備,用于接收串/并接口邏輯電路的并行地址總線上的地址,總線設(shè)備訪問(wèn)數(shù)據(jù)總線,以便傳遞并行數(shù)據(jù)值。
文檔編號(hào)G06F13/38GK1195821SQ98105828
公開(kāi)日1998年10月14日 申請(qǐng)日期1998年3月19日 優(yōu)先權(quán)日1997年4月10日
發(fā)明者古義明, T·Q·紐伊恩 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司