蔣國(guó)濤
(中國(guó)南車集團(tuán) 株洲南車時(shí)代電氣股份有限公司 技術(shù)中心 ,湖南株洲412001)
目前,國(guó)際上列車通信網(wǎng)絡(luò)控制技術(shù)己經(jīng)成熟。其核心技術(shù)由西門子、Bombardier和ABB等公司掌握,市場(chǎng)上的TCN專用控制芯片被它們所壟斷。在國(guó)內(nèi)還沒(méi)有公司能夠開發(fā)出符合IEC 61375要求的專用絞線式列車總線(WTB)的專用控制芯片。雖然有公司開發(fā)出了基于FPGA的WTB物理層控制器IP核,但是離成熟標(biāo)準(zhǔn)的絞線式列車總線(WTB)的專用控制芯片的距離還很遙遠(yuǎn),其只能實(shí)現(xiàn)物理層信號(hào)編解碼、信號(hào)監(jiān)測(cè)、線路選擇及冗余管理等物理層功能,如果要實(shí)現(xiàn)WTB通信,還需要借助外界器件實(shí)現(xiàn)高層數(shù)據(jù)鏈路控制器(HDLC)協(xié)議,通用性差。
介紹一種基于FPGA平臺(tái)的能完全滿足IEC 61375絞線式列車總線(WTB)的專用控制芯片功能要求的標(biāo)準(zhǔn)IP核。它能完成絞線式列車總線(WTB)鏈路層的HDLC幀收發(fā)、物理層數(shù)據(jù)的曼徹斯特編解碼、冗余線路的控制等功能。該IP核可以流片成專用的ASIC,也可以作為通用的IP核直接使用,解決了目前該類產(chǎn)品通用性差、重復(fù)開發(fā)等問(wèn)題,突破了國(guó)外公司的技術(shù)壟斷,在行業(yè)內(nèi)具有戰(zhàn)略意義。
絞線式列車總線(WTB)是一種串行數(shù)據(jù)通信總線,主要用于經(jīng)常相互連掛和解列的重聯(lián)車輛。WTB滿足IEC 61375-1[1]的要求,支持周期性的過(guò)程數(shù)據(jù)、非周期性的消息數(shù)據(jù)以及監(jiān)視數(shù)據(jù)。能夠通過(guò)初運(yùn)行實(shí)現(xiàn)列車的自動(dòng)編址、自動(dòng)編組。WTB最多可互聯(lián)32個(gè)節(jié)點(diǎn),傳輸介質(zhì)為屏蔽雙絞線,干線電纜最大長(zhǎng)度為860 m,工作速率為1 Mb/s。WTB采用了硬件冗余,數(shù)據(jù)在兩條介質(zhì)上同時(shí)發(fā)送,仲裁邏輯根據(jù)收發(fā)器提供的載波檢測(cè)信號(hào)在兩路接收信號(hào)間作出選擇。
IEC 61375[1]標(biāo)準(zhǔn)規(guī)定WTB幀一幀信號(hào)由前導(dǎo)碼(幀頭)開始,接著是幀數(shù)據(jù),最后由終止分界符結(jié)束。前導(dǎo)碼由電平為“1”的起始位S開始,隨后是若干個(gè)(0,1)位對(duì)(本設(shè)計(jì)中采用了7對(duì)),最后以1結(jié)束。幀數(shù)據(jù)的開始和結(jié)束由標(biāo)志序列01111110進(jìn)行標(biāo)志。終止分界符為2.0 BT(1 BT=1個(gè)時(shí)間單位)寬的正電平,見圖1所示。
圖1 線路上的WTB幀
WTB所有的幀都具有同樣的格式,遵循 HDLC(ISO/IEC 3309[2])規(guī)范,見圖2所示。
圖2 HDLC數(shù)據(jù)格式
Preamble前同步碼:WTB幀開始部分的前同步碼由曼徹斯特編碼器產(chǎn)生,并由曼徹斯特譯碼器去除。它不屬于HDLC幀部分。它的長(zhǎng)度為16到32位,16位是默認(rèn)值,主要用于WTB幀位同步。
(1)Flag幀頭標(biāo)志位。HDLC幀以兩個(gè)8位標(biāo)志(01111110)作為分界符,作為幀同步標(biāo)志。
(2)DD目的設(shè)備。接收該幀節(jié)點(diǎn)的 Node_Address(節(jié)點(diǎn)地址)(或者是廣播地址)。
(3)LC鏈路控制字段。用于鏈路控制的 8位字段,標(biāo)志幀類型等。
(4)SD源設(shè)備。發(fā)送幀的節(jié)點(diǎn)地址。
(5)SIZE。標(biāo)志以字節(jié)為單位的鏈路數(shù)據(jù)的長(zhǎng)度。
(6)FCS幀校驗(yàn)序列。16位的幀校驗(yàn)序列。由曼徹斯特編碼器產(chǎn)生,由譯碼器去除。
(7)ED結(jié)束分界符。End_Delimiter(結(jié)束分界符)由曼徹斯特編碼器產(chǎn)生,由譯碼器去除。
WTB總線控制芯片IP核的整個(gè)構(gòu)架框圖見圖3所示。從通信協(xié)議分層的角度考慮,該IP核可以分為3個(gè)大的部分:物理層、鏈路層、鏈路層接口。
(1)鏈路層接口。鏈路層接口主要提供與外部處理器的接口,為發(fā)送數(shù)據(jù)和接收數(shù)據(jù)提供緩存空間,作為WTB總線控制芯片IP核與其他處理器件的數(shù)據(jù)傳輸通道。主要包含兩個(gè)模塊:發(fā)送雙口RAM和接收雙口RAM。
(2)鏈路層。鏈路層是該WTB總線控制芯片IP核的關(guān)鍵核心部分,主要實(shí)現(xiàn)HDLC協(xié)議。主要包含兩個(gè)模塊:HDLC幀發(fā)送器單元和HDLC幀接收器單元。
(3)物理層。物理層主要實(shí)現(xiàn)WTB物理通道控制、曼徹斯特編解碼、定時(shí)、中斷、FIFO轉(zhuǎn)發(fā)。主要包括WTB物理層控制模塊、通道管理模塊、曼徹斯特編解碼模塊、WTB定時(shí)、WTB中斷、WTB寄存器、存儲(chǔ)轉(zhuǎn)發(fā)。
圖3 WTB總線控制器系統(tǒng)框圖
WTB總線控制芯片IP核功能主要是完成WTB通信控制,其接收的數(shù)據(jù)和需要發(fā)送的數(shù)據(jù)都是與外界處理器件相關(guān)。該鏈路層接口主要提供與外部處理器的接口,為發(fā)送數(shù)據(jù)和接收數(shù)據(jù)提供緩存空間,分別用FPGA內(nèi)部雙口RAM實(shí)現(xiàn)。
表1 鏈路層接口
WTB總線控制器鏈路層從功能上分可以分為HDLC幀發(fā)送器單元[3]和HDLC幀接收器單元[3]。鏈路層模塊圖見圖4所示。
HDLC幀發(fā)送器主要實(shí)現(xiàn)對(duì) HDLC幀數(shù)據(jù)生成CRC校驗(yàn)碼、完成HDLC數(shù)據(jù)部分的零比特填充、構(gòu)建HDLC幀的標(biāo)志符(01111110)、對(duì)待發(fā)送的信息進(jìn)行組幀發(fā)送控制,幀發(fā)送器內(nèi)部電路結(jié)構(gòu)見圖5所示。
圖5 HDLC幀發(fā)送器內(nèi)部電路結(jié)構(gòu)
HDLC幀發(fā)送器首先將來(lái)自應(yīng)用層的有效數(shù)據(jù)存儲(chǔ)到內(nèi)部雙口RAM即發(fā)送緩存中,然后將有效數(shù)據(jù)一路送給CRC校驗(yàn)?zāi)K生成校驗(yàn)碼,另一路送給發(fā)送模塊進(jìn)行插入幀起始和終止標(biāo)志符01111110的插入以及0的插入,然后組成HDLC幀送給曼徹斯特編碼模塊對(duì)幀數(shù)據(jù)進(jìn)行曼徹斯特編碼后輸出到物理鏈路上。當(dāng)在發(fā)送過(guò)程中,出現(xiàn)發(fā)送失敗,產(chǎn)生發(fā)送失敗中斷。
(1)CRC-16校驗(yàn)生成
采用CRC-16校驗(yàn),產(chǎn)生16位的CRC校驗(yàn)碼,數(shù)據(jù)發(fā)送和接收都是采用相同的CRC校驗(yàn),其生成多項(xiàng)式為g(x)=x16+x12+x5+1。為了提高IP核性能和處理速度,該發(fā)明采用并行CRC代替?zhèn)鹘y(tǒng)的串行CRC。
(2)構(gòu)建 HDLC幀的標(biāo)志符(HDLC幀頭和HDLC幀尾)
根據(jù)ISO 3309中定義的HDLC格式,一幀數(shù)據(jù)由標(biāo)志符01111110開始,同時(shí)由相同的標(biāo)志符結(jié)束。該IP核在發(fā)送數(shù)據(jù)幀前先插入標(biāo)志符發(fā)送,當(dāng)幀數(shù)據(jù)發(fā)送完畢后再插入相同的標(biāo)志符標(biāo)志幀數(shù)據(jù)發(fā)送完畢。
(3)零比特填充
為防止數(shù)據(jù)位中出現(xiàn)與標(biāo)志符0111110相同的數(shù)據(jù),所以對(duì)數(shù)據(jù)掃描,在5個(gè)1后插入一個(gè)0,到了接收端再剔除填充零比特恢復(fù)鏈路數(shù)據(jù)。例如待發(fā)送的數(shù)據(jù)為011101111110,發(fā)送的數(shù)據(jù)則為0111011111010。
(4)發(fā)送狀態(tài)控制模塊
HDLC幀發(fā)送器采用狀態(tài)機(jī)實(shí)現(xiàn)整個(gè)控制,控制幀發(fā)送器依次完成幀頭發(fā)送、生成CRC校驗(yàn)碼、零比特填充、數(shù)據(jù)發(fā)送、幀尾發(fā)送。其流程圖如6所示。
圖6 發(fā)送狀態(tài)控制模塊狀態(tài)機(jī)
HDLC幀接收器主要實(shí)現(xiàn)檢測(cè)幀開始信號(hào)(Start_Bit)、識(shí)別幀起始符和結(jié)束符、完成CRC校驗(yàn)、剔除HDLC幀的填充零比特、幀接收時(shí)序控制。
HDLC幀接收器的電路結(jié)構(gòu)如圖7所示,由HDLC幀頭識(shí)別模塊、剔除填充零比特模塊、CRC校驗(yàn)?zāi)K、接收控制狀態(tài)模塊組成。
圖7 HDLC幀接收器內(nèi)部電路結(jié)構(gòu)圖
HDLC幀接收器單元第一次檢測(cè)到標(biāo)志符01111110時(shí)表示幀數(shù)據(jù)開始,對(duì)幀數(shù)據(jù)進(jìn)行同步,接收幀數(shù)據(jù);在接收幀數(shù)據(jù)的過(guò)程中,對(duì)接收到0111110 5個(gè)1后面的0進(jìn)行剔除操作;在接收數(shù)據(jù)的同時(shí),對(duì)接收的數(shù)據(jù)進(jìn)行CRC-16校驗(yàn);當(dāng)再次檢測(cè)到標(biāo)志符01111110時(shí)表示幀數(shù)據(jù)發(fā)送完畢;如果在接收過(guò)程中發(fā)生錯(cuò)誤或接收無(wú)效幀產(chǎn)生接收失敗中斷。
(1)幀頭識(shí)別
檢測(cè)Start_Bit,啟動(dòng)解碼器工作,同時(shí)判斷幀頭是否為正確的序列。
(2)剔零填充
掃描串行數(shù)據(jù),剔除5個(gè)1后的0,采用序列檢測(cè)狀態(tài)機(jī)實(shí)現(xiàn)。
(3)CRC-16校驗(yàn)
HDLC幀接收器單元CRC校驗(yàn)原理同CRC校驗(yàn)碼的生成相同。將數(shù)據(jù)輸入移位寄存器再生成CRC碼,同接收到的CRC碼比較,如果不一致,產(chǎn)生CRC錯(cuò)誤指示。
(4)接收狀態(tài)控制模塊
HDLC幀接收器單元幀接收時(shí)序控制模塊采用狀態(tài)機(jī)實(shí)現(xiàn),控制幀接收器依次完成幀頭的識(shí)別,碼元同步,數(shù)據(jù)的解碼,剔除填充零比特和幀校驗(yàn),最后送至發(fā)送緩存,通知上層,同時(shí)報(bào)告相關(guān)的錯(cuò)誤信息。其流程圖如8所示
圖8 接收狀態(tài)控制模塊狀態(tài)機(jī)
物理層主要實(shí)現(xiàn)WTB物理通道控制、曼徹斯特編解碼、定時(shí)、中斷、信號(hào)再生。主要包括曼徹斯特編解碼模塊、通道管理模塊、WTB定時(shí)、WTB中斷、WTB寄存器、存儲(chǔ)轉(zhuǎn)發(fā)、WTB物理層控制模塊。物理層模塊圖見圖9所示。
(1)曼徹斯特編解碼模塊
根據(jù)IEC 61375規(guī)定WTB通信傳輸?shù)氖锹鼜厮固匦盘?hào),曼徹斯特編解碼模塊的目的就是實(shí)現(xiàn)NRZ信號(hào)與曼徹斯特的轉(zhuǎn)換。
曼徹斯特編解碼模塊主要功能按照信號(hào)方向分為曼徹斯特編碼和曼徹斯特解碼。
曼徹斯特編碼把鏈路層HDLC幀的NRZ信號(hào)與1M時(shí)鐘信號(hào)作異或邏輯后,用D觸發(fā)器鎖存輸出曼徹斯特碼。采用16 M b/s時(shí)鐘采樣WTB傳輸線上的曼徹斯特碼,同時(shí)作同步校正,判斷跳沿類型譯出是1還是0,作為NRZ信號(hào)傳輸給鏈路層。
(2)通道管理模塊
通道管理模塊主要實(shí)現(xiàn)WTB幀的幀頭幀尾編碼和識(shí)別、信號(hào)監(jiān)測(cè)、線路選擇。
根據(jù)IEC 61375規(guī)定WTB幀頭是由起始位‘1'和結(jié)束位‘1'及夾在中間的 7~15對(duì)(‘0'‘1')對(duì)(默認(rèn)為7對(duì))組成;幀尾是一個(gè)2個(gè)位寬的高脈沖和2個(gè)位寬的低脈沖(低脈沖可選)組成。發(fā)送通道在發(fā)送幀數(shù)據(jù)前根據(jù)鏈路控制層信號(hào)先插入WTB幀頭發(fā)送,等數(shù)據(jù)發(fā)送完畢后再插入幀尾發(fā)送;接收通道通過(guò)監(jiān)測(cè)到幀頭和幀尾對(duì)數(shù)據(jù)進(jìn)行同步。
圖9 物理層模塊圖
根據(jù)IEC 61375規(guī)定信號(hào)品質(zhì)監(jiān)視主要用于信號(hào)質(zhì)量監(jiān)測(cè)和冗余切換。產(chǎn)生載波檢測(cè)信號(hào)(CS)和信號(hào)品質(zhì)錯(cuò)誤信號(hào)(SQE)反饋給上層,用于判斷幀是否有效,依據(jù)線路上的有效幀和無(wú)效幀來(lái)對(duì)線路進(jìn)行選擇。
(3)WTB定時(shí)器、中斷、寄存器
從用戶使用角度考慮,該WTB總線控制芯片IP核中設(shè)置了多個(gè)參數(shù)寄存器,根據(jù)用戶的需求對(duì)寄存器參數(shù)進(jìn)行相應(yīng)設(shè)置實(shí)現(xiàn)相應(yīng)的功能。在WTB總線控制芯片IP核中設(shè)置了延時(shí)定時(shí)器、線路監(jiān)測(cè)定時(shí)器等多個(gè)定時(shí)器用于監(jiān)測(cè)網(wǎng)絡(luò)運(yùn)行。信號(hào)接收完成、信號(hào)發(fā)送完成、定時(shí)器、MAU報(bào)告等通過(guò)中斷及中斷狀態(tài)寄存器反饋給用戶。
(4)存儲(chǔ)轉(zhuǎn)發(fā)
隨著列車總線長(zhǎng)度的增加,列車通信必須面對(duì)信號(hào)衰解所引起的問(wèn)題。針對(duì)該問(wèn)題,該WTB總線控制芯片IP核采用存儲(chǔ)轉(zhuǎn)發(fā)功能塊實(shí)現(xiàn)信號(hào)的再生與放大,延長(zhǎng)了信號(hào)的傳輸距離,起到一個(gè)中繼器的作用。該存儲(chǔ)轉(zhuǎn)發(fā)功能塊根據(jù)上層控制信號(hào)和輸入信號(hào)質(zhì)量對(duì)信號(hào)采樣存儲(chǔ)轉(zhuǎn)發(fā)。根據(jù)用戶需要,可以設(shè)置該功能是否有效。
(5)WTB物理層控制模塊
WTB物理層控制模塊是HDLC鏈路層和物理層之間的接口;主要用來(lái)協(xié)調(diào)物理層各模塊配合工作,傳遞上層的指示信號(hào)和反映物理層狀態(tài)。
(6)接口說(shuō)明(見表2)
針對(duì)WTB總線控制器,現(xiàn)有的技術(shù)一般都是采用FPGA來(lái)實(shí)現(xiàn)物理層的曼徹斯特編解碼以及冗余線路的控制等功能,對(duì)于鏈路層的幀收發(fā)采用HDLC專業(yè)收發(fā)芯片來(lái)實(shí)現(xiàn),該方案通用性差,隨著8位HDLC收發(fā)芯片的退市,這種方案幾乎無(wú)計(jì)可施。而本設(shè)計(jì)就完全脫離這種思路,從WTB總線控制器的全局著手,開發(fā)出通用的WTB總線控制器,在滿足物理層的各項(xiàng)功能的基礎(chǔ)上能實(shí)現(xiàn)鏈路層的幀收發(fā)功能。通用性能好,不受專用的 HDLC收發(fā)芯片的限制,便于開發(fā)各種WTB的功能設(shè)備。該WTB總線控制器IP核已經(jīng)得到廣泛應(yīng)用,批量裝車于上海地鐵、出口伊朗的TM3電力機(jī)車、7 200 kW大功率電力機(jī)車等,通過(guò)了時(shí)間和運(yùn)行里程的考核,得到了驗(yàn)證,各項(xiàng)功能及可靠性指標(biāo)都已達(dá)標(biāo)。
表2 WTB物理接口
[1] IEC 61375.Part 1:Train Communication Networks[S].
[2] ISO/IEC 3309-1993信息技術(shù).系統(tǒng)之間電信與信息交換-高級(jí)數(shù)據(jù)鏈路控制規(guī)程-框架結(jié)構(gòu)[S].
[3] 應(yīng)三叢,張 行.基于FPGA的 HDLC協(xié)議控制器[J].四川大學(xué)學(xué)報(bào),2008,40(3):116-120.