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