摘 要:本文基于Z85C30芯片,研制了一種適用于CRH2型動(dòng)車組HDLC總線裝置,可用于從列車總線上接收并發(fā)送數(shù)據(jù)。本文詳細(xì)介紹了該裝置的軟硬件設(shè)計(jì)。
關(guān)鍵詞:HDLC;Z85C30;動(dòng)車組
中圖分類號:TP273.5
CRH2型動(dòng)車組的車輛信息控制系統(tǒng)通過基于HDLC的車輛總線方式來傳送信息。該方式能充分保證車輛信息控制系統(tǒng)通信的高可靠性和強(qiáng)實(shí)時(shí)性。本文針對CRH2型動(dòng)車組,設(shè)計(jì)了一種HDLC總線裝置,采用ZiLOG公司的串行通信控制器Z85C30芯片進(jìn)行協(xié)議轉(zhuǎn)換,實(shí)現(xiàn)與其它設(shè)備交換數(shù)據(jù)。
1 HDLC協(xié)議
HDLC協(xié)議是一種通用的數(shù)據(jù)鏈路層協(xié)議,廣泛應(yīng)用于設(shè)備與設(shè)備間的數(shù)據(jù)傳輸。因能在同步網(wǎng)上傳輸數(shù)據(jù),數(shù)據(jù)鏈路傳輸速率較高,采用CRC校驗(yàn)機(jī)制,傳輸準(zhǔn)確性也大為提高。HDLC協(xié)議采用一個(gè)特殊的標(biāo)志字符“01111110”作為幀標(biāo)志,實(shí)現(xiàn)數(shù)據(jù)幀的同步。如果傳輸?shù)臄?shù)據(jù)內(nèi)容里包含了標(biāo)志字符,則須采用易于用硬件實(shí)現(xiàn)的“0比特插入法”,來保證標(biāo)志字符的唯一性。
2 Z85C30芯片介紹
Z85C30是一種串行通信控制芯片,具有A、B兩路數(shù)據(jù)通道,可以搭配8位或16位單片機(jī)。該芯片能夠完成串行到并行、并行到串行的轉(zhuǎn)換,還能夠處理異步格式、面向字節(jié)或比特的同步規(guī)程等。
Z85C30芯片主要性能如下:(1)同步速率:單片機(jī)設(shè)置為16MHz時(shí)鐘時(shí),傳輸速率可以達(dá)4Mb/s;(2)異步性能:每個(gè)字符可設(shè)定為5、6、7或8位,支持奇或偶校驗(yàn);(3)字節(jié)同步性能:支持內(nèi)、外同步,自動(dòng)CRC產(chǎn)生和測試;(4)HDLC性能:“0”的自動(dòng)插入和刪除;報(bào)文間標(biāo)志的自動(dòng)插入;可選NRZ、曼徹斯特等多種編/解碼方式;帶數(shù)字鎖相環(huán)。
Z85C30芯片引腳如圖1所示。
圖1 芯片功能圖
其中,D0~D7為數(shù)據(jù)地址總線管腳,用于傳送數(shù)據(jù)和指令。RD(———)、WR(———)為讀、寫信號管腳。CE(———)為片選信號管腳。A/B(————)為通道選擇信號管腳,該管腳為高電平表示選擇A通道,為低電平表示選擇B通道。D/C(————)為數(shù)據(jù)命令選擇信號管腳。該管腳為高電平表示數(shù)據(jù)傳送,為低電平表示命令傳送。INT(————)為中斷請求信號管腳。INTACK(————————)為中斷響應(yīng)信號管腳。IEI為中斷允許輸入管腳。IEO為中斷允許輸出管腳。TxD、RxD為串行總線數(shù)據(jù)管腳。TRxC(——————)、RTxC(——————)為發(fā)送和接收時(shí)鐘管腳。
3 硬件設(shè)計(jì)
本裝置的主處理器選擇高性能的AT89C51微處理器,外圍芯片設(shè)計(jì)采用CPLD芯片來產(chǎn)生邏輯控制信號,采用Z85C30芯片做串行通信控制。主處理器及外圍接口芯片的接口原理設(shè)計(jì)如圖2所示。
圖2 接口設(shè)計(jì)原理圖
地址信號線通過CPLD譯碼后,產(chǎn)生Z85C30芯片的選擇信號,同時(shí)也產(chǎn)生用于對串行通信進(jìn)行控制的通道選擇信號和數(shù)據(jù)命令選擇信號。通過TxDA、RxDA、TxDB、RxDB四個(gè)芯片管腳,可以外接2路HDLC總線。
4 軟件設(shè)計(jì)
對Z85C30芯片而言,當(dāng)通過軟件將D/C(————)管腳設(shè)置為高電平時(shí),單片機(jī)就能直接讀取接收緩沖區(qū)的數(shù)據(jù)。軟件設(shè)計(jì)過程中,在讀寫Z85C30芯片的寄存器時(shí)需注意,讀寄存器(WR0和RR0寄存器除外)時(shí)需要先進(jìn)行一次寫操作,再進(jìn)行一次讀操作。寫寄存器(WR0和RR0寄存器除外)時(shí)同樣需要進(jìn)行兩次連續(xù)的寫操作。編寫軟件時(shí),首先要對Z85C30芯片進(jìn)行寄存器初始化,即對各寄存器依據(jù)所選擇模式賦初始值。
完成初始化后,就可以打開中斷,開始數(shù)據(jù)的接收和發(fā)送。
發(fā)送時(shí),Z85C30將要發(fā)送的信息與發(fā)送標(biāo)志字符、地址場、控制場等信息封裝成幀后放入緩沖區(qū)后,自動(dòng)發(fā)送。接收時(shí),將裝置設(shè)置為搜尋模式,就能自動(dòng)搜尋同步標(biāo)識。當(dāng)檢測到標(biāo)識“01111110”時(shí),就會認(rèn)為下一個(gè)字節(jié)為地址場字節(jié)。對除了標(biāo)志字符和異常結(jié)束標(biāo)識外的其它數(shù)據(jù)字段,當(dāng)Z85C30芯片發(fā)現(xiàn)有連續(xù)的5個(gè)“1”出現(xiàn),且其后一個(gè)比特為“0”,會自動(dòng)刪除“0”,這樣就能把接收到的數(shù)據(jù)按照HDLC協(xié)議,還原為原始發(fā)送數(shù)據(jù)。
5 結(jié)束語
本文介紹了一種動(dòng)車組用HDLC總線裝置的設(shè)計(jì),詳述了硬件接口設(shè)計(jì)和軟件編程要點(diǎn)。裝置目前在CRH2型動(dòng)車組上進(jìn)行了樣車裝車,能完成穩(wěn)定可靠的數(shù)據(jù)傳輸。
參考文獻(xiàn):
[1]Zilog Inc.SCC/ESCC User’s Manual,2001.
作者簡介:李寧(1980.02-),男,山東煙臺人,高級工程師,博士,研究方向:試驗(yàn)技術(shù)、測試技術(shù);張志強(qiáng)(1969.09-),男,黑龍江齊齊哈爾人,高級工程師,研究方向:試驗(yàn)技術(shù)、測試技術(shù);賀竹林(1981.11-),男,山東日照人,工程師,研究方向:網(wǎng)絡(luò)一致性;熊頡(1973.12-),男,湖南岳陽人,教授級高級工程師,研究方向:測試裝備及技術(shù);夏應(yīng)貴(1974.07-),男,湖南常德人,高級工程師,研究方向:測試裝備及技術(shù)。
作者單位:南車青島四方機(jī)車車輛股份有限公司,山東青島 266111;株洲南車時(shí)代電氣股份有限公司,湖南株洲 412001