×
嵌入式 > 嵌入式开发 > 详情

车辆CAN总线

发布时间:2020-08-07 发布时间:
|
在车辆电子网络中,CAN总线是一个重要的协议。它具有一个高达1兆bit的比特率, 并提供简单的微处理器网络,这需要用到一种被称为CAN控制器的专用CAN总线芯片叫做CAN控制器。

CAN的数据传输报文就是数据帧。数据帧允许有一个比较长的ID,所以称为可扩展帧。
适用于某些应用中的,但不是用于汽车中的是远程帧。远程帧允许一个节点响应一个特定的ID。
CAN功能是非常齐全的。这意味着它不仅仅发现很多的错误,同时能够实现自动化传输或者节点自动关闭。
CAN使用比特流来通过接收器到发射器。为了适合于特定的位次序,CAN必须使用位填充。位填充在传统示波器上对CAN波形进行解码很困难。
CAN是一个数据链接层。有三种正在使用的物理层来对CAN进行信号的电动发射。
在使用CAN总线的某些地方,可能用FlexRay或者LIN更合适。

CAN总线数据帧
CAN总线数据帧在CAN上运作。CAN的整个过程实质上是在网络控制器之间发送数据,这就需要数据帧来实现这个功能了。
数据帧是以一个单一的SOF(起始帧)位开始的,跟着就是CAN标识符。CAN标识符是用来标识报文和接下来的节点报文。标识符可以有11位长或者是29位长,这主要是根据保留位的状态来决定。

CAN数据帧以一个SOF位开始,跟着就是ID位

在CAN标识符之后,有一个数据段,数据段是以一个数据长度开始的。CAN数据帧能够有0到8个字节,这样它使用4位的编码长度。数据字节直接跟着数据长度。

CAN 的CRC检查数据的完整性,同时ack表示从另一个节点接收

跟着CRC的是Ack 场,这个场是在所有的其他的正确接收帧的网络节点上进行设置的。
Ack位后,有一段静态时间,它称为紧跟着一个最小的内插帧空间的帧空间结束符。


一个CAN数据帧图片

扩展数据帧
可扩展标识符CAN 帧使用29位用于辨识目的,而不是标准的CAN帧的11位。由于这个额外的ID空间增加了20位(18个ID和两个保留位),它通常不使用于希望得到最高性能的网络当中。
在J1939和GMLAN协议中,较大的ID分为不同的部分,每一个部分都有它的意义。比如,对于J1939和GMLAN的最低的8个ID位表明了一个字节的源地址。

单线CAN扩展ID是有29位长(还没有算入缓冲位)。许多系统设计者不使用这个ID长度,
因为它要求比较高的费用

CAN总线远程数据帧
CAN总线远程帧是可选帧,它用于请求数据。远程帧没有包含数据段,即使数据长码位大于0。你能够从RTR位的状态来判决一个帧是否是远程帧(RTR=1)。远程帧通常不使用在汽车的应用当中。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
五大标准轻松搞定4K超高清电视选购