当前位置: 华文世界 > 科技

CAN协议究竟是什么?CAN帧类型介绍

2024-10-17科技

CAN协议,是Controller Area Network 的缩写,最初这个协议是由汽车行业提出的,因为随着汽车行业智能化的发展,汽车内部越来越多的电子仪器,使得信号线布线越来越繁杂,迫切地需要一种简单且可以挂载多个设备的总线协议出现,来解决这一问题。于是在上世纪80年代末提出后,迅速发展并且于几年后的1993年,正式成为 ISO11898 ISO11519 两种国际标准协议(这两种分别是高速应用和低速应用)。

既然前面提到是由汽车行业提出,并且在后来应用中发展到其他行业的标准协议,那他就必须解决汽车行业,内部电子系统通信的痛点,也就是既需要通讯总线的数据线少,又需要总线能够挂载多个设备,通讯之间的延迟不能大,还要具有能够在复杂环境工作的能力(也就是所谓的抗干扰能力强),那么到底是如何实现的呢?

CAN总线通信原理

首先,最重要的就是CAN协议使用的 两线制(CANH/CANL)差分信号 ,了解485协议的应该大致明白差分信号的意义,也就是由两线的电压差来表示逻辑0/1,从而传达数据。差分信号最大的好处就是抗干扰,因为干扰会导致两线的电平发生类似变换,比如一个干扰在某一刻导致其中一条数据线电压上升20mV,那么双绞线中的另外一根数据线也会受到相同影响,但是两线之间的电压差是并没有发生改变的,也就是并不会影响数据的正确性。同时两线制由于数据线少,也就兼备了布线简洁和低成本的特点。

CAN总线帧类型

CAN的总线通信是通过5种类型的帧来进行的,分别是:

①数据帧:用于发送单元向接收单元传送数据的帧。

②遥控帧:用于接收单元向具有相同ID的发送单元请求数据的帧。

③错误帧:用于当检测出错误时向其它单元通知错误的帧。

④过载帧:用于接收单元通知其尚未做好接收准备的帧。

⑤帧间隔:用于将数据帧及遥控帧与前面的帧分离开来的帧。

CAN总线是由信息仲裁过程的,当所有的设备都接入到CAN总线上,前文说过,CAN总线是要能够满足多设备挂载的,那么就需要有一个完善的机制处理多个设备的信息收发。当总线处于空闲时,最先发消息的单元将得到向总线发布信息的发送权,而多个单元同时发送数据时,会从仲裁段的第一位开始仲裁,呈现显性电平越多,则拥有更高的优先权。

当总线上出现相同ID的数据帧和遥控帧时,仲裁段的最后一位,也就是RTR位为显性电平的数据帧将享有优先权。

当总线上出现相同ID的遥控帧或者扩展格式的数据帧在时,标准格式的 RTR 位为显性位的将享有优先权。

以上资料整理来源于网络。

「福利」蓝牙+Wi-Fi模块王炸福利!免费送样