飞行器双冗余CAN网络调度策略及其应用层协议设计
2015-05-08张宏巍张文娟
张宏巍,张文娟
(1.中国科学院长春光学精密机械与物理研究所,吉林 长春 130033;2.东北师范大学物理学院,吉林 长春 130024)
飞行器双冗余CAN网络调度策略及其应用层协议设计
张宏巍1,张文娟2
(1.中国科学院长春光学精密机械与物理研究所,吉林 长春 130033;2.东北师范大学物理学院,吉林 长春 130024)
提出一种基于CAN总线的飞行器通信系统数据传输方案,通过采用冗余总线结构及优化的网络调度策略,保证了通信网络的实时性,同时也提高了系统的可靠性.根据实际数据传输需求设计出具有针对性的应用层通信协议.通过搭建仿真平台验证该协议满足飞行器通信网络在数据传输的可靠性、实时性等要求.
冗余总线;网络调度策略;应用层通信协议
0 引言
随着控制技术、电子技术、计算机技术和传感器技术的飞速发展,飞行器需要共享的数据激增且传输速率越来越快,而且针对某些特殊应用领域,又提出飞行器要降低成本,减小质量和体积,便于维护和管理.因此,选择实时性强、体积小、成本低、可靠性高和维护简单的总线技术是确保飞行器通信系统稳定运行的关键.
目前在飞行器上采用的总线技术主要包括RS422、ARINC429、RS485和1553B总线.其中:RS422和ARINC429总线采用点对点的组网通信方式,产生了大量的电缆及连接器,且体积大、质量高,进而降低了系统的可靠性;1553B和RS485总线在使用过程中采取主/从通信方式,从机间数据交换必须经由主机调度,此方式降低了总线数据的传输效率.[1]相比而言,CAN总线的短帧结构保证了数据传输的实时性,完善的错误检测及处理机制,保证了通信网络的可靠性,多主的通信方式提高了网络的利用效率,而且成本低廉,大约是1553B组网价格的1%,安装维护更加灵活,因此采用CAN总线搭建飞行器通信网络可以较好地满足各项要求.[2]
但是CAN总线采用的是一个基于事件触发机制的多主系统结构,默认为固定优先级非抢占式的任务调度方法,当单位时间内总线上需要传输的数据量较大时,固定优先级的调度方法可能会导致低优先级报文抢占不上总线资源而产生不确定的延迟时间,在某些极端情况下甚至会导致低优先级报文丢失,这对于一些关键报文的传输将会产生致命的后果.[3]
因此,搭建基于CAN总线的飞行器通信网络不仅要考虑传输哪些数据,还要通过合理制定其应用层通信协议来规定如何传输这些数据.本文以某轻型、低成本飞行器的通信网络系统为例,详细介绍了通信网络的组成及应用层通信协议的设计方法,并可作为其他类似通信网络系统的设计参考.
1 飞行器通信网络
1.1 通信网络组成
该飞行器的通信网络主要由6个工作节点(1个GNC一体化分系统、1个导引头分系统和4个舵机分系统)、1个记录节点(数据记录仪分系统)、1个管理节点(网络管理中枢)和1个地面测试节点(地面测试系统)组成.
GNC一体化分系统:主要根据传感器信息进行导航解算、制导指令计算和控制指令计算,并输出舵机舵偏指令信息,实现导弹三通道的稳定控制.GNC一体化分系统在通信网络中需要传输的信息主要包括自检信息、舵机舵偏指令信息、导航输出信息、状态反馈信息和其他指令应答信息.
导引头分系统:主要完成开机后对目标的搜索、识别和跟踪,并输出目标相对位置信息.在通信网络中传输的信息主要包括自检信息、目标信息、状态反馈信息和其他指令应答信息.
舵机分系统:根据GNC一体化分系统发送的舵偏指令信息,通过控制舵面偏转角度而形成空气动力,进一步控制飞行器姿态.在通信网络中传输的信息主要包括自检信息、状态反馈信息和其他指令应答信息.
数据记录仪分系统:用于记录整个通信网络中的关键报文信息,以便于飞行试验后期的数据分析.在通信网络中传输的信息主要包括自检信息和其他指令应答信息.
网络管理中枢:负责监控通信网络的运行情况,并根据具体故障类别,完成相对应的故障报警及适当的故障处理等操作.在通信网络中传输的信息主要包括自检结果信息、故障报警信息、故障处理指令信息和其他指令应答信息.
地面测试系统:主要完成对飞行器各分系统的功能测试和性能测试,在通信网络中主要传输测试指令类信息.
1.2 双冗余CAN总线调度策略
由于飞行器通信网络中需要传输的数据越来越多且系统控制周期越来越短,导致单位时间内总线上传输的数据量急剧增加,总线负载率越来越高,采用单CAN总线的组网方案已经无法满足数据传输实时性的需求.并且由于飞行器工作环境和用途比较特殊,从可靠性角度考虑需要采取冗余设计方案,但考虑到飞行器工作时间短,主CAN网络瘫痪的概率比较小,网络备份经常不能利用而浪费系统资源.因此,所制定的通信系统方案既要具备对主CAN网络的备份功能,提高可靠性,又要能够合理利用备份CAN总线的网络资源,有效降低主CAN网络的总线负载率,提高数据传输的实时性.
通过以上分析,最终提出一种双冗余CAN总线的组网方案及调度策略.该策略采用双CAN总线布局结构,将需要传输的数据分为关键性数据、非关键性数据和网络管理类指令.其中关键性数据主要包括用于控制飞行器工作的指令类信息如舵偏指令,这些指令对实时性要求比较严格,如果无法在规定时间内成功发送,可能对整个飞行器的正常工作造成较严重影响;而非关键性数据主要包括对实时性要求不高的信息,如状态反馈信息、指令应答信息和地面检测信息等;网络管理类指令是网络管理中枢向通信网络中全部工作节点发送的网络管理类信息,实现网络故障的隔离和恢复.
当主CAN网络正常工作时,通过在备份网络中传输部分非关键性数据而降低主网络的总线负载率,进而提高主网络中关键性数据传输的实时性.当主网络上某些工作节点异常时,将其原在主网络中传输的关键性数据改成在备份网络中传输,此时备份网络的总线负载率剧增,为保证关键性数据在备份网中传输的实时性,又制定了一种高效率的网络调度策略,该策略在确保飞行器通信系统正常工作的同时,提高了关键性报文的实时性和非关键性报文的公平性.
在网络调度策略中首先制定了CAN报文帧的标志符分配方案,采用步进式动态优先级调度算法与静态优先级调度算法相结合的混合式标志符编码方法,既保证了系统中所有报文帧发送的公平性和关键性报文帧发送的实时性,又避免了低优先级报文帧的丢帧现象.静态优先级调度算法是CAN总线协议中默认的总线仲裁方式,当多个报文帧竞争总线资源时,高优先级的报文帧抢占总线而开始发送,低优先级的报文只有等待所有比其优先级高的报文帧发送完成后才开始发送.步进式动态优先级调度算法是通过动态提高仲裁失败报文帧的优先级,令该报文帧随着其总线仲裁失败次数的增加而优先级越来越高,直到成功抢占总线,因此该策略可以保证总线上低优先级报文帧传输的公平性,避免了低优先级报文帧的丢帧现象[4].
网络管理中枢是实现双冗余CAN网络内部资源调度的关键.它通过实时监测主网络的实时运行情况,并根据预先设置的调度策略、主网络出现的故障动态更改部分报文帧的传输路径及发送周期,实现通信网络的故障监测及恢复.根据主网络出现故障的不同原因有针对性地采取以下措施:
(1) 当网络管理中枢判断出主网络上某个节点出现故障时,首先通过主网络和备份网同时向该节点发送复位指令帧,该节点如果能够成功接收此帧则进行软件复位操作.
(2) 如果网络管理中枢发送复位指令帧后故障节点仍不能正常工作,即可确定是该节点的主网络部分硬件出现故障,则网络管理中枢通过备份网向故障节点发送切换网络指令帧,然后在备份网上发送网络带宽优化广播帧.
(3) 当故障节点接收到切换网络指令帧后,将所有原主网络中发送的关键性报文变更到备份网中传输.备份网上每个节点接收到网络带宽优化广播帧后,将其在备份网中传输的非关键类报文帧的发送周期扩大一倍,以降低总线负载率,从而保证备份网中新增的关键性报文帧传输的实时性.
(4) 如果主网络完全瘫痪,解决措施同样是通过向备份网中发送一个切换网络指令帧,将原主网络中传输的关键性指令帧转移到备份网中传输,并通过先后发送6个网络带宽优化广播帧,将原来备份网中传输的非关键类报文帧的发送周期扩大6倍.
2 应用层通信协议
CAN总线规范只对数据链路层和物理层进行了定义,仅能保证节点间无差错的数据传输,在实际多节点数据通信应用场合中,除了基本的两层服务之外,还需要有更多服务的支持,如发送大于8个字节的数据块及关键报文帧应答机制等,这些都可以通过制定其应用层通信协议来实现.
CAN总线应用层协议可以采用一些国际组织制定的标准协议,也可以自行定义,考虑到飞行器应用场合特殊,出于保密性角度,本文采用自制保密性高且专用性强的CAN总线应用层通信协议.
为提高数据传输的实时性,协议中规定CAN报文帧的标志符采用标准帧和扩展帧混合编码格式.网络管理类指令和关键性报文由于具有数据种类少和实时性要求高的特点,使用标准帧的11位标志符完全可以满足所有报文帧的定义,而且标准帧的帧长度更短,可以提高信息传输的实时性;非关键性报文种类繁多,数据量较大,而且为了满足所有信息传输的公平性,还要预留一段标志符区用于实现调度算法的嵌入,所以选择29位标志符的扩展帧格式,由于这些报文对实时性要求不高,选择扩展帧方式对总线延时的影响可以忽略.
协议中规定当主网络正常工作时,主网络负责传输关键性报文,综合考虑到实时性和可靠性要求,总线波特率采用500 kB/s,备份网络负责传输非关键性报文,由于非关键性报文较多且对实时性要求不高,总线波特率采用1 MB/s.
由于飞行器实际工作过程中所使用的关键性报文和网络管理类报文种类较少,这两类报文采用CAN总线默认的固定优先级编码方式即可满足实时性要求;而飞行过程中的非关键性报文种类较多,其标志符通过采用静态优先级调度算法+动态优先级步进调度算法的混合调度算法编码方式,可以保证所有报文帧发送的公平性,并避免了低优先级报文的丢帧现象.
2.1 网络管理和关键性报文帧标志符分配方案
这2类报文帧统一采取标准帧格式,具体标志符分配方案如表1所示.
表1 网络管理类和关键性报文帧标志符分配方案
通过采用2位标志符ID10和ID9来定义报文帧的全局优先级.网络管理类报文帧关系到整个网络的故障检测及恢复,因此具有最高优先级,将码值为00定义为网络管理类报文帧的全局优先级,码值01定义为关键性报文帧的全局优先级.
目标节点号用于标志接收此报文帧的节点代号,采用3位标志符ID8、ID7和ID6来定义目标节点号,具体含义如表2所示.
表2 目标节点定义
ID5-ID0共6位ID用于定义该报文帧所传输数据或指令的具体功能及目的信息.
2.2 非关键性报文帧标志符分配方案
非关键性报文帧采用扩展帧格式,具体报文帧标志符分配方案如表3所示.
表3 非关键性报文帧标志符分配方案
ID28和ID27标志符用于定义报文帧的优先级类别.非关键性报文帧的优先级低于网络管理类报文帧和关键性报文帧,所以将非关键性报文帧这2位ID号定义为10.
ID26-ID22共5位标志符用于定义非关键性报文帧的动态优先级.其中EDF动态优先级区采取对数分区法,初值取最大值,由于标志符取值越大优先级越低,这样就将新生成的非实时性数据帧放到了等待传输报文帧队列的末尾.如果此时总线上没有报文进行传输,则该数据帧可以立刻启动发送;如果存在总线竞争则高优先级报文仲裁成功得到发送,而低优先级报文将其动态优先级区的数值减小一个已知值,然后等待重发.低优先级报文帧每竞争失败一次,其动态优先级区就减小一个已知长度,优先级越来越高,直到发送成功.
ID21-ID20共2位标志符用于定义报文类型,根据非关键类报文帧的不同用途,其报文类型定义如表4所示.由表4可见:广播帧代表总线上所有节点均接收;通知帧用于传送数据,如节点的状态信息;开机启动帧用于当飞行器上电时,所有分系统启动完成后通过发送一帧开机启动帧表示启动完毕.
表4 报文类型定义
ID19-ID17共3位标志符定义了非关键性报文帧的接收节点,它与前面所定义的目标节点定义相同,具体内容如表2所示.
ID16-ID7共10位标志符用于定义非关键性报文帧的具体功能含义,由于种类较多,在这里不详细介绍.
每个CAN报文帧一次最多可以传输64 B即8个字节数据,而对于大于64 B数据包的传输可以通过制定多帧传输协议来实现.通过采用ID6至ID0共7位标志符来定义多帧传输模式下的相关信息,如单帧传输则值为0 000 000,多帧传输时,这7位标志符的值表示当前传输报文帧是多帧中的具体第几帧,如0 001 000表示当前传输的报文帧是多帧传输中的第8帧.
2.3 数据类型及存储方式定义
CAN总线采用多主通信模式,即只要总线空闲,任何节点都可以向总线上发送报文帧,而总线网络中其他节点均可以根据滤波机制来决定是否接收该报文帧.在CAN物理层协议中并未规定不同类型数据的传输方式,因此为了保证节点间可以正确编码和解码数据信息,必须要规定一个统一的数据编码和解码格式.
根据飞行器上传输数据的种类可以进一步分为单精度浮点型、双精度浮点型、短整型、长整型、字节型、布尔型和自定义型.单精度浮点型和短整型长度均为4个字节,规定其占用D0-D3的CAN报文数据区,且高字节在前(高字节存储在D0中);双精度浮点型和长整型长度均为8个字节,规定其占用D0-D7的CAN报文数据区,且高字节在前(高字节存储在D0中);字节型长度为1个字节,规定其占用D0的CAN报文数据区;布尔型长度为1 B,规定其占用D0的最低位;自定义型的编码定义需要根据具体数据大小而决定,占用CAN报文数据区原则是D0最先占用,而D7最后占用.
2.4 通信方式定义
根据CAN网络中节点间数据传输方法的不同,制定以下3种数据通信方式:
(1) 生产者与消费者的通信方式.生产者是指CAN报文的发送节点,消费者是CAN报文的接收节点,根据CAN总线的多主工作模式,同一时刻可包括1个生产者和多个消费者.该方式为CAN总线数据通信的默认方式.
(2) 主/从式通信方式.CAN总线可以通过远程帧实现主/从的通信方式,主节点首先发送一个远程帧,从节点接收到远程帧后立即发送与所接收远程帧标志符相同的报文帧,并在该报文帧的数据区中发送节点远程申请的数据.该通信方式主要用于信息的获取,如传感器信息获取.
(3) 点对点的通信方式.CAN报文帧的数据区最大可承载8个字节的信息,往往无法满足大数据包的信息交换,而点对点通信方式支持大于8个字节的数据包传输.
3 仿真实验
通过搭建全数字仿真平台模拟飞行器通信系统实际工作过程,完成对所设计的飞行器双冗余CAN网络调度策略及应用层协议的验证工作.
该仿真平台的搭建是在Vector公司多功能仿真与分析集成开发环境CANoe软件上实现的.CANoe具有网络的仿真、监测和分析等功能,可以通过编程实现对CAN总线网络运行过程的模拟.
根据文中所设计的基于双冗余CAN总线的飞行器通信系统应用层协议,在CANoe中搭建2条CAN网络,并模拟出所需的9个物理节点.在该网络环境中完成以下测试:
(1) 模拟单CAN总线组网方式,并将协议中制定的所有报文帧在网络中运行,测试网络运行情况,通信速率采用1 MB/s.
(2) 采用双冗余CAN总线组网方式,模拟主网络正常工作状态,分别测试主网络和备份网络的工作情况,其中主网络总线波特率为500 kB/s,备份网为1 MB/s.
(3) 采用双冗余CAN总线组网方式,模拟主网络完全瘫痪时备份网的工作状态,并统计网络运行情况,备份网的通信速率采用1 MB/s.
每组实验进行3 min后,读取并分析CANoe中记录的过程数据.实验过程中CAN网络信息统计结果见表5.
表5 实验过程中CAN网络信息统计结果
4 实验结果
(1) 通过对采用双冗余CAN总线结构与单CAN总线结构的通信网络比较可知,飞行器通信系统的总线负载率从单CAN网络的64%下降到双CAN网络中的主网络为9%和备份网为57%,提高了报文传输的实时性.
(2) 当主网络瘫痪时,所有报文都在备份网中传输,由于采用了合理的网络调度策略,此时备份网的总线负载率也仅为18%,整个通信系统在正常且稳定运行的同时,保证了关键性报文帧的实时性,提高了系统的可靠性.
(3) 实验过程中,总线上并未出现丢帧现象,保证了低优先级报文帧的公平性.
实验结果表明,所制定的应用层协议是正确且有效的.通过在应用层协议中制定合适的网络调度策略,不仅在主网络正常工作时可以保证飞行器通信系统的正常运行,而且当主网络出现故障时,可以通过备份网保证飞行器通信系统的正常运行,因此在确保关键性报文帧传输实时性的同时,提高了整个通信系统的可靠性.
[1] 支超有.机载数据总线技术及其应用[M].北京:国防工业出版社,2009:115.
[2] 杨春杰,王曙光,亢红波.CAN总线技术[M].北京:北京航空航天大学出版社,2010:7-8.
[3] 张宏巍,张文娟.控制局域网中媒体访问延时研究与网络优化设计[J].东北师大学报(自然科学版),2014,46(4):61-65.
[4] 张宏巍,张文娟,贾宏光.飞行器控制系统双CAN网络混合调度策略设计[J].东北师大学报(自然科学版),2013,45(1):65-70.
(责任编辑:石绍庆)
Design of application layer protocol and scheduling strategy based on dual redundancy CAN network for aircraft
ZHANG Hong-wei1,ZHANG Wen-juan2
(1.Changchun Institute of Optics Fine Mechanics and Physics,Chinese Academy of Sciences,Changchun 130033,China;2.School of Physics,Northeast Normal University,Changchun 130024,China)
Firstly,a data transmission scheme of aircraft communication system based on CAN bus is presented in this paper.By using redundant bus structure and optimized network scheduling strategy,it not only ensures the network real time,but also improves the system reliability.Secondly,a special application layer protocol is designed according to the actual data transmission requirement.At last,it’s tested by experiment that this protocol meets the requirement of data transmission reliability and real time.
redundant bus;network scheduling strategy;application layer communication protocol
1000-1832(2015)04-0053-06
10.16163/j.cnki.22-1123/n.2015.04.012
2015-05-12
吉林省科技厅应用基础研究项目(20130102028JC);中国科学院“三期创新”平台资助项目.
张宏巍(1983—),男,博士,副研究员,主要从事飞行器数据传输技术研究;通讯作者:张文娟(1983—),女,博士,工程师,主要从事智能控制技术研究.
TP 336;V 249 [学科代码] 510·50
A