LIN总线增强型校验_相比于LIN通讯,大家可能对CAN更感兴趣

818c48bb6dc7ea120253469d4a4121a0.png

本文首发自微信公众号“汽车技术馆”。

在之前的一篇文章中我们给大家分享了LIN通讯的一些信息,不知道大家是否感兴趣,因为其实在整车的应用中LIN应用的范围不是特别广,只是在一些对实时性要求不是很高,相对来说比较小一点的控制器才会使用,而且这些小的零部件不太会被大家所关注,不过也不要紧,有用到最好,用不到就当拓展知识了。相比之下,CAN通讯在整车的应用还是非常广泛的,并且这个概念为大家所熟知,今天我们就和大家分享一下关于CAN通讯的一些信息。

什么是CAN通讯

CAN是Control Area Network,直译就是控制局域网,其实说白了和所有的网络都是类似的,大家应该知道我们经常使用的互联网,早期的时候在还没有出现无线网络形式之前都是通过网线连接的,而那时候的因特网是必须要有网线接入才可以访问,而如果你不需要访问外部的网络,只想在一个房间内的几台电脑之间建立网络的话,是可以建立局域网的,其形式如下图所示:

6b554af45c66749bd3e3bf90babac36b.png

建立好局域网之后,各个终端之间就可以互相访问了,简单的说就是可以实现信息的交互了,信息之间的传递是通过网线来完成的。
而CAN通讯的出现也是借用网络的概念,所以它也是成为局域网,只不过它的局域网和我们电脑通常使用的局域网略有不同,CAN的信号传递介质是一对双绞线

0381eb849194f8620258beb56ba169cd.png

建立起来的CAN网络其实是和前面提到的概念是类似的

5e81a8c91c69172656225c40fdcd1770.png

各个节点都连接到一条CAN总线上,然后通过这一条总线实现信息的交互。

CAN的信号结构

还是那句老话,只要是通讯就需要有结构,CAN通讯也不例外,CAN的通讯和LIN其实都是基于帧的,CAN通讯的帧结构如下

3e9ff65adfee1ec67cccb3db88874974.png

这里需要说明一下,CAN的帧分为两种:标准帧和扩展帧。这也分别对应着两个不同的协议:CAN2.0A和CAN2.0B,由上图的结构可以看出,扩展帧和标准帧的区别在于ID的长度,标准帧是11位的长度,而扩展帧是29位的长度,具体的情况我们在后边介绍。
下面我们逐一地说明一下帧结构的组成部分:

01帧起始

帧起始是一个显性位电平,当总线空闲时,发送节点发送一个显性电平,所有的接收节点同步于该帧起始位。这里稍微补充一下,在CAN通讯中,低电平代表的是显性电平,高电平代表的是隐性电平,所以,一个总线显性电平的信号如下:

b39fd78d478a603956cb7ab43ce75ff2.png

这一个显性电平的发出也代表着一帧信号的开始。

02仲裁段


由一开始我们分享给大家的帧结构可以看出,对于标准帧来说,仲裁段包含的部分是:ID和RTR,而对于扩展帧,仲裁段包含的部分是:ID、SRR、IDE和RTR

dbda7ca4b69a98a1278a1f3d18b1dbb4.png

为什么这一段称为仲裁段呢?这里我们就要说一下CAN通讯的仲裁机制。之前对CAN通讯有所了解的朋友应该知道,CAN通讯在收发数据的时候是没有像LIN那样的调度机制的,理论上来说,任何一个CAN节点在任何一个时刻都可以向总线发送数据,那么如果多个节点同时向总线发送数据就需要对信号进行裁决,所谓的裁决就是决定出来谁的可以发,谁的不可以发,因为只有一条总线,所以同一个时刻只能发送一帧消息。

在进行裁决的时候,依据就是信号的ID,总线会对ID进行逐位的比较,比较的过程中显性电平胜出,隐形电平退出发送。举例如下:

5c7eb9b1d14c53e6ab8ecfe028f170a5.png

通过两次裁决之后,A节点最终获得了信息的发送权,B和C节点则在裁决过程中逐一地退出发送模式,这就是CAN信息的仲裁,所以这一段称之为仲裁段。从这里大家应该也可以看出,其实CAN的ID就决定了这帧CAN消息发送的优先级,当然这也是在整车的网路架构开发时根据不同节点的应用定义出的优先级,然后再分配相应的ID。

✎ 小贴士

CAN的ID的数值越小,其优先级越高

仲裁机制对于标准帧和扩展帧是一样的

