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 器件统计列表
器 件 翱翔任务次数
philips can 收发器:当前主流产品 4
philips pca82c250 10
philips p87c592 10
philips can 8 位外设:产权主流产品 4
philips pca82c200:can 8 位外设 6
infineon:8 位 can 微掌握器(a/d,pwm,例如 8051) 6
microchip can spi 外设 4
4 、 星载打算机中的双冗余容错 can 总线设计
图 1 描述了基于 can 的双冗余总线构造。基于 can 总线的双冗余系统通信总线的基本设计思想是在卫星各功能模块之间布下两条基于 can 的系统通信总线,即用两套 can 总线掌握模块分别连接到总线 bus0 和 bus1 上。正常情形下优先在一条总线上通信,这条总线涌现故障时通过另一条进行通信并重新初始化出错的总线以备将来再用。这样纵然一条通信通道故障后不会影响全体系统的数据交流,大大提高了通信的可靠性。
图 1 基于 can 的双冗余总线构造
图 2 can 总线硬件设计事理简图
图 2 为星载打算机中 can 总线硬件设计事理框图。 can 总线协议掌握芯片选用 philip 的工业级器件 sja1000,收发器选用 philip 的 pca82c250。cpu 与 sja1000 的接口掌握逻辑通过 actel 的反熔丝 fpga 实现。sja1000 事情在 intel 模式,事情时钟为 7.3728mhz。复位旗子暗记通过 max708 产生。为了有更好的 emc/emi 性能和抑制比较器的噪声,vdd 通过 rc 滤波器退耦。
SJA1000 的 RX1 旗子暗记处理非常关键。如果利用外部集成收发器电路而且没有在时钟分频寄存器里使能比较器旁路功能,RX1 输出要被连接到 2.5V 的参考电压(82C250 的 Vref 输出)。图 3 显示了 CBP 的两种设置所对应的电路。对付利用 82C250 集成的收发器电路,SJA1000 的干系数据手册建议利用旁路功能,即 CBP 设置为 1,在这种情形下,SJA1000 的比较器旁路功能有效,减少了内部传播延迟,即 td2
图 3 SJA1000 的吸收输入比较器旁路设计
82C250 的 RS 旗子暗记通过电阻 Rext 接地。RS 管脚的电流决定了传输介质上传输旗子暗记的旗子暗记沿的陡峭程度,Rext 阻值的大小必须根据 CAN 总线的事情速率及其事情环境进行设计和选择,详细可拜会 SJA1000 的数据手册或者运用文档。
5、 CPU 与 SJA1000 的接口逻辑设计
星载打算机的 CPU 不同于 8086,采取的是独立地址和数据总线。CAN 总线掌握器 SJA1000 采取地址 / 数据总线复用办法,须要将 CPU 的总线旗子暗记经由适当逻辑处理后才能够知足 CAN 总线掌握器的时序哀求。图 4 和图 5 是 SJA1000 在 Intel 模式下的读写时序。
图 4 SJA1000 读时序(Intel 模式)
图 5 SJA1000 写时序(Intel 模式)
按照 SJA1000 的数据手册,确保 SJA1000 的读写精确,如下的时序参数必须知足:
l tW(AL):必须担保 ALE 的韶光,最小不能小于 8ns;
l tLLRL/tLLWL:读写时 ALE 无效到读写旗子暗记有效的韶光,最小不能小于 10ns;
l tLCRL/tLCWL:片选旗子暗记有效后读写旗子暗记有效的韶光,最小不能小于 0,即片选有效必须涌如今读写旗子暗记有效前;
l tW(R):读旗子暗记有效宽度,最小不能小于 40ns;
l tW(R):写旗子暗记有效宽度,最小不能小于 20ns;
l tWHLH:写旗子暗记无效到下一次 ALE 有效的韶光,最小不能小于 15ns;
l th(AL-A):在 ALE 为低电平后地址该当保持韶光,最小不能小于 2ns。
CPU 和 CAN 总线接口采取地址直接映射。接口时序设计重点是接口掌握逻辑必须产生符合上述关键参数的读写时序。如果大略的按照 ALE《=not nADS 方法处理,不知足哀求时序关系,这在调试过程中已经得到验证。为此,在设计中采取了 FPGA 技能,以求很好地办理 CAN 总线与 CPU 的接口问题。图 6 描述了通过 VHDL 编写实现接口电路的状态转移图和 FPGA 设计产生的读写 CAN 总线时序,个中时钟周期不低于 67ns,该时序知足 SJA1000 哀求。
图 6 CAN 总线接口时序设计的状态转移和时序
6、 CAN 总线通讯软件的设计
双冗余总线构造的通讯软件紧张由初始化、吸收和发送三个模块组成,掌握流图见图 7。在程序设计时采取了 SJA1000 的 Basic 模式,初始化中须要对 BUS0 和 BUS1 分别进行初始化,包括 SJA1000 的掌握寄存器、吸收代码寄存器、吸收屏蔽寄存器、总线时序寄存器等。
图 7 CAN 总线通讯软件的掌握流图
发送模块采取主动发送办法,BUS0 为优先通讯通道,若 BUS0 通道状态不正常,则启动 BUS1 通道进行通讯,并对 BUS0 通道进行初始化以备下次通讯时利用。
吸收模块采取中断吸收办法,为了担保吸收到的数据被实时处理,CAN 总线的吸收中断被设置为高优先级中断。在吸收中断中首先判断吸收通道是 BUS0 还是 BUS1,然后从吸收通道按数据长度进行数据吸收。
7 、结束语
CAN 总线技能的诸多优点如实时性好,通信速率高,抗滋扰能力强,低廉的价格等使它不仅广泛运用于工业掌握领域,而且开始向航天领域进军。其 COTS 工业级器件 SJA1000 经由翱翔也得到了验证,CAN 总线适宜航天运用的特点得到了充分的展示和翱翔验证。