电子通信协议之CAN总线协议篇
共 1698字,需浏览 4分钟
·
2022-04-11 12:44
来源: 网路素材
CAN总线在硬件系统中占有一席之地,是国际上应用最广泛的现场总线之一,与我们收藏过的SPI、UART不同,属于“高端高效”系列。
嵌入式的工程师一般都知道CAN总线广泛应用到汽车中,其实船舰电子设备通信也广泛使用CAN,像机器人、工业、自动控制系统中,也都有广泛的应用。随着国家对海防的越来越重视,对CAN的需求也会越来越大。
CAN(Controller Area Network)即控制器局域网,是一种能够实现分布式实时控制的串行通信网络。
想到CAN就要想到德国的 Bosch公司,因为CAN就是这个公司和Intel于80年代末开发的。
CAN有很多优秀的特点,使得它能够被广泛的应用。比如:传输速度最高到1Mbps,通信距离最远到10km,无损位仲裁机制,多主结构。
近些年来,CAN控制器价格越来越低,很多MCU也集成了CAN控制器。现在每一辆汽车上都装有CAN总线。
一个典型的CAN应用场景:
图1. 一个典型的CAN应用场景
CAN总线标准 只规定了物理层和数据链路层,需要用户自定义应用层。不同的CAN标准仅物理层不同。
图2. CAN总线标准
图3. CAN收发器的逻辑电平和物理信号转换
图4-2. ISO11519-2低速CAN电平
图5. CAN标准比对
*双绞线共模消除干扰,是因为电平同时变化,电压差不变。
图6. CAN的三种接口器件
图7. 通过切换开关状态输出高低电平
多个节点连接,只要有一个为低电平,总线就为低电平,只有所有节点输出高电平时,才为高电平。所谓"线与"。可通过切换开关状态输出高低电平,如图7所示。
CAN总线有5个连续相同位后,就插入一个相反位,产生跳变沿,用于同步。从而消除累积误差。
和485、232一样, CAN的传输速度与距离成反比,如图8所示。
图8. CAN的传输速度与距离成反比
CAN总线的 终端电阻的接法如下图9所示:
图9. 低速/高速 CAN-bus终端电阻接法
增加终端电阻的目的是为了增强CAN通讯的可靠性,消除CAN总线终端信号反射干扰。
(注: 一般如果CAN总线使用的是在双绞线上运行,这时我们会增加120Ω的电阻。 为什么是120Ω,因为电缆的特性阻抗为120Ω,为了模拟无限远的传输线。)
CAN总线传输的是CAN帧,CAN的通信帧分成五种,分别为 数据帧、 远程帧、 错误帧、 过载帧和 帧间隔。
数据帧用来节点之间收发数据,是使用最多的帧类型; 、
远程帧用来接收节点向发送节点接收数据;
错误帧是某节点发现帧错误时用来向其他节点通知的帧;
过载帧是接收节点用来向发送节点告知自身接收能力的帧;
帧间隔是用于将数据帧、远程帧与前面帧隔离的帧。
CAN的报文格式
在总线中传送的报文,每帧由7部分组成。CAN协议支持两种报文格式,其唯一的不同是 标识符(ID)长度不同, 标准格式为11位,扩展格式为29位。
‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ END ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧
关注我的微信公众号,回复“加群”按规则加入技术交流群。
点击下面图片,有星球具体介绍,新用户有新人优惠券,老用户半价优惠,期待大家一起学习一起进步。
点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。