0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CAN总线详解

单片机与嵌入式 来源:单片机与嵌入式 2023-01-30 09:24 次阅读

1 简介

CAN控制器局域网络(Controller Area Network, CAN)的简称,是一种能够实现分布式实时控制的串行通信网络

优点:

传输速度最高到1Mbps,通信距离最远到10km,无损位仲裁机制,多主结构。近些年来,CAN控制器价格越来越低。

Ø 低成本:ECUs通过单个CAN接口进行通信,布线成本低。

Ø 高集成:CAN总线系统允许在所有ECUs上进行集中错误诊断和配置。

Ø 可靠性:该系统对子系统的故障和电磁干扰具有很强的鲁棒性,是汽车控制系统的理想选择。

Ø 高效率:可以通过id对消息进行优先级排序,以便最高优先级的id不被中断。

Ø 灵活性:每个ECU包含一个用于CAN总线收发芯片,随意添加CAN总线节点。

2 CAN总线网络

53becfdc-a02a-11ed-bfe3-dac502259ad0.png

CAN总线网络主要挂在CAN_H和CAN_L,各个节点通过这两条线实现信号的串行差分传输,为了避免信号的反射和干扰,还需要在CAN_H和CAN_L之间接上120欧姆的终端电阻。为什么是120Ω,因为电缆的特性阻抗为120Ω,为了模拟无限远的传输线。

3 CAN收发器

CAN收发器的作用是负责逻辑电平和信号电平之间的转换。

53caf88e-a02a-11ed-bfe3-dac502259ad0.png

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

53d6f440-a02a-11ed-bfe3-dac502259ad0.png

4 CAN信号表示

CAN总线采用不归零码位填充技术,也就是说CAN总线上的信号有两种不同的信号状态,分别是显性的(Dominant)逻辑0和隐形的(recessive)逻辑1,信号每一次传输完后不需要返回到逻辑0(显性)的电平。

53dfcc96-a02a-11ed-bfe3-dac502259ad0.png

显性与隐性电平的解释:

CAN的数据总线有两条,一条是黄色的CAN_High,一条是绿色的CAN_Low。当没有数据发送时,两条线的电平一样都为2.5V,称为静电平,也就是隐性电平。当有信号发送时,CAN_High的电平升高1V,即3.5V,CAN_Low的电平降低1V,即1.5V。

按照定义的:

CAN_H-CAN_L < 0.5V 时候为隐性的,逻辑信号表现为"逻辑1"- 高电平。

CAN_H-CAN_L > 0.9V 时候为显性的,逻辑信号表现为"逻辑0"- 低电平。

5 CAN信号传输

发送过程:CAN控制器将CPU传来的信号转换为逻辑电平(即逻辑0-显性电平或者逻辑1-隐性电平)。CAN发射器接收逻辑电平之后,再将其转换为差分电平输出到CAN总线上。

53ff1f88-a02a-11ed-bfe3-dac502259ad0.png

接收过程:CAN接收器将CAN_H 和 CAN_L 线上传来的差分电平转换为逻辑电平输出到CAN控制器,CAN控制器再把该逻辑电平转化为相应的信号发送到CPU上。

541131fa-a02a-11ed-bfe3-dac502259ad0.png

6 CAN数据传输

CAN总线传输的是CAN帧,CAN的通信帧分成五种,分别为数据帧、远程帧、错误帧、过载帧和帧间隔。

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

542c516a-a02a-11ed-bfe3-dac502259ad0.png

帧起始

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

帧结束

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

543538b6-a02a-11ed-bfe3-dac502259ad0.png

仲裁段

只要总线空闲,总线上任何节点都可以发送报文,如果有两个或两个以上的节点开始传送报文,那么就会存在总线访问冲突的可能。但是CAN使用了标识符的逐位仲裁方法可以解决这个问题。

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

假设节点A、B和C都发送相同格式相同类型的帧,如标准格式数据帧,它们竞争总线的过程是:

5443442e-a02a-11ed-bfe3-dac502259ad0.png

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

546a411e-a02a-11ed-bfe3-dac502259ad0.png

数据段

一个数据帧传输的数据量为0~8个字节,这种短帧结构使得CAN-bus实时性很高,非常适合汽车和工控应用场合如图27所示。

