基于小型无人飞行器的CAN总线余度技术研究
2021-06-30田心宇
姚 英,田心宇
(1.西安邮电大学 电子工程学院,西安 710121;2.西北工业大学365所,西安 710065)
0 引言
随着航空技术和微电子技术的发展,要求新一代的无人飞行器需具有适应不同设备快速挂接、快速处理的能力,航电系统也朝着综合化、智能化、模块化、标准化及系统化的方向发展。其系统结构由联合式、综合式发展到了先进综合式,因此航电总线技术是新一代航空电子系统的研究目标。
目前ARINC429和MIL-STD-1553B总线在航空领域使用最为广泛。但是ARINC429总线是点对点传输,且速率较低,无法满足无人机综合化的要求;MIL-STD-1553B总线属于指令/响应式,速率高、抗干扰性强是目前使用非常广泛的一种航空总线,但是由于成本较高,无法在无人机中推广使用[1-3]。
CAN总线是德国Bosch公司开发的一种新型串行数据通信总线,其具有成本低廉、协议开放、实现简单、速率快、可同时挂接多个节点、抗干扰性强等诸多优点,使其具有极高的性价比,目前已成为中小型无人机航空电子总线的首选[4-5]。
1 CAN总线结构与原理
CAN(控制器局域网)总线是一种能有效支持分布式控制的串行总线,其通信速率最高可达1 Mb/s。CAN协议废除了传统的站地址编码,只针对报文进行编码,使得网络内的节点数理论上不受任何限制。
CAN总线系统主要由CAN控制器、CAN收发器、CAN总线数据传输线和CAN总线终端电阻构成。CAN控制器接收CPU送来的数据,对这些数据处理后送给CAN收发器,CAN控制器同时接收CAN收发器传来的数据,对这些数据处理后送给CPU。
CAN数据总线是两条双向数据线,分为高位﹝CAN-H﹞和低位﹝CAN-L﹞数据线。CAN数据总线两端通过终端电阻连接,终端电阻可以防止干扰。
CAN的报文标识码由11位或29位二进制数组成,因此可以定义211或229个节点,而且不同节点可同时接收同一数据,这种方式非常契合分布式控制系统。
CAN总线采用多机工作方式,任意时刻网络中任一节点均可送报文,可实现点对点、点对多点或广播等多种传输方式。
CAN总线数据段长度最多为8个字节,在满足控制领域一般要求的同时不会占用总线时间过长,从而保证了通信的实时性。每帧报文均具有循环冗余码(CRC)校验及总线监视、位填充、报文格式检查等多种检错措施,出错率低同时具有自动关闭故障节点及出错帧自动重发功能,可靠性高[6]。
CAN总线协议作为一种适用于航空电子设备之间进行数据交换的通信接口协议,具有以下特点:
1)成本低廉、结构简单、实现方便、速率快、可同时挂接节点多(最多可达110个)、抗干扰性强;
2)其总线调度可以在一定的限制之内变化,并支持节点的热插拔;
3)完全开放,便于扩展,允许用户实现自定义的报文类型和协议;
以上优点也使其作为一种小型飞行器通用总线标准进行推广成为可能。
由于CAN总线的独特优点,西方众多机构已将其引入航空领域。例如:
1)Eurocopter公司的全天候救援直升机中导航系统、飞行状态传感器和飞行员控制单元之间就使用CAN总线进行通讯。
2)Ae270商用和小型运输机中的航空舱系统(SAM)使用CAN总线作为其多个智能化的单元的通信方式。
3)Bombardier-Rotax公司V220/300T型航空发动机就具有CAN总线接口。
4)NASA小飞机运输系统(SATS)就是用CAN总线进行机载航空电子间的通信。
国内对CAN总线也进行了广泛研究,并取得了引人注目的成果,目前CAN总线已经成为了国内军、民用机载设备的常用接口之一,众多航空货架产品的接口均采用CAN总线接口。
下面以标准帧为例介绍CAN总线数据协议。
CAN总线协议帧分为起始位、仲裁域、控制位、数据域、CRC位、应答位和结束位七部分构成,其中数据域的长度可以为0,其结构如图1所示。
图1 CAN总线协议帧结构示意图
起始位它标志帧的起始,由一个单独的“1”构成。
仲裁域包括标识符(11位)和1位的远程发送请求位(RTR)构成。
控制位由6位组成,包括数据长度和两位的保留位。
数据域即为发送的数据,它由0~8个字节构成。
CRC位由16位构成,包括CRC序列和CRC界定符。
应答位长度为2位,包含应答间隙和应答界定符。
结束位长度为7位,由7位“0”组成。
2 系统设计
2.1 模型构建
对小型飞行器来说CAN总线网络以其低廉的成本、高实时性等优点常常作为其通讯网络接口,该网络通常将小型飞行器中的飞控计算机、任务设备、功能设备和伺服设备进行组网通讯以完成飞行控制和导航、任务设备控制和功能设备控制等功能。其组成如图2所示。
图2 CAN总线网络组成框图
针对小型飞行器而言,常用CAN总线模型通常为主从结构。即以飞控计算机为主节点,其他设备为从节点。飞控计算机向各挂接在CAN总线上的任务设备、伺服设备、功能设备等发送控制指令和无人机的姿态、位置等信息,同时接收各设备的反馈数据;各任务设备、伺服设备和功能设备接收飞控计算机发来的控制指令和无人机信息,执行并向飞控计算机反馈状态信息。CAN总线模型拓扑结构如图3所示。
图3 CAN总线模型拓扑结构图
该CAN总线模型如图4所示。
图4 飞行器CAN总线模型
在该总线模型中飞控计算机定时向挂接在CAN总线上的各任务设备、伺服设备和功能设备发送控制帧,各设备向飞控计算机返回包含反馈数据的应答帧。
2.2 可靠性分析及模型改进
由图4可以看出,该飞行器中所有的电子设备均挂接在CAN总线上进行通讯,所以CAN总线的可靠性高低直接决定了整个飞行器的安全,下面对CAN总线模型进行分析。
图4所示的系统可靠性模型如图5所示。
图5 无人机CAN总线可靠性模型
图5所示的系统为串联系统,可靠性模型如式(1)所示:
R(t)=F(t)*M(t)*N(t)*P(t)*Q(t)
(1)
R(t)为系统的可靠性;F(t)为飞控计算机CAN模块可靠性;M(t)为CAN总线可靠性;N(t)为任务设备CAN模块可靠性;P(t)为伺服设备CAN模块可靠性;为功能设备CAN模块可靠性;
由于在可靠性分析中,故障属于随机事件,其实效分布函数最基本、最常见的描述是指数分布,标号为i单元的失效分布函数可以用e-λit表示。
λi为i单元的失效率;R(t)为系统可靠性。
将其代入式(1)可得:
R(t)=e-λFt*e-λMt*e-λNt*e-λPt*e-λQt
(2)
对式(2)进行分析可以看出,该系统中只要有一个系统故障则系统就会发生故障。所以提高系统的可靠性成了当务之急。通常余度技术是提升系统可靠性的有效手段。对图5所示的可靠性模型进行改进,将其设计为并联结构,如图6所示。
图6所示的CAN总线可靠性模型可以看成由5个并联系统串联构成。可靠性模型如式(3)所示:
R(t)=A(t)*B(t)*C(t)*D(t)*E(t)
(3)
R(t)为系统的可靠性;
A(t)为飞控计算机双余度CAN模块可靠性;
B(t)为双余度CAN总线可靠性;
C(t)为任务设备双余度CAN模块可靠性;
D(t)为伺服设备双余度CAN模块可靠性;
为功能设备双余度CAN模块可靠性;
双余度系统的可靠性模型如式(4)所示:
(4)
R(t)为双余度系统的可靠性;F(ti)为单套系统的可靠性。
式(4)也可以表示为:
(5)
R(t)为双余度系统的可靠性;e-λit为第i个系统的可靠性。
将式(5)代入式(3)可得:
R(t)=(1-(1-e-λA1t)(1-e-λA2t))*
(1-(1-e-λB1t)(1-e-λB2t))*(1-(1-e-λC1t)
(1-e-λC2t))*(1-(1-e-λD1t)(1-e-λD2t))
*(1-(1-)(1-))
(6)
显然,式(6)所示的系统可靠性相比式(2)的系统可靠性显著提高;由于(1-e-λt)的值是大于0小于1的数,如果继续增加其数量就可以继续增加系统的可靠性;但是系统余度数量和系统规模、体积和重量成反比,即余度数目增加随之系统越复杂,体积和重量随之增加,这对于小型飞行器而言不可接受。
通常从单余度系统到双余度系统时,可靠性增加最为显著,体积和重量带来的影响最小,所以本文采用双余度系统设计。
使用余度技术对图1所示的模型进行优化,可得图7所示的模型。
图7 优化后的无人机双余度CAN总线模型
在优化后的模型中,CAN总线系统由CAN1和CAN2两条CAN总线组成;模型中飞控计算机CAN总线模块、任务设备CAN总线模块、功能设备CAN总线模块和各伺服设备CAN总线模块均由两个完全一致且相互独立的CAN总线模块构成,且分别挂接在CAN1和CAN2总线上;在工作时飞控计算机的CAN1和CAN2模块同时向总线上的各设备发送控制帧信息,挂接在总线上的各设备接收到控制帧信息并执行后通过各自的CAN1和CAN2模块同时向飞控计算机返回反馈帧信息。
根据上述分析设计了一种针对小型飞行器双余度CAN总线算法,如下所示:
1)设定CAN1和CAN2模块优先级;
2)设定主节点飞控计算机针对各机载设备发送控制帧周期(如数据传输频率为80 Hz,则定时周期为12.5 ms);
3)设定各从节点优先级以防止总线竞争;
4)CAN1和CAN2模块同时工作;
5)对CAN1和CAN2模块按高低优先级的顺序进行检测,如数据接收正确则成功次数+1;测试次数+1,如在阈值时间内未收到数据,则使用CAN2模块数据,失败次数+1;测试次数+1;
6)判断失败次数是否大于阈值,是则系统降级切除该设备中的CAN模块使用低优先级CAN2模块数据,并将故障信息返回,否则返回步骤4执行。
2.3 软件设计
CAN协议采用了非破坏性总线仲裁技术,两个或两个以上节点同时传送信息时,低优先级节点主动停止数据发送,而高优先级节点数据传送则不受影响。
本系统将飞控计算机的CAN1模块设为最高优先级CAN2模块次之,伺服设备优先级低于飞控计算机,功能设备的优先级低于伺服设备,任务设备的优先级最低。
设定优先级后飞控计算机CAN1模块和CAN2模块按照一定周期按优先级顺序向总线上的各设备发送控制帧信息,由于为了防止总线竞争,飞控计算机的CAN1模块和CAN2模块按照一定周期针对各机载设备进行周期性数据传输,机载设备收到数据后延迟固定时间后返回应答数据,优先级高的数据优先通过总线,这样就有效地防止了总线竞争。其总线调度流程如图8所示。
图8 总线调度流程图
飞控计算机双余度CAN总线软件工作机理如下:
飞控计算机工作时,其CAN1和CAN2模块按照预先设定的定时任务同时发送控制帧数据,延时一个固定周期后接收CAN1和CAN2数据,首先检测CAN1数据,如数据接收正确则成功次数+1;测试次数+1,如固定周期内未收到数据,则使用CAN2模块数据,CAN1模块失败次数+1;测试次数+1,若失败次数大于阈值则将CAN1模块切除,使用CAN2模块数据。
如CAN1模块正常则检测CAN2模块数据,如数据接收正确则成功次数+1;测试次数+1,如固定周期内未收到数据则模块失败次数+1,测试次数+1,若失败次数大于阈值则将CAN2模块切除。
飞控计算机双余度CAN总线软件工作流程如图9所示。
图9 飞控计算机双余度CAN总线软件工作流程图
各功能节点双余度CAN总线软件工作流程如图10所示。
图10 各功能节点双余度CAN总线软件工作流程图
按上述算法设计的CAN总线网络上的帧数据时序如图11所示。
图11 CAN总线帧数据时序图
由于预先设定了CAN总线波特率,同时小型飞行器总线距离较短,所以每一帧发送时间可知,即飞控计算机发送一次的所有控制帧时间是确定的;同理所有反馈帧发送时间也可以确定,由于我们设计时希望总线上不能同时存在控制帧和反馈帧,由此算出飞控计算机控制帧的发送周期,以此周期构建实时任务,设计出CAN总线网络。
2.4 实验结果与分析
按照上文所述模型构建双余度CAN总线系统如图12所示。
图12 双余度CAN总线系统
该双余度CAN总线系统由5个CAN节点构成,分别是飞控计算机、侦察设备、伺服设备1、伺服设备2和随动装置,每个CAN节点均为双余度CAN总线设计。飞控计算机为主节点,侦察设备、伺服设备1、伺服设备2和随动装置为从节点,从节点的优先级为伺服设备1最高,伺服设备次之,侦察设备第三,随动装置最后。主节点每20 ms向侦察设备、伺服设备1、伺服设备2和随动装置4个从节点发送控制指令,4个从节点接收到控制指令后均延迟10 ms向主节点返回反馈数据。
为了验证总线故障采用软件模拟的方式分别模拟主节点故障和从节点故障主节点故障为主节点的CAN1模块正常工作后开始计时,5分钟后自动故障不向从节点发送控制指令;从节点故障为从节点的CAN1模块正常工作后开始计时,10分钟后自动故障不向主节点发送反馈数据。
经过长时间实验表明本双余度CAN总线系统不论是主节点故障还是从节点故障时,系统均工作正常,各从节点能够正常接收主节点的控制指令,主节点也能够正常接收各从节点反馈数据。
3 结束语
CAN总线由于其自身的诸多优点已经得到了广泛的应用,目前CAN接口已经成为了众多航空设备的通用接口之一。本文设计的双余度CAN总线策略经实践验证表明,在保证实时性的同时显著提高了系统的可靠性,完全满足总体要求,而为此付出的软硬件代价较小。