CAN总线协议

一、结构分层

1.物理层

物理层其定义了信号实际的发送方式、位时序、位的编码方式以及同步机制;

但can的通信速度、采样点、驱动器与总线的电气特性、连接器的形态需要自行定义。

2.数据链路层

数据链路层将物理层收到的信号组织成有意义的消息,并提供传送错误控制的控制流程。

物理层可分为MAC子层和LLC子层,MAC子层属于CAN协议的核心部分。

LLC:为远程数据请求及数据传输提供服务,确定哪些报文需要被验收以及恢复管理和过载通知。

MAC:主要传送报文的规则,包括帧结构、仲裁、错误检测和故障界定等。

3物理层

物理层可分为MAC子层和LLC子层,MAC子层属于CAN协议的核心部分。

LLC:为远程数据请求及数据传输提供服务,确定哪些报文需要被验收以及恢复管理和过载通知。

MAC:主要传送报文的规则,包括帧结构、仲裁、错误检测和故障界定等。

4.传输层

传输层定义了当发送错误和仲裁失败时会再次尝试。

二、CAN总线的电平信号与报文

1.电平信号

CAN总线有CAN_H与CAN_L两根线;

显性信号(0):当CAN_H为3.5V,CAN_L为1.5V,差值为2V时,会发送一个显性信号;

隐形信号(1):当CAN_H与CAN_L均为2.5V,差值为0V时,会发送一个隐形信号;

2.报文的帧类型

数据帧:将数据从发送器传输到接收器。

远程帧:请求发送具有同一标识符的数据。

错误帧:任何单元检测到总线错误就发出错误帧。

过载帧:在相邻数据帧或远程帧之间提供附加的延时。

补充:数据帧和远程帧可以使用标准帧及扩展帧2种格式。

3.报文的帧结构

以上图为例,从左边第1位开始,帧间隔之后分别为:

帧起始(1位):表示一个的开始,始终为显性信号;

仲裁段(标准帧为11位标识符,扩展帧为29位标识符):

标识符可以实现仲裁功能,且可以设置该帧的优先级;

RTR:远程发送请求为,表示这一帧的类型,显性信号0为数据帧,隐形信号1为远程帧;

控制段

前两位为保留位,r1,r0,必须为显性信号;

DLC:由0到8的数字构成(超过8会视为8,不会报错),在数据帧中,表示数据段所包含的数据大小(单位为字节),在远程帧中,表示所要请求的数据长度;

数据段

由0~8字节的数据组成,遵循高位先行的原则;

CRC校验段:

15位的CRC校验位,将帧起始到数据段进行校验;

CRC段界定符为1位隐形信号;

应答段;

1位ACK槽,一般为隐形信号,只有当接收端收到信号且通过校验时,接收端会在ACK槽发送一个显性信号,也可以作为发送端判断数据是否发送成功的标志;

应答段界定符,为应答段的第二位必须为1位隐形信号;

帧结尾:

表示一帧的结束,始终为7位隐形信号;

4.错误帧

错误帧用于在接收和发送消息检测到错误时向网络通知错误,该帧由错误标志和错误界定符构成

错误标志包括主动错误标志和被动错误标志两种

------主动错误标志(Active Error):6位显性位

------被动错误标志(Passive Error):6位隐性位

错误界定符由8位隐性位构成

5.过载帧

过载帧用于下一个数据帧或远程帧需要一定的延时,过载帧由过载标志和过载界定符构成。

过载标志由6位显性位构成

过载界定符由8位隐性位构成

6.仲裁机制

显性位具有"优先"意味,只要有一个单元输出显性电平,总线上即为显性电平。

隐性位具有"包容"意味,只有所有单元都输出隐性电平,总线上才为隐性电平。

标识符越小,优先级越高。

三、错误类型

1.位错误

单元在发送位的同时也对总线进行监视。如果所发送的位值与所监视的位值不相符合,则在此位时间里检测到一个位错误。

2.填充错误

在应当使用位填充法进行编码的报文场中,出现了第6个连续相同的位电平时,将检测到一个填充错误。

3.CRC错误

CRC序列包括了发送器计算的CRC结果。接收器计算CRC的方法与发送器相同。如果计算结果与接收到CRC序列的结果不相符,则检测到一个CRC错误。

4.格式错误

如果一个固定格式的位场含有1个或多个非法位,则检测到一个格式错误。

5.应答错误

只要在应答间隙期间所监视的位不为显性,发送器就会检测到一个应答错误。

四、错误处理机制

先通过5类检测识别错误,依靠收发双计数器量化错误,再按计数器的值触发主动/被动/总线关闭三级响应,保障通信可靠。

补充:

主动错误是可以正常参与总线通信的状态,并在检测到错误时发出"主动错误"标志。

被动错误单元即使检测到错误,而其他处于主动错误的单元如果没发现错误,整个总线也被认为是没有错误的。

被动错误单元检测出错误时,输出被动错误标志。

被动错误状态单元在发送结束后不能马上再次开始发送。在开始下次发送前,在间隔帧期间内必须插入"延迟传送"(8位隐性位)。

相关推荐
咕噜签名-铁蛋2 小时前
火山引擎:字节跳动技术火山喷发,赋能千行百业智能升级
服务器·网络
开***能2 小时前
PROFINET转ASI网关:破解自动化异构网络互联难题的核心枢纽
运维·网络·自动化
蚁巡信息巡查系统2 小时前
网站风险词内容防控对网络安全管理有哪些影响
网络·内容运营
捷米研发三部2 小时前
ProfibusDP转ModbusTCP:工业通讯网关实现西门子S7-300PLC与MES生产线通信
服务器·网络
超级码力6662 小时前
【项目总结】【组网原理】备修信息化及宏观实现
网络·智能路由器
ytttr8733 小时前
EMD分解与希尔伯特变换能量谱分析
网络·信号处理
电脑小管家3 小时前
路由器怎么重新设置wifi密码
网络·windows·计算机外设·智能路由器·电脑
风途知识百科3 小时前
化工厂防爆气象站
网络·人工智能