深入解析Zilog Z80C30/Z85C30:多功能串口通信控制器的技術(shù)精髓
在電子工程師的世界里,串口通信控制器就像是連接各個電子設(shè)備的橋梁。今天,我要和大家深入探討一下Zilog公司的Z80C30和Z85C30這兩款CMOS SCC(Serial Communications Controller)串口通信控制器。它們在通信領(lǐng)域有著廣泛的應(yīng)用,下面就讓我們一起來揭開它們的神秘面紗。
文件下載:Z85C3008VSG.pdf
一、產(chǎn)品概述與特性
Z80C30和Z85C30這兩款控制器分別針對不同的總線微處理器進(jìn)行了優(yōu)化。Z85C30適用于非復(fù)用總線微處理器,而Z80C30則在復(fù)用總線微處理器上表現(xiàn)出色。并且,它們與NMOS版本引腳兼容,這意味著在升級或者替換時能大大減少工程師的工作量。
這兩款控制器擁有兩個獨立的全雙工通道,每個通道的數(shù)據(jù)傳輸速率可達(dá)0 - 4.1Mbps,還配備了獨立的晶體振蕩器、波特率發(fā)生器(BRG)和數(shù)字鎖相環(huán)(DPLL)用于時鐘恢復(fù)。這種設(shè)計使得它們能夠在多種協(xié)議下穩(wěn)定運行,支持NRZ、NRZI或FM等數(shù)據(jù)編碼方式。
在異步模式下,它們可以處理5 - 8位字符,每個字符可設(shè)置1、1.5或2個停止位,還能實現(xiàn)時鐘因子可編程、中斷檢測與生成、奇偶校驗、溢出和幀錯誤檢測等功能。而在同步模式下,能夠?qū)崿F(xiàn)內(nèi)部或外部字符同步,并進(jìn)行CRC生成和校驗,支持CRC - 16或CRC - CCITT預(yù)設(shè)為1或0。此外,它們還支持SDLC/HDLC模式,具備全面的幀級控制、自動零插入和刪除、I - 字段殘留處理、中止生成和檢測等功能。
值得一提的是,這兩款控制器還具有軟件中斷確認(rèn)功能、本地回環(huán)和自動回顯模式,支持T1數(shù)字干線,并且增強了DMA支持,擁有10 x 19位狀態(tài)FIFO和14位字節(jié)計數(shù)器,能更好地滿足高速數(shù)據(jù)傳輸?shù)男枨?。速度方面,Z85C30有8.5、10、16.384 MHz可選,Z80C30則有8、10 MHz可選。
Z85C30的獨特特性
Z85C30還有一些獨特的特性。它有新的可編程寫寄存器7 prime(WR7),可用于啟用新功能。在支持SDLC同步通信模式上,有諸多改進(jìn),比如能更輕松地發(fā)送連續(xù)幀、自動發(fā)送SDLC起始標(biāo)志、自動復(fù)位SDLC模式下的Tx欠載/EOM鎖存器、自動停用RTS、在SDLC NRZI模式下關(guān)閉標(biāo)志后強制TxD引腳為高電平、完成CRC接收、改進(jìn)狀態(tài)FIFO對中止序列的響應(yīng)、自動預(yù)設(shè)/復(fù)位Tx CRC生成器、擴(kuò)展寫寄存器的讀取功能以及改善寫數(shù)據(jù)建立時間等。
在AC時序方面也有所優(yōu)化,訪問恢復(fù)時間為3 - 3.6 PCLK,DTR/REQ時序可編程,消除了寫數(shù)據(jù)到WR下降沿的建立時間要求,還減少了INT時序。此外,它還具備擴(kuò)展讀取功能,可讀取寫寄存器的寫入值,在讀取時鎖存RRO,并且RRO的D7位和RR10的D6位現(xiàn)在有復(fù)位默認(rèn)值。
二、引腳說明
公共引腳
Z85C30和Z80C30有許多公共引腳,這些引腳在不同的應(yīng)用場景中發(fā)揮著重要作用。例如,CTSA和CTSB是清除發(fā)送輸入引腳(低電平有效),若編程為自動使能功能,低電平輸入可使相應(yīng)的發(fā)送器啟用;若未編程為自動使能,則可作為通用輸入引腳。這兩個輸入都采用施密特觸發(fā)器緩沖,能適應(yīng)緩慢上升時間的輸入,并且SCC能檢測這些輸入上的脈沖,并在邏輯電平轉(zhuǎn)換時中斷CPU。
DCDA和DCDB是數(shù)據(jù)載波檢測輸入引腳(低電平有效),若編程為自動使能,可作為接收器使能;否則,作為通用輸入引腳。同樣采用施密特觸發(fā)器緩沖,能檢測脈沖并在邏輯電平轉(zhuǎn)換時中斷CPU。
DTR/REQA和DTR/REQB是數(shù)據(jù)終端就緒/請求輸出引腳(低電平有效),其狀態(tài)跟隨DTR位的編程狀態(tài),也可作為通用輸出引腳或DMA控制器的請求線。
IEI是中斷使能輸入(高電平有效),與IEO配合使用,可形成中斷菊花鏈。當(dāng)IEI為高電平時,表示沒有其他更高優(yōu)先級的設(shè)備正在處理中斷或請求中斷。IEO是中斷使能輸出(高電平有效),只有當(dāng)IEI為高電平,且CPU未處理SCC中斷或SCC未請求中斷時,IEO才為高電平。它連接到下一個較低優(yōu)先級設(shè)備的IEI輸入,從而抑制較低優(yōu)先級設(shè)備的中斷。
INT是中斷請求輸出(開漏,低電平有效),當(dāng)SCC請求中斷時,該信號激活。INTACK是中斷確認(rèn)輸入(低電平有效),表示一個有效的中斷確認(rèn)周期。在這個周期內(nèi),SCC中斷菊花鏈穩(wěn)定下來。當(dāng)RD有效且IEI為高電平時,SCC會將中斷向量放置在數(shù)據(jù)總線上。
PCLK是時鐘輸入,是SCC的主時鐘,用于同步內(nèi)部信號,為TTL電平信號,且與主系統(tǒng)時鐘無需任何相位關(guān)系,最大傳輸速率為1/4 PCLK。
RxDA和RxDB是接收數(shù)據(jù)輸入(高電平有效),用于接收標(biāo)準(zhǔn)TTL電平的串行數(shù)據(jù)。RTxCA和RTxCB是接收/發(fā)送時鐘輸入(低電平有效),可在多種不同的操作模式下編程,能提供接收時鐘、發(fā)送時鐘、波特率發(fā)生器時鐘或數(shù)字鎖相環(huán)時鐘,也可與相應(yīng)的SYNC引腳一起用作晶體振蕩器。在異步模式下,接收時鐘可以是數(shù)據(jù)速率的1、16、32或64倍。
RTSA和RTSB是請求發(fā)送輸出(低電平有效),當(dāng)寫寄存器5中的請求發(fā)送(RTS)位被設(shè)置時,RTS信號變?yōu)榈碗娖?。在異步模式下且自動使能開啟時,當(dāng)發(fā)送器為空后,信號變?yōu)楦唠娖?;在同步模式下,?yán)格跟隨RTS位的狀態(tài)。當(dāng)自動使能關(guān)閉時,RTS引腳可作為通用輸出引腳。
SYNCA和SYNCB是同步輸入或輸出(低電平有效),可作為輸入、輸出或晶體振蕩器電路的一部分。在不同的模式下,它們有著不同的功能。例如,在異步接收模式(未選擇晶體振蕩器選項)下,類似于CTS和DCD,其線路上的轉(zhuǎn)換會影響讀寄存器0中的同步/搜索狀態(tài)位,但無其他功能;在外部同步模式(未選擇晶體振蕩器)下,作為輸入,在接收到同步字符的最后一位后,SYNC必須被驅(qū)動為低電平兩個接收時鐘周期;在內(nèi)部同步模式(單同步和雙同步)下,作為輸出,僅在識別同步字符的接收時鐘周期部分有效;在SDLC模式下,作為輸出,在接收到標(biāo)志時有效。
TxDA和TxDB是發(fā)送數(shù)據(jù)輸出(高電平有效),用于發(fā)送標(biāo)準(zhǔn)TTL電平的串行數(shù)據(jù)。TRxCA和TRxCB是發(fā)送/接收時鐘輸入或輸出(低電平有效),可在多種不同的操作模式下編程,在輸入模式下可提供接收時鐘或發(fā)送時鐘,在輸出模式下可提供數(shù)字鎖相環(huán)、晶體振蕩器、波特率發(fā)生器或發(fā)送時鐘的輸出。W/REQA和W/REQB是等待/請求輸出,當(dāng)編程為等待功能時為開漏輸出,當(dāng)編程為請求功能時可驅(qū)動為高電平或低電平,可作為DMA控制器的請求線或同步CPU到SCC數(shù)據(jù)速率的等待線,復(fù)位狀態(tài)為等待。
專屬引腳
Z85C30還有一些專屬引腳。A/B是通道A/通道B輸入,用于選擇進(jìn)行讀或?qū)懖僮鞯耐ǖ?。CE是芯片使能輸入(低電平有效),用于選擇SCC進(jìn)行讀或?qū)懖僮?。D7 - D0是數(shù)據(jù)總線(雙向,三態(tài)),用于在SCC和其他設(shè)備之間傳輸數(shù)據(jù)和命令。D/C是數(shù)據(jù)/控制選擇輸入,用于定義傳輸?shù)交驈腟CC傳輸?shù)男畔㈩愋?,高電平表示?shù)據(jù)傳輸,低電平表示命令。RD是讀輸入(低電平有效),表示讀操作,當(dāng)SCC被選中時,啟用SCC的總線驅(qū)動程序。在中斷確認(rèn)周期中,如果SCC是請求中斷的最高優(yōu)先級設(shè)備,該信號會將中斷向量選通到總線上。WR是寫輸入(低電平有效),當(dāng)SCC被選中時,表示寫操作。RD和WR同時有效時,被解釋為復(fù)位。
Z80C30的專屬引腳也有其獨特之處。AD7 - AD0是地址/數(shù)據(jù)總線(雙向,高電平有效,三態(tài)),這些復(fù)用線用于向SCC傳輸寄存器地址以及數(shù)據(jù)或控制信息。AS是地址選通輸入(低電平有效),其上升沿會鎖存AD7 - AD0上的地址。CS0是芯片選擇0輸入(低電平有效),與AD7 - AD0上的地址同時鎖存,必須有效才能進(jìn)行預(yù)期的總線事務(wù)。CS1是芯片選擇1輸入(高電平有效),在預(yù)期的總線事務(wù)發(fā)生之前也必須有效,并且在整個事務(wù)過程中必須保持有效。DS是數(shù)據(jù)選通輸入(低電平有效),為數(shù)據(jù)進(jìn)出SCC的傳輸提供時序。如果AS和DS同時有效,這種情況被解釋為復(fù)位。R/W是讀/寫輸入,用于指定要執(zhí)行的操作是讀還是寫。
三、功能描述
I/O接口能力
SCC通過其寄存器組與系統(tǒng)進(jìn)行通信,共有十六個寫寄存器和八個讀寄存器。在文檔中,寫寄存器用WR表示,讀寄存器用RR表示。例如,WR4A表示通道A的寫寄存器4,RR3表示任一或兩個通道的讀寄存器3。這些寄存器各自有著不同的功能,如RR0用于表示發(fā)送/接收緩沖區(qū)狀態(tài)和外部狀態(tài),WR0用于CRC初始化、各種模式的初始化命令以及寄存器指針設(shè)置等。
數(shù)據(jù)、狀態(tài)和控制信息在SCC中通過三種方式進(jìn)行傳輸:輪詢、中斷(向量和非向量)以及CPU/DMA塊傳輸。輪詢時,所有中斷被禁用,SCC中的三個狀態(tài)寄存器會在任何功能執(zhí)行時自動更新。CPU會定期讀取狀態(tài)寄存器,直到寄存器內(nèi)容表明需要進(jìn)行數(shù)據(jù)傳輸。中斷方面,SCC的中斷結(jié)構(gòu)支持向量和嵌套中斷,通過INTACK引腳實現(xiàn)嵌套中斷。當(dāng)SCC響應(yīng)CPU的中斷確認(rèn)信號時,可將中斷向量放置在數(shù)據(jù)總線上。中斷源包括發(fā)送、接收和外部/狀態(tài)中斷,每個中斷源有三個相關(guān)位:中斷待處理(IP)、中斷正在服務(wù)(IUS)和中斷使能(IE)。此外,SCC還支持軟件中斷確認(rèn),通過設(shè)置寫寄存器9(WR9)的D5位,讀取讀寄存器2(RR2)可觸發(fā)內(nèi)部中斷確認(rèn)周期。CPU/DMA塊傳輸模式利用WAIT/REQUEST輸出與WR1中的等待/請求位配合使用,可定義為CPU塊傳輸模式的等待線或DMA塊傳輸模式的請求線。
SCC數(shù)據(jù)通信能力
SCC提供兩個獨立的全雙工可編程通道,可用于常見的異步或同步數(shù)據(jù)通信協(xié)議。
異步模式
在異步模式下,每個通道可獨立地發(fā)送和接收數(shù)據(jù),每個字符為5 - 8位,可選擇奇偶校驗。發(fā)送器每個字符可提供1、1.5或2個停止位,并可隨時提供中斷輸出。接收器的中斷檢測邏輯會在接收到的中斷開始和結(jié)束時中斷CPU。同時,為了防止干擾,采用了瞬態(tài)尖峰抑制機制,當(dāng)在接收數(shù)據(jù)輸入(RxDA或RxDB引腳)檢測到低電平后,會在半個位時間后檢查信號,若低電平不持續(xù),則不開始字符組裝過程。還能檢測幀錯誤和溢出錯誤,并將其與部分字符一起緩沖,通過向量中斷可快速處理錯誤情況。需要注意的是,SCC不要求發(fā)送和接收時鐘信號對稱,這使得它可以使用多種時鐘源。
同步模式
同步模式下,SCC支持面向字節(jié)和面向位的同步通信。在面向字節(jié)的同步協(xié)議中,有多種模式可供選擇,可通過6位或8位同步字符(單同步)、12位或16位同步模式(雙同步)或外部同步信號進(jìn)行字符同步,并且在不中斷CPU的情況下移除前導(dǎo)同步字符。對于5位或7位同步字符,SCC通過將較大的模式重疊在多個傳入的同步字符上來進(jìn)行檢測。CRC校驗在面向字節(jié)的同步模式下會延遲一個字符時間,以便CPU可以在特定字符上禁用CRC校驗。支持CRC - 16和CCITT兩種錯誤檢查多項式,并且可以將CRC生成器和檢查器預(yù)設(shè)為全1或全0。當(dāng)沒有數(shù)據(jù)或CRC要發(fā)送時,發(fā)送器會插入6、8或16位同步字符。
SDLC模式
在SDLC模式下,SCC支持同步面向位的協(xié)議,如SDLC和HDLC,可自動發(fā)送標(biāo)志、插入零和生成CRC??墒褂锰厥饷钪兄拐趥鬏?shù)膸谙⒔Y(jié)束時,若發(fā)送器欠載,會自動發(fā)送CRC和尾隨標(biāo)志。發(fā)送器還可編程為發(fā)送由連續(xù)標(biāo)志字符組成的空閑線或穩(wěn)定標(biāo)記條件。若在消息中間發(fā)生發(fā)送器欠載,外部/狀態(tài)中斷會警告CPU,SCC也可編程為在欠載時自行發(fā)送中止信號。接收器可在SDLC或HDLC幀的前導(dǎo)標(biāo)志上自動獲取同步,并在SYNC引腳提供同步信號,還可編程為搜索由用戶選擇的單字節(jié)(或字節(jié)內(nèi)的四位)地址尋址的幀或全局廣播地址,忽略不匹配的幀。在接收數(shù)據(jù)時,可選擇在第一個接收到的字符、每個字符或僅在特殊條件(幀結(jié)束)時產(chǎn)生中斷。接收器會自動刪除發(fā)送器在字符組裝過程中插入的所有0,并計算和檢查CRC以驗證幀傳輸。在SDLC模式下,SCC必須編程為使用SDLC CRC多項式,并且生成器和檢查器可預(yù)設(shè)為全1或全0。
SDLC循環(huán)模式
SDLC循環(huán)模式是SCC的另一個重要特性。在SDLC循環(huán)中,主控制器站管理循環(huán)上的消息流量,任何數(shù)量的從站都可參與。SCC在SDLC循環(huán)模式下充當(dāng)從站,而在常規(guī)SDLC模式下的SCC則充當(dāng)控制器。從站會一直監(jiān)聽循環(huán)上發(fā)送的消息,并在延遲一個位時間后重新傳輸這些消息。當(dāng)從站有消息要發(fā)送且識別到線路上的EOP字符(位模式11111110)時,會將EOP的最后一個二進(jìn)制1改為0,將其轉(zhuǎn)換為標(biāo)志序列,然后將自己的消息放置在循環(huán)上,并以EOP結(jié)束消息。其他有消息要發(fā)送的從站會通過相同的過程將其消息附加到第一個從站的消息后面。沒有消息要發(fā)送的從站會回顯傳入的消息,除非識別到EOP,否則禁止在循環(huán)上放置消息。在SDLC循環(huán)模式下,支持NRZ、NRZI和FM編碼。
波特率發(fā)生器
SCC的每個通道都包含一個可編程的波特率發(fā)生器(BRG)。它由兩個8位時間常數(shù)寄存器組成一個16位時間常數(shù)、一個16位向下計數(shù)器和一個輸出觸發(fā)器組成。啟動時,輸出觸發(fā)器設(shè)置為高電平,時間常數(shù)寄存器中的值加載到計數(shù)器中,計數(shù)器開始向下計數(shù)。當(dāng)計數(shù)器達(dá)到0時,BRG的輸出翻轉(zhuǎn),時間常數(shù)寄存器中的值再次加載到計數(shù)器中,重復(fù)該過程。時間常數(shù)可以隨時更改,但新值要到下一次加載計數(shù)器時才生效。BRG的輸出可作為發(fā)送時鐘、接收時鐘或兩者,也可驅(qū)動數(shù)字鎖相環(huán)。如果接收時鐘或發(fā)送時鐘未編程為來自TRxC引腳,BRG的輸出可通過TRxC引腳輸出。其時間常數(shù)與波特率的關(guān)系為:[Time Constant =frac{ PCLK or RTxC Frequency }{2 (Baud Rate)( Clock Mode )}-2] 其中,PCLK或RTxC是BRG的輸入頻率,時鐘模式可以是1、16、32或64,由寫寄存器4的D6和D7位選擇。同步操作模式選擇1,異步模式選擇16、32或64。
數(shù)字鎖相環(huán)
數(shù)字鎖相環(huán)(DPLL)用于從NRZI或FM編碼的數(shù)據(jù)流中恢復(fù)時鐘信息。它由一個時鐘驅(qū)動,該時鐘的頻率通常是數(shù)據(jù)速率的32倍(NRZI)或16倍(FM)。DPLL利用這個時鐘和數(shù)據(jù)流來構(gòu)建數(shù)據(jù)的時鐘,該時鐘可作為SCC的接收時鐘、發(fā)送時鐘或兩者。當(dāng)DPLL被選為發(fā)送時鐘源時,它提供無抖動的時鐘輸出,該輸出是DPLL輸入頻率除以所選編碼技術(shù)的適當(dāng)除數(shù)。對于NRZI編碼,DPLL對32倍時鐘進(jìn)行計數(shù)以創(chuàng)建標(biāo)稱位時間,在計數(shù)過程中搜索傳入數(shù)據(jù)流中的邊緣,檢測到邊緣時進(jìn)行計數(shù)調(diào)整。對于FM編碼,DPLL從0計數(shù)到31,一個周期對應(yīng)兩個位時間,鎖定時,數(shù)據(jù)流中的時鐘邊緣出現(xiàn)在計數(shù)15和16之間以及計數(shù)31和0之間,DPLL僅在以15到16計數(shù)轉(zhuǎn)換為中心的時間內(nèi)搜索邊緣。DPLL的32倍時鐘可以編程為來自RTxC輸入或BRG的輸出,其輸出也可通過TRxC引腳輸出。
-
Zilog
+關(guān)注
關(guān)注
0文章
3瀏覽量
1413 -
串口通信控制器
+關(guān)注
關(guān)注
0文章
2瀏覽量
1070
發(fā)布評論請先 登錄
怎么實現(xiàn)基于Z85C30的動目標(biāo)識別系統(tǒng)的串行通信設(shè)計?
基于Z85C30的多協(xié)議串行通信設(shè)計
基于Z85C30的DSRC高速數(shù)據(jù)通信在智能
Z80181 datesheet
基于Z85C30串行通信控制器實現(xiàn)串行通信系統(tǒng)的應(yīng)用設(shè)計
80年代的Arduino(基于z80的簡單微控制器)
DS1100Z-30+ 時鐘/計時 - 延遲線
DS1135Z-30+ 時鐘/計時 - 延遲線
深入解析Zilog Z80C30/Z85C30:多功能串口通信控制器的技術(shù)精髓
評論