蔣國濤
(中國南車集團 株洲南車時代電氣股份有限公司 技術中心 ,湖南株洲412001)
目前,國際上列車通信網絡控制技術己經成熟。其核心技術由西門子、Bombardier和ABB等公司掌握,市場上的TCN專用控制芯片被它們所壟斷。在國內還沒有公司能夠開發出符合IEC 61375要求的專用絞線式列車總線(WTB)的專用控制芯片。雖然有公司開發出了基于FPGA的WTB物理層控制器IP核,但是離成熟標準的絞線式列車總線(WTB)的專用控制芯片的距離還很遙遠,其只能實現物理層信號編解碼、信號監測、線路選擇及冗余管理等物理層功能,如果要實現WTB通信,還需要借助外界器件實現高層數據鏈路控制器(HDLC)協議,通用性差。
介紹一種基于FPGA平臺的能完全滿足IEC 61375絞線式列車總線(WTB)的專用控制芯片功能要求的標準IP核。它能完成絞線式列車總線(WTB)鏈路層的HDLC幀收發、物理層數據的曼徹斯特編解碼、冗余線路的控制等功能。該IP核可以流片成專用的ASIC,也可以作為通用的IP核直接使用,解決了目前該類產品通用性差、重復開發等問題,突破了國外公司的技術壟斷,在行業內具有戰略意義。
絞線式列車總線(WTB)是一種串行數據通信總線,主要用于經常相互連掛和解列的重聯車輛。WTB滿足IEC 61375-1[1]的要求,支持周期性的過程數據、非周期性的消息數據以及監視數據。能夠通過初運行實現列車的自動編址、自動編組。WTB最多可互聯32個節點,傳輸介質為屏蔽雙絞線,干線電纜最大長度為860 m,工作速率為1 Mb/s。WTB采用了硬件冗余,數據在兩條介質上同時發送,仲裁邏輯根據收發器提供的載波檢測信號在兩路接收信號間作出選擇。
IEC 61375[1]標準規定WTB幀一幀信號由前導碼(幀頭)開始,接著是幀數據,最后由終止分界符結束。前導碼由電平為“1”的起始位S開始,隨后是若干個(0,1)位對(本設計中采用了7對),最后以1結束。幀數據的開始和結束由標志序列01111110進行標志。終止分界符為2.0 BT(1 BT=1個時間單位)寬的正電平,見圖1所示。

圖1 線路上的WTB幀
WTB所有的幀都具有同樣的格式,遵循 HDLC(ISO/IEC 3309[2])規范,見圖2所示。

圖2 HDLC數據格式
Preamble前同步碼:WTB幀開始部分的前同步碼由曼徹斯特編碼器產生,并由曼徹斯特譯碼器去除。它不屬于HDLC幀部分。它的長度為16到32位,16位是默認值,主要用于WTB幀位同步。
(1)Flag幀頭標志位。HDLC幀以兩個8位標志(01111110)作為分界符,作為幀同步標志。
(2)DD目的設備。接收該幀節點的 Node_Address(節點地址)(或者是廣播地址)。
(3)LC鏈路控制字段。用于鏈路控制的 8位字段,標志幀類型等。
(4)SD源設備。發送幀的節點地址。
(5)SIZE。標志以字節為單位的鏈路數據的長度。
(6)FCS幀校驗序列。16位的幀校驗序列。由曼徹斯特編碼器產生,由譯碼器去除。
(7)ED結束分界符。End_Delimiter(結束分界符)由曼徹斯特編碼器產生,由譯碼器去除。
WTB總線控制芯片IP核的整個構架框圖見圖3所示。從通信協議分層的角度考慮,該IP核可以分為3個大的部分:物理層、鏈路層、鏈路層接口。
(1)鏈路層接口。鏈路層接口主要提供與外部處理器的接口,為發送數據和接收數據提供緩存空間,作為WTB總線控制芯片IP核與其他處理器件的數據傳輸通道。主要包含兩個模塊:發送雙口RAM和接收雙口RAM。
(2)鏈路層。鏈路層是該WTB總線控制芯片IP核的關鍵核心部分,主要實現HDLC協議。主要包含兩個模塊:HDLC幀發送器單元和HDLC幀接收器單元。
(3)物理層。物理層主要實現WTB物理通道控制、曼徹斯特編解碼、定時、中斷、FIFO轉發。主要包括WTB物理層控制模塊、通道管理模塊、曼徹斯特編解碼模塊、WTB定時、WTB中斷、WTB寄存器、存儲轉發。

