?

分布式列控目標控制器通信總線的研究

2018-06-01 02:09楊曉東楊東穎孫永奎
鐵路計算機應用 2018年5期
關鍵詞:時鐘時延總線

楊曉東,楊東穎,孫永奎,曹 源

(1.中車青島四方機車車輛股份有限公司 科技發展部,青島 266111;2.北京交通大學 電子信息工程學院,北京 100044;3.北京交通大學 軌道交通運行控制系統國家工程研究中心,北京 100044)

為滿足人們出行快速、便捷的需求,保證安全性和運輸效率的同時,提高對于多種系統運行平臺的兼容性,針對下一代列控系統的研究已經展開[1]。作為道岔、信號機等信號設備的執行單元,列控目標控制器(OC,Object Controller)是列控系統研究工作的關鍵部分。

OC是室外信號設備的執行單元,由分散的電子接口模塊組成,是連接上層計算機與室外信號設備的一個橋梁,是保障列車安全高效行車的關鍵信號基礎設備。在軌道交通領域,站場一般存在多個信號設備,需要多個OC相互協調,保證其與上層計算機安全實時通信[2]。

在文獻[3]中,雖然研究與探討了OC相關關鍵性問題,并進行研究與設計,但是對于多個OC的安全通信總線方面的問題,還未有相關研究。OC呈分布式特點,存在通信實時性以及通信效率等問題,并且其對通信要求高可靠、高安全,但目前存在的通信總線無法解決這些關鍵性問題?;诜植际教攸c,研究多OC的安全通信總線及其通信機制問題具有實際價值。多OC的最終目的就是為了實現對多個信號設備的安全可靠控制,在這種控制中,通過基于分布式的OC通信總線,使數據包能夠實時并準確地從源節點送至目的節點,保障信號設備與上層安全計算機的安全可靠通信。

1 通信總線結構

1.1 目標控制器

在下一代列控系統中,OC是信號機、道岔等信號設備的執行單元,設置在信號設備附近,沿軌旁呈分布式結構。

OC實時采集信號設備的狀態信息,并通過安全計算機傳遞到聯鎖計算機,通過計算處理將進路辦理命令通過安全計算機傳遞給布置在軌旁的OC,控制信號機、道岔的轉換和開放[3]。

1.2 通信網絡結構

總線結構應當確保在節點掉電和節點故障的情況下不會影響總線控制器與其他節點之間的通信[4],本文采用總線型拓撲結構。由于總線用于固定的OC內,具有固定的網絡拓撲結構和設備地址,且拓撲結構為總線型,采用共享方式傳輸總線數據,列車總線必須有且只有一個主OC控制網絡數據通信和介質分配??紤]到總線網絡的可靠性,總線上可有多個冗余主OC,但在總線輪回周期時間內,只能有一個主OC是控制網絡的數據通信和介質分配,其他備用的主OC在總線中完成從設備的功能??偩€管理器之間采用令牌算法進行切換管理總線。OC與列車通信網絡拓撲結構如圖1所示。

圖1 OC與列車通信網絡拓撲結構

通信總線采用時間觸發[5-7]的方式,主OC將每一個輪回時間劃分為固定的時間片,即基本周期。為了保證通信的實時性,一個周期的時間要求盡量短,并且能夠支持發送緊急數據。

本文制定了線路冗余以及主設備冗余兩種冗余方案以達到容錯的目的。

(1)OC同步發送出相同的數據在兩條路線上,但是它只從其中的一條線路上接收數據,同時監視另一條線路。這兩條線路在一定的情況下可以進行切換。

(2)主設備的冗余描述了從幾個總線管理器中選擇一個作為主設備在輪回周期內對總線的控制。系統在初始化時根據主權轉移協議采用一個總線管理器作為主設備,其余處于備用主設備狀態。每個總線管理器內都包含一個總線配置的數據結構,總線配置由一個實現索引來確定,同時該總線配置的數據結構是以令牌的傳遞來排序。

2 通信總線設計

2.1 總線分層與協議設計

根據OC的通信需求,可將時間觸發總線的結構分為OC管理層、驅動層、鏈路層、物理層4個分層模型,如圖2所示。OC管理層將邏輯控制單元的應用數據封裝成幀,實現按幀透明傳輸;驅動層將邏輯處理單元的數據通過不同的通信實現方式傳輸給總線;數據鏈路層主要負責將鏈路層數據幀正確傳輸給對應的總線對象,包括時間觸發機制、組幀和解幀、字符轉義、差錯控制;物理層負責實際數據傳輸,根據實際物理引線,通過操作時鐘線和數據線實現數據收發。

圖2 OC分層結構

