杜曉海 王剛
(1.海軍裝備部西安710065)(2.電子科技大學成都610054)
一種魚雷用數據傳輸協議的設計
杜曉海1王剛2
(1.海軍裝備部西安710065)(2.電子科技大學成都610054)
設計了魚雷用數據傳輸網絡。通過設計合理的數據格式,突破了FlexRay協議規范中1個數據幀只能傳遞小于254字節有效數據的限制,實現了大于254字節數據的準確傳輸。在此基礎之上,開發了包括數據發送和接收等功能在內的數據通信協議,實現了無差錯數據傳輸的功能。最后,通過實驗驗證了數據通信協議的可靠性。
魚雷;現場總線;通信協議;數據傳輸
Class NumberTJ630
由于具有高傳輸速率、確定性以及可靠性等優點,FlexRay技術受到越來越多的關注,并極有可能成為下一代通信網絡標準[1~13]。本文設計了一個基于FlexRay的數據傳輸網絡,開發了相應的數據通信協議,實現了網絡中不同節點之間無差錯數據傳輸的功能,可將其應用于魚雷裝備中。
2.1FlexRay總線的技術特點
作為適應未來系統需求的高性能總線,相比于以往魚雷型號中使用的CAN總線來說,FlexRay總線主要具有以下優點[1]:
1)更高的傳輸速率和網絡負載率。其支持兩個獨立通信信道,每個信道的最大通信速率為10Mbit/s,因而最大傳輸速率是CAN總線的20倍。同時,FlexRay總線的網絡負載率可以超過90%,而CAN總線的網絡負載率理論上最大僅僅為30%。
2)通信的實時性。由于FlexRay總線是一種基于時間觸發機制的現場總線,整個總線網絡的通信是在周期循環中進行的。特定的數據幀在通信周期中持有固定位置,因而可以保證數據通信的實時性。
3)網絡配置的靈活性。這主要體現在FlexRay的兩個獨立信道支持數據的冗余和非冗余傳輸,并且網絡支持多種拓撲結構,網絡系統的擴展無需調整現有節點的軟件等。
2.2FlexRay通信機制及其數據幀格式
FlexRay是一種基于時間觸發和柔性時間觸發機制的現場總線,通過通信周期循環的方式傳輸信息。一個通信周期包含靜態段、動態段、符號窗和網絡空閑時間四個部分。靜態段由一些固定大小的時隙組成,主要用于傳輸周期固定的信號。動態段由一些時長可變的時隙組成,每個動態時隙包含若干微時隙,動態段主要用于傳輸隨機發生的信號。
數據幀是FlexRay總線中數據傳輸的一個單元,在有些文獻中也被稱為消息[5]。在FlexRay數據鏈路層協議中,數據幀包括幀頭、凈荷段和幀尾三個部分,詳見圖1。幀頭部分占5個字節。從前往后依次為:保留位、凈荷指示位、空幀指示位、同步幀指示位、啟動幀指示位、幀標識符、有效數據長度、頭部循環校驗CRC和幀周期計數。每個部分占用的比特數由圖中的數字來表示。
3.1 數據格式的定義
目前FlexRay規范的定義僅僅包含物理層和數據鏈路層部分的內容[1]。對魚雷而言,需要根據自身的需求來定制FlexRay網絡的應用層協議。而應用層協議中最主要的一部分就是對其中數據格式的定義。
FlexRay最主要的特點都是在其通信周期中的靜態段所體現出來的,一般情況下靜態段的時長可以占到整個通信周期的70%左右。因而,我們在數據傳輸協議的設計中只考慮FlexRay靜態段部分的通信,即所有的數據和命令都在靜態段中傳輸。根據FlexRay協議規范的定義[1],所有靜態段中數據幀的長度都相同,其中凈荷段長度范圍在0~127字。但在實際應用中,凈荷段的長度還會受到通信周期時長、靜態段時長、靜態時隙數等因素的制約。一般來說,靜態幀中凈荷段長度無法達到127個字。另外,在有些特殊的應用場合往往其基本的通信單元長度大于127字。為此,就需要根據實際需要對FlexRay的數據幀進行拆卸和拼接。本文根據FlexRay協議規范,定義了一種較為簡單的數據幀格式,實現了長于127字數據的有效傳輸。同時,該數據格式具有一定的普適性,即不需要考慮凈荷段的長度大小,能夠應用于不同配置的FlexRay網絡中。具體的數據格式如表1所示。

