李延宁,徐宏伟,吴 超,孙虎元
(1中国兵器工业第203研究所,西安 710065;2清华大学精密仪器与机械学系,北京 100084;3解放军边防学院,西安 7101081)
总线型通信是弹上通信网络的发展趋势,目前战术导弹通讯多采用RS-422/485以及ARINC429总线实现。CAN总线作为一种现场总线,与其他总线形式相比,具有较高可靠性和性价比。
针对导弹武器系统的具体应用背景,CAN总线有如下技术优势:
1)高可靠性。导弹使用环境恶劣,弹上电子设备分布密集,可靠性要求很高。CAN总线模块之间仅靠双绞线连接,减少通讯故障发生的可能性。短帧报文结构,传输时间短,受扰概率低,CRC校验等检错措施保证数据出错率极低。CAN总线还可以作主、备冗余设计。以上均有利于提高导弹通信系统的可靠性。
2)模块化设计。模块独立设计,作为智能终端挂接到CAN总线网络,有助于提高导弹性能,缩短武器研发时间。
3)小型化。相比点对点双线连接,省去了模块间的复杂接线,大大节省弹体内部空间,提高了空间利用率。
4)灵活性。CAN总线可以适应多种导弹电子设备的通信需求。通信介质可选双绞线、同轴电缆或光缆。支持热拔插,适于充当需要级间分离的设备节点。
弹上数据具有不均匀性、变化性、实时性强的特点,主要可以分为周期性发送的数据信息以及主控制器与各节点交互管理和协调的命令字信息。
系统主要节点包括:制导控制计算机、惯性导航组件、高度计、导引头、弹上记录装置等。综合考虑导弹控制系统对网络结构变化、传输内容变化的适应性等方面的需求,采用主从式通讯协议完成控制系统的信息传输。整个总线系统的活动,消息传输的队列,由主控计算机根据导弹控制系统的实际需要通过发送远程请求的方式控制。
图1 两型弹上通信系统示意图
CAN应用层协议规定了信息标识符分配、数据交换方法、点对点通信实现以及报文滤波机制的使用方法等。
该CAN网络应用层帧格式采用扩展帧。短帧报文在增强传输可靠性的同时导致一次传输数据量低的问题,因此需要对报文进行拆解和拼接。利用标识符的低3位作为同一报文的不同报文段顺序编号,可以在接收缓冲区内实现拼接和拆卸。
信息标识符的分配采用静态分配策略,PeliCan模式,标识符为29位。依据报文的发送和接受节点,在图2规定的相应位置置1,其他位置置0即得到ID11-28位,低11位用于区分相同发收节点不同报文。根据报文对实时性的要求、重要程度及发送方式(周期/单次)区分报文优先级。
图2 信息标识符分配
数据交换方法采用远程请求方式,由制导控制计算机通过发送远程请求的方法控制消息传输的队列,其他节点根据主节点的请求被动返回。
采用PC/104主机模拟弹上各通信节点,按照应用层协议发送数据。CANoe和示波器接入网络分别监听总线数据和总线波形。CAN控制器和收发器分别选用SJA1000以及PC82C250。
主从节点的软件流程分别如图3(a)、3(b)所示。
图3 主/从节点软件流程图
CAN总线应用CSMA/CD(Carrier Sense Multiple Access with Collision Detect)即载波侦听多路访问/冲突检测的方式访问和控制总线,通过逐位仲裁的方式使有最高优先权的报文优先发送。但对于低优先级的报文而言,其在总线访问冲突时会有一定的延时。弹上CAN总线网络对实时性有较高的要求,一般而言,不注重实时性的网络也不宜作为控制网络。因此,有必要对该设计的CAN总线网络系统的实时性进行分析。
CAN总线的发送延时主要由以下三部分组成。
串行发送延时是信息串行化的过程中产生的,与信息帧长度以及传输波特率有关。
相同类型的报文高波特率总线系统延时低于低波特率总线系统。
位填充机制使得CAN总线上实际消息传输位数大于原始位数。对于不同字节数的扩展帧,其最大填充位数:
因此扩展帧串行发送最大延时的计算公式可以由式(2)给出。
式(1)、式(2)中L均为数据帧字节长度。
硬件接口延时主要包括光耦延时和总线控制器、收发器延时以及线缆传输延迟。
硬件接口延时可以用如下公式表示:
其中:tr为CAN收发器延迟;tl为CAN控制器延迟;ts为其它器件(如光耦)延迟,l为节点间总线长度,δ为传输介质传播延迟。一般而言,器件延时和总线传输延时均在十纳秒数量级,硬件接口延时相比串行发送延时为一个较小的时间值。
根据CAN规范2.0B,CAN总线可以视作一个带优先级的排队系统。其模型可以作如下简化:
1)输入过程{M(t),t≥0}为 Poisson流,平均到达速率为λ,顾客(报文)源的个数为无穷;
2)对每个顾客的服务时间{vn,n=1,2,…}相互独立且都服从负指数分布,平均服务时间E(vn)=1/μ,其中μ>0,表示单位时间内服务完的平均顾客数(由总线波特率决定);
3)单服务员,非抢占式;
4)优先级高的顾客比优先级低的顾客先得到服务没有顾客从队列中被丢失。
对该排队系统,具有i优先级的报文的等待时间为(该时间包括服务和等待时间,即包含了2.1中的串行发送延迟):
对于该弹上CAN总线网络而言,共有优先级不同的53条周期性报文,更新周期为10ms(考虑最严酷情况,到达速率均为λ=100帧/s)。根据报文长度和总线传输波特率的不同,总线对各条报文的服务时间各不相同。σ表示系统各报文服务强度的和,当该值大于1时,表示系统已经饱和。
理论计算表明,在500k的波特率下,系统仅支持前41条优先级报文的传输,53条报文会导致总线阻塞(在实际总线仿真中验证发现500k波特率下总线网络会出现丢帧情况)。计算表明系统正常通信所需要最低波特率为638k。如图4所示,当总线报文数量较小时,总线波特率对总线延时影响不大;随着报文数量增多,波特率对低优先级报文延时影响逐渐凸显。1M波特率下的最大延时小于600μs,800M波特率下的最大延迟则超过2700μs。当然,排队论分析得到的最大延迟是考虑了所有最差条件的情况,出现这种延迟情况的概率是很低的。
图4 不同波特率下理论计算的媒体访问延迟
基于所建立的弹上CAN总线网络,对该总线网络协议进行了仿真验证。总线波特率分别设定为500k,800k和1000k,得到总线负载分别为 81.81%,51.14%以及41.10%。在500k波特率下,总线负载率过高,系统出现阻塞丢帧。提高波特率有效降低了总线负载,在800k和1000k波特率下,总线节点之间通信正常,没有阻塞和丢帧现象的发生。
在该网络的基础上,增加一个节点用于测量该节点向总线上发送一帧优先级最低的报文(ID:0x02020801数据帧长度为8个字节)时,报文从申请发送到发送成功的延迟时间。延迟时间的测量通过软件计数器的方式实现,总共进行5000次发送,测得在不同波特率下该ID报文的发送延迟时间的概率分布如图5所示。可见,当总线负载较低时,总线空闲,该帧报文能够被立即发送的概率较高;随着总线负载的升高,该帧报文送到总线时出现总线冲突的可能性增加,延迟时间的概率分布向坐标横轴右侧移动,出现较长延时的概率增加。
实测不同总线波特率,不同总线负载下该通信网络的最大延迟时间如表1。500k波特率最大负载时已出现了总线阻塞丢帧,这里不再讨论。800k和1M情况下,当不存在总线冲突的情况下,延迟时间仅包括串行发送延时和硬件接口延时,分别为170~180μs、90~100μs左右。该数值与排队论方法计算得到的最高优先级报文的延迟时间(122μs-800k,78μs-1000k)基本一致。5000次发送测试环境下,800k和1M波特率下的实测最大延迟时间分别为508μs和292μs,远小于最低10ms的数据发送周期。
图5 实际测量的最低优先级报文发送延迟时间概率分布
表1 实际测量的最低优先级报文发送延迟时间
基于某型战术空地导弹控制系统,对弹上CAN总线网络的应用层网络协议和底层软硬件进行了设计。对设计的CAN总线网络系统的实时性进行分析表明:影响CAN总线网络实时性的因素主要包括串行发送延时、硬件接口延时以及介质访问延时。采用非抢占优先级的M/M/1排队论模型研究了该总线系统的介质访问延时,理论计算表明:对该设计的弹上CAN总线网络,800k、1000k波特率下理论最大延迟分别约为2700μs和600μs。在实际应用中,还可以通过优化负载分布,采用动态调度算法等手段进一步减小总线延迟时间。
基于该CAN总线网络的仿真验证表明:800k和1000k波特率下该总线网络能够正常工作。实际测得800k和1000k波特率下该总线网络的最大延迟时间分别为508μs和292μs,该时间延迟远小于应用层协议中最低10ms的数据发送周期,能够满足系统的实时性要求。
[1]龙志强,李迅,李晓龙,等.现场总线控制网络技术[M].北京:机械工业出版社,2011.
[2]陈曦,刘鲁源,吕伟杰,等.基于排队论的CAN总线消息响应时间建模分析[J].天津大学学报,2012,45(3):228-235.
[3]张向文,许学雷,吴林瑞.CAN总线系统信号传输延时分析[J].导弹与航天运载技术,2006(3):48-51.
[4]刘向明,方建安.CAN总线网络的实时性研究改进[J].现代电子技术,2011,34(22):46 -49.
[5]侯书明,徐德民,许化龙.CAN总线技术在导弹控制系统中的应用[J].弹箭与制导学报,2006,26(1):701-704.
[6]DATASHEET—SJA1000[Z].PhilipsSemiconductors,1997.