CAN
控制器局域网络(Controller Area Network,简称CAN)是一种广泛应用于现代汽车、工业自动化、医疗设备等领域的串行通信协议。CAN总线的设计目标是提供高效可靠的实时通信,为各种设备和系统提供稳定的数据传输纽带。
一、CAN总线的背景: CAN总线最初是由德国公司Bosch在1986年开发的,旨在解决汽车电子系统中复杂而分散的通信需求。随着技术的不断发展,CAN总线逐渐成为工业控制、医疗设备、电力系统等多个领域的通信标准。
二、CAN总线的基本特性:
- 实时性: CAN总线以其高度实时的特性而著称,适用于需要快速响应的应用场景,如汽车的发动机控制系统。
- 可靠性: 通过差分信号传输和错误检测机制,CAN总线具有强大的抗干扰和错误纠正能力,确保数据的可靠传输。
- 多主机架构: CAN总线支持多主机架构,允许多个节点同时发送和接收数据,实现系统的高度灵活性。
- 广播通信: CAN总线采用广播通信方式,允许所有节点都能接收到发送的消息,从而简化系统设计和扩展。
三、CAN总线的应用领域:
- 汽车电子系统: CAN总线在汽车中广泛应用,涵盖了发动机控制、防抱死制动系统(ABS)、空调控制等多个方面,提高了汽车电子系统的集成性和协同性。
- 工业自动化: 在工业控制系统中,CAN总线用于连接各种传感器、执行器和控制器,实现设备之间的实时通信和协同操作。
- 医疗设备: CAN总线在医疗设备中的应用包括医疗影像设备、实验室仪器等,为医疗系统提供高效、可靠的数据传输通道。
- 航空航天: CAN总线也在航空航天领域中得到广泛应用,连接飞机中的各种系统,提高了航空器的可靠性和性能。
四、未来发展趋势: 随着物联网和智能化技术的快速发展,CAN总线正逐渐演变为适应更广泛场景的通信协议。在未来,我们有望看到CAN总线在智能城市、智能家居等领域中发挥更重要的作用,成为连接智能世界的重要纽带。
总结: CAN总线作为一种高实时性、高可靠性的通信协议,已经成为许多行业中不可或缺的一部分。它的广泛应用推动了各个领域的技术发展,为设备之间的协同工作提供了强大支持,预示着在未来更多的智能化场景中将继续发挥着关键作用。
位时序
INFO
按照 CAN 总线的标准,将每一位时间分为四段:别为同步段、传播时间段、相位缓冲段1和相 位缓冲段2。 这些段由最小时间单元 Tq 组成。CAN 控制器通过采样来监测 CAN 总线变化,通过帧起始 位的边沿进行同步
CAN 控制器把上述四段重新划分为三段,分别为:
同步段(SS): 也就是CAN标准里的同步段,固定为1个最小时间单元,正常情况下所期望的位 跳变发生在本时间段内。
时间段1(BS1): 包含CAN标准里的传播时间段和相位缓冲段1,可以被设置为包含1到16最小 时间单元,可以被自动延长,用于补偿 CAN 总线上不同节点频率精度误差带来的相位正向漂移。该 时间段结束为采样点位置。
时间段2(BS2): 也就是CAN标准里的相位缓冲段2,可以被设置为1到8个最小时间单元,可 以被自动缩短,以补偿 CAN 总线上不同节点频率精度误差带来的相位负向漂移。
重新同步跳转宽度(SJW), 是每位中可以延长和缩小的最小时间单元数量上限,范围可设置为 1 到 4 个最小时间单元。
CAN数据传输
CAN总线传输的是CAN帧,CAN的通信帧分成五种,分别为数据帧、远程帧、错误帧、过载帧和帧间隔 数据帧根据仲裁段长度不同分为标准帧(2.0A)和扩展帧(2.0B)
帧结构
- 帧起始
显性位(低电平)组成,发送节点发送帧起始,其他节点同步于帧起始
- 帧结束
由7个隐形位(高电平)组成
仲裁段 只要总线空闲,总线上任何节点都可以发送报文,如果有两个或两个以上的节点开始传送报文,那么就会存在总线访问冲突的可能。但是CAN使用了标识符的逐位仲裁方法可以解决这个问题.,发送节点通过TXD发送数据的同时,RXD也在监测总线状态。若RXD监位与发送位不一致,则节点检测到一个位错误。若在仲裁场监测到的与实际发送不符,则节点停止发送,即总线上有多个节点同时发送数据,该节点没有获得数据发送优先权。 同样在数据校验和ACK响应位,均需要RXD实时获取到总线的数据状态 CAN总线控制器在发送数据的同时监控总线电平,如果电平不同,则停止发送并做其他处理。如果该位位于仲裁段,则退出总线竞争;如果位于其他段,则产生错误事件。 帧ID越小,优先级越高。由于数据帧的RTR位为显性电平,远程帧为隐性电平,所以帧格式和帧ID相同的情况下,数据帧优先于远程帧;由于标准帧的IDE位为显性电平,扩展帧的IDE位为隐形电平,对于前11位ID相同的标准帧和扩展帧,标准帧优先级比扩展帧高.
数据段
一个数据帧传输的数据量为0~8个字节,这种短帧结构使得CAN-bus实时性很高