為實現OC管理層能對總線進行統一操作,需要設計一個OC應用協議(OCAP,Object Controller Application Protocol)。OC管理層待服務用戶需要總線通信服務時,利用OC應用協議組OCAP數據幀后,再由驅動層將數據傳輸給總線鏈路層??偩€控制單元根據目的地址將數據幀傳輸到對應的節點,并交付給OC管理層,完成一次數據通信。

OC管理層協議實現了總線上設備之間的通信透明傳輸。OC傳輸的數據具有非固定長度的短報文的特性,因此OCAP數據段適宜采用變長方式,以及短報文方案設計(256 byte),整體定義如表1所示。

表1 OCAP格式

字段解釋:

(1)幀序號(16 bit):分組序號,按1遞增,無分組默認為0x01;

(2) 目的地址(16 bit):目標地址,識別目的接收方;根據OC的數量選擇8 bit,留有余量;

(3) 源地址(16 bit):數據發送者的地址;

(4) 周期號(16 bit):用于識別進行的周期數;

(5) 類型信息(8 bit):用于識別協議信息所表達類型;

(6) 應用屬性(8 bit):表示所屬應用數據屬性,如是否攜帶數據等。其他位預留,第1位表示當前應用類型是否有應用數據,1是,0否;

(7) 幀長度(8 bit):數據長度,不包括兩字節的校驗和;

(8) 數據段(變長):將要發送的數據,大小在0~230 Byte;

(9) 校驗和(16 bit):使用校驗和對要數據進行校驗。

鏈路層實現時間觸發通信總線核心部分,包括時間觸發機制管理、主從控制邏輯、時鐘同步、差錯控制、調度等。

鏈路安全通信協議滿足時間觸發總線設計需求的鏈路層通信協議,用于完成通信總線通信設備之間數據安全可靠通信。設計的數據鏈路安全協議幀格式如表2所示。

協議字段說明:

(1) 起始位(8 bit):幀0x02,表示該幀開始標識;

表2 鏈路層協議格式

(2) 幀長度(8 bit):表示該數據段長度;

(3) 目的地址(8 bit):表示該幀是屬于哪個通信對象;

(4) 應答序號(8 bit):應答已接受到的幀的序號,用于差錯重傳;

(5) 幀序號(8 bit):標識數據幀唯一性;

(6) 控制信息(8 bit):攜帶一些屬性信息;

(7) 源地址(8 bit):表示該數據幀發送對象;

(8) 時間戳(16 bit):用于時鐘同步的計時時間;

(9) 數據段:長度變長,需要傳輸的上層數據;

(10) 校驗碼(16 bit):檢驗碼采用CRC-CCITT標準碼,多項式表示0x11021;

(11) 幀尾(8 bit):幀尾0x03,表示該幀結束。

2.2 總線時間同步設計

采用局部時鐘和全局時鐘相結合方式,在主控節點的發送周期內,各從節點同步于主控節點;在從節點的發送周期內,各個節點以自身時鐘為基準。本文在總線上實現從節點時鐘同步于主節點時鐘。在微周期的同步時隙內,主節點向總線廣播帶有主節點時間戳的同步信息,并且帶有在此微周期內傳輸的從節點的ID信息,所有的從節點(OC)被動接受這些同步信息。其中,在此微周期內傳輸的從節點,接收到主節點發送的同步時鐘報文后,發送同步反饋報文給主節點;主節點收到從節點的同步反饋報文后,計算內總線網絡延時delay,并將delay值發送給從節點;從節點收到delay值后,通過delay值校正時鐘,然后通過delaynew=[delaylast×(n–1)+delay]/n得到新的delay值,并保存新的delay值。而其它從節點,根據之前保存的delay值,調整局部時鐘,使之同步于主時鐘。

delay值的計算如式(1)[8]:

式中,t1為主節點發送同步報文中的時間戳(s);t2為從節點接收同步時鐘報文時的時鐘讀數(s); t3為從節點發送同步反饋報文中的時間戳(s);t4為主節點接收到同步反饋報文時的時鐘讀數(s)。

從節點時鐘t從調整算式如式(2):

式中:t主為主控節點發送的同步報文的時間,即時間戳的值(s); delay為之前所計算的內總線網絡延遲時間(s)。

算法的同步精度主要取決于網絡延時的準確度,同步精度用∑(delay–delay)2/n表示。

圖3是上述算法的主從節點同步示意圖,其中,t1~t4包含在tc內。

圖3 主從節點時鐘同步

同步初始化,主要是實現各個節點第一次時鐘同步,并統一協商確定主控節點的ID?;诒疚牡脑O計模式,通信板是主控節點,因此上電時各個節點統一認為通信板為主控節點,協商一致后進入正常通信階段。

