何浩洋, 穆建成, 馬連川,曹 源
(1.北京交通大學 電子信息工程學院,北京 100044;2.鐵道部 科學技術司,北京 100844 )
軌道交通列車運行控制系統(tǒng)(簡稱列控系統(tǒng))是典型的安全苛求控制系統(tǒng),列控系統(tǒng)由多個子系統(tǒng)組成,子系統(tǒng)又由多個分布子設備組成,如地面子系統(tǒng)由RBC、TCC、軌道電路、應答器、GSM-R通信接口設備等組成,車載子系統(tǒng)由車載安全計算機、應答器信息接收模塊、軌道電路信息接收單元、測速測距單元、人機界面、列車接口等設備組成。雖然每個子系統(tǒng)和子設備是安全的,但如果系統(tǒng)和設備間的通信不安全會導致行車危險,需要故障安全通信,CTCS-2級、CTCS-3級列控系統(tǒng)通信中都具有故障安全特性。
在鐵路、航空等安全理論和國際標準中IEC61508是比較基本和核心的。IEC61508指出,為防護通信中的安全風險引入了時間觸發(fā)架構。TTP/C、FlexRay、TTEthernet是常用的時間觸發(fā)總線,其中FlexRay是混合信道結構設計,總線訪問靜態(tài)時間消息采用TDMA方式訪問網(wǎng)絡,動態(tài)事件消息采用柔性時分多址(FTDMA)方式訪問網(wǎng)絡,具有很好的靈活性,因此是未來現(xiàn)場總線的發(fā)展趨勢。為保證FlexRay總線能更好地應用于列控系統(tǒng)的故障安全通信中,可借鑒ARINC659的物理層對FlexRay總線進行改進。
ARINC659背板總線采用4條總線冗余,4條總線采用半雙工傳輸和交叉檢驗的通信方式。每一個BIU接收所有4組總線發(fā)送的數(shù)據(jù),并進行交叉校驗,從而檢測出瞬態(tài)故障和硬故障,并能解決單個總線的故障,即可容忍一個總線的故障。
為保證FlexRay總線能夠更好用于故障安全通信,一方面可以保留FlexRay總線采用時間觸發(fā)機制時間確定性,以及靈活性的優(yōu)勢,另一方面可以對FlexRay容錯能力不足和總線利用率不高的方面進行改進,通過借鑒ARINC659高可靠度和安全度的物理層,進一步提高總線的可靠性和容錯性以及利用率。其具體框架如圖1所示。
圖1 改進的FlexRay總線節(jié)點結構
針對改進的FlexRay總線,在FPGA上進行IP核的設計。首先采用Quartus II實現(xiàn)各個模塊的設計,再將各模塊統(tǒng)一綜合。模塊包括時鐘模塊、協(xié)議運行控制狀態(tài)模塊、時鐘同步模塊、介質(zhì)訪問模塊和收發(fā)模塊。
在FlexRay協(xié)議里,通信建立在重復的通信循環(huán)中。通信循環(huán)按照時間定義的元素分為4個時間層次:微時鐘層、宏時鐘層、仲裁格層和通信循環(huán)層。微時鐘層的時鐘大小由系統(tǒng)時鐘確定,對于不同的節(jié)點可以使用不同的時鐘。宏時鐘層是實現(xiàn)全局時鐘同步最小的時間單元。仲裁格層中靜態(tài)段的時間單位為靜態(tài)時隙,動態(tài)段的時間單位為小時隙(動態(tài)時隙)。通信循環(huán)層由靜態(tài)段、動態(tài)段、符號窗和網(wǎng)絡空閑時間段組成。
FlexRay總線上的節(jié)點一共有8個基本的協(xié)議運行控制狀態(tài),分別是默認配置狀態(tài)、參數(shù)配置狀態(tài)、就緒狀態(tài)、喚醒狀態(tài)、啟動狀態(tài)、正常主動狀態(tài)、正常被動狀態(tài)、中止狀態(tài),在各不同的狀態(tài)下執(zhí)行相應的功能。
介質(zhì)訪問模塊主要完成數(shù)據(jù)幀的組幀與解幀。數(shù)據(jù)幀根據(jù)具體情況,從各狀態(tài)寄存器和從主機接收到的數(shù)據(jù)獲取所需要的信息,再經(jīng)過11位的頭部CRC計算和幀尾段24位的CRC計算,得到最終的數(shù)據(jù)幀。反之,解幀時也是先計算數(shù)據(jù)幀的頭部CRC和總的CRC,然后與發(fā)送的CRC值進行比較,若一致則接收該數(shù)據(jù),并更新狀態(tài)寄存器的數(shù)據(jù)。
FlexRay協(xié)議采用分布式的時鐘同步機制,每個節(jié)點通過其他節(jié)點發(fā)送的同步幀測量時鐘計時,從而實現(xiàn)總線上的節(jié)點時鐘同步。所有節(jié)點采用相同的方式進行時鐘同步,相位校正在奇數(shù)周期的網(wǎng)絡空閑時間進行,頻率校正則在整個周期中都進行。
數(shù)據(jù)按照規(guī)范規(guī)定的位流進行傳輸。按照規(guī)范中所指出的編碼方式得到數(shù)據(jù)幀或特征符的位流,接著將并行數(shù)據(jù)轉換為串行數(shù)據(jù),再根據(jù)ARINC659的底層對位流傳輸進行改進。接收時先仍按上述方式進行處理,對處理后數(shù)據(jù)根據(jù)數(shù)據(jù)確認表對其進行比較。再對接收到的數(shù)據(jù)進行串行轉并行,得到最后的消息位流。數(shù)據(jù)位流的發(fā)送接收過程如圖2所示。
圖2 數(shù)據(jù)位流的收發(fā)
對改進FlexRay總線各模塊設計完成后,即可根據(jù)需要搭建FPGA硬件開發(fā)板。開發(fā)板芯片為Cyclone的EP1C12Q240C8,采用5個開發(fā)板實現(xiàn)通信。
對于通信控制器,F(xiàn)lexRay發(fā)布的協(xié)議符合性測試規(guī)范中指出可以采用基于仿真環(huán)境和基于硬件環(huán)境的符合性測試?;诜抡姝h(huán)境的測試是采用Modelsim軟件對設計的通信控制器進行RTL級的仿真?;谟布h(huán)境的測試被測試對象是基于FPGA的FlexRay通信控制器,處理器采用Cyclone自帶的Nios II。
開發(fā)板上的晶振是40 M,設置具體的參數(shù):系統(tǒng)時鐘為CLK:25 ns;微時鐘Microtick:25 ns;宏時鐘Macrotick :1 μs;靜態(tài)段時隙:50 μs;動態(tài)段時隙:40 μs;符號窗時隙和網(wǎng)絡空閑時間的時鐘采用微時鐘,即25 ns。對于通信循環(huán),總的周期:5 ms;其中靜態(tài)段時間:3 ms;動態(tài)段時間:1.8 ms;符號窗時間:120 μs;網(wǎng)絡空閑時間:80 μs。
基于仿真環(huán)境的測試,通過編寫Testbench實現(xiàn)RTL級的仿真。數(shù)據(jù)的發(fā)送仿真如圖3所示。
圖3 改進FlexRay總線靜態(tài)段的發(fā)送
對于數(shù)據(jù)的接收,若傳輸未出現(xiàn)錯誤,則能正確接收到數(shù)據(jù)。仿真圖如圖4所示。
圖4 改進FlexRay總線靜態(tài)段的接收
通過對數(shù)據(jù)幀發(fā)送信號線的波形分析,可以看到與規(guī)范中的位流編碼一致,設計符合要求。
若一個通道傳輸錯誤,也能正常接收數(shù)據(jù),假定Bx通道傳輸錯誤,數(shù)據(jù)接收仿真如圖4所示。若一位數(shù)據(jù)的傳輸時發(fā)生兩處錯誤,假設Ay和Bx均發(fā)生錯誤,數(shù)據(jù)接收仿真如圖5所示。
圖5 兩條通道出現(xiàn)錯誤的幀接收
通過仿真可見,若某位數(shù)據(jù)的傳輸過程中出現(xiàn)一個通道錯誤時,通信控制器仍然能正確接收到數(shù)據(jù),改進后的總線具有容錯能力。若傳輸過程中出現(xiàn)兩通道同時錯誤的情況下,通信控制器不能解析收到的數(shù)據(jù),輸出高阻。
處理器采用Nios II內(nèi)核,系統(tǒng)參數(shù)與仿真設置參數(shù)相同,節(jié)點2在靜態(tài)段時隙為15發(fā)送16 bit數(shù)據(jù)0x0215,節(jié)點3在靜態(tài)段時隙為25發(fā)送16 bit數(shù)據(jù)0x0325,節(jié)點4在靜態(tài)段時隙為35發(fā)送16 bit數(shù)據(jù)0x0435,節(jié)點5在靜態(tài)段時隙為45發(fā)送16 bit數(shù)據(jù)0x0545,節(jié)點1接收數(shù)據(jù)。
測試節(jié)點4故障對傳輸?shù)挠绊?。首先設置Bx通道傳輸錯誤,測試數(shù)據(jù)能否被接收;然后設置Ay和Bx通道均發(fā)生錯誤,測試數(shù)據(jù)能否被接收。對其他節(jié)點仍正確設置。
測試結果表明,對于正確傳輸?shù)耐ǖ?,能正確接收到數(shù)據(jù)。對單通道Bx傳輸錯誤,仍能接收到節(jié)點4發(fā)送的數(shù)據(jù),可見單個通道的故障不影響數(shù)據(jù)的通信,即改進后的FlexRay總線允許單個通道的傳輸故障。通過對改進后總線容錯能力的測試,IP核的設計與要求容錯能力一致,即可容忍一條通道的傳輸錯誤。
為保證FlexRay總線更好地應用于列控系統(tǒng)的故障安全通信中,可借鑒ARINC659總線對其物理層進行改進。根據(jù)FlexRay協(xié)議符合性測試規(guī)范,首先利用Modelsim對設計的各模塊進行RTL級的仿真,以驗證設計模塊的符合性。然后采用Cyclone自帶的Nios II內(nèi)核作為主機控制通信控制器,進行開發(fā)板的通信實驗和主要功能的符合性測試。測試結果表明改進的FlexRay總線能夠正確完成調(diào)度和數(shù)據(jù)的收發(fā),且有更好的容錯能力,能容忍一個通道傳輸?shù)腻e誤,對兩個通道同時故障,可導向安全側,因此改進后的FlexRay總線能更好地應用于故障安全通信中。
[1] Functional safety of electrical/electronic/programmable electronic safety-related systems German version EN 61508: 2010[S] . 2010, 4.
[2] FlexRay Consortium. FlexRay Communications System Protocol Specifi cation Version 3.0.1 [S] . 2010.
[3] Arinc Specifi cation 659 Backplane Data Bus[C] . The Airlines Electronic Engineering Committee, DEC. 27, 1993.
[4] 劉 欣,楊志家.FlexRay通信控制器收發(fā)功能的研究和實現(xiàn)[J] .微計算機信息,2007,23(6):266-268.
[5] FlexRay Consortium. FlexRay Communications System Protocol Conformance Test Specifi cation Version 3.0.1 [S] .2010.