仲裁段中除了ID外,还有RTR,这个位是为了区分数据帧和远程帧的,当RTR为显性电平时代表的是数据帧,当RTR为隐形电平时代表的是远程帧。既然RTR也在仲裁段内,那么就会和消息的优先级有关系,如果在一帧消息内,ID都是完全一样的,到了RTR位的时候,数据帧是显性的,显然就击败了远程帧,所以同样ID下,数据帧的优先级高于远程帧,其仲裁过程如下:

dfd29116bd515581dff15abc8dd13dba.png

接下来我们再看IDE这个标志位,这个位存在于标准帧的控制段,而存在于扩展帧的仲裁段,这个位在两个帧当中的相对位置是一样的,都是第十三位,所以在一个网络中如果既存在标准帧又存在扩展帧,而且两个帧类型的ID是一样的,那么标准数据帧的优先级是高于扩展数据帧的,因为仲裁到第十三位时,标准帧的IDE是显性电平,而扩展帧的IDE是隐性电平,所以标准数据位胜出。
在扩展帧当中还有一个SRR位,这个是在同样的位置替代远程请求帧的RTR的。

03控制段

两种类型的帧控制段的长度都是六位,在标准帧中的控制段包含IDE,保留位r0以及数据长度DLC;在扩展帧中的控制段包含保留位r0,r1以及数据长度DLC。

7c52d477191c7ae059d8ac2befe4c4c4.png

标准帧中包含的IDE在上一个章节中已经提到了,这里不再赘述。
保留位暂时没有特别的用途,所以一般都用隐性位填充。DLC代表的就是下一个部分数据段的长度,从编码的规则上来说是BCD编码,可以表示的长度范围是0到8,根据具体的应用长度定义即可。

04数据段

这一块没有什么需要特别说明的了,根据需要传输的数据长度传输相应的字节即可。

8835bf469371ae702bdd277f70ae6004.png

每次传输最多只有八个字节,至于多帧传输的问题,我们在后边的文章中再给大家介绍说明。

05CRC段


CRC中文的意思是循环冗余校验,其目的就是要对这一帧信号中前面的部分进行校验,以保证数据传输的正确性,校验的部分包括:帧起始、仲裁段、控制段以及数据段。

a787f07aedb2a7a76c128908bcb89aea.png

发送节点在发送数据时会把计算的校验值写到CRC段,接收节点在接收数据时,会在接收节点以同样的CRC校验方式进行计算,然后比对自己的计算结果和接收的计算结果,以判断数据在传输的过程中是否出现了位丢失或者其它位错误的情况,是一种通讯安全的机制。和其他的累加和校验什么的都是类似的,只是CRC校验的原理稍微复杂一点,在校验的安全性上更高。
至于其校验的原理,不在本文的内容范畴,如果大家有兴趣的话,我们可以专门写一篇关于校验机制的文章,分享给大家。

06ACK段

这一段和CRC是相关的,上一段进行了CRC校验的比对,如果CRC校验结果没有问题的话,接收节点会在总线发送一个显性电平。

6edeae4cff2323d75853fd2ddd736a11.png

最终总线的电平状态是显性电平。

07帧结束

和一开始的帧起始相呼应,帧结束是由七个连续的隐性电平组成。

352e0465a9f6375c64766875ee840e2a.png

在各种类型的CAN帧中,不管是数据帧还是远程帧,数据帧还是扩展帧都是包含相同的帧起始和帧结束。

CAN通讯的一些特点

它是一种多主总线,即每个节点机均可成为主机,且节点机之间也可进行通信。

通信介质可以是双绞线,通信速率最高可达1mb/s。

CAN总线通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余校验、优先级仲裁等项工作。

数据段长度最多为8个字节,可满足通常工业领域中控制命令、工作状态及测试数据的一般要求。同时,8个字节不会占用总线时间过长,从而倮证了通信的实时性。

CAN协议采用crc检验并可提供相应的错误处理功能,保证了数据通信的可靠性。CAN总线所具有的卓越性能、极高的可靠性和独特设计,特别适合工业设备测控单元互连。因此备受工业界的重视,并已公认为最有前途的现场总线之一。

b8ba8ad978d648005ae33ae087320285.png

今天主要给大家分享了CAN的一些基本概念,以及CAN帧的结构,为理解CAN通讯机制打下一个基础,我们在后续的文章中再为大家介绍CAN通讯的报错机制,CAN通讯在诊断上的应用等等,如果有兴趣的话就关注我们吧!

83be87b3b85905ddaef317eaf37bfe23.gif
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值