劉曉冬
(1.北京全路通信信號研究設(shè)計院集團有限公司,北京 100070;2.北京市高速鐵路運行控制系統(tǒng)工程技術(shù)研究中心,北京 100070)
設(shè)計FlexRay總線的硬件接口電路和軟件流程圖,并將其應(yīng)用到計算機聯(lián)鎖系統(tǒng)中[1]。
在鐵路信號設(shè)備中,聯(lián)鎖設(shè)備是保證行車安全的重要基礎(chǔ)裝備。從早期6502繼電聯(lián)鎖系統(tǒng)發(fā)展到計算機聯(lián)鎖系統(tǒng)的過程中,越來越多的新技術(shù)被運用到鐵路信號設(shè)備中。新技術(shù)的使用,既保證了行車安全,又極大提高了行車效率。
本文在比較幾種聯(lián)鎖設(shè)備上常用的通信總線的基礎(chǔ)上,介紹了一種新的車載通信總線FlexRay,
目前,在計算機聯(lián)鎖系統(tǒng)中,主要采用的通信總線有RS-422/485、CAN總線和以太網(wǎng)總線等。其中,聯(lián)鎖與CTC采用RS-422接口;聯(lián)鎖與軌旁設(shè)備采用CAN總線通信;聯(lián)鎖站間、聯(lián)鎖與RBC、聯(lián)鎖與計軸采用以太網(wǎng)通信等。這幾種接口總線的主要特點如下。
1) RS-422
RS-422是一種單點發(fā)送、多點接收的單向、平衡傳輸規(guī)范接口,傳輸速率最高達10 Mbit/s,傳輸距離達3 000 m(速率低于100 kbit/s時),并允許在一條平衡總線上最多連接10個接收器。
2) RS-485
RS-485是在RS-422基礎(chǔ)上制定的,增加了多點、雙向通信能力,允許多個發(fā)送器連接到同一條總線上,提高了發(fā)送器的驅(qū)動能力,增加了沖突保護特性等,其傳輸速率最高達10 Mbit/s,最多連接32個節(jié)點。
3) CAN
CAN總線是一種國際標(biāo)準(zhǔn)的工業(yè)級總線[2],具有可靠性、實時性和靈活性高的優(yōu)點,采用多主方式工作,節(jié)點可設(shè)置優(yōu)先級,糾錯機制可保證數(shù)據(jù)出錯機率低,單個節(jié)點故障后自動關(guān)閉,不會影響整個網(wǎng)絡(luò),其最高傳輸速率為1 Mbit/s,最多連接110個節(jié)點。
4) 以太網(wǎng)
以太網(wǎng)是一種標(biāo)準(zhǔn)的開放式網(wǎng)絡(luò)[3],具有傳輸速率高(千兆網(wǎng)),距離長,成本低,易于組網(wǎng)等優(yōu)點。以太網(wǎng)具有沖突檢測機制,因而無法保證通信的實時性,屬于非穩(wěn)定性的網(wǎng)絡(luò)。此外,以太網(wǎng)采用超時重發(fā)機制,單點故障容易擴散導(dǎo)致整個網(wǎng)絡(luò)癱瘓,存在網(wǎng)絡(luò)風(fēng)暴和非法入侵等問題。
上述4種接口總線中,以CAN和以太網(wǎng)總線的應(yīng)用最廣。其中,CAN總線主要應(yīng)用在對實時性要求較高而通信速率和通信容量要求不高的場合,以太網(wǎng)總線則主要應(yīng)用在高速率大通訊量的場合,RS-422/485因無法滿足實時性等要求,在聯(lián)鎖設(shè)備上應(yīng)用越來越少。
與CAN總線類似,F(xiàn)lexRay總線也是由汽車廠商制定和推廣。2000年的9月,寶馬和戴姆勒克萊斯勒聯(lián)合飛利浦和摩托羅拉成立了FlexRay聯(lián)盟,之后,世界上主要的半導(dǎo)體和電子系統(tǒng)生產(chǎn)商都加入了這個聯(lián)盟,共同制定FlexRay總線的技術(shù)規(guī)范,目前FlexRay協(xié)議規(guī)范V3.0.1版本已經(jīng)發(fā)布。
目前,F(xiàn)lexRay總線已經(jīng)在高級轎車上推廣使用,其主要特點如下[4]。
1) 傳輸速率高
FlexRay總線采用雙通道設(shè)計,每個通道最高速率為10 Mbit/s,既可以像CAN總線一樣采用單通道運行,又可以采用雙通道運行,最高傳輸速率可以達到20 Mbit/s,是CAN總線的20倍。
2) 時鐘同步
FlexRay總線是基于時鐘同步進行數(shù)據(jù)傳輸,該時鐘通過協(xié)議自動建立和同步,并提供給應(yīng)用層。時鐘的精度介于0.5 μs和10 μs之間。由于采用時鐘同步,消息在通信周期中擁有固定位置,接收器可提前預(yù)知消息的到達時間,因此可以可靠、準(zhǔn)確地傳送安全相關(guān)的信息。
3) 高容錯
FlexRay總線采用雙通道通信,通過硬件冗余備份的方法實現(xiàn)容錯;物理層總線監(jiān)控器可對節(jié)點進行監(jiān)控,當(dāng)節(jié)點發(fā)生故障無法正常收發(fā)數(shù)據(jù)時,總線監(jiān)控器將通信控制器和總線斷開,避免影響其他節(jié)點的工作;當(dāng)使用星型拓?fù)浣Y(jié)構(gòu)時,星形連接器本身具備故障隔離功能,一旦發(fā)生意外情況,可以有選擇的切斷有故障的星型支路;此外,F(xiàn)lexRay總線使用24位循環(huán)冗余校驗 (Cyclic redundancy cheek,CRC)對通信數(shù)據(jù)進行檢錯。
4) 靈活性
FlexRay總線帶寬可調(diào)、提供消息冗余傳輸和非冗余傳輸兩種方案;支持總線、星型或二者混合的拓?fù)浣Y(jié)構(gòu),可采用時間觸發(fā)和事件觸發(fā)相結(jié)合的通信方式;FlexRay總線提供了大量的配置參數(shù)(如通信周期的持續(xù)時間、消息長度等),支持對系統(tǒng)進行調(diào)整,以滿足不同的應(yīng)用需求。
綜上所述,支持高吞吐量、滿足實時性要求、具備高容錯性和應(yīng)用靈活等特點的FlexRay總線在安全應(yīng)用中具有巨大的優(yōu)勢。
FlexRay總線以其傳輸速率高、實時性好、容錯能力強等特點,可以滿足計算機聯(lián)鎖系統(tǒng)的通信需求。本設(shè)計將FlexRay總線應(yīng)用于計算機聯(lián)鎖系統(tǒng)的邏輯單元中,作為雙CPU間和系間的通信總線。邏輯單元由二取二主控制單元組成,通過系間通信總線與另一系邏輯單元進行通信,形成二乘二取二結(jié)構(gòu),其拓?fù)浣Y(jié)構(gòu)如圖1所示。
如果現(xiàn)場被抽中人員不在場,主持人繼續(xù)主持抽獎,直到獎品被現(xiàn)場的人員領(lǐng)完為止(主持人在邀請讀者上臺抽獎時,應(yīng)當(dāng)提醒讀者待主持人確認(rèn)中獎人員在場后,再進行下一輪抽獎,屏幕上也需要彈出一條信息提醒邀請的抽獎讀者確認(rèn)中獎的人員是否在場)(注:抽獎的大屏在閑時:左側(cè)滾動顯示已被用戶薦購的圖書,右邊邊滾動已經(jīng)關(guān)注微信公眾號的用戶,屏幕滾動頻率大約7s~10s一次)。
圖1 拓?fù)浣Y(jié)構(gòu)圖Fig.1 Topological structure diagram
1) 器件選型
選擇TI公司內(nèi)置雙通道FlexRay控制器的TMS570系列的CPU,該芯片集成了ARM Cortex-R4F 32位RISC CPU,具有豐富的外設(shè)接口,如ADC、I/O輸入輸出、以太網(wǎng)等,可以滿足采集、控制和通信等功能需求。
選擇NXP公司的TJA1082作為FlexRay節(jié)點收發(fā)器[5],符合FlexRay電氣物理層規(guī)范V3.0.1,數(shù)據(jù)傳輸速率可選2.5 Mbit/s、5 Mbit/s和10 Mbit/s,并為FlexRay網(wǎng)絡(luò)中的協(xié)議控制器和物理總線之間提供了高級接口;TJA1082為網(wǎng)絡(luò)提供差分傳輸功能,為FlexRay控制器提供差分接收功能,當(dāng)差分電壓為400 mV時支持60 ns的最小位時間;可主動監(jiān)控系統(tǒng)性能,同時進行內(nèi)部電壓和溫度監(jiān)控等。
2) 電路設(shè)計
由于選擇了內(nèi)置FlexRay控制器的CPU,因此外圍僅需節(jié)點收發(fā)器和節(jié)點總線匹配電路即可,電路實現(xiàn)簡單可靠,所需器件較少。
3) 總線匹配
根據(jù)FlexRay總線物理層應(yīng)用筆記,推薦采用共模扼流圈和拆分終端(Split Termination)的方式實現(xiàn)總線匹配[6]。通過增加共模電感改進發(fā)射和抗干擾性能,在FlexRay總線節(jié)點上將匹配電阻拆分為兩個阻值一樣的電阻,兩個電阻之間通過一個電容接地,以獲得更好的EMC性能。對于共模電感的選型,要求電感量不小于100 μH,直流電阻值小于1.5 Ω,雜散電感小于1 μH;拆分終端的兩個電阻值小于10 Ω,電容選擇4 700 pF。
綜上,F(xiàn)lexRay總線的外圍接口硬件電路設(shè)計如圖2所示。
在進行軟件設(shè)計前,需要確定主要的協(xié)議參數(shù)[8],具體如表1所示。
表1 FlexRay總線協(xié)議參數(shù)Tab.1 FlexRay bus protocol parameters
1)節(jié)點初始化流程圖
圖2 FlexRay總線接口硬件電路原理圖Fig.2 Schematic diagram of FlexRay bus interface hardware circuit
圖3 FlexRay節(jié)點初始化流程圖Fig.3 Initialization flowchart of FlexRay node
FlexRay總線節(jié)點的初始化流程如圖3所示,初始化主要完成FlexRay網(wǎng)絡(luò)通信之間的喚醒、啟動和時間同步,是實現(xiàn)網(wǎng)絡(luò)正常通信的前提。
2)數(shù)據(jù)發(fā)送流程圖
FlexRay總線通信是基于時間觸發(fā),每一個發(fā)送時槽對應(yīng)一個中斷,當(dāng)對應(yīng)的發(fā)送時槽到來時,由FlexRay模塊自動置位中斷,進入對應(yīng)時槽的中斷服務(wù)程序后,調(diào)用發(fā)送函數(shù)。在發(fā)送操作之前,需要鎖住存儲待發(fā)送數(shù)據(jù)的緩沖器,保證對該緩沖器的配置在發(fā)送過程中不會發(fā)生改變,防止發(fā)送錯誤。發(fā)送結(jié)束后,再釋放該緩沖器。具體的數(shù)據(jù)發(fā)送流程如圖4所示。
3)數(shù)據(jù)接收流程圖
同樣的,每一個接收時槽對應(yīng)一個中斷,接收時槽接收數(shù)據(jù)完畢并確認(rèn)有效后,由FlexRay模塊自動產(chǎn)生相應(yīng)的接收中斷,進入對應(yīng)時槽的中斷服務(wù)程序后,調(diào)用接收函數(shù)。在接收之前需要鎖住接收緩沖器,在確認(rèn)為數(shù)據(jù)幀后,讀取接收緩存器中的數(shù)據(jù)與幀長度,最后解鎖接收緩沖器。具體的數(shù)據(jù)接收流程如圖5所示。
本文對比分析計算機聯(lián)鎖系統(tǒng)上常用的幾種總線,總結(jié)FlexRay總線的主要特點,設(shè)計一種實用的接口電路,制定主要的軟件流程圖,相關(guān)的軟硬件設(shè)計已經(jīng)在計算機聯(lián)鎖設(shè)備上得到使用,并已在現(xiàn)場運行。實踐證明,F(xiàn)lexRay總線可以替代CAN總線,運用到鐵路信號設(shè)備中。
圖4 FlexRay節(jié)點數(shù)據(jù)發(fā)送流程圖Fig.4 Data transmission flowchart of FlexRay node
圖5 FlexRay節(jié)點數(shù)據(jù)接收流程圖Fig.5 Data reception flowchart of FlexRay node