前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CAN协议学习(一)

CAN协议学习(一)

作者头像
全栈程序员站长
发布于 2022-09-14 08:50:58
发布于 2022-09-14 08:50:58
5860
举报

大家好,又见面了,我是你们的朋友全栈君。

一、CAN协议的特点

1)在总线空闲时,所有单元都可以发送消息,两个以上单元同时发送消息时,对各消息的Identifier进行逐位仲裁比较,仲裁获胜的单元(具有较高优先级)可继续发送消息,仲裁失败的单元停止发送。

2)消息中没有地址,消息广播到总线上,任何总线上的单元都可以接收消息。在总线上增加单元,不会影响到其它的单元。

3)最高数据传输速率1Mbps(距离小于40m),最远传输距离10km(速率低于5kbps)。CAN总线两个节点之间的通讯距离与波特率成反比。工程常用为500kbit/s的通信速率。

类型

最高速率

描述

高速CAN

1Mbit/s

最通用的CAN总线类型

低速CAN

125kbit/s

容错,在一条总线短路时仍能正常工作

单线CAN

50kbit/s

主要用低速的车身电子单元、舒适及娱乐控制领域

4)CAN总线上可挂载多个单元,理论上挂载单元数没有上限,但受总线的时间延迟和电气负载限制。降低通信速率,可增加单元数量。

5)所有单元具有错误检测功能,检测出错误后会立即通知其他单元。正在发送消息的单元一旦检测出错误,会结束当前的发送。

二、网络拓扑

CAN节点挂载在CAN_L和CAN_H之间,为降低反射,高速CAN在CAN总线两端增加了120Ω电阻,低速CAN和单线CAN在节点位置增加了电阻。低速CAN在总的终端电阻为100Ω时性能最佳,因此,确定低速CAN的终端电阻,需要先确定网络中的节点数,每个终端提供100Ω的一部分,并不要求每个终端有相同的阻值,但总值应该为100Ω。如总线中有3个CAN节点,则接到网络上的6个终端电阻值均为600Ω。

对于高速CAN,当CAN_H – CAN_L < 0.5 时为隐性,即逻辑1;当 CAN_H-CAN_L>0.9V时为显性,即逻辑0。

对于低速CAN,当CAN_L = 5V, CAN_H = 0V时为隐性;当CAN_H = 3.6V,CAN_L = 1.4V时为显性。相较于高速CAN,低速CAN显性和隐性的电平差异更大,抗干扰能力更强,

单线CAN只有一根线,要求节点有较好的共地性,抗干扰能力较弱。

三、总线仲裁

总线空闲时,任何节点都可以发送报文。如果同时有多个节点发送报文,会出现总线访问冲突,CAN使用逐位仲裁的方式解决冲突。在仲裁期间,每个发送器都对发送的 Identifier 电平与被监控的总线电平进行比较,如果电平相同,则继续发送报文。若发送器发送了一个隐性电平,而监视到一个显性电平,则节点仲裁失败,退出发送状态。因此,Identifier越小,消息的优先级越高。若在非仲裁期间出现发送电平与监视电平不一致的状况,将产生错误事件。

四、消息机制

CAN标准定义了四种消息类型,分别为数据帧、远程帧(也有称遥控帧)、错误帧和过载帧。

数据帧:发送器向接收器发送数据帧;

远程帧:接收器向发送器请求数据;

错误帧:任何单元检测到总线错误后发出错误帧;

过载帧:用于相邻数据帧和远程帧之间提供延时,由接收器发送,表示接收器来不及处理数据,请求延迟。

五、位填充

CAN总线使用非归零编码(NRZ),具有效率高的特点,但同步性能差。为保证同步通信中有足够的电平跳变,规范中应用位填充机制,在连续的5个相同电平后插入1个反相电平,接收节点收到消息后,自动将填充位删除。若检测到连续6个相同电平,则节点报错。

六、消息过滤

消息在CAN总线上是以广播的形式传输的,但并不是所有节点都对总线上的信息感兴趣。节点可通过CAN控制器中的过滤码和掩码来检验消息的 Identifier 是否匹配,从而决定是否接收消息。

例:设置过滤码位 0x 00 00 15 60,设置掩码为 0x 1F FF FF F0,则节点只接收 Identifier 为 0x 00 00 15 60 ~0x 00 00 15 6F的消息。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/154150.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、CAN协议的特点
  • 二、网络拓扑
  • 三、总线仲裁
  • 四、消息机制
  • 五、位填充
  • 六、消息过滤
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档