專利名稱:串行接口模塊及其方法
本申請與申請?zhí)枮閁S07/917497、07/917489、07/917488、07/917503、07/918627、07/918626、07/918625、07/918631、07/918632、07/918622和07/918621的美國專利申請有關(guān)。
這些相關(guān)的申請與本申請同一日期提交,并轉(zhuǎn)讓給本發(fā)明的受讓人。
本發(fā)明涉及在微控制器和其它設(shè)備間進行通信的系統(tǒng),尤其涉及用于在單片微控制器和外部設(shè)備間進行通信的、實現(xiàn)串行接口功能的系統(tǒng)。
串行和并行接口是該領(lǐng)域技術(shù)人員所熟知的。串行接口包含對整體的各部分例如字符的各位,詞的各字符等使用相同的設(shè)備進行時序處理。另一方面,并行接口包含對整體的各部分使用不同的設(shè)備進行同時處理。
本發(fā)明涉及串行接口,它例如能允許一個單片微控制器與許多工業(yè)標準外部設(shè)備例如串行電可擦可編程只讀存儲器(EEPROM)進行對話。通常,這類接口的構(gòu)成強烈地依賴用軟件來控制微控制器的各個端口。已經(jīng)作了某些努力以制作帶有專用硬件的串行接口,但這些努力并沒有產(chǎn)生簡單、低成本以及靈活的方案,來替代大量依靠軟件的串行接口。
基于上述,顯然,現(xiàn)有技術(shù)的缺陷和不足在于沒有對于集成電路(IC)發(fā)展一種簡單、低成本及靈活的接口模塊,該接口主要是由硬件構(gòu)成的且該接口允許在單片微控制器和接收用外部設(shè)備之間進行串行通訊。
為了克服上述現(xiàn)有技術(shù)的缺陷和不足,本發(fā)明提供一種串行通訊系統(tǒng),它包括用于啟動和停止內(nèi)部時鐘的串行通訊端口結(jié)構(gòu)。該內(nèi)部時鐘被設(shè)計成,在運行中將產(chǎn)生的時鐘輸出信號傳輸至系統(tǒng)外的、與串行通訊口配合工作的設(shè)備。通過把該時鐘輸出信號與預(yù)定長度的數(shù)據(jù)輸出信號相“與”,串行通訊口能有效地控制由外部設(shè)備所感知的那個時間通道。
因而,本發(fā)明可理解為為微控制器提供串行輸入/輸出口,該串行輸入/輸出口在運行時輸送數(shù)據(jù)和時鐘信號至外部設(shè)備。由本發(fā)明提供的串行輸入/輸出口包括用于確定傳送至外部設(shè)備的數(shù)據(jù)位的選定數(shù)量的裝置;用于剛好產(chǎn)生能傳送選定數(shù)量的數(shù)據(jù)位所需的時鐘脈沖的裝置;用于啟動產(chǎn)生時鐘脈沖以傳送所選定的數(shù)據(jù)位數(shù)的裝置;和一旦傳送選定的數(shù)據(jù)位數(shù)所需的時鐘脈沖產(chǎn)生,立即停止時鐘脈沖產(chǎn)生的裝置。
本發(fā)明也為微控制器提供一種串行輸入/輸出口模塊,該串行輸入/輸出口模塊可在運行中傳送數(shù)據(jù)和時鐘信號至外部設(shè)備。按照本發(fā)明的揭示,該串行輸入/輸出口模塊包括一內(nèi)部時鐘;用于啟動內(nèi)部時鐘的裝置;當該時鐘運行時,用于發(fā)送預(yù)定數(shù)據(jù)位數(shù)至外部設(shè)備的裝置;和當預(yù)定位數(shù)的發(fā)送一旦完成,立即停止內(nèi)部時鐘的裝置。
進而,本發(fā)明提供一種經(jīng)串行輸入/輸出口,從微控制器向外部設(shè)備發(fā)送數(shù)據(jù)的方法。由本發(fā)明提供的方法包括與時鐘信號同時地發(fā)送預(yù)定量的數(shù)據(jù)至外部設(shè)備的步驟,和當預(yù)定量的數(shù)據(jù)的末尾一旦發(fā)送,立即停止時鐘信號的步驟。
于是,本發(fā)明的一個目的是提供一種簡單、低成本且靈活的串行接口。
本發(fā)明的另一個目的在于為集成電路提供一種主要由硬件構(gòu)成的接口模塊,它允許在單片微控制器的接收用外部設(shè)備間進行串行通訊。
為了更完全地理解本發(fā)明及其進一步的目的和優(yōu)點,現(xiàn)在結(jié)合附圖作如下詳細敘述,其中
圖1是本發(fā)明的串行接口的框圖。
圖2是包括圖1的串行接口的集成電路的框圖。
圖3是其中包括圖2集成電路的無繩電話終端單元的框圖。
圖4是其中包括圖2集成電路的無繩電話基站的框圖。
圖5是可用于本發(fā)明實施例的串行口工作模式寄存器的框圖。
圖6是可用于本發(fā)明實施例的SI/O發(fā)送緩沖器的框圖。
圖7是可應(yīng)用于本發(fā)明實施例的SI/O接收緩沖器的框圖。
圖8是可應(yīng)用于本發(fā)明實施例的SI/O發(fā)送長度寄存器的框圖。
圖9是可應(yīng)用于本發(fā)明實施例的SI/O狀態(tài)寄存器的框圖。
圖10是可應(yīng)用于本發(fā)明實施例的串行口中斷屏蔽寄存器的框圖。
圖11是可應(yīng)用于本發(fā)明實施例的串行口中斷源寄存器的框圖。
為了便于理解本發(fā)明,這里將以一個在微控制器系統(tǒng)中執(zhí)行系統(tǒng)控制功能的模塊的形式加以敘述,包括無繩電話的特定應(yīng)用也將敘述。這樣的討論是特別有利的,因為如所敘述的本發(fā)明的實施例已經(jīng)實際構(gòu)成并在使用中產(chǎn)生顯著效果。但是應(yīng)該記住,這時所描述的發(fā)明并不限于無繩電話應(yīng)用。相反,本發(fā)明的實施例實際上可用于任何需要串行接口的應(yīng)用,或通過配置串行接口可得到改進的應(yīng)用。這里所敘述的本發(fā)明的特定實施例僅僅是示范性的。
現(xiàn)在,參照圖1,它表示一個串行接口框圖。這個特定的串行接口是設(shè)計成可供與頻率合成器(如Fujitsu的MB1501頻率合成器)通訊的四個串行通道、一個LCD控制器(如NEC的microP.D7225LCD控制器)、一個EEPROM(如S2914AR/1EEPROM)和PCM編碼譯碼器測試設(shè)備的組合。在示于圖1的本發(fā)明的實施例中,一組共同的發(fā)射、接收和時鐘邏輯用于支持合成器、LCD、EEP-ROM和PCM接口。以后,這個組合的硬件組稱為串行I/O或SI/O接口。
在說明上述的用于完成各種需求的SI/O硬件以前、由需要與SI/O接口進行通訊的各種外部設(shè)備加于該接口的操作要求將首先進行討論。這些操作要求是基于合成器接口、LCD接口,EEPROM接口和PCM測試口接口而產(chǎn)生的。每個接口即將在下面討論。另外,對于本發(fā)明的實際構(gòu)造和使用的實施例的異常條件的測試情況也將討論。
關(guān)于合成器接口,應(yīng)該明白IC和合成器芯片之間的通訊是單向的即從IC至合成器。需要三個接口信號Tx數(shù)據(jù),移位時鐘,和合成器鎖存器。Tx數(shù)據(jù)信號用于串行數(shù)據(jù)輸出。在實際操作中,數(shù)據(jù)在時鐘下降沿首先發(fā)送最高有效位(MSB)。對于移位時鐘信號可使用50%占空度的周期時鐘。這允許編程速率為例如288Kbps(千比特/秒),144Kbps,72Kbps和36Kbps,在實際操作中,時鐘僅當數(shù)據(jù)正在發(fā)送時被選通,并在模塊“使能”的其余時間保持高電位。關(guān)于合成器鎖存器信號,“鎖存”脈沖在最后的一位發(fā)送后在專用的引腳上被發(fā)送。在本發(fā)明的實際構(gòu)造的實施例中,這個功能由一個通用的并行口插腳所支持。
關(guān)于LCD接口,串行接口提供用于單片微控制器和LCD控制器集成電路間的通訊。類似于合成器接口,這個接口是單向的即從IC至LCD控制器。在這個接口上有五個接口信號。Tx數(shù)據(jù)信號用于發(fā)送每字8位、最高位在前的串行數(shù)據(jù)輸出。其余四個信號是移位時鐘信號,片選信號,命令/數(shù)據(jù)信號和“忙”信號。關(guān)于移位時鐘信號,在本發(fā)明的實際構(gòu)造的實施例中,數(shù)據(jù)與占空度為50%的周期時鐘信號的下降沿同步地被發(fā)送(在上升沿被接收入LCD控制器,建立和保持時間為1微秒)。時鐘速率可編程以選擇288Kbps,144Kbps,72Kbps和36Kbps。時鐘僅當數(shù)據(jù)發(fā)送時被選通,對發(fā)送數(shù)據(jù)的每個字節(jié)輸出8個周期。當數(shù)據(jù)不發(fā)送時,時鐘信號保持高電位。片選插腳是受軟件控制的一個端口插腳。在這個插腳上的低電平有效的輸出信號,表示在Tx數(shù)據(jù)輸出插腳上的數(shù)據(jù)要送給LCD控制器。命令/數(shù)據(jù)和“忙”插腳也是受軟件控制的。命令/數(shù)據(jù)插腳提供地址線至LCD控制器?!懊Α辈迥_與LCD控制器一起產(chǎn)生“忙”選通信號,用于指示LCD控制器已經(jīng)空閑,可接收下一數(shù)據(jù)字節(jié)。
在本發(fā)明的實際構(gòu)造的實施例中,EEPROM接口是雙向的,并與支持松下(National)、通用儀器公司(GeneralInstruments)和埃克賽爾(Exel)接口的8位和16位設(shè)備兼容。另外,對在時鐘下降沿輸出數(shù)據(jù)的設(shè)備也提供支持。這樣,為了與眾多設(shè)備兼容,可在端口編程以在上升沿或下降沿接收數(shù)據(jù)。四個接口插腳用于支持Tx數(shù)據(jù),Rx數(shù)據(jù),移位時鐘和片選信號。Tx數(shù)據(jù)插腳用于串行數(shù)據(jù)輸出。在本發(fā)明實際構(gòu)造的實施例中,在時鐘的下降沿發(fā)送數(shù)據(jù),首先發(fā)送最高有效位。字長從5至28位。字長大于8位的字可在二個或更多的單元中發(fā)送。例如,11比特的字可作為一字節(jié)后隨3比特字或7比特和4比特字或11個1比特字發(fā)送。Rx數(shù)據(jù)插腳則用于串行數(shù)據(jù)輸入(在這里敘述的系統(tǒng)中,它指MSB在前的8或16位字)。當數(shù)據(jù)在時鐘的上升沿被接收時,第一個數(shù)據(jù)位在上一個比特發(fā)送時間的末尾,即輸出該比特的下降沿以后的一個半時鐘周期之后的第一個時鐘上升沿被接收。當數(shù)據(jù)在下降沿接收時,第一個數(shù)據(jù)位在輸出上一個發(fā)送比特的下降沿后的第二個邊沿被接收。在這種情況下,“空”位(“dummy”bit)是不接收的。關(guān)于移位時鐘插腳,在本發(fā)明的實際構(gòu)造的實施例中,數(shù)據(jù)與占空度為50%的周期時鐘信號的下降沿同步地被發(fā)送。當多字節(jié)字被發(fā)送時,時鐘輸出在發(fā)送同一字的各部分時均保持高電平。數(shù)據(jù)在同一時鐘的上升或下降沿從EEPROM接收。時鐘速率可通過編程選擇288kbps、144Kbps、72Kbps和36Kbps。對于寫操作,時鐘僅在數(shù)據(jù)正被發(fā)送時有效。當數(shù)據(jù)發(fā)送停止時它保持高電位。對于讀操作,時鐘在序列中的發(fā)送信息結(jié)束后繼續(xù)運行,直到在SI/O方式寄存器中規(guī)定的8比特或16比特信息(將在下文討論)被接收為止。片選插腳是受軟件控制的端口插腳,它的低電平有效的輸出表示EEPROM正被訪問。
現(xiàn)在說明PCM測試端口的接口。在本發(fā)明的實際構(gòu)造的實施例中,可由軟件調(diào)用兩種特定的工作模式,即把串行口轉(zhuǎn)換成編碼譯碼器或ADPCM代碼轉(zhuǎn)換機測試端口。在編碼譯碼測試方式中“數(shù)據(jù)輸入”插腳成為64Kbps的發(fā)送輸出,而“時鐘”插腳成為選通的512KHZPCM數(shù)據(jù)時鐘輸出,即幀速率為8KHZ的8周期脈沖串。在ADPCM測試方式,“數(shù)據(jù)輸入”插腳成為64KbpsAD-PCM發(fā)送輸入(或PCM數(shù)據(jù)輸入),“輸出數(shù)據(jù)”插腳成為64KbpsADPCM接收輸出(或PCM數(shù)據(jù)輸出),時鐘插腳成為512KHZPCM數(shù)據(jù)時鐘輸出,即幀速率為8KHZ的8比特脈沖串。B/D通道端口提供8KHZ幀同步時鐘。64KHZ數(shù)據(jù)時鐘必須與8KHZ幀同步時鐘同步。
進一步敘述關(guān)于PCM測試端口接口。PCM測試端口不使用串行I/O端口發(fā)送緩沖器、接收緩沖器或時鐘產(chǎn)生器。由聲頻路徑邏輯(audiopathlogic)提供時鐘和串行發(fā)送的比特流,并以串行方式接收接收數(shù)據(jù)。換句話說,PCM測試功能使用串行I/O端口插腳,而支援時鐘操作、時鐘同步、串行至并行和并行轉(zhuǎn)換的邏輯則在聲頻路徑邏輯內(nèi)處理。
作為上述示于圖1的本發(fā)明的實施例一般性問題,還可以說明異常條件的測試情況。
關(guān)于異常條件,如果軟件發(fā)送一個讀命令至EEPROM,但未在串行端口方式寄存器中將讀位置“1”,則EEPROM在下次串行端口時鐘有效且EEPROM片選有效時將試圖完成讀操作。在本發(fā)明的實施例中,接收器將忽略任何在這種時刻返回的數(shù)據(jù)。
在本發(fā)明的實施例中,約有七個方面可通過測試情況被校驗。首先,可校驗每個被校SI/O外部設(shè)備的發(fā)送情況。包括對發(fā)送的1至8位的時鐘數(shù)是否正確,時鐘是否停在正確狀態(tài),當發(fā)送和時鐘重新開始時其建立時間是否適當,對在上升和下降沿接收的空位是否已適當處理等。其次,校驗當接口禁用時時鐘是否在合適狀態(tài)被關(guān)閉。進而,可校驗SI/O接收和發(fā)送緩沖器的緩沖器狀態(tài)以驗證SI/O數(shù)據(jù)并未在錯誤時間被接收。PCM方式的操作,包括插腳多路復(fù)用也可校驗。還可校驗中斷狀態(tài)報告,包括雙緩沖的接收緩沖器的異步讀。最后,還可以校驗所有寄存器的缺陷。
再參見圖1,從圖中可見,本發(fā)明的實施例包括發(fā)送緩沖器2,接收緩沖器4,時鐘產(chǎn)生器6,可編程字長計數(shù)器8和一個方式寄存器(也以標號6表示)。這些部件中的每一個討論如下關(guān)于發(fā)送緩沖器移位寄存器2,從圖1可見,8位長的發(fā)送移位寄存器構(gòu)成本發(fā)明的實施例的一部分。在該實施例中,這個寄存器2由軟件裝入數(shù)據(jù)的1至8位。實際裝入的位數(shù)與在SI/O發(fā)送長度寄存器中編程的位數(shù)相應(yīng)。數(shù)據(jù)首先從最高有效位發(fā)送,把移位寄存器的最高有效位裝入數(shù)據(jù)總線的位“7”。當裝入少于8位時,由軟件確定在移位寄存器最低有效位中將被發(fā)送的各位的位置。如果不進行接收,當寫入緩沖器時,發(fā)送就開始,否則發(fā)送在讀操作完成后自動開始。
在本發(fā)明的實施例中,當發(fā)送不進行時,軟件僅輸入數(shù)據(jù)至緩沖器。如果在發(fā)送期間,微控制器試圖寫入緩沖器,無錯誤指示產(chǎn)生。數(shù)據(jù)在移位時鐘的下降沿移出緩沖器。在SI/O接口啟動及數(shù)據(jù)不發(fā)送時,輸出插腳保持高電位。如果接收裝置需要一個高的“起動”位,軟件發(fā)送一個低電位的“空”位。
也是在本發(fā)明的實施例中,每當發(fā)送移位寄存器為空時,SI/O狀態(tài)寄存器中的狀態(tài)位置“1”。當在移位寄存器中有數(shù)據(jù)時,狀態(tài)位便清零。每當該位置“1”時,產(chǎn)生一個可屏蔽中斷。在正常情況下,僅當數(shù)據(jù)已經(jīng)裝入移位寄存器2且將被傳輸?shù)淖侄嘤?個時,軟件才允許中斷。這使得當最后一位一移出移位寄存器,在最后一位時間的末尾才能產(chǎn)生中斷,以表示新的字可被裝入。
在本發(fā)明的實際構(gòu)造的實施例中,將被發(fā)送的位數(shù)(1至8位)可在SI/O發(fā)送長度寄存器中規(guī)定。
接收緩沖器4是單字節(jié)雙緩沖的寄存器。當數(shù)據(jù)串行地移入緩沖器對的一半時,如果另一半是空的,則數(shù)據(jù)自動地傳輸至另一半。這允許在8位寬的EEPROM中用作雙緩沖器,而使用16位寬EEPROM時用作單緩沖器。數(shù)據(jù)由微控制器從緩沖器對的另一半讀出。
數(shù)據(jù)可在時鐘信號的上升或下降沿可編程地接收。如果數(shù)據(jù)在時鐘的上升沿接收,則第一位在輸出上一個傳輸位的下降沿后的第二個上升沿,即1.5個時鐘周期后被接收。如果數(shù)據(jù)在下降沿接收,則數(shù)據(jù)在輸出上一個傳輸位后的第二個下降沿,即2個時鐘周期后被接收。
每當緩沖器中有至少一個字節(jié)數(shù)據(jù)時,SI/O狀態(tài)寄存器中的狀態(tài)位置“1”。當寄存器為空時,該位被清零。每當該位置“1”時即產(chǎn)生可屏蔽中斷。
繼續(xù)參照圖1,具體參見時鐘產(chǎn)生器6,時鐘產(chǎn)生器6為各種操作方式產(chǎn)生正確的時鐘輸出。送至SI/O時鐘產(chǎn)生器的主輸入時鐘來自時鐘產(chǎn)生器模塊(參見圖2a)。數(shù)據(jù)速率可在位于時鐘產(chǎn)生器模塊中的串行口定時控制寄存器中編程??赡艿臄?shù)據(jù)速率包括288KHZ、144KHZ,72KHZ和36KHZ。時鐘信號僅當串行口模塊啟動時才能輸入,當串行口模塊被禁止時便保持低電位。當串行口被禁止或當IC被復(fù)位時,SI/O時鐘輸出插腳保持低電平。如下面將要討論的,當時鐘有效時,它的輸出波形和周期數(shù)取決于串行口的工作方式。
關(guān)于發(fā)送方式,時鐘輸出是時鐘分配器輸出與來自發(fā)送長度計數(shù)器的控制信號相“與”的結(jié)果。因此對每一將被發(fā)送的字僅產(chǎn)生所需的時鐘脈沖數(shù)。當發(fā)送多字節(jié)字時,該字各部分的發(fā)送用時鐘輸出相連。若未進行接收,寫入發(fā)送緩沖器時,發(fā)送即開始,否則等讀操作完成后發(fā)送自動開始。
關(guān)于接收方式,時鐘輸出除以下一點外均與發(fā)送方式相同。即,如果SI/O方式寄存器中的讀/寫位在發(fā)送操作完成時被采樣為“讀”,則時鐘輸出保持運行直至編程的位數(shù)已經(jīng)全部移入。
繼續(xù)參照圖1,尤其是其中的發(fā)送長度計數(shù)器8,可以注意到每次發(fā)送可為從1至8位的一個段。每段的位數(shù)在發(fā)送緩沖器裝入數(shù)據(jù)前通過編程送入SI/O發(fā)送長度寄存器。如果連續(xù)的區(qū)段有相同的長度,長度寄存器不需重編程。
關(guān)于接收字長度計數(shù)器,被接收的字的字長可是8或16位,希望的長度通過軟件編程送入SI/O方式寄存器。
根據(jù)上述,應(yīng)該清楚,軟件規(guī)定了SI/O方式寄存器中各種接口格式和時鐘速率。也應(yīng)清楚,被接收的字長(即,8或16位)和該數(shù)據(jù)接收的邊沿在這個寄存器中也可編程。
仍參照圖1,從圖中可見,串行口有SI/O數(shù)據(jù)輸出插腳10,SI/O數(shù)據(jù)輸入插腳12和SI/O時鐘輸出插腳14。SI/O數(shù)據(jù)輸出插腳10用于SI/O數(shù)據(jù)輸出。在本發(fā)明的實際構(gòu)造的實施例中,MSB在前的數(shù)據(jù)在時鐘下降沿發(fā)送,當模塊禁止即停止運轉(zhuǎn)時或IC復(fù)位時,插腳保持低電平。SI/O數(shù)據(jù)輸入插腳12用于SI/O數(shù)據(jù)輸入。在本發(fā)明的實際構(gòu)造的實施例中,數(shù)據(jù)在SI/O時鐘的上升沿或下降沿用編程的時鐘信號打入。SI/O時鐘輸出插腳14用于SI/O時鐘輸出。在本發(fā)明的實施例中,這一選通的時鐘按編程操作產(chǎn)生正確的時鐘數(shù)。也就是說,它不是自由運行的。當模塊禁用即停止運轉(zhuǎn)或IC復(fù)位時,該插腳保持低電平。
進一步參照圖1,從圖中可見,串行口模塊包含七個用戶可視寄存器(visibleregister)。這些寄存器包括串行口方式寄存器6,SI/O發(fā)送緩沖器2,SI/O接收緩沖器4,SI/O發(fā)送長度寄存器8以及一個SI/O狀態(tài)寄存器、一個SI/O中斷屏蔽寄存器和一個SI/O中斷源寄存器。
現(xiàn)在參照圖2,它表示包括按照本發(fā)明的串行口的集成電路(IC)的框圖。因為示于圖2的IC在相關(guān)部分中作了詳細討論,圖2中的各部件不再詳細討論。但,注意到串行口(圖2的部件16)如何連結(jié)到集成電路中對該領(lǐng)域技術(shù)人員來說是有用的。
從圖2中可見,根據(jù)本發(fā)明的串行口模塊16可以這樣結(jié)合到IC中,使它的SI/O時鐘輸出、SI/O數(shù)據(jù)輸出、SI/O數(shù)據(jù)輸入和輸出1用作IC的外部接口。從圖2還可看出,串行口模塊接收來自IC的、記為out0和out1的信號輸入。又,按照本發(fā)明的串行口模塊也接收512K脈沖串時鐘輸入信號。它來自圖2所示IC的RxFIFO部分。
從圖2中可見,根據(jù)本發(fā)明的串行口模塊也傳輸一個串行口中斷信號輸出給IC。
最后,從圖2中可見,有兩路測試信號將示于圖2的IC的編碼譯碼器部分和根據(jù)本發(fā)明的串行口連接在一起。
現(xiàn)在參照圖3和圖4,圖3和圖4分別表示無繩電話的終端或送受話器(handset)部分以及該無繩電話的基站部分。從圖3和圖4可見,示于圖2的IC在所述的無繩電話的終端和基站部分起重要作用。從圖3和圖4還可看出,根據(jù)本發(fā)明的串行口模塊的各種輸入和輸出信號如何與IC的外部部件在無繩電話內(nèi)相接。
下面僅通過舉例,詳細說明本發(fā)明的實際構(gòu)造的實施例中的各種用戶可視寄存器。下面將分別討論示于圖5-11的串行口方式寄存器,SI/O發(fā)送緩沖器,SI/O接收緩沖器,SI/O發(fā)送長度寄存器,SI/O狀態(tài)寄存器,串行口中斷屏蔽寄存器和串行口中斷源寄存器。
串行口方式寄存器地址FF30容量3比特默認值XXXXX000訪問方式讀/寫置定方式軟件清零方式軟件,復(fù)位這個寄存器規(guī)定串行口模塊的操作方式。注意SI/O啟動及數(shù)據(jù)速率控制位在時鐘產(chǎn)生器模塊中確定。該寄存器示于圖5。
位7-4保留位-寫操作必須寫零。讀時返回一個不確定的值。用讀-修改-寫操作能寫回該讀出值。
位3時鐘電平選擇-當SI/O口啟動且時鐘無效時用于選擇時鐘插腳的狀態(tài)。當該位置位時,時鐘保持低電位。當該位清零時,時鐘保持高電位。這在便于與不同部分工作這一點上增加了適應(yīng)性。
位2接收時鐘邊沿選擇-當置位時,數(shù)據(jù)在SI/O時鐘的上升沿接收。當清零時,數(shù)據(jù)在SI/O時鐘下降沿接收。
位1接收長度選擇-當置位時,接收8位字。當清零時,接收16位字。
位0讀/寫選擇-這位在每次發(fā)送操作末尾被采樣。如果它置位,硬件將保持時鐘運行并接收一個字。如果它清零,時鐘停止。注意數(shù)據(jù)能在任一狀態(tài)用該位發(fā)送(但數(shù)據(jù)發(fā)送與接收不能重疊)。
SI/O發(fā)送緩沖器地址FF31容量8位默認值任意存取方式寫設(shè)置方式軟件清零方式N.A.
該SI/O接口發(fā)送數(shù)據(jù)寄存器示于圖6。
位7-0發(fā)送數(shù)據(jù)-寫入該寄存器的數(shù)據(jù)首先發(fā)送MSB(寄存器位“7”相應(yīng)于數(shù)據(jù)總線的位“7”)。當少于8位的字長在SI/O發(fā)送長度寄存器中被傳輸時,這些傳輸?shù)奈槐仨氀b入該寄存器的最低有效位位置。
SI/O接收緩沖器地址FF32容量8位默認值任意存取方式讀設(shè)置方式硬件清零方式軟件讀該SI/O接口接收數(shù)據(jù)寄存器示于圖7。
位7-0接收數(shù)據(jù)-被接收的數(shù)據(jù)通過軟件從該寄存器讀取。接收的第一位在位“7”位置上。注意這是由接收移位寄存器和本寄存器組成的雙緩沖器中可由用戶存取的部分SI/O發(fā)送長度寄存器地址FF33容量3位默認值XXXXX000存取方式讀/寫置位方式軟件清零方式軟件,復(fù)位本寄存器示于圖8,它規(guī)定發(fā)送字的長度。
位7-3保留位-寫操作時必須寫零。讀時返回一個不確定的值。用讀-修改-寫操作能寫回該讀出值。
位2-0字長-用軟件把將要發(fā)送的字的字長以代碼形式寫入這些位。如果發(fā)送相同字長的多個字,軟件不需要重寫該寄存器。
SI/O狀態(tài)寄存器地址FF37容量2位默認值00(十六進制)存取方式讀置位方式硬件清零方式硬件,復(fù)位該寄存器示于圖9,它包含SI/O接口的狀態(tài)位。
位7-2保留位-對于本改進型的IC,讀時返回零。將來進一步改進的IC將在這些位的1到若干位中讀出“1”。編寫軟件時應(yīng)考慮到這些情況。
位1SI/O發(fā)送緩沖器空-該位每當SI/O發(fā)送緩沖器為空時被置位。當數(shù)據(jù)在緩沖器中出現(xiàn)時它被清零。
位0SI/O接收數(shù)據(jù)有效-當在SI/O接收數(shù)據(jù)寄存器(雙緩沖的)的用戶可訪問部分中有數(shù)據(jù)的滿字節(jié)時,該位置位。當緩沖器的用戶可訪問部分空且在將被傳遞給用戶可訪問部分的緩沖器的移位寄存器部分中沒有完整字節(jié)時,該位清零。
串行口中斷屏蔽寄存器地址FF38容量2位默認值XXXXXX00存取方式讀/寫置位方式軟件清零方式軟件,復(fù)位示于圖10的該寄存器包含與SI/O狀態(tài)寄存器中的位相應(yīng)的中斷允許位。
位7-2保留位-寫操作時必須寫零。讀時返回一個不確定的值。用讀-修改-寫操作能寫回該讀取值位1SI/O發(fā)送緩沖器空-當置位時允許中斷。當清零時,中斷被屏蔽。
位0SI/O接收數(shù)據(jù)有效-當置位時允許中斷。當清零時,中斷被屏蔽。
串行口中斷源寄存器地址FF39容量2位默認00(十六進制)存取方式讀置位方式硬件清零方式硬件,復(fù)位示于圖11中該寄存器報告對微控制器請求中斷的SI/O中斷源。以下對這些位的敘述假設(shè)中斷未受屏蔽。
位7-2保留位-對于本改進型的IC讀時返回零。將來進一步改進的IC將在這些位的一到若干位中讀出“1”。編寫軟件時應(yīng)考慮到這些情況。
位1SI/O發(fā)送緩沖器空-每當SI/O發(fā)送緩沖器變空時該位置位。當數(shù)據(jù)裝入緩沖器時該位清零。一旦數(shù)據(jù)已裝入移位寄存器且另有一個字節(jié)的數(shù)據(jù)需要發(fā)送時,軟件應(yīng)僅允許這個中斷。
位0SI/O接收數(shù)據(jù)有效-當一個數(shù)據(jù)字節(jié)已轉(zhuǎn)移至SI/O接收數(shù)據(jù)寄存器(雙緩沖的)的用戶可訪問部分時,該位置位,當緩沖器的用戶可訪問部分變空時且在將轉(zhuǎn)移至用戶可訪問部分的緩沖器的移位寄存器部分中無完整的字節(jié)時,該位清零。
現(xiàn)在,本領(lǐng)域的技術(shù)人員應(yīng)完全理解和贊賞本發(fā)明的結(jié)構(gòu),操作和優(yōu)點。實質(zhì)上,本發(fā)明提供包括用于啟動和停止內(nèi)部時鐘的串行通訊口結(jié)構(gòu)的串行通訊系統(tǒng)。該內(nèi)部時鐘設(shè)計成能在運行中產(chǎn)生時鐘輸出信號,發(fā)送到系統(tǒng)以外與串行通訊口配合工作的設(shè)備。通過把時鐘輸出信號與預(yù)定長度的數(shù)據(jù)輸出信號相“與”,串行通訊口能有效地控制由外部設(shè)備所感知的信號通過時間。因而,本發(fā)明提供一種簡單、低成本且靈活的、主要由硬件組成的串行接口。
顯然,根據(jù)上述揭示,可能作出種種修改和變換。因而,在所附權(quán)利要求的范圍內(nèi),本發(fā)明的實際應(yīng)用不限于上面所具體敘述的內(nèi)容。
權(quán)利要求
1.一種用于微控制器的串行輸入/輸出口,所述串行輸入/輸出口在運行時能發(fā)送數(shù)據(jù)和時鐘信號至外部設(shè)備,其特征在于,該串行輸入/輸出口包括確定傳送到所述外部設(shè)備的數(shù)據(jù)位的選定數(shù)量的裝置;剛好產(chǎn)生傳送所述選定數(shù)量的數(shù)據(jù)位所需的時鐘脈沖的裝置;開始產(chǎn)生時鐘脈沖以傳送所述選定數(shù)量的數(shù)據(jù)位的裝置;和一旦傳送該選定數(shù)量的數(shù)據(jù)位所需的時鐘脈沖產(chǎn)生,立即停止時鐘脈沖產(chǎn)生的裝置。
2.如權(quán)利要求1所述的串行輸入/輸出口,其特征在于,所述確定傳送到外部設(shè)備的數(shù)據(jù)位的選定數(shù)量的裝置包括發(fā)送長度計數(shù)器。
3.如權(quán)利要求2所述的串行輸入/輸出口,其特征在于,所述剛好產(chǎn)生傳送選定數(shù)量的數(shù)據(jù)位所需的時鐘脈沖的裝置包括時鐘分配器。
4.如權(quán)利要求3所述的串行輸入/輸出口,其特征在于,所述發(fā)送長度計數(shù)器產(chǎn)生一控制信號;所述時鐘分配器產(chǎn)生一時鐘輸出信號;所述剛好產(chǎn)生傳送選定數(shù)量的數(shù)據(jù)位所需時鐘脈沖的裝置進一步包括把所述時鐘輸出信號與所述控制信號相“與”的裝置。
5.一種用于微控制器的串行輸入/輸出口模塊,該串行輸入/輸出口能傳送數(shù)據(jù)和時鐘信號至外部設(shè)備,其特征在于,所述串行輸入/輸出口模塊包括內(nèi)部時鐘;用于啟動該內(nèi)部時鐘的裝置;當所述時鐘運行時,用于發(fā)送一預(yù)定的數(shù)據(jù)位數(shù)至外部設(shè)備的裝置;和一旦所述預(yù)定位數(shù)發(fā)送完成,立即停止所述內(nèi)部時鐘的裝置。
6.如權(quán)利要求5所述的串行輸入/輸出口模塊,其特征在于,所述內(nèi)部時鐘在運行期間產(chǎn)生內(nèi)部時鐘信號;所述串行輸入/輸出模塊進一步包括用于發(fā)送所述時鐘信號至所述外部設(shè)備的裝置。
7.如權(quán)利要求6所述的串行輸入/輸出口模塊,其特征在于,所述時鐘運行時,用于發(fā)送一預(yù)定的數(shù)據(jù)位數(shù)至外部設(shè)備的裝置包括發(fā)送長度計數(shù)器和時鐘分配器。
8.如權(quán)利要求7所述的串行輸入/輸出口模塊,其特征在于,所述發(fā)送長度計數(shù)器產(chǎn)生一控制信號;所述時鐘分配器產(chǎn)生時鐘輸出信號;所述當時鐘運行時用于發(fā)送一預(yù)定的數(shù)據(jù)位數(shù)至外部設(shè)備的裝置進一步包括把所述時鐘輸出信號與所述控制信號相“與”的裝置。
9.一種經(jīng)一串行輸入/輸出口從微控制器向外部設(shè)備發(fā)送數(shù)據(jù)的方法,其特征在于該方法包括下述步驟與到外部設(shè)備的時鐘信號同時傳送一預(yù)定的數(shù)據(jù)量;和一旦所述預(yù)定數(shù)據(jù)量的最后數(shù)據(jù)發(fā)送,立即停止所述時鐘信號。
10.如權(quán)利要求9所述的方法,其特征在于,它進一步包括確定在高電位或低電位停止所述時鐘信號的步驟;所述停止時鐘信號的步驟包括一旦所述預(yù)定的數(shù)據(jù)量的最后數(shù)據(jù)發(fā)送,立即按在所述確定步驟期間確定的高或低電平停止所述時鐘信號的步驟。
11.如權(quán)利要求9所述的方法,其特征在于,它進一步包括計算所述的數(shù)據(jù),以確定所述預(yù)定數(shù)量的數(shù)據(jù)是否發(fā)送完的步驟;這個計數(shù)步驟產(chǎn)生一控制信號。
12.如權(quán)利要求11所述的方法,其特征在于進一步包括,產(chǎn)生時鐘輸出信號的步驟。
13.如權(quán)利要求12所述的方法,其特征在于,進一步包括把所述時鐘輸出信號與所述控制信號相“與”的步驟。
14.一種用于微控制器的串行輸入/輸出口,所述串行輸入/輸出口在運行時能從外部設(shè)備接收數(shù)據(jù),其特征在于,所述串行輸入/輸出口包括;用于確定自所述外部設(shè)備接收選定數(shù)量的數(shù)據(jù)位的裝置;剛好產(chǎn)生接收所述選定數(shù)量的數(shù)據(jù)位所需的時鐘脈沖的裝置;用于啟動產(chǎn)生時鐘脈沖以接收選定數(shù)量的數(shù)據(jù)位的裝置;和一旦接收所述選定數(shù)量的數(shù)據(jù)位所需的時鐘脈沖產(chǎn)生,立即停止產(chǎn)生時鐘脈沖的裝置。
15.如權(quán)利要求14所述的串行輸入/輸出口,其特征在于,所述確定從外部設(shè)備接收選定數(shù)量的數(shù)據(jù)位的裝置包括接收字長計數(shù)器。
16.如權(quán)利要求15所述的串行輸入/輸出口,其特征在于,所述剛好產(chǎn)生接收所述選定數(shù)量的數(shù)據(jù)位所需的時鐘脈沖的裝置包括時鐘分配器。
17.一種用于微控制器的串行輸入/輸出口,所述串行輸入/輸出口能在運行中發(fā)送數(shù)據(jù)和時鐘信號至外部設(shè)備,且所述串行輸入/輸出口也能在運行中從外部設(shè)備接收數(shù)據(jù),其特征在于,所述串行輸入/輸出口包括用于確定傳送至所述外部設(shè)備的數(shù)據(jù)位的選定數(shù)量的裝置;用于剛好產(chǎn)生傳送所述選定數(shù)量的數(shù)據(jù)位所需的時鐘脈沖的裝置;用于啟動時鐘脈沖的產(chǎn)生以傳送選定數(shù)量的數(shù)據(jù)位數(shù);一旦傳送所述選定數(shù)量的數(shù)據(jù)位所需的時鐘脈沖產(chǎn)生,立即停止產(chǎn)生時鐘脈沖的裝置;用于確定自所述外部設(shè)備接收選定數(shù)量的數(shù)據(jù)位的裝置;用于剛好產(chǎn)生接收所述選定數(shù)量的數(shù)據(jù)位所需的時鐘脈沖的裝置;用于啟動時鐘脈沖產(chǎn)生以接收所述的選定數(shù)量的數(shù)據(jù)位數(shù);和一旦接收所述選定數(shù)量的數(shù)據(jù)位所需的時鐘脈沖產(chǎn)生,立即停止產(chǎn)生時鐘脈沖的裝置。
18.如權(quán)利要求17所述的串行輸入/輸出口,其特征在于,它進一步包括確定把時鐘脈沖停止在高或低電平的裝置。
19.如權(quán)利要求18所述的串行輸入/輸出口,其特征在于所述確定時鐘脈沖高或低的裝置包括串行口方式寄存器中的一位。
全文摘要
一種用于啟動和停止內(nèi)部時鐘的串行通訊口結(jié)構(gòu),該內(nèi)部時鐘設(shè)計成在運行時產(chǎn)生發(fā)送至系統(tǒng)以外的設(shè)備的時鐘輸出信號,該設(shè)備與串行通訊口配合工作;通過把時鐘輸出信號與預(yù)定長度的數(shù)據(jù)輸出信號相“與”,該串行通訊口能有效地控制由外部設(shè)備所感知的信號通過時間。
文檔編號G06F13/42GK1082794SQ9310900
公開日1994年2月23日 申請日期1993年7月20日 優(yōu)先權(quán)日1992年7月21日
發(fā)明者戴爾E·古利克, 艾倫F·亨德森, 吉川宗弘, 松原宏, 鶴見和重 申請人:先進顯微設(shè)備股份有限公司