總線節點時鐘同步采用主從廣播式。在每個時間片里額外劃分出一段同步等待時間ts,如果某個節點身份確定為主控節點時,該節點的時鐘升為全局時鐘,并將自己時鐘信息廣播給全部的節點。根據主控節點反饋,使得從節點能采用時鐘補償方式修正時鐘偏差。在時間[t–ts, t+ts]內,從節點只要收到主節點的同步信息則認為時間片計時結束,立即進入下一個時間片計時,同步過程如圖4所示。

圖4 節點時鐘同步策略

顯然ts取值大小會影響通信數據正確性。理論上ts越大,可容忍的時鐘誤差就越大,但通信效率就越低。該參數主要受各節點晶振誤差的影響。該時間段在0.3%~0.6%之間能有效地保證各節點同步,且能容忍丟失兩個節點情況下同步追蹤。

2.3 總線通信調度設計

本文的調度算法采用基于時間片輪轉的調度機制[9-10],周期性的劃分時間片,建立一張信息調度表,使數據的傳輸都在確定的時間內進行。

狀態信息調度表的生成主要根據編號的順序。在初始化階段,為總線中的節點分配編號,用于排列通信的順序,稱之為相對地址。同時,每個節點有一個固定的絕對地址,保證可以識別出每個節點。初始化階段,每個節點向主控節點報告自己的絕對地址,主控節點分配給每個節點一個相對地址??偩€采用半雙工的方式,同一時刻只允許一個節點發送數據,在設備剛上電時,多個節點同時要獲取相對地址,這就需要采用競爭的方式選出一個節點在總線上與主控節點進行通信。本文采用二進制指數退避算法作為競爭機制[11-12]。

然而,使用單純的時間片輪轉的調度算法,總線的靈活性很低。在每個周期中,通信節點發送數據只在自己的時隙內,存在緊急事件得不到及時處理的情況。為了滿足更高的應變要求,需要增加一種更加靈活的調度機制。

在時間片輪轉的基礎上,用每個時間片的剩余時間來實現隨機事件的傳輸。為了滿足事件信息的發送,在每個微周期通信完成后,時隙內的剩余時間用來查找是否有隨機事件發生。同時,為了滿足節點的增加或者退出(熱插拔)的需要,也要預留一定的時間來處理。

每個微周期時間分為兩部分:(1)正常的狀態信息發送,根據調度表發送狀態信息;(2)事件信息的傳輸或檢測是否有節點退出或加入,隨機事件信息的傳輸比查找節點退出或加入的優先級高。時隙的分配情況如圖5所示。

在收到事件信息時,將其放入消息隊列。在8 bit標志位中,第1 bit代表信息類型,在事件信息隊列中的幀,這位永遠是1。接下來的7 bit是事件ID。事件ID即可以描述一個事件,事件信息在存入隊列時,采用靜態優先級進行排序。事件信息的ID就代表它的靜態優先級??膳渲檬录蘒D與優先級大小的關系。

圖5 時隙分配情況

要實現熱插拔,即在通信節點數量可變的條件下實現時間觸發,合理劃分時間片。在時間片數量的設置上,根據初始化檢測到的節點的數量進行時間片劃分;檢測到新加入節點或是節點退出的情況,根據節點數量實時更新時間片數量的劃分。對于查找節點的退出或是加入,若是在時間片剩余時間內不能完成,只要時間片完成,則停止執行這項任務,留給下個時間片進行處理。

在系統初始化階段,首先生成時間觸發調度表。初始化流程圖如圖6所示。

圖6 調度初始化流程圖

在系統初始化完成后,正式周期開始。在兩節點完成同步后,進入到正常通信階段。一個時間片內,一個節點發送和另一個節點接收數據。周期調度流程圖如圖7所示。

圖7 周期性調度流程圖

3 通信總線驗證

測試基于實驗室已有的硬件以及平臺,根據實驗室實際情況,安全計算機部分采用實驗室現有設備,利用PC104模擬通信板,以3個OC為例組成硬件實驗平臺。

3.1 OC與安全計算機通信時延測試

安全計算機與通信板之間通過以太網連接通信,為了獲取安全計算機與通信板之間的通信時延,測試以太網的通信平均延遲如圖8所示。

由圖8可知,基于以太網的往返通信延遲在2 ms左右。將安全計算機到通信板之間的通信時延與安全計算機到OC的通信時延分離統計,使得通信子系統的時延分析方法可在不同的網絡通信實現方案中都適用。

圖8 以太網通信平均時延

3.2 分布式OC數量與其通信時延關系測試