5471e5e0-a02a-11ed-bfe3-dac502259ad0.png

数据量小,发送和接收时间短,实时性高,被干扰的概率小,抗干扰能力强。

审核编辑 :李倩

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

    关注

    57

    文章

    2766

    浏览量

    464214
  • 通信
    +关注

    关注

    18

    文章

    6069

    浏览量

    136329
  • 总线
    +关注

    关注

    10

    文章

    2900

    浏览量

    88312

原文标题:CAN总线详解

文章出处:【微信号:单片机与嵌入式,微信公众号:单片机与嵌入式】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    CAN总线通信原理介绍 CAN总线模块选择指南

    CAN总线(Controller Area Network)是一种串行通信协议,主要用于汽车电子控制单元之间的通信。它由Bosch公司在20世纪80年代初开发,因其可靠性、实时性和灵活性而广泛应用
    的头像 发表于 11-21 10:21 931次阅读

    CAN总线的优势及应用

    CAN总线的优势及应用资料大全。  
    的头像 发表于 11-12 17:27 463次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>的优势及应用

    CAN总线与LIN总线的区别

    随着汽车电子系统的复杂性增加,车辆内部通信的需求也在不断增长。CAN总线和LIN总线作为两种主要的车载通信协议,各自扮演着重要的角色。 1. 设计原理 CAN
    的头像 发表于 11-12 10:13 2502次阅读

    如何使用Arduino实现CAN总线通信

    CAN总线(Controller Area Network)是一种多主控制的串行通信协议,广泛应用于汽车电子、工业自动化等领域。它以其高可靠性、实时性和灵活性而受到青睐。Arduino作为一个
    的头像 发表于 11-12 10:09 1318次阅读

    CAN总线通信协议详解

    一、CAN总线概述 CAN总线是一种多主控制的串行通信协议,它允许多个设备共享同一通信线路,而无需中央控制单元。这种设计使得CAN
    的头像 发表于 11-12 09:46 1509次阅读

    CAN总线是如何通信的#CAN #常学常新

    CAN总线
    北汇信息POLELINK
    发布于 :2024年11月07日 16:34:29

    CAN总线基础知识汇总#CAN #CANoe #汽车总线

    CAN总线
    北汇信息POLELINK
    发布于 :2024年11月04日 13:35:54

    什么是CAN时钟?#CAN #汽车CAN总线  #CANoe

    CAN总线
    北汇信息POLELINK
    发布于 :2024年10月29日 12:23:36

    CAN总线知识】全面了解CAN总线协议

    提及总线,总是让人联想到那些交错在一起的计算机电线。那么这些电线如何发挥功效呢?这还得配合总线协议的管理来使用。那么今天我们介绍的就是CAN总线协议。看看这个协议的含义和应用吧。
    的头像 发表于 10-15 08:05 1654次阅读
    【<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>知识】全面了解<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>协议

    CAN总线智能操作面板 硕博电子 #can总线 #按键面板 #硅胶面板

    CAN总线
    长沙硕博电子科技股份有限公司
    发布于 :2024年09月29日 09:32:54

    CAN总线控制器是什么意思

    CAN总线控制器(Controller Area Network Bus Controller)是CAN总线通信系统中的核心部件,它扮演着接收、处理并转发
    的头像 发表于 09-03 14:16 1247次阅读

    can总线隔离模块的作用

    CAN总线隔离模块是一种用于保护CAN总线通信系统的电子设备,它通过在CAN总线
    的头像 发表于 06-16 10:32 1745次阅读

    can总线中断状态什么意思呢?

    CAN总线(Controller Area Network)是一种广泛使用的现场总线通信协议,主要用于汽车、工业控制等领域。在CAN总线通信
    的头像 发表于 06-16 10:21 1894次阅读

    什么是CAN总线通信?CAN总线工作原理

    这意味着变送器通过CAN收发器改变总线电平,并将其信息传输到CAN总线。接收器通过监测总线电平将总线
    发表于 02-19 14:53 6916次阅读
    什么是<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>通信?<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>工作原理

    高速CAN总线和低速CAN总线的特性

    高速CAN总线和低速CAN总线的特性 高速CAN总线和低速C
    的头像 发表于 01-31 14:09 2908次阅读