电子通信协议之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总线标准 只规定了物理层和数据链路层,需要用户自定义应用层。不同的CAN标准仅物理层不同。

图2. CAN总线标准

CAN收发器负责逻辑电平和物理信号之间的转换,如图3所示:

图3. CAN收发器的逻辑电平和物理信号转换  

将逻辑信号转换成物理信号(差分电平),或者将物理信号转换成逻辑电平。  
即从CAN控制芯片输出逻辑电平到CAN收发器,然后经过CAN收发器内部转换将逻辑电平转换为差分信号输出到CAN总线上,CAN总线上的节点都可以决定自己是否需要总线上的数据。具体的管脚定义如下表1所示: 
表1. 管脚定义

CAN标准有两个,即 IOS11898(图4-1)和 IOS11519(图4-2),两者差分电平特性不同。图5展示了两个CAN标准的比对。

图4-1. ISO11898高速CAN电平  
(高低电平幅度低,对应的传输速度快)

图4-2. ISO11519-2低速CAN电平

图5. CAN标准比对

*双绞线共模消除干扰,是因为电平同时变化,电压差不变。

物理层
CAN有三种接口器件,如下图6所示:

图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  ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧

关注我的微信公众号,回复“加群”按规则加入技术交流群。

点击下面图片,有星球具体介绍,新用户有新人优惠券,老用户半价优惠,期待大家一起学习一起进步。


点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。

浏览 130
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报