基于Z85C30的多協(xié)議串行通信設計
關(guān)鍵詞:嵌入式系統 串行通信控制器(SCC) Z85C30
引言
我們在嵌入式系統的開(kāi)發(fā)過(guò)程中,經(jīng)常需要設計串行通信口,用以同其它設備或計算機網(wǎng)絡(luò )交換數據。針對不同的應用場(chǎng)合及不同的通信格式,在硬件設計方面有許多不同的芯片可供選擇,如Intel 8251A、Intel 8274、Intel 82530等。采用ZILOG公司的串行通信控制器Z85C30進(jìn)行設計,和其它器件相比,具有功能強、速度快、外部邏輯少等優(yōu)點(diǎn)。
1 串行通信控制器Z85C30介紹
Z85C30是ZILOG公司推出的一種串行通信控制器(SCC)。它具有雙通道,適用于8位、16位處理器的系統,能夠完成串行到并行、并行到串行的轉換。Z85C30能夠處理諸如異步格式、面向字節的同步規程(如IBM雙同步規程)、面向比特的同步規程(如HDLC、SDLC);能夠產(chǎn)生、檢查CRC循環(huán)冗余檢驗碼。
Z85C30每個(gè)通道有14個(gè)寫(xiě)寄存器、7個(gè)讀寄存器。通過(guò)對其編程,可將通信控制器配置滿(mǎn)足各種格式,如數據長(cháng)度、停止位的位數、有無(wú)奇偶檢驗等。
1.1 Z850C30主要性能
①同步速率。16MHz時(shí)鐘下,傳輸速率達4Mb/s;使用16MHz時(shí)鐘,傳輸速率達1Mb/s(FM編碼);使用16MHz時(shí)鐘,傳輸速率達500Kb/s(NRZI編碼)。
②異步性能。每個(gè)字符5、6、7或8位;1/2或2位停止位;奇或偶校驗;1、16、32、64倍時(shí)鐘格式;斷點(diǎn)產(chǎn)生和測試;奇偶、超載和幀出錯測試。
③按字節同步性能。內同步或外同步;1或2個(gè)同步字符;自動(dòng)CRC產(chǎn)生、測試。
④SDLC/HDLC性能。異常中止序列的產(chǎn)生和檢測;“0”的自動(dòng)插入和刪除,報文間標志的自動(dòng)插入,地址段的識別,信息段剩余管理,CRC產(chǎn)生、測試;具有EOP識別/循不入口和出口的SDLC方式;可選NRZ、NRZI、曼徹斯特或FM編/解碼;具有時(shí)鐘恢復能力的數字鎖相環(huán);具有自動(dòng)回波和局部回送的診斷能力。
另外,Z85C30能在SDLC/HDLC方式下更高效地工作,如果有1019位SDLC/HDLC幀狀態(tài)FIFO,14位SDLC/HDLC幀計數器,自動(dòng)SDLC/HDLC標志發(fā)送,自動(dòng)復位SDLC/HDLC Underrun/EOM標志,自動(dòng)預置SDLC/HDLC CRC等。
1.2 Z85C30主要引腳簡(jiǎn)介
Z85C30引腳按功能分為7組:數據地址總線(xiàn)、總線(xiàn)時(shí)序和復位、控制引腳、中斷控制、串行數據、通道控制引腳和時(shí)鐘引腳,如圖1所示。Z85C30引腳定義如圖2所示。
D7~D0:數據地址總線(xiàn),用于傳送命令和數據。
RD、WR:讀、寫(xiě)信號,用于對Z85C30的寄存器操作,低電平有效。
CE:片選信號。
A/B:A、B通道選擇,低電平表示選擇B通道,高電平選擇A通道。
D/C:數據/控制選擇,高電平表示與85C30之間傳輸的是數據,低電平表示與85C30間傳輸的是命令信號。
INT:中斷請求,低電平有效,當SCC需要申請中斷時(shí),該信號有效。
INTACK:中斷響應,低電平有效。
IEI:中斷允許輸入。輸入,高電平有效。當有多個(gè)中斷源時(shí),IEI和IEO一起組成中斷順序鏈優(yōu)先級排隊電路。
IEO:中斷允許輸出。輸出,高電平有效。
PCLK:時(shí)鐘輸入,用來(lái)同步內部信號,是標準的TTL電平信號。
TxD、RxD:發(fā)送、接收數據,分A、B兩個(gè)通道。
TRxC、RTxC:通道時(shí)鐘,它們能被編程為幾種不同的操作械。RTxC能提供接收時(shí)鐘或傳送時(shí)鐘(在輸入方式),能提供傳輸時(shí)鐘計數器輸出(數據鎖相器)、晶體振蕩器輸出、波特率發(fā)生器輸出和輸入時(shí)鐘輸出(它們都是在輸出方式)。RTxC能提供接收時(shí)鐘、傳送時(shí)鐘、波特率發(fā)生器時(shí)鐘、數字鎖相環(huán)時(shí)鐘。
1.3 Z85C30的接口時(shí)序
RD和WR是總線(xiàn)傳輸的兩個(gè)控制信號。CE、D/C、A/B和INTACK用于控制總線(xiàn)傳輸的類(lèi)型??偩€(xiàn)上傳輸的地址在有效后,RD和WR才變低。CE、WR和CE、RD鎖存地址的時(shí)序是一致的。
(1)讀周期時(shí)序
在RD和CE有效時(shí),A/B和D/C上的地址被鎖存。在此周期內CE必須保持低,并且INTACK必須保持高。Z85X30的總線(xiàn)驅動(dòng)設備只有在RD和CE都有效地才使能。在讀操作用D/C為高時(shí),不會(huì )影響指針的狀態(tài)。當D/C為低且在內部操作完成后,指針復位到0。
(2)寫(xiě)周期時(shí)序
在CE和WR有效時(shí),A/B、D/C和數據D7~D0同時(shí)被鎖存。在此周期內CE必須保持低,并且INTACK必須保持高。在寫(xiě)操作且D/C為高時(shí),不會(huì )影響指針的狀態(tài)。當D/C為低且在內部操作完畢后,指針復位到0。
(3)中斷響應周期
當INTACK為低時(shí),進(jìn)入中斷響應周期。這個(gè)A/B、D/C、CE、WR信號都被忽略。
1.4 Z85X30寄存器訪(fǎng)問(wèn)
訪(fǎng)問(wèn)寄存器有兩個(gè)步驟,是使用寄存器指針來(lái)完成尋址的。為尋址一個(gè)指定的寄存器,先通過(guò)寫(xiě)入WR0的指針位來(lái)指定寄存器。因為Z85X30只有唯一的寄存器設置存在,因此,可以從兩個(gè)通道中的任意一個(gè)將指針寫(xiě)入。當指針寫(xiě)入后,再次的讀或寫(xiě)周期(當D/C為低時(shí))將存取剛才指定的寄存器。在讀和寫(xiě)周期結束時(shí),指針被復位到0。
對RR8(接收數據緩沖FIFO)的讀及對WR8(傳送數據緩沖FIFO)的寫(xiě)操作,可以按以上方法進(jìn)行,也可以在D/C為高時(shí)進(jìn)行存取。當D/C為高時(shí),可以直接對相應的數據寄存器進(jìn)行存取,并且指針的狀態(tài)為獨立的。這樣,允許在一個(gè)周期內尋址數據寄存器,并且不影響指針的狀態(tài)。
2 Z85C30與CPU的接口
以下介紹以8051作CPU與Z85C30的接口電路,如圖3所示。
Z85C30的時(shí)鐘選用7.0728MHz。54LS373用來(lái)鎖存片選信號和Z85C30的地址(用來(lái)區分命令、數據寄存器)。因為Z85C30的寫(xiě)時(shí)序在數據有效后,才應出現WR的下降沿;在數據無(wú)效之前,應出現WR上升沿。用1片D觸發(fā)器54LS74和2個(gè)反相器件來(lái)延遲送到Z85C30的WR。由于電路設計為T(mén)TL電路,在實(shí)際的應用,還需加入TTL-RS232轉換電路芯片。
3 軟件設計
3.1 Z85Z30的I/O操作
X85C30有三種基本的I/O操作形式:查詢(xún)、中斷、塊操作。這三種I/O操作在初始化和數據傳送時(shí)涉及到寄存器操作。
查詢(xún)方式依靠軟件查詢(xún)串行控制器,從而決定什么時(shí)候數據應從串行控制器輸入或輸出。在此模式中,主中斷使能位和WAIT/DMA請求位都應編程為0,從而清除任何中斷或DMA請求。查詢(xún)是通過(guò)對RR0的狀態(tài)檢測進(jìn)行的。在此模式中,中斷功能失效。在轉入數據處理前,必須對RR0讀分析,以決定進(jìn)入怎樣的例程。
中斷方式中,串行控制器的每一個(gè)通道包括三個(gè)中斷源:接收器中斷、發(fā)送器中斷和外部/狀態(tài)中斷。
塊操作方式可將W/REQ輸出與WR1中的就緒/請求位配合。通過(guò)編程,W/REQ輸出在塊操作方式中能被定義為WAIT信號,在DMA方式中可作為REQ信號。
3.2 軟件的編寫(xiě)
不同的應用場(chǎng)合,對Z85C30的初始化流程不同,這就需要對Z85C30的寫(xiě)寄存器賦予相應的初值。
圖3 8051與Z85C30的接口電路
寄存器RR2用來(lái)說(shuō)明中斷矢量和狀態(tài),它從B信道讀取。RR3是中斷賦值寄存器,用來(lái)指示中斷的類(lèi)型,它從A信道讀取??淳W(wǎng)絡(luò )補充版(www.dpj.com.cn)中列出了Z85C30的中斷流程。
外部/狀態(tài)中斷源包括:斷點(diǎn)/異常中斷、發(fā)送欠載/報文結束中斷、CTS中斷、同步/搜索中斷、DCD中斷、零計數中斷。它由WR1和WR15設置,只有WR1中外部/狀態(tài)中斷允許位置和WR15中的相應控制位置位后,外部/狀態(tài)條件才會(huì )產(chǎn)生中斷。
結語(yǔ)
采用該設計方案,能夠滿(mǎn)足不同通信格式的要求,軟件編程可根據實(shí)際情況選用查詢(xún)方式、中斷方式、DMA傳送方式,如需要可以加MODEM控制方式。由于Z85C30功能強大,在許多嵌入式系統、網(wǎng)絡(luò )設計方面,選用Z85C30作為通信控制器進(jìn)行開(kāi)發(fā),完全能夠實(shí)現其預期的功能。
評論