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