CAN 总线基础

CAN 总线基础CNA 协议手记 can 高和 can 低电压多少正常

大家好,欢迎来到IT知识分享网。

CAN总线历史

CAN 即(Controller Area Network)控制器局域网,由德国Bosch 公司提出,并在国际应用最广的现场总线之一。
1983年,Bosch开始开发车身网络。
1986年2月,在SAE(汽车工程协会)大会发布了CAN协议,正式开始了国际化普及。
1991年,Bosch发布了CAN2.0,里面包含了CAN2.0 A,CAN2.0 B两部分,分别为标准CAN和扩展CAN。
1993年11月,ISO 11898发布(data link 数据链路层规范,high-speed physical layer 高速物理层规范)。
1995年,发布扩展CAN数据格式。
2003年,将ISO 11898 分成 11898-1(数据链路层) 和11898-2(高速物理层)。
2004-2013年,相继发布了 ISO 11898 -4(TTCAN),11898-3(低功耗低速物理层),11898-5(低功耗高速物理层),11898-6(带选择性唤醒的物理层)
2015年, ISO 11898-1修订版发布包含经典CAN和CAN FD。







CAN总线初识

SAE委员根据SAE J2057将汽车数据传输网分为了A,B,C三类,主要原因是因为当前没有哪一个总线网络能够兼顾未来汽车的性能和成本要求,所以主机厂和OEM都还将继续采用多协议的通讯网络。CAN总线在其中被划分为了B类总线的国际标准。

CAN总线是一种串行通讯总线,是一种多主总线,通讯介质可以是双绞线,同轴电缆或光导纤维,传输速率可达1Mbp/s。
CAN总线通讯接口集成了CAN协议的物理层和数据链路层功能,可以完成对通讯数据的成帧处理,完整帧中包括了位填充、数据块编码、循环冗余校验、优先级判断等工作。
CAN协议最大特点是废除了传统的站地址编码,取而代之的是对通信数据块进行编码,最多可以标识2048(标准格式2.0A)或者5亿(2.0B扩展格式)个数据块,这样理论上就不会在节点个数上有限制,而数据块长度最大为8字节,不会占用总线过长时间,这样保证了通讯的实时性。CAN协议还采用了CRC校验,且提供了错误处理功能(错误检测,错误通知,错误恢复),保证了通信数据的可靠性

CAN总线基本原理

在这里插入图片描述
总线电平为隐性时,CAN高和CAN低的电压都为2.5V,电压差为0,总线为隐性状态(逻辑值1)
总线电平为显性时,CAN高电压为3.5V,CAN低电压为1.5V,电压差为2.0V,总线为显性状态(逻辑值0)

CAN物理层规范

终端电阻

高速CAN线需要在CAN_H和CAN_L加终端电阻,电缆上的终端电阻应与电缆的标称阻抗相匹配,终端匹配电阻一般为120Ω(min 119Ω;max130Ω),每个终端电阻应能消耗0.25W的功率(标准来源:ISO 11898-2:2003)。

如果高速CAN传输线路没有终止,线路上的每个信号变化都会导致反射,这可能会导致通信故障。由于通信在CAN总线上双向流动,因此CAN要求终止电缆的两端。然而,这一要求并不意味着每个设备都应该有一个终端电阻。如果沿电缆放置多个设备,只有电缆末端的设备应该有终端电阻。放置终端电阻位置应放置于总线两端,即CAN网络中应该有两个120欧的终端电阻。

CAN数据帧帧结构

CAN帧的种类

数据帧:用与发送单元给接收单元传送数据的帧。

远程帧:接收数据的节点可以通过发送远程帧要求源节点发送数据,它由6个域组成:帧起始、仲裁场、控制场、CRC场、应答场和帧结束。它没有数据场,其RTR位为隐性电平.3.

错误帧:错误帧由错误标志和错误界定符两个域组成。
接收节点发现总线上的报文有错误时,将自动发出活动错误标志,它是 6 个连续的显性位。其他节点检测到活动错误标志后发送错误认可标志,它由6个连续的隐性位组成。由于各个接收节点发现错误的时间可能不同,所以总线上实际的错误标志可能由6~12个显性位组成。错误界定符由8个隐性位组成。当错误标志发生后,每一个CAN节点监视总线,直至检测到一个显性电平的跳变。此时表示所有的节点已经完成了错误标志的发送,并开始发送8个隐性电平的界定符。

超载帧:用于接收单元通知其尚未完成接收准备的帧。包括两个位场:超载标志和超载界定符存在两种导致发送超载标志的超载条件类型:一个是要求延迟下一个数据帧或远程帧的接收器的内部条件:另一个是在间歇场的第一和第二位上检测到显性位。超载标志由6个显性位组成,超载界定符由8个连续的隐性位组成

帧间隔 :用于将数据帧及遥控帧与前面的帧分离开来的帧。由间歇(3个隐性位)、总线空闲、暂停发送等场构成

数据帧和遥控帧有标准格式和扩展格式两种格式。标准格式有 11 (2047)个位的标识符(Identifier: 以下称 ID),
扩展格式有 29 (5亿)个位的 ID。

数据帧

数据帧由 7 个段构成。

帧起始(SOF):

表示数据帧或遥控帧开始的段,由1个显性位组成。

仲裁段:

表示该帧优先级的段,标准帧中由11位ID+1位RTR共12位组成。扩展帧中由29位ID+1位SRR+1位IDE组成。
注:*RTR(远程传输请求位)*在数据帧中必须为显性电平,在遥控帧中必须为隐性电平。
*SRR(代替传输请求位)*在扩展格式中始终为隐性。
IDE (标识符扩展位) 对于扩展格式属于仲裁场,对于标准格式属于控制场。IDE 在标准格式中为显性电平,而在扩展格式中为隐性电平。


控制场
数据段:数据的内容,可发送 0~8 个字节的数据。
CRC 段:检查帧的传输错误的段。包括15位CRC序列和1位CRC界定符。
ACK 段:

表示确认正常接收的段。包括ACK 槽和ACK界定符。发送端在应答场中发送2个隐性位,一个正确接收到有效报文的接收器在应答间隙期间传送一个显性位报告给收发器,表示自己正确接收到报文。其他的接收到匹配CRC序列的接收器通过在应答槽(应答间隙内)把显性位写入发送端的隐性位来报告自己接收到了正确报文。应答界定符必须一直是隐性位。

帧结束(EOF)

非破坏性仲裁特点

总线按照“线与”机制,对总线上可能存在冲突的节点进行仲裁,显性电平覆盖隐性电平。发送隐性电平的节对于发送显性电平的节点将会仲裁失利,失去总线访问权从而转为接收节点。

位填充 :属于比较重要的一种抗干扰的措施,减少数据在传输时候出错。

数据帧或远程帧中除了CRC界定符,ACK场和帧结束不需要位填充,其余场都需要每遇到连续5个相同极性位时自动插入一个相反的位(补码位)

错误状态

标题错误帧

标题过载帧

标题错误计数值

文中如有错误之处,欢迎交流指正,感激不尽。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/130568.html

(0)
上一篇 2025-08-14 16:26
下一篇 2025-08-14 16:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信