表1FlexRay數據傳輸網絡的數據格式
根據表1的內容,可以將所定義的數據格式描述如下。將應用層傳輸的數據分為兩類:命令幀和載荷幀。其分別在于第1字節內容不同,SYM= 0x01表示命令幀,SYM=0x02表示載荷幀。命令幀和載荷幀的第2字節ADD表示目標地址,具體編碼規則為:廣播信號為0xFF,第1節點為0xF1,第2節點為0xF2,第3節點為0xF3,第4節點為0xF4,其后依次類推直至0xFF。網絡中各個節點通過收到的數據幀中目標地址編碼來確定是否需要對其進行處理。命令幀的第3字節FUN表示命令功能碼。具體編碼如下:通信起始0x01,通信結束0x02,起始確認0x04,結束確認0x05,數據包確認0x03。若命令幀的第3字節為0x03,即表示數據包確認時,其第4和第5兩個字節被用來表示接收到的數據包的索引號INDEX。其他情況下命令幀中的其余字節內容均為0。而對載荷幀而言,第3和第4字節均被用來表示對應用數據拆分打包處理后生成的數據包的索引號。這里用兩個字節來表示數據包的索引號是為了滿足大數據量的傳輸需求而設計的。表中的M表示FlexRay靜態幀中凈荷段的字節數。
從上面的描述可以看出,我們設計的數據格式可以滿足在1個FlexRay簇(至多24個節點)中的點對點和廣播兩種通信模式,同時能夠滿足超過127字的數據傳輸要求。另外,我們設計的數據格式與凈荷段的長度M無關(只需保證M>5即可),能夠在多種不同配置的FlexRay網絡中使用。
3.2 數據傳輸協議的設計
通信過程的實質在于保證信息傳輸的1)效率,即有效性;2)準確,即可靠性。FlexRay協議規范V2.1中定義的物理層和數據鏈路層規范能夠保證在FlexRay網絡中各種信息傳輸的有效性。然而,在考慮到信道中各種干擾等因素導致可能出現的誤碼的情況下,該協議規范本身并不能保證信息傳輸的可靠性[7,13]。實際上,即使在一些較為簡單的基于FlexRay的分布式應用系統,除了兩層基本服務以外,還需要更多的功能才能保證一個應用系統的正常運轉。因此,在一個基于FlexRay的應用系統中需要有相應的應用層協議來維持整個系統的正常運轉。
若一個簡單的協議就可以實現某種應用場合的功能,此時再采用較為復雜的通信協議不僅會造成系統資源的無謂浪費,還可能限制FlexRay總線的靈活性。因而應用層協議的設計需要根據不同應用系統的實際需求來進行。本文中設計的通信協議能夠實現在一個FlexRay網絡中各種數據無差錯地傳輸的基本功能,即能夠保證數據傳輸的可靠性。在該協議的基礎上將其進行進一步的擴展就可以滿足更多的實際需要。
在我們設計的應用層通信協議當中,可靠的數據發送與接收是其中最重要的一個部分。下面著重介紹這部分內容。圖2和圖3所示為網絡中節點數據發送和數據接收的流程。圖4和圖5分別介紹了數據接收過程中對命令幀和載荷幀的處理流程。
這里所描述的數據發送和數據接收的流程都是針對同一次通信進程而言的。在實際的應用中可能存在這種情況,即某一個節點既是發送節點又是接收節點,這時該節點上將同時運行著數據發送線程和數據接收線程。
從圖2~圖5可以看出,在本文設計的數據傳輸協議中發送節點與接收節點是通過一種“應答-重傳”機制來保證各類信息無差錯地進行傳輸。首先,在發送節點向其接收節點發出通信請求之后,若沒有收到接收節點的確認信號,則通信起始信號的發送會一直持續下去。同理,在發送了某一個數據包后,發送節點也會等待接收節點相應的確認信號,在收到確認信號后才會發送下一包數據。而在通信結束時的過程也是完全類似的。可以發現,這個協議中數據的發送方始終處于主導地位,而接收方則是在不斷地對發送方發來的各種信號作出相應的反應。這樣既能夠保證數據穩定、可靠的傳輸,又不至于使發送方和接收方的系統資源都被大量的消耗。
另外需要指出的是,本文的重點在于探討FlexRay網絡中應用層協議中保證數據可靠通信的部分,而應用層協議中對應用數據的處理過程(包括發送方對應用數據的拆裝、接收方將接收數據還原為原始信息)不是本文研究的重點,在此不做過多的討論。
本文設計了一個魚雷用數據傳輸協議,同時,開發了相應的數據傳輸協議,利用“應答-重傳”機制,實現了在不同節點間無差錯傳輸各種應用數據的功能。
[1]FlexRay consortium.FlexRay communication system protocol specification,version 2.1[S].2005.
[2]KANG MINKOO,PARK KIEJIN,KIM BONGJUN.Determining the Size of a Static Segment and Analyzing the Utilization of In-Vehicle FlexRay Newwork[C]//The Third 2008 International Conference on Convergence and Hybrid Information Technology,Seoul,2008:50-53.
[3]T.POP,P.POP,P.ELES,et al.Timing analysis of the FlexRay commucation protocol[J].Real-Time Systems,2008,39(1):205-235.
[4]XU Chuang-yan,ZHANG Yong.Simulation of FlexRay Communication Using C Language[C]//2008 International Symposium on Computer Science and Computational Technology,Beijing,2008:272-276.
[5]SCHMIDT E.G.,SCHMIDT.K.Message Scheduling for the FlexRay Protocol:The Dynamic Segment[J].IEEE Transactions on Vehicular Technology,2009,58(5):2160-2169.
[6]SCHMIDT.K,SCHMIDT E.G.Message Scheduling for the FlexRay Protocol:The Static Segment[J].IEEE Transactions on Vehicular Technology,2009,58(5):2170-2179.
[7]W.C.LI,M.D.NATALE,W.ZHANG,et al.Optimizations of an Application-Level Protocol for Enhanced Dependability in FlexRay[C]//Design,Automation&Test in Europe Conference&Exhibition,DATE'09,Paris,2009:1076-1081.
[8]ZENG H.,M.D.NATALE.,GHOSAL A.,et al.Schedule Optimization of Time-Triggered Systems Communicating Over the FlexRay Static Segment[J].IEEE Transactions on Industrial Informatics,2011,7(1):1-17.
[9]SRI K.,JEFFREY A.Sensitivity Analysis on Flexray Dynamic Segment Design Parameters[C]//2009 Fourth International Conference on Systems and Networks Communications,Vancouver,2009:12-18.
[10]P.INSEOK,S.W.MYOUNGHO.FlexRay Network Parameter Optimization Method for Automotive Applications[J].IEEE Transactions on Industrial electronics,2011,58(4):1449-1459.
[11]KIM J.H.,SEO S.H.,SON C.W.,et al.Synchronization Performance of FlexRay for OSEKtime[C]//IEEE International Symposium on Industrial Electronics(ISIE 2009),Beijing,2009:438-443.
[12]MARTIN L,MICHAEL G.,JüRGEN T.,et al.FlexRay ScheduleOptimizationoftheStaticSegment[C]// CODES+ISSS’09,London:2009,363-372.
[13]T.BOGDAN,D.B.UNMESH,P E.ETRU,et al.Scheduling for Fault-Tolerant Communication on the Static Segment of FlexRay[C]//2010 31stIEEE Real-Time Systems Symposium,Berlin,2010:385-394.
Design of Data Transmission Protocol for Torpedo
DU Xiaohai1WANG Gang2
(1.Naval Armament Department,Xi'an710065)(2.University of Electronic Science and Technology of China,Chengdu610054)
The data transmission network for torpedo is designed.By use of a reasonable data format,application data more than 254 bytes can be transferred on the FlexRay network.On the basis of such data format,a data communication protocol including the functions of data transmitting and data receiving is developed.By using such protocol,reliable transmission of the data between nodes in one FlexRay network is realized.Experiments are performed to validate the reliability of the protocol.
torpedo,field bus,communication protocol,data transmission
TJ630
10.3969/j.issn.1672-9730.2017.06.003
2016年12月3日,
2017年1月19日
杜曉海,男,工程師,研究方向:魚雷自導控制。