圖3 WTB總線控制器系統框圖
WTB總線控制芯片IP核功能主要是完成WTB通信控制,其接收的數據和需要發送的數據都是與外界處理器件相關。該鏈路層接口主要提供與外部處理器的接口,為發送數據和接收數據提供緩存空間,分別用FPGA內部雙口RAM實現。

表1 鏈路層接口
WTB總線控制器鏈路層從功能上分可以分為HDLC幀發送器單元[3]和HDLC幀接收器單元[3]。鏈路層模塊圖見圖4所示。
HDLC幀發送器主要實現對 HDLC幀數據生成CRC校驗碼、完成HDLC數據部分的零比特填充、構建HDLC幀的標志符(01111110)、對待發送的信息進行組幀發送控制,幀發送器內部電路結構見圖5所示。

圖5 HDLC幀發送器內部電路結構
HDLC幀發送器首先將來自應用層的有效數據存儲到內部雙口RAM即發送緩存中,然后將有效數據一路送給CRC校驗模塊生成校驗碼,另一路送給發送模塊進行插入幀起始和終止標志符01111110的插入以及0的插入,然后組成HDLC幀送給曼徹斯特編碼模塊對幀數據進行曼徹斯特編碼后輸出到物理鏈路上。當在發送過程中,出現發送失敗,產生發送失敗中斷。
(1)CRC-16校驗生成
采用CRC-16校驗,產生16位的CRC校驗碼,數據發送和接收都是采用相同的CRC校驗,其生成多項式為g(x)=x16+x12+x5+1。為了提高IP核性能和處理速度,該發明采用并行CRC代替傳統的串行CRC。
(2)構建 HDLC幀的標志符(HDLC幀頭和HDLC幀尾)
根據ISO 3309中定義的HDLC格式,一幀數據由標志符01111110開始,同時由相同的標志符結束。該IP核在發送數據幀前先插入標志符發送,當幀數據發送完畢后再插入相同的標志符標志幀數據發送完畢。
(3)零比特填充
為防止數據位中出現與標志符0111110相同的數據,所以對數據掃描,在5個1后插入一個0,到了接收端再剔除填充零比特恢復鏈路數據。例如待發送的數據為011101111110,發送的數據則為0111011111010。
(4)發送狀態控制模塊
HDLC幀發送器采用狀態機實現整個控制,控制幀發送器依次完成幀頭發送、生成CRC校驗碼、零比特填充、數據發送、幀尾發送。其流程圖如6所示。

圖6 發送狀態控制模塊狀態機
HDLC幀接收器主要實現檢測幀開始信號(Start_Bit)、識別幀起始符和結束符、完成CRC校驗、剔除HDLC幀的填充零比特、幀接收時序控制。
HDLC幀接收器的電路結構如圖7所示,由HDLC幀頭識別模塊、剔除填充零比特模塊、CRC校驗模塊、接收控制狀態模塊組成。

圖7 HDLC幀接收器內部電路結構圖
HDLC幀接收器單元第一次檢測到標志符01111110時表示幀數據開始,對幀數據進行同步,接收幀數據;在接收幀數據的過程中,對接收到0111110 5個1后面的0進行剔除操作;在接收數據的同時,對接收的數據進行CRC-16校驗;當再次檢測到標志符01111110時表示幀數據發送完畢;如果在接收過程中發生錯誤或接收無效幀產生接收失敗中斷。
(1)幀頭識別
檢測Start_Bit,啟動解碼器工作,同時判斷幀頭是否為正確的序列。
(2)剔零填充
掃描串行數據,剔除5個1后的0,采用序列檢測狀態機實現。
(3)CRC-16校驗
HDLC幀接收器單元CRC校驗原理同CRC校驗碼的生成相同。將數據輸入移位寄存器再生成CRC碼,同接收到的CRC碼比較,如果不一致,產生CRC錯誤指示。
(4)接收狀態控制模塊
HDLC幀接收器單元幀接收時序控制模塊采用狀態機實現,控制幀接收器依次完成幀頭的識別,碼元同步,數據的解碼,剔除填充零比特和幀校驗,最后送至發送緩存,通知上層,同時報告相關的錯誤信息。其流程圖如8所示

