田地 楊偉
摘要:針對(duì)西安地鐵2號(hào)線輔助變流器與車輛網(wǎng)絡(luò)通信問題,設(shè)計(jì)了一種基于FPGA的HDLC通訊協(xié)議接口。硬件部分包括spantan3系FPGA和RS485電路,軟件部分介紹了使用Verilog HDL語言實(shí)現(xiàn)了HDLC協(xié)議控制時(shí)序的方法,利用FPGA內(nèi)部生成RAM實(shí)現(xiàn)車輛設(shè)備與列車網(wǎng)絡(luò)之間的數(shù)據(jù)交換。最終進(jìn)行裝車調(diào)試,結(jié)果表明,通信可靠穩(wěn)定,達(dá)到設(shè)計(jì)要求。
關(guān)鍵詞:列車網(wǎng)絡(luò) FPGA HDLC
中圖分類號(hào):TN919 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2016)09-0188-01
地鐵車輛在運(yùn)行過程中,車輛的制動(dòng)、空調(diào)運(yùn)行模式等信號(hào)會(huì)通過車輛網(wǎng)絡(luò)(ATI)實(shí)時(shí)傳輸給相應(yīng)車輛設(shè)備,相應(yīng)的車輛設(shè)備也會(huì)實(shí)時(shí)將運(yùn)行狀態(tài),故障數(shù)據(jù)等上傳至車輛網(wǎng)絡(luò)。高級(jí)數(shù)據(jù)鏈路控制(HDLC)協(xié)議,其具有通信速率高、數(shù)據(jù)傳輸可靠等優(yōu)點(diǎn),廣泛應(yīng)用工業(yè)現(xiàn)場(chǎng)總通信領(lǐng)域。利用FPGA實(shí)現(xiàn)HDLC協(xié)議,開發(fā)周期短,易于移植,靈活性強(qiáng)。
1 HDLC協(xié)議
HDLC是一個(gè)面向比特的數(shù)據(jù)鏈路層協(xié)議。在HDLC協(xié)議中,數(shù)據(jù)被組成一個(gè)個(gè)單元(稱為幀)通過網(wǎng)絡(luò)發(fā)送,并有接受方確認(rèn)接收,HDLC協(xié)議也管理數(shù)據(jù)流和數(shù)據(jù)發(fā)送的間隔時(shí)間,幀中包含了控制和響應(yīng)命令。HDLC支持全雙工傳輸,在同一時(shí)刻,數(shù)據(jù)在兩個(gè)方向上傳輸,形成了較高的吞吐率。HDLC適合點(diǎn)對(duì)點(diǎn)和點(diǎn)對(duì)多點(diǎn)連接。
2 系統(tǒng)硬件
FPGA采用硬件處理技術(shù),可以反復(fù)編程,能兼顧速度和靈活性,并能并行處理多路信號(hào),實(shí)時(shí)性能夠預(yù)測(cè)和仿真。因此,使用FPGA實(shí)現(xiàn)HDLC協(xié)議是一種合適的選擇。
列車運(yùn)行環(huán)境中,常會(huì)有電氣噪聲干擾傳輸線路,且列車通信節(jié)點(diǎn)多,位置分散,通訊距離遠(yuǎn),而RS-485接口采用平衡驅(qū)動(dòng)器和差分接收器的組合,抗共模干擾能力增強(qiáng),即抗噪聲干擾性好,傳輸節(jié)點(diǎn)多,傳輸距離遠(yuǎn),因此物理層選用RS485傳輸。
系統(tǒng)相關(guān)硬件結(jié)構(gòu)如圖1所示,主控芯片采用XILINX公司的SPANTAN3系FPGA,通過電平轉(zhuǎn)換電路、RS485電路與列車網(wǎng)絡(luò)相連接,完成數(shù)據(jù)的交換。
3 FPGA軟件設(shè)計(jì)
由于本項(xiàng)目中通訊編碼方式為NRZI編碼,故FPGA需要完成數(shù)據(jù)的編碼與解碼、數(shù)據(jù)的接收發(fā)送、CRC校驗(yàn)、傳輸錯(cuò)誤檢測(cè)等功能。
軟件主要通過以下模塊完成上述功能:NRZI解碼與編碼模塊、0BIT刪除與插入模塊、CRC校驗(yàn)?zāi)K、串并轉(zhuǎn)換模塊、并串轉(zhuǎn)換模塊、接收RAM與發(fā)送RAM、傳輸錯(cuò)誤檢測(cè)模塊、發(fā)送控制模塊。具體如圖3所示。
3.1 NRZI解碼與編碼模塊
一般的串行通信總線信號(hào)的同步性存在問題,而NRZI(不歸零反向編碼)編碼方式,不需要額外增加時(shí)鐘信號(hào)線,解決了通信雙方信號(hào)同步的問題。本模塊完成串行數(shù)據(jù)輸入的解碼與數(shù)據(jù)輸出的編碼。
3.2 幀頭檢測(cè)模塊
本項(xiàng)目中HDLC協(xié)議規(guī)定連續(xù)2到15個(gè)7E視為一幀數(shù)據(jù)的開始故在接收數(shù)據(jù)時(shí)檢測(cè)到幀頭后才能提取數(shù)據(jù)。具體的做法為檢測(cè)到串行數(shù)據(jù)中出現(xiàn)7E后,持續(xù)檢測(cè),當(dāng)出現(xiàn)數(shù)據(jù)不為7E時(shí)開始使能下一級(jí)處理模塊,進(jìn)行0BIT刪除、串并轉(zhuǎn)換、CRC校驗(yàn)等操作;如圖2所示。
3.3 0BIT刪除與插入模塊
為了保證標(biāo)志字的獨(dú)立性,避免在接受數(shù)據(jù)中接收到7E(01111110)發(fā)送方在發(fā)送信息過程中,遇到連續(xù)5個(gè)1將自動(dòng)插入一位0,相反,接收方在接收數(shù)據(jù)時(shí)將連續(xù)5個(gè)1后的0位刪除。保證HDLC協(xié)議傳輸?shù)恼_性。
3.4 串并轉(zhuǎn)換模塊與并串模塊
接收過程中經(jīng)過0BIT刪除后的串行信號(hào)是包含真實(shí)數(shù)據(jù)的串行信號(hào),根據(jù)傳輸?shù)牟ㄌ芈蕦⒋袛?shù)據(jù)轉(zhuǎn)換為單字節(jié)數(shù)據(jù),發(fā)送過程中將單字節(jié)數(shù)據(jù)組進(jìn)行組幀,再依照傳輸波特率按位依次串行發(fā)送,經(jīng)過0BIT插入、NRZI編碼模塊完成數(shù)據(jù)發(fā)送。
3.5 接受RAM與發(fā)送RAM
在接收時(shí),將串并轉(zhuǎn)換過后的數(shù)據(jù)依次存入接收RAM供后極模塊使用,發(fā)送時(shí)將設(shè)備的狀態(tài)量等需要上傳至列車網(wǎng)絡(luò)的數(shù)據(jù)存入發(fā)送RAM再經(jīng)過并串轉(zhuǎn)換模塊、0BIT插入、數(shù)據(jù)發(fā)送模塊、NRZI編碼模塊依次發(fā)送至列車網(wǎng)絡(luò)。
3.6 CRC校驗(yàn)?zāi)K
為了保證傳輸過正中數(shù)據(jù)的正確性,需要對(duì)除標(biāo)志外的幀數(shù)據(jù)進(jìn)行校驗(yàn),HDLC協(xié)議中采用16位循環(huán)校驗(yàn)碼進(jìn)行差錯(cuò)控制。
3.7 發(fā)送控制模塊
列車網(wǎng)絡(luò)向輔助變流器發(fā)送的數(shù)據(jù)信息包括:SDR信息(一般監(jiān)視數(shù)據(jù))和TDR信息(故障追蹤數(shù)據(jù)),發(fā)送模塊根據(jù)接收到信息第一個(gè)有用字節(jié)區(qū)分信息類型(20H代表SDR信息,21H代表TDR信息),并將相應(yīng)的SD信息(一般監(jiān)視數(shù)據(jù))或TD信息(故障追蹤數(shù)據(jù))通過發(fā)送模塊上傳至列車網(wǎng)絡(luò)。
3.8 錯(cuò)誤檢測(cè)模塊
通訊過程中檢測(cè)CRC校驗(yàn)錯(cuò)誤、超時(shí)錯(cuò)誤、幀長(zhǎng)錯(cuò)誤,做相應(yīng)的記錄與告警。
4 結(jié)果驗(yàn)證
本項(xiàng)已經(jīng)應(yīng)用于西安地鐵2號(hào)線增購車輔助變流器單元中,運(yùn)行穩(wěn)定良好,采集波形如圖3所示。當(dāng)列車網(wǎng)絡(luò)發(fā)出SDR信息或者TDR信息后,設(shè)備會(huì)回復(fù)相應(yīng)的SD信息或TD信息,響應(yīng)速度為288us。經(jīng)過長(zhǎng)時(shí)間通信測(cè)試,通信狀態(tài)穩(wěn)定,相應(yīng)及時(shí),達(dá)到設(shè)計(jì)要求。
5 結(jié)語
本文以西安地鐵2號(hào)線輔助變流器自主化項(xiàng)目為依托,設(shè)計(jì)了基于FPGA的HDLC通信接口方案,闡述了該方案優(yōu)勢(shì),并給出了FPGA通信模塊的詳細(xì)設(shè)計(jì)過程。經(jīng)過裝車運(yùn)行,通信數(shù)據(jù)正確、穩(wěn)定、響應(yīng)速度快。驗(yàn)證了該方案的正確性,達(dá)到設(shè)計(jì)要求。
參考文獻(xiàn)
[1]李寧.一種動(dòng)車組用HDLC總線裝置的研制與應(yīng)用[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2014(22).
[2]劉志清.HDLC通道匯聚器設(shè)計(jì)與驗(yàn)證[D].西安電子科技大學(xué),2009.
[3]田耕等著.Xilinx ISE Design Suit10.xFPGA開發(fā)指南[M].人民郵電出版社,2008.