一、CAN的帧类型
CAN空闲状态为隐性电平(逻辑1),节点之间以帧的形式进行通讯,通讯结束时,总线恢复隐性电平,当连续出现11位隐性电平时,CAN再次进入空闲状态。
CAN一共定义了5种类型的帧,它们的类型及用途如下表所示:
帧 | 帧用途 |
---|---|
数据帧 | 用于节点向外传送数据 |
遥控帧/远程帧 | 用于向远端节点请求数据 |
错误帧 | 用于向远端节点通知校验错误,请求重新发送上一个数据 |
过载帧 | 用于通知远端节点:本节点尚未做好接受准备 |
帧间隔 | 用于将数据帧及遥控帧与前面的帧分割开来 |
下面用几个简单的应用场景来描述每种帧的用法,但它们的实际应用远不如此,有些帧的应用场景比较复杂,尤其是错误帧。
节点A要想发送数据给节点B,必须使用数据帧来发送,数据帧也是CAN通讯中最常用的帧。
如果节点A想主动从节点B获取数据,那么它需要先发送一包遥控帧,节点B接收到后,通过数据帧把数据返回给节点A。
当节点A有大量数据发送时,可能需要连续发送多包数据帧,那么每帧之间必须要加一包帧间隔。
在帧间隔期间,不允许任何节点发送数据,一旦发现总线上有数据出现,接收节点会发送一包过载帧,