圖8 接收狀態控制模塊狀態機
物理層主要實現WTB物理通道控制、曼徹斯特編解碼、定時、中斷、信號再生。主要包括曼徹斯特編解碼模塊、通道管理模塊、WTB定時、WTB中斷、WTB寄存器、存儲轉發、WTB物理層控制模塊。物理層模塊圖見圖9所示。
(1)曼徹斯特編解碼模塊
根據IEC 61375規定WTB通信傳輸的是曼徹斯特信號,曼徹斯特編解碼模塊的目的就是實現NRZ信號與曼徹斯特的轉換。
曼徹斯特編解碼模塊主要功能按照信號方向分為曼徹斯特編碼和曼徹斯特解碼。
曼徹斯特編碼把鏈路層HDLC幀的NRZ信號與1M時鐘信號作異或邏輯后,用D觸發器鎖存輸出曼徹斯特碼。采用16 M b/s時鐘采樣WTB傳輸線上的曼徹斯特碼,同時作同步校正,判斷跳沿類型譯出是1還是0,作為NRZ信號傳輸給鏈路層。
(2)通道管理模塊
通道管理模塊主要實現WTB幀的幀頭幀尾編碼和識別、信號監測、線路選擇。
根據IEC 61375規定WTB幀頭是由起始位‘1'和結束位‘1'及夾在中間的 7~15對(‘0'‘1')對(默認為7對)組成;幀尾是一個2個位寬的高脈沖和2個位寬的低脈沖(低脈沖可選)組成。發送通道在發送幀數據前根據鏈路控制層信號先插入WTB幀頭發送,等數據發送完畢后再插入幀尾發送;接收通道通過監測到幀頭和幀尾對數據進行同步。

圖9 物理層模塊圖
根據IEC 61375規定信號品質監視主要用于信號質量監測和冗余切換。產生載波檢測信號(CS)和信號品質錯誤信號(SQE)反饋給上層,用于判斷幀是否有效,依據線路上的有效幀和無效幀來對線路進行選擇。
(3)WTB定時器、中斷、寄存器
從用戶使用角度考慮,該WTB總線控制芯片IP核中設置了多個參數寄存器,根據用戶的需求對寄存器參數進行相應設置實現相應的功能。在WTB總線控制芯片IP核中設置了延時定時器、線路監測定時器等多個定時器用于監測網絡運行。信號接收完成、信號發送完成、定時器、MAU報告等通過中斷及中斷狀態寄存器反饋給用戶。
(4)存儲轉發
隨著列車總線長度的增加,列車通信必須面對信號衰解所引起的問題。針對該問題,該WTB總線控制芯片IP核采用存儲轉發功能塊實現信號的再生與放大,延長了信號的傳輸距離,起到一個中繼器的作用。該存儲轉發功能塊根據上層控制信號和輸入信號質量對信號采樣存儲轉發。根據用戶需要,可以設置該功能是否有效。
(5)WTB物理層控制模塊
WTB物理層控制模塊是HDLC鏈路層和物理層之間的接口;主要用來協調物理層各模塊配合工作,傳遞上層的指示信號和反映物理層狀態。
(6)接口說明(見表2)
針對WTB總線控制器,現有的技術一般都是采用FPGA來實現物理層的曼徹斯特編解碼以及冗余線路的控制等功能,對于鏈路層的幀收發采用HDLC專業收發芯片來實現,該方案通用性差,隨著8位HDLC收發芯片的退市,這種方案幾乎無計可施。而本設計就完全脫離這種思路,從WTB總線控制器的全局著手,開發出通用的WTB總線控制器,在滿足物理層的各項功能的基礎上能實現鏈路層的幀收發功能。通用性能好,不受專用的 HDLC收發芯片的限制,便于開發各種WTB的功能設備。該WTB總線控制器IP核已經得到廣泛應用,批量裝車于上海地鐵、出口伊朗的TM3電力機車、7 200 kW大功率電力機車等,通過了時間和運行里程的考核,得到了驗證,各項功能及可靠性指標都已達標。

表2 WTB物理接口
[1] IEC 61375.Part 1:Train Communication Networks[S].
[2] ISO/IEC 3309-1993信息技術.系統之間電信與信息交換-高級數據鏈路控制規程-框架結構[S].
[3] 應三叢,張 行.基于FPGA的 HDLC協議控制器[J].四川大學學報,2008,40(3):116-120.