一文读懂 CAN 总线

便携设备

127人已加入

描述

CAN   控制器局域网

在物理线路上,由于噪声干扰、信号衰减等多种原因,数据传输过程中常常出现差错,而物理层只负责透明地传输结构的原始比特流,不可能进行任何差错控制。因此,当需要在一条线路上传送数据时,除了必须有一条物理线路(链路)外,还必须有一些必要的规程来控制这些数据的传输。把实现这些规程的硬件和软件加到链路上,就构成了数据链路层(Data Link Layer)。

什么是 CAN 总线

CAN 是“Controller Area Network”的缩写,即“控制器局域网”,是一个 ISO 标准的串行通信协议。CAN 总线由德国 BOSCH 公司研发设计,用于应对汽车上日益庞大的电子控制系统的需求,其最大的特点是可拓展性好,可承受大量数据的高速通信,并且高度稳定可到。ISO 组织通过 ISO11898 和 ISO11519 对 CAN 总线进行了标准化,使其早早确立了欧洲汽车总线标准的地位。时至今日,CAN 总线已经获得业界的高度认可,其应用也从汽车电子领域延伸至工业自动化、船舶、医疗设备、工业设备等领域。

CAN 总线网络拓扑结构

CAN 总线的物理连接只需要两根线,常称为 CAN_H 和 CAN_L,通过差分信号进行数据的传输。CAN 总线有两种电平,分别为 隐性电平 和 显性电平,这两种电平有着类似漏极 I/O 电平信号之间“与”的关系:

若隐性电平相遇,则总线表现为隐性电平;

若显性电平相遇,则总线表现为显性电平;

若隐性电平和显性电平相遇,则总线表现为显性电平。

一个典型的 CAN 总线网络拓扑结构如图1所示,注意两端的终端电阻是必需的。

CAN总线数据链路层包括

1、通信机制

2、数据帧

3、错误检测

4、帧格式

5、位定时与同步

CAN总线帧格式

数据就是通过这种格式按位发送出去。总线上总共有以下5种不同类型的帧。

CAN 总线协议规定了5种帧,分别是数据帧、遥控帧、错误帧、过载帧以及帧间隔,实践中数据帧的应用最为频繁。各种帧的用途如表1所示。

数据帧用来节点之间收发数据,是使用最多的帧类型;远程帧用来接收节点向发送节点接收数据;错误帧是某节点发现帧错误时用来向其他节点通知的帧;过载帧是接收节点用来向发送节点告知自身接收能力的帧;用于将数据帧、远程帧与前面帧隔离的帧。

数据帧根据仲裁段长度不同分为标准帧(2.0A)和扩展帧(2.0B)。

帧起始由一个显性位(低电平)组成,发送节点发送帧起始,其他节点同步于帧起始;

帧结束由7个隐形位(高电平)组成。

仲裁段

CAN总线是如何解决多点竞争的问题?

由仲裁段给出答案。

CAN总线控制器在发送数据的同时监控总线电平,如果电平不同,则停止发送并做其他处理。如果该位位于仲裁段,则退出总线竞争;如果位于其他段,则产生错误事件。

帧ID越小,优先级越高。由于数据帧的RTR位为显性电平,远程帧为隐性电平,所以帧格式和帧ID相同的情况下,数据帧优先于远程帧;由于标准帧的IDE位为显性电平,扩展帧的IDE位为隐形电平,对于前11位ID相同的标准帧和扩展帧,标准帧优先级比扩展帧高。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • 热点推荐

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分