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总线面向航天卫星的应用分析】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 决定接收或屏蔽该报文,可靠的错误处理和检错机制,发送的信息遭到破坏后,可自动重发,节点在错误严重的情况下具有自动退出总线的功能等特点 。
推荐阅读
- 面向数据的架构
- 如何理解 Python 中的面向对象编程?
- 纯电动汽车不需要变速箱,为何保时捷Taycan 配备了2AT?
- 端口扫描 -- Pscan
- 国企|又一事业单位面向社会招116人,入职能享受编制,符合条件可报名
- 济南茶博物馆开建在即 面向社会征集茶文物
- 用C语言怎样实现面向对象思想?
- 面向对象设计原则之开闭原则
- redis的scan知识点分享
- 面向对象设计原则之接口隔离原则