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

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

3天内不再提示

SoC芯片的CAN总线基础知识详解(一)

全栈芯片工程师 来源:全栈芯片工程师 2024-04-12 10:07 次阅读

CAN总线(Controller Area Network)是一种用于车辆、工业自动化和其他领域的高可靠性、实时性强的串行通信协议。它允许多个微控制器和设备在没有主机计算机的情况下相互通信。

e9496828-f803-11ee-a297-92fbcf53809c.png

CAN总线最初由德国BOSCH公司在1980年代初期为汽车内部通信而开发。1993年,ISO发布了CAN总线标准(ISO 11898),包括数据链路层协议和物理层协议。

ISO 11898-1:定义数据链路层协议。

ISO 11898-2:定义高速CAN总线物理层协议,最高数据传输速率为1Mbps。推荐使用线形拓扑,适用于实时性要求高的场合。

ISO 11898-3:定义低速CAN总线物理层协议,数据传输速率在40Kbps到125Kbps之间。也称为容错CAN,能够在一根信号线失效时继续通信,适用于实时性要求较低的场合。

CAN总线特点:

多主控制:CAN总线支持多个主设备同时存在于网络上,没有主从之分,设备根据消息的优先级进行通信。

差分信号:使用两根线(CAN_H和CAN_L)传输差分信号,提高了抗电磁干扰的能力。

非破坏性仲裁:在消息传输过程中,如果发生冲突,优先级高的消息将被传输,低优先级的消息将等待重传。

错误检测与处理:具有强大的错误检测和处理能力,包括CRC校验、位错误检查等。

灵活的拓扑结构:支持多种网络拓扑结构,如线形、星形、树形和环形

在CAN总线上,逻辑“0”和“1”之间显著的电压差是总线可靠通信的保证。参照上面的描述,CAN总线上两种电平状态分别为:

显性(Dominant ): 0

隐性(Recessive ): 1

CAN总线的信号电平具有线与特性,线与特性是CAN总线仲裁的电路基础,即显性电平(0)总是会掩盖隐性电平(1),如果不同节点同时发送显性和隐性电平,总线上表现出显性电平(0),只有在总线上所有节点发送的都是隐性电平(1)时,总线才表现为隐性。

显性电平:逻辑0,高速CAN中CAN_H端向5V,CAN_L端向0V。

隐性电平:逻辑1,不驱动任何一端。

e95a17f4-f803-11ee-a297-92fbcf53809c.png

高速CAN和低速CAN总线在物理层信号电平上定义有所不同:

高速CAN,定义 CANH 和 CANL 电压相同(CANH = CANL = 2.5V)时为逻辑“1”,CANH和CANL 电压相差 2V(CANH = 3.5V, CANL = 1.5V)时为逻辑“0”。

高速CAN收发器在共模电压范围内(-12V ~ 12V),将CANH和CANL电压相差大于0.9V 解释为显性状态(Dominant),而将CANH和CANL电压相差小于0.5V 解释为为隐性状态(Recessive)。收发器内部有迟滞电路可以降低干扰。

低速CAN,定义CANH和CANL电压相差 5V (CANH =0V, CANL = 5V)时为逻辑“1”,相差 2.2V (CANH = 3.6V, CANL = 1.4V)时为逻辑“0”。

e968b9bc-f803-11ee-a297-92fbcf53809c.png

高速CAN信号电平( ISO 11898-2)

e976dace-f803-11ee-a297-92fbcf53809c.png

低速CAN信号电平( ISO 11898-3)

CAN的错误处理机制:

CRC错误:通过计算和校验数据的CRC值来检测错误。

位错误:在传输过程中实时检测比特错误。

错误帧:当检测到错误时,发送错误帧以请求重传。

总结

CAN总线以其高可靠性、实时性和灵活性,在多个领域得到了广泛应用。随着技术的发展,CAN总线也在不断演进,例如BOSCH发布的CAN FD(Flexible Data-Rate)标准,进一步提高了数据传输速率,满足了更高带宽需求的应用场景。




审核编辑:刘清

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

    关注

    48

    文章

    7423

    浏览量

    150788
  • CAN总线
    +关注

    关注

    145

    文章

    1911

    浏览量

    130551
  • SoC芯片
    +关注

    关注

    1

    文章

    605

    浏览量

    34829
  • 串行通信
    +关注

    关注

    4

    文章

    561

    浏览量

    35230
  • 数字信号电平

    关注

    0

    文章

    9

    浏览量

    7168

原文标题:SoC芯片的CAN总线详解(一)

文章出处:【微信号:全栈芯片工程师,微信公众号:全栈芯片工程师】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    CAN总线基础知识

    嵌入式的工程师般都知道CAN总线广泛应用到汽车中,其实船舰电子设备通信也广泛使用CAN,随着国家对海防的越来越重视,对CAN的需求也会越来
    发表于 04-11 09:30 799次阅读

    科普CAN总线基础知识

    CAN总线种常用的总线,对于刚开始接触CAN总线的,面对着各式各样的资料,可能不知道从何看起
    发表于 05-16 09:49 3126次阅读
    科普<b class='flag-5'>一</b>下<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>的<b class='flag-5'>基础知识</b>

    CAN总线通信协议的基础知识

    本文将介绍CAN总线通信协议的基础知识,目前的内容仅为通用的协议部分,暂不涉及具体的外设模块的用法。研究通信协议的具体内容,主要是看建立通信的物理环境(信号与总线拓扑结构),通信过程的
    的头像 发表于 06-16 10:58 6241次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>通信协议的<b class='flag-5'>基础知识</b>

    CAN协议基础知识

    CAN协议基础知识I2C.SPI总线多用于短距离传输,协议简单,数据量少,主要用于IC之间的通讯,而 CAN 总线则不同,
    发表于 08-19 06:24

    CAN总线详解 精选资料分享

    CAN过滤器详解需要了解的知识:1.CAN:Controller Area Network,控制器局域网2.CAN-bus: Control
    发表于 08-20 07:03

    CAN总线详解

    汽车CAN总线基础详解与基本应用情况与实例分享
    发表于 03-22 15:50 0次下载

    CAN总线通信详解

    CAN总线通信详解
    发表于 03-30 16:46 0次下载

    FreeRTOS基础知识详解pdf下载

    FreeRTOS基础知识详解
    发表于 03-29 14:36 45次下载

    机器视觉基础知识详解模板

    机器视觉基础知识详解模板下载。
    发表于 05-28 14:48 13次下载

    详解CAN总线基础知识

    大家好,我是小麦。最近在调试CAN总线的设备时遇到了些问题,在此简单总结下。本文将对CAN
    的头像 发表于 03-12 10:06 1.5w次阅读

    CAN总线基础知识详细讲解

    CAN总线基础知识详细讲解。
    发表于 04-02 17:44 14次下载

    详解射频微波基础知识

    详解射频微波基础知识
    的头像 发表于 01-29 10:28 2261次阅读

    CAN总线基础知识

    CAN总线种常用的总线,对于刚开始接触CAN总线的,面对着各式各样的资料,可能不知道从何看起
    的头像 发表于 02-09 15:43 3744次阅读

    详解常用的CAN总线(上):报文帧

    CAN总线种常用的总线,对于刚开始接触CAN总线的,面对着各式各样的资料,可能不知道从何看起
    发表于 06-19 17:20 2466次阅读
    <b class='flag-5'>详解</b>常用的<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>(上):报文帧

    无功补偿原理基础知识详解

    无功补偿原理基础知识详解
    的头像 发表于 08-11 09:48 794次阅读
    无功补偿原理<b class='flag-5'>基础知识</b><b class='flag-5'>详解</b>