;
关注华体会HTH官方网站掌握最新行业动态与资讯
当前位置: 首页 > 华体会HTH新闻 > 公司新闻

hth官网登录入口CAN现场总线基础知识总结,看这一篇就理清了(CAN是什么,电气属性,CAN通协议等)

发布日期:2024-04-16 访问量: 来源:华体会HTH官方网站

【系列专栏】:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来!

长期持续带来更多案例与技术文章分享;

原文链接:

——————————————————————————————————

目录

        CAN是一种应用广泛的现场总线,由于其高可靠,多应用于工业自动化、船舶、汽车、医疗和工业设备等方面,如汽车上大量的传感器与模块都是通过CAN总线连接起来的。 本次博文根据瑞萨的《CAN入门书》,对CAN协议进行一个梳理总结,包括其概念、电气属、协议、速率等,意在对CAN有一个基础的认知,详细协议等可参见原书。

        CAN,是Controller Area Network的英文缩写,也就是控制局域网络,其最早由德国BOSCH开发,目前已经是国际标准(ISO 11898),是当前应用最广泛的现场总线之一。BOSCH博世主要是做汽车电子的,因此CAN一开始主要是为汽车电子开发的,目前已经是汽车网络的标准协议。当然,经过几十年的发展,CAN协议的高能和可靠已经得到了业界的认可,目前除了汽车电子外,也广泛应用于工业自动化、医疗、工业和船舶等领域。

        以汽车电子为例,汽车上的电子设备很多,空调、车门、发动机、大量传感器等,这些设备就是通过CAN总线连接形成一个网络,如下图所示:

        图中的各个单元通过CAN总线连接,每个单元都是独立的节点,同一个CAN网络中单元的通信速度一致,不同网络间速度可以不同。

CAN的主要特点如下:

        CAN总线使用两根线来连接各个单元:CAN_H、CAN_L,CAN控制器通过判断这两根线上的电位差来得到总线电平,分为显电平和隐电平两种。显电平表示逻辑“0”,此时CAN_H电平比CAN_L 高,分别为 3.5V 和 1.5V,电位差为 2V。隐形电平表示逻辑“1”,此时 CAN_H 和 CAN_L 电压都为 2.5V 左右,电位差为 0V。  当CAN 总线上没有节点传输数据,即总线空闲时,总线电平一直处于隐。

        CAN 节点单元连接到CAN总线时, CAN_H 接CAN_H、CAN_L 接 CAN_L,CAN 总线两端要各接一个 120Ω的端接电阻,用于匹配总线阻抗,吸收信号反射及回拨,提高数据通信的抗干扰能力以及可靠。CAN2.0传输速度可达 1Mbps/S,最新的 CAN-FD 最高速度可达 5Mbps/S,甚至更高,传输速度和总线距离有关,总线距离越短,传输速度越快。

        通过CAN总线传输数据是需要按照一定协议进行,CAN 协议提供了 5 种帧格式来传输数据:数据帧、遥控帧、错误帧、过载帧和间隔帧,用途如下:

数据帧由7段组成:

        以上是数据帧标准格式和扩展格式两种帧结构,图中 D 表示显电平 0、 R 表示隐电平 1, D/R 表示显或隐,也就是 0 或 1。

(1)帧起始

        标准格式和扩展格式都是由一1位的显电平 0 来表示帧起始。

(2)仲裁段

        仲裁段表示帧优先级,标准格式和扩展格式的仲裁段不同,从上图可见,标准格式的 ID 为 11 位,发送顺序是从 ID10 到 ID0,最高 7 位 ID10~ID4 不能全为隐(1),也就是禁止0X1111111XXXXX这样的 ID。扩展格式的 ID 为 29 位,基本 ID 从 ID28 到 ID18,扩展 ID 由 ID17 到 ID0,基本ID 与标准格式一样,禁止最高 7 位都为隐。

(3)控制段

        控制段由 6 个位构成,表示数据段的字节数,标准格式和扩展格式的控制段略有不同,r1 和 r0 为保留位,保留位必须以显电平发送。 DLC 为数据长度,高位在前, DLC 段有效值范围为 0~8。

(4)数据段

        数据段也就是帧的有效数据,标准格式和扩展格式相同,可以包含 0~8 个字节的数据,从最高位(MSB)开始发送。

(5)CRC段

        CRC段保存CRC校准值,用于检查帧传输错误,标准格式和扩展格式相同。CRC 段由 15 位的 CRC 值与 1 位的 CRC 界定符组成。 CRC 值的计算范围包括:帧起始、仲裁段、控制段、数据段,接收方以同样的算法进行计算,然后用计算得到的 CRC 值与此CRC段进行比较,如果不一致的话就会报错。

