杜晓海 王刚
(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日
杜晓海,男,工程师,研究方向:鱼雷自导控制。