分布式OC通信總線中,通信板是連接安全計算機與OC的重要設備,其決定了安全計算機與多個OC之間的性能。因此需要在通信板連接不同數量OC的情況下,測試安全計算機到OC的通信延遲。為了測試安全計算機與分布式OC數量之間的通信延遲關系,通過在安全計算機端分別與1個、2個、3個OC進行通信測試,獲得的通信時延數據,利用MATLAB工具整理成繪圖,如圖9、圖10和圖11所示。

圖9 1個OC時通信時延

圖10 2個OC時通信時延

由圖9可知,安全計算機到分布式OC的平均時延在15 ms左右,由3.1的分析可知,以太網時延在2 ms左右,因此,總線的時延在13 ms左右。本文設計的調度算法是在連續2個總線調度周期內完成信息傳輸,視為信息傳輸成功,總線調度周期是12 ms。13 ms小于24 ms,說明總線在2個調度周期內能完成一次數據的收發,表明實際測試結果符合預期設計。同時,圖10、圖11分別代表的是安全計算機跟2個和3個OC通信,而其通信時延相對于只有1個OC的情況而言,只是略有增加(15.1 ms<16.3 ms<17.2 ms<24 ms),說明在總線的一個調度周期內,當同時在線通信的OC數量增加時,安全計算機與OC總通信時延的增加主要受安全計算機與通信板之間通信時延的影響。

圖11 3個OC時通信時延

3.3 分布式OC的連續發送次數與其通信時延關系測試

分布式OC與安全計算機之間通過以太網和時間觸發總線建立通信。時間觸發通信總線基于時間片輪轉調度,本文設計的通信總線的每個調度周期為12 ms,總線上的節點都能完成一次數據收發。為了驗證該時間規劃策略在OC連續發送多次的通信延遲變化,在安全計算機端連續多次發送數據,測試結果如圖12所示。

由圖12可知,安全計算機與分布式OC的通信時延,與總線時間調度周期(本文設計為12 ms)成正比關系。由于總線調度周期內(12 ms),每個OC只能進行一次數據收發,因此當1個OC執行n次通信事件時,約在(n×12)ms內完成。也說明總線時間調度周期將直接制約分布式OC通信子系統的通信性能。

圖12 連續發送的次數與通信時延關系

4 結束語

目標控制器作為下一代列車運行控制系統的地面設備,承擔著監控基礎信號設備的任務,其安全、可靠、實時的通信對列車行車安全起著重要的作用。本文基于目標控制器分布式的特點,設計了一種基于時間觸發的通信總線,并對其進行驗證測試,測試結果表明,能夠滿足通信實時性需求。

[1]郭 進,張亞東,王長海,等. 我國下一代列車控制系統的展望與思考[J]. 鐵道運輸與經濟,2016,38(6):23-28.

[2]郭虹利. 列控安全計算機通信控制器的設計與實現[D]. 北京:北京交通大學, 2015.

[3]胡 瑞. 列控系統地面目標控制器的設計與實現[D]. 北京:北京交通大學,2016.

[4]關 越. 航空發動機分布式控制系統通信總線研究[D]. 南京: 南京航空航天大學,2013.

[5]關 越,潘慕絢. 基于DSP的航空發動機分布式控制TTCAN總線的節點設計[J]. 航空發動機,2013,39(4):61-66.

[6]Kopetz H, Bauer G. The time-triggered architecture[J].Proceedings of the IEEE, 2003, 91(1): 112-126.

[7]何浩洋,穆建成,馬連川,等. 改進FlexRay總線的設計與實現[J]. 鐵路計算機應用,2013,22(4):55-57.

[8]劉忠東. 全路信息系統時鐘同步的實現[J]. 鐵路計算機應用,2004,13(8):3-6.

[9]肖建明,張向利. 一種改進的時間片輪轉調度算法[J]. 計算機應用,2005,25(S1):447-448.

[10]陳勁松,程新明,魏 忠. 時間片輪轉算法在單片機程序設計中的應用[J]. 電子技術應用,2003,29(3):18-20.

[11]Zhu Y H, Tian X Z, Zheng J. Performance Analysis of the Binary Exponential Backoff Algorithm for IEEE 802.11 Based Mobile Ad Hoc Networks[C]//IEEE International Conference on Communications. IEEE, 2011:1-6.

[12]Pantazi A, Antonakopoulos T. Equilibrium point analysis of the binary exponential backoffalgorithm[J]. Computer Communications, 2001, 24(18):1759-1768.

猜你喜歡
時鐘時延總線
別樣的“時鐘”
古代的時鐘
5G承載網部署滿足uRLLC業務時延要求的研究
基于GCC-nearest時延估計的室內聲源定位
一種基于CAN總線的誤碼測試方法
有趣的時鐘
簡化的基于時延線性擬合的寬帶測向算法
時鐘會開“花”
CAN總線并發通信時下位機應用軟件設計
基于CAN總線的水下通信系統設計
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合