(6)ACK段

        ACK 段用来确认接收是否正常,标准格式和扩展格式相同,ACK 段由 ACK 槽(ACK Slot)和 ACK 界定符两部分组成。 发送单元的 ACK,发送 2 个隐位,而接收到正确消息的单元在 ACK 槽(ACK Slot)发送显位,通知发送单元正常接收结束,这个过程叫发送 ACK/返回 ACK。发送 ACK 的是所有接收单元中接收到正常消息的单元, 所谓正常消息是指不含填充错误、格式错误、 CRC 错误的消息,这些接收单元既不处于总线关闭态也不处于休眠态的所有接收单元中。

(7)帧结束

        帧结束段,标准格式和扩展格式相同,帧结束段很简单,由 7 位隐位构成。

接收单元向发送单元请求数据的时候用遥控帧,遥控帧由6个段组成:

1)帧起始:表示数据帧开始的段;HTH官网地址

2)仲裁段:表示该帧优先级的段;

3)控制段:表示数据的字节数及保留位的段;

4)CRC段:检查帧的传输错误的段;

5)ACK 段:表示确认正常接收的段;

6)帧结束,表示数据帧结束的段。

        遥控帧结构基本和数据帧一样,最主要的区别就是遥控帧没有数据段。遥控帧的 RTR 位为隐的,数据帧的 RTR 位为显,因此可以通过 RTR 位来区分遥控帧和没有数据的数据帧。遥控帧没有数据,因此 DLC 表示的是所请求的数据帧数据长度,遥控帧的其他段参考数据帧,不再赘述。

        当接收或发送消息出错的时候使用错误帧来通知,错误帧由错误标志和错误界定符两部分组成:

        错误标志有主动错误标志和被动错误标志两种,主动错误标志是 6 个显位,被动错误标志是 6 个隐位,错误界定符由 8 个隐位组成。

        接收单元尚未完成接收准备的话就会发送过载帧,过载帧由过载标志和过载界定符构成:

        过载标志由 6 个显位组成,与主动错误标志相同,过载界定符由 8 个隐位组成,与错误帧中的错误界定符构成相同。

        帧间隔用于分隔数据帧和遥控帧,数据帧和遥控帧可以通过插入帧间隔来将本帧与前面的任何帧隔开,过载帧和错误帧前不能插入帧间隔。

        间隔由 3 个隐位构成,总线空闲为隐电平,长度没有限制,本状态下表示总线空闲,发送单元可以访问总线。延迟发送由 8 个隐位构成,处于被动错误状态的单元发送一个消息后的帧间隔中才会有延迟发送。

        CAN总线以帧的形式发送数据,到总线上的就是“0”和“1”这样的二进制数据,这里就涉及到了通信速率,即每秒钟发送多少位数据,CAN2.0 最高速度为1Mbps/S。对于CAN总线,一个位分为 4 段:

        这些段由 Tq(Time Quantum)组成,Tq 是 CAN 总线的最小时间单位。帧由位构成,一个位

由 4 个段构成,每个段又由若干个Tq 组成,这个就是位时序。 1 位由多少个 Tq 构成、每个段又由多少个 Tq 构成等,可以任意设定位时序。通过设定位时序,多个单元可同时采样,也可任意设定采样点。 各段的作用和 Tq 数:

 1个位的构成示意图:

        上图中,采样点是指读取总线电平,并将读到的电平作为位值的点。位置在 PBS1结束处。根据这个位时序,我们就可以计算 CAN 通信的波特率了。

        前面提到的 CAN 协议具有仲裁功能,下面我们来看看是如何实现的。在总线空闲态,最先开始发送消息的单元获得发送权。当多个单元同时开始发送时,各发送单元从仲裁段的第一位开始进行仲裁。连续输出显电平最多的单元可继续发送。实现过程:

        单元 1 和单元 2 同时开始向总线发送数据,开始部分他们的数据格式是一样的,故无法区分优先级,直到 T 时刻,单元 1 输出隐电平,而单元 2 输出显电平,此时单元 1 仲裁失利,立刻转入接收状态工作,不再与单元 2 竞争,而单元 2 则顺利获得总线使用权,继续发送自己的数据。这就实现了仲裁,让连续发送显电平多的单元获得总线使用权。

        本次博文根据瑞萨的《CAN入门书》,对CAN协议进行一个梳理总结,包括其概念、电气属、协议、速率等,意在对CAN有一个基础的认知,详细协议等可参见原书。华体会体育

作于202302211810,已归档

———————————————————————————————————

本文为博主原创文章,未经博主允许不得转载!

祝君升职加薪,鹏程万里!

CAN现场总线基础知识总结,看这一篇就理清了(CAN是什么,电气属性,CAN通协议等)

返回列表
分享:

Copyright © 2019 华体会HTH官方网站股份有限公司.粤ICP备16017609号

粤公网安备44030402003674号

网站地图 | XML地图

微信关注 微信关注
微博
0755-83218588
TOP