1 引言
can总线是由德国bosch公司为现实汽车测量和执行部件之间的数据通讯而设计的、支持分布式控制及实时控制的串行通讯网络。can总线通讯的波特率可高达1mbps,最远距离可达10km;can总线通讯采用短帧结构,数据传输的时间短,受干扰的几率低;can总线协议有良好的检错措施,可靠性较高;can总线通讯对于传送帧可以设定不同的优先级,通过总线仲裁机制使高优先级的信息能够被优先及时传送,增加了can总线通讯的实时性;can总线的完善可靠的通信协议主要由接口器件完成,降低了软件开发的难度。此外,can总线网络中的每节点对应一个地址,理论上基于can总线的网络上可以添加删除任一节点,通讯方式可以为点对点的通讯也可以为广播方式,可以为单主方式也可以是多主方式,因此can总线通讯有相当的灵活性。
can总线开始主要应用于自动化电子领域的汽车发动机部件、传感器、抗滑系统等应用中,但随着can的应用普及,其应用范围已不局限于汽车行业,正在向过程控制、机械、纺织等行业发展,应用领域从高速网络到低成本的多线网络。而且can总线的实时性以及抗干扰能力强等优点也逐步为航天领域所认可。1995年sstl(surrey大学卫星技术公司)将can作为星载遥测/遥控信道,随之sstl开发了基于can的分布式解决方案。至今sstl已经在uosat-12,snap-1,aisat-1,ukdmc,nigeriasat-1,bilsat-1 等6颗leo卫星中应用了can总线网络,用于实现星载计算机与其他任务节点之间的通信;esa在smart-1上也将can作为系统总线和有效载荷总线,实现数据交换和控制命令的传送。在国内,can总线技术在小卫星中也得到了实际的应用。
本文在分析can总线航天应用的基础上,从硬件原理设计、cpu与can总线接口实现以及can总线通信软件设计等方面进行了论述。
表1 can总线故障及其影响分析
2 can总线工作原理
can总线的多主站工作方式的发送原理采用“载波侦听多路访问/冲突检测”(csma/cd:carrier sense multiple access with collision detect)技术实现。利用csma访问总线,可对总线上信号进行检测,只有当总线处于空闲状态时,才允许发送。利用这种方法,可以允许多个节点挂接到同一网络上。当检测到一个冲突位时,所有节点重新回到‘监听’总线状态,直到该冲突时间过后,才开始发送。在总线超载的情况下,这种技术可能会造成发送信号经过许多延迟。为了避免发送延时,可利用csma/cd方式访问总线。当总线上有两个节点同时进行发送时,通过“无损的逐位仲裁”方法来使有最高优先权的报文优先发送。在can总线上发送的每一条报文都具有唯一的一个11位或29位数id。can总线状态取决于二进制数‘0’而不是‘1’,所以id号越小,该报文拥有越高的优先权。
can总线的多主站工作方式的接收原理是通过验收滤波器来实现的。独立的can 控制器sja1000设置了一个多功能的验收滤波器,该滤波器允许自动检查标识符和数据字节。使用验收滤波器的滤波方法可以防止对于某个节点无效的报文或报文组存储在接收缓冲器里,因此降低了主控制器的处理负荷。滤波器由验收码寄存器(acc)和屏蔽寄存器(amr)组成。在basiccan 模式里的验收滤波,其判据为:(acc(7:0) ⊙ id(10:3))+amr(7:0)。如果判据的结果为“11111111”,则表示该帧数据是其他节点传送给本节点的数据,本节点can总线控制器将接收本帧数据,在crc校验无误后于应答间隙产生应答信号。
3 can总线航天应用分析
esa开展的can、1553b、spacewire技术研究表明以差分信号传输的高速串行总线用于星载设备之间的数据传输能保证通信的及时性, 利于降低星载设备的功耗,有助于获得低噪声、抗电磁干扰性强、emi低、信号不受电源开关状态变化影响等优势, 具有良好的航天应用前景。
can总线作为一种专为汽车工业设计的现场总线,具有很多适合航天应用的特点:作为多主站方式的串行通讯总线,can总线具有低成本,高抗电磁干扰性,高总线利用率,很远的数据传输距离(长达10km),高速的数据传输速率(高达1mbps),可根据报文的id决定接收或屏蔽该报文,可靠的错误处理和检错机制,发送的信息遭到破坏后,可自动重发,节点在错误严重的情况下具有自动退出总线的功能等特点。
iso11898建议的can总线的物理电气性能,能够保证在总线发生某些故障时不至于中断通信,而且可以为故障的定位提供可能。表1列出了can总线可能发生的各种开路和短路故障,以及在该故障模式下can总线受影响的情况。
can总线具有安全可信性。从协议分析,can总线的每个ecu具备错误检测、标定和自检的强有力措施。检测错误包括:发送自检、crc校验、位填充和报文格式检验。其错误检测具有如下特性:其一, 所有全局错误都可以检测;其二,发送器的所有局部错误都可以被检测;其三,报文中5个以内的随机分布错误都可以被检测到;其四,报文中长度小于15的突发性错误都可以被检测得到;其五,报文中任何奇数个错误都可以被检测得到;其六,没有检测出的已损报文的剩余错误概率为报文出错率的4.7×10-11。
sstl经过研究发现,在600公里~1000公里的空间领域,空间辐射对卫星的影响相对较小。在这个高度上,总剂量为每年1krad左右(其量级相当于增加5mm的铝屏蔽层),seu发生率相当于每天每mbyte一次(此数据来源于试验观察),并且观测到的sel发生概率非常低,在sstl整个记录中只记录到3到4次值得怀疑的情况(确定的只有4次)。sstl还发现几乎所有的商业cmos器件,在经受10 krad辐照后其性能并无明显下降。sstl在低轨道小卫星采用工业级can控制器芯片构建卫星can总线网络的成功,验证了上述结论。表2为sstl在近年来采用的cots can器件。
表2 surrey大学采用的cots can器件统计列表