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