CAN总线通信中继在平流层无人飞行器中的应用研究
2024-02-17李晓剑
李晓剑,刘 硕
(中国电子科技集团公司第十八研究所,天津 300384)
随着平流层无人飞行器的研究越来越深入,整个飞行器的规模也变得越来越大,艇上各个电子单机的数量越来越多,分布的位置也更加离散,在使用CAN 总线进行互相通信时,各单机之间的通信距离由于过长,导线的容抗值过大,使通信电信号产生了畸变,最终导致CAN 总线通信丢失、节点关闭等问题发生,这使得平流层无人飞行器的长距离CAN 总线通信成为难以攻克的难题之一。
国内平流层无人飞行器的通信技术主要采用CAN 总线通信、RS422 总线通信、RS485 通信等技术,与地面使用的总线通信技术无较大差别,在地面时常常使用广州致远电子有限公司生产的“CAN‐bridge+”中继器工具,用以延长系统的通信距离,其主要区别在于平流层的环境工况与地面有较大不同:平流层空气相对稀薄,环境压力低,环境温度变化复杂。
如表1 所示,国内某平台能源系统总线节点数量达到了100 个,通信距离超过了600 m,常规CAN 总线为基础的能源系统通信设计将难以满足预期使用要求。
表1 CAN 总线节点数量比较
通常在能源系统使用典型CAN 总线波特率为125 kB/s 时,通信距离的极限长度为500 m,前提条件为使用的标准导线线径为AWG20,但是从临近空间飞行器轻量化的角度而言,为最大化节省能源系统质量,常使用的导线线径为AWG26,这种介质使CAN 总线的传输品质大大降低。由于增加了导线的电阻值,整个总线的容抗值变大,同时由于分布式系统能源节点在飞行器上分布极不均匀,使整个总线变得更加脆弱。通常在这种恶劣条件下,整个总线的正常传输距离将不足250 m,一个网络中的节点数量不得超过64 个,图1 所示为典型能源拓扑,能源系统CAN 总线通信设计将变得极为困难。
图1 某平台飞艇能源系统拓扑架构图
退一步讲,如果将整个系统的设计思路改变,使用其他总线通信方式,例如串口总线通信RS422、RS485,但是RS422 总线通信为全双工的工作模式,只能进行点对点的通信,不可组网通信,不可实现“多对多”的工作模式,这就从根本上否定了在进行大规模组网通信时使用RS422 通信的可能性;RS485总线与CAN 总线类似,都可完成系统单机之间的组网通信,但是都会在长距离通信时产生信号丢失问题,由于CAN 总线特殊的仲裁机制,使得CAN 总线通信在使用时优于RS485 总线通信。
在传统工业控制现场总线解决方案中,面对上述通信距离过长、节点数量过多等问题时,常常使用广州致远电子科技有限公司开发的“CANbridge+”中继器,使用这种通信中继器工具可显著延长整个系统的通信距离,将一个网络划分为多个子网络,每个子网络的通信距离和节点数量都在设计容许范围内,这将大大改善系统的通信效果,但是由于这种中继器的使用环境温度不可低于-40 ℃,大气压力大多为常压的工作条件,平流层无人飞行器工况与此大不相同,环境大多在-60~-70 ℃,气压最低可达到1.2 kPa,使用这种工具不能完成延长系统通信距离的任务,可能会导致系统中两个子网的通信数据得不到有效转发甚至停止转发,最终使整个系统无法得知单机的工作状态,导致飞行任务失败。
1 CAN 通信中继系统整体方案
本文提出一种新的基于CAN 总线的通信中继方案,在平流层低温低气压的环境状态下,在使用CAN 总线通信时延长系统的通信距离,这种设计可以使CAN 总线通信中继适应临近空间恶劣的环境影响,以及平流层无人飞行器全寿命工作环境变化和吊舱内部的高温低气压等极端环境,同时不影响通信系统网络的连贯性与整体性,在最大程度上满足平流层无人飞行器设计可靠性与双路备份要求。
为了实现上述目的,通过对广州致远电子科技有限公司开发的“CANbridge+”中继器进行原理分析,确认了通信中继不能适应临近空间恶劣环境的关键点在于元器件的选用,此种工具选用的部分元器件环境适应性较差。基于此种中继器工具,整个CAN 总线通信中继方案主要由以下几部分组成:
(1)中央处理单元CPU,与两组CAN 芯片进行数据交互;
(2)CAN 总线隔离芯片,对CAN 总线信号电平的进行识别,完成CAN 总线通信数据的接收与发送;
(3)嵌入式软件模块,完成CAN 总线数据转发的逻辑实现,转发数据帧数量的统计,正常数据帧与异常告警帧的判断;
(4)CAN 总线匹配电阻,在CAN 总线的高电平与低电平之间并联120 Ω 匹配电阻。
首先将中央处理单元CPU 和两组CAN 隔离芯片通过PCB 印制板的形式将二者连接起来,使用CPU 完成对两组CAN 隔离芯片的收发控制。使用隔离电源芯片将中央处理单元CPU 和CAN 隔离芯片的供电电平与信号电平做硬件隔离,防止对系统CAN 总线通信信号产生干扰。
在本设计方案中,两组CAN 总线隔离芯片分别对应两个CAN 总线网络,彼此物理隔离。两组CAN总线隔离芯片分别作为两个网络的一个节点,位于网络的起点端或终点端,完成本子网通信数据的接收和发送。进一步地,在两组CAN 总线隔离芯片的高电平引脚和低电平引脚加入120 Ω 匹配电阻,提高CAN 总线信号质量,确保总线快速进入隐性状态,降低反射能量。
总体应用方案如图2 所示。在应用时,实时根据整个CAN 总线通信网络,计算出整个网络两个最远节点之间的通信距离,将整个通信中继置于整个距离的约二分之一处,即刚好将整个CAN 总线网络一分为二,同时由于飞行器上采用分布式设计,各个CAN 总线节点在艇上分布并不十分均匀,通信中继也应根据两个网络通信节点的不同进行动态调整,尽量使两个网络的通信距离一致,CAN 总线节点数量大致相同。
图2 中继器总体应用示意图
CAN 总线通信中继应用实施方案如图3 所示。如图2 进行布置后,通信中继的一组CAN 隔离芯片应作为艇上通信网络的一个节点,将芯片的CAN_H、CAN_L 分别接入CAN 总线的高电平与低电平,发挥接收和转发整个CAN 总线网络中通信数据的作用,由于此时本节点作为本网络的一个终端,故此时CAN 隔离芯片的CAN_H、CAN_L 两端必须并联120 Ω 匹配电阻,提高网络中CAN 总线信号的抗干扰性能。同样的,对于另一个网络来说,此CAN隔离芯片即为整个网络的始端,也应当加入120 Ω 匹配电阻以增强系统的抗干扰性能。
图3 CAN通信中继总体实施方案
2 CAN 总线通信中继硬件与软件实现
2.1 CAN 中继硬件设计
整体设计方案如图4 所示。
图4 中继器总体设计拓扑
中继器设计采用MCU 加CAN 控制器的双芯片解决方案[1]。本中继器采用成熟的能源分系统下位机板设计,主CPU 采用的STM32 单片机设计,型号为STM32F105,以ARM Cortex-M3 为内核的32 位微处理器,主频可高达72 MHz,内置Flash 和SRAM,其容量分别高达512 和64 kB,内部集成双CAN 收发器,可支持CAN 协议2.0A 和2.0B,波特率最高可达1 MB/s,具有3 个发送邮箱和2 个3 级深度的FIFO,能够以最小的CPU 负荷来高效处理大量收到的报文[2]。
中继器硬件设计拓扑如图5 所示。CAN 收发器型号为ISO1050,是一款带隔离的通用CAN 收发器芯片,该芯片内部集成了所有必需的CAN 隔离及CAN 收发器件,这些都被集成在不到3 cm2的芯片上。芯片的主要功能是将CAN 控制器的逻辑电平转换为CAN 总线的差分电平,并且具有DC 2 500 V的隔离功能。该芯片符合ISO11898 标准,因此,它可以和其他遵从ISO11898 标准的CAN 收发器产品互相通信[3-4]。
图5 CAN 中继器硬件设计原理拓扑图
实践证明采用ISO1050 芯片不仅能够使系统真正与外界隔离,抑制干扰的加入,提高系统的可靠性,简化了CAN 节点外围电路的复杂度,还降低了成本,具有较高的性价比。
整个中继器的供电形式为5 V 供电,中央处理单元CPU 采用STM32F105 型,供电制式为3.3 V 供电,两组CAN 隔离芯片需分别使用3.3 V 供电与5 V 供电,3.3 V 为芯片供电电源,5 V 为信号电源,二者需进行隔离处理,整个中继系统使用5 V 作为供电电源,经过转换芯片LM1117 将电源变换为3.3 V,为中电处理单元CPU 和两组CAN 隔离芯片供电,同时使用隔离电源芯片ADUM5000 将电源5 V 变换为信号5 V,为CAN 总线提供信号电平,这样便可以实现通信中继器的硬件实施。
2.2 CAN 中继软件设计
CAN 中继器的主要任务是在两个网络中进行数据的过滤和转发,其软件主要包括初始化模块、数据发送模块和接收模块等。
CAN 初始化直接关系到CAN 收发器能否正常工作,在很多情况下,软件不能正常工作并不是CAN的收发程序有问题,往往是初始化配置不正常造成的。STM32 的CAN 初始化主要包括复位CAN、设置CAN 报警界限、CAN 寄存器初始化、CAN 单元初始化(包括CAN 模式和波特率设置)、CAN 过滤器的初始化。经过以上设置,CAN 模块就准备就绪进入工作模式了,工作流程如图6 所示。
图6 CAN中继器初始化流程
中继器的任务之一就是实现报文的转发,当STM32F105 接收到新的报文时,经过数据处理模块处理,对两路CAN 收发器的接收缓冲区进行监视,如某一路缓冲区非空则向另一路转发。
STM32F105 发送报文时,应用程序选择一个空的发送邮箱;设置标识符,数据长度和待发送数据;然后对发送寄存器置1,请求发送,邮箱马上就进入挂号状态,并等待称为发送,当CAN 总线进入空闲状态,预定发送邮箱中的报文就马上被发送。在报文发送成功后,马上变为空置邮箱,相对应的寄存器置1,来表明1 次成功发送[5]。
在进行数据接收时,采用中断的方式进行CAN报文的接收,即:在接收报文前,计算接收数据长度,与缓冲区剩余空间比较,判断是否会溢出。若缓存区不会溢出,则接收该报文。接收报文后取出命令字符,若是中继状态查询命令则置位请求状态标志。若不是,则不处理只进行缓冲区参数调整,接收报文有效,然后进行CAN 接收缓冲区释放、恢复现场和中断返回等命令,如图7 所示。
图7 CAN中继接收中断子程序逻辑过程图
3 CAN 总线通信中继在平流层无人飞行器的应用
3.1 某型号太阳能无人机能源系统CAN 总线通信中继应用
某型号太阳能无人机能源系统是目前平流层无人机领域架构最为复杂的系统,通信距离长达237 m,节点数量多,具体包括:MPPT:33;BMS:19;DC/DC:6;PCU:2。
根据CAN 总线通信中继的设计思想和成熟经验,通常不单独为中继器设置电子单机,一般将中继器集成于能源管理器中,在进行能源系统通信电缆网设计时,将能源管理器放置于整个通信电缆网的中间位置,尽量使能源管理器两边的通信距离相等,节点数量相差不大,按照这一思想,整个系统的架构如图8 所示。
图8 某型号太阳能无人机能源系统拓扑框图
全系统共60 个节点,使用能源管理器中CAN 中继器将系统划分为两个子网络,左子网络节点共30个,右子网络节点共30 个,将全局节点均分到两个子网络中。
通信距离上来看,左子网络的通信距离为95 m,右子网络的通信距离为142 m,将两个网络的通信距离控制在200 m 以内,从原理上来看,达到了CAN 通信中继的预期效果。
某型号太阳能无人机能源系统前期测试的结果如图9 所示。整个总线的负载率在11%~12%,系统总线错误帧不再出现、系统节点无关闭现象,达到了通信中继的预期目的。
图9 某型号太阳能无人机能源系统CAN中继器验证
在整个系统测试过程中,CAN 总线未发生通信中断、通信错误、节点数据丢失等问题,CAN 总线中继器基本满足了能源系统的使用要求。
3.2 某型号飞艇能源分系统CAN 总线通信中继应用
某型号飞艇能源分系统是目前平流层无人飞行器领域最大最复杂的能源系统。
如图10 所示,由于整个系统过于复杂,选择在系统中适当位置加入多个中继器。
图10 某型号飞艇能源系统拓扑框图
全系统共100 个节点,使用CAN 通信中继器1内置于汇流盒中,将艇顶所有设备划分为子网络1,在艇底,根据通信距离的原因,将通信中继内置于节点DC/DC33 内部,整个艇底划分为两个子网,进一步的,在能源管理器内部,加入中继器3,将整个艇顶与艇底能源系统的节点分隔开,即将整个能源系统划分为4 个子网络,每个网络中的节点数量和通信距离如表2 所示。
表2 某型号飞艇能源分系统节点
使用能源管理器中CAN 中继器将系统划分为4个子网络,每个网络的节点数量和通信距离均在通信可靠度容许范围内。
某型号飞艇能源分系统前期测试的结果如图11所示。
由于采用了多个中继器,整个总线的负载率在6%~7%,加入3 组通信中继使整个系统不再出现节点关闭现象,大大增强了整个系统的可靠性。
4 多中继节点对系统影响分析
在平流层无人飞行器能源系统中,当系统单机节点数量特别多且通讯距离特别长时,需在系统中加入多个CAN 总线通信中继以确保总线稳定性,尤其需要按照通讯长度平均划分和内部节点设备个数平均划分,最终达到这两个条件的最优解,即子网数量=中继器数量+1,因为一个CAN 总线中继器将整个系统网络划分为两个,两个中继划分为三个,以此类推。如图12 所示,在整个通信网络中加入多个中继器。利用多个CAN 总线通信中继系统完成通讯接收转发功能,将整个能源系统网络划分为多个通信子网络,每个通讯子网络的起始端和终点端都应加入120 Ω 匹配电阻。
图12 多个CAN总线通信中继应用实施方案
一般在系统中应用多个CAN 总线通信中继时,不可无限制的在系统中增加CAN 总线通信中继,如果系统节点数量与通信距离均不是特别长时,加入CAN 总线中继反而会减少系统的可靠性,在加入CAN 中继器时,需从整体出发,从以下几个因素综合考虑系统可靠性与健壮性,如表3 所示。
表3 CAN 总线通信中继影响表
5 结论
随着平流层无人飞行器技术的不断发展,CAN总线技术已经应用得越来越普遍。本文提出的CAN总线通信中继技术能够有效地延长系统的通信距离,同时以牺牲最小质量的代价,显著提高了系统的可靠性能,并对两组应用CAN 总线通信技术的两个产品型号进行深入介绍,最后给出了应用多个CAN总线中继时,影响选取的条件和因素,从实际应用角度表明CAN 总线通信中继的应用可行性。