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

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

3天内不再提示

一文读懂汽车CAN总线技术原理(上)

上海航芯 来源:上海航芯 作者:上海航芯 2022-01-20 17:31 次阅读

CAN总线协议的优点

• 布线减少,成本低
• 接线简单,节省时间
• 丢失消息的自动重传
• 支持错误检测
• 灵活的数据传输速率

CAN 定义

CAN代表控制器局域网,专为满足汽车行业的需求而设计。在引入CAN之前,每个电子设备都使用多条电线连接到其他设备以实现通信。但是当汽车系统中的功能增加时,由于布线系统繁琐,维护起来很困难。在CAN总线系统的帮助下,只需将每个ECU连接到公共串行总线,即可让ECU相互通信,而无需太多复杂性。因此,与汽车系统中使用的其他协议(即CAN与LIN)相比,CAN由于复杂性较低而且更加稳健。

CAN协议可以被定义为在一个通过串行总线连接的电子设备网络中传输和接收信息的一套规则。CAN网络中的每个电子设备被称为一个节点。每个节点都必须有硬件和软件嵌入其中进行数据交换。一个CAN总线系统的每个节点都有一个主机微控制器单元、CAN控制器和CAN收发器。CAN控制器是一个可以嵌入在主机控制器内或单独添加的芯片,它需要管理数据并通过收发器在串行总线上发送数据,反之亦然。CAN收发器芯片用于使信号适应CAN总线水平。

CAN是一个基于消息的协议,每个消息都由一个预先定义的唯一ID来识别。传输的数据包被CAN总线网络中的所有节点接收,但根据ID,CAN节点决定是否接受它。当多个节点试图同时发送数据时,CAN总线遵循仲裁过程。

CAN 总线电气规格

CAN收发器处理的CAN信号有单端信号和差分信号(CANH和CANL)。CAN_High和CAN_Low线路在理想状态下为2.5V。CAN将逻辑“0”定义为显性位,将逻辑“1”定义为隐性位。传输显性位时,CAN_High变为 3.5V,CAN_Low变为1.5V,即显性位的差分电压为2V。当发送隐性位时,CAN_High和 CAN_Low线被驱动到2.5V,表示隐性位的差分电压为0V。CANH和CANL线的物理端应加120欧姆的CAN总线终端电阻,以避免任何信号反射。

1.png


图1. CAN总线差分信号

CAN 的帧类型

帧是一种定义的结构或格式,在网络中携带有意义的数据(字节)。CAN有四种帧类型:数据帧、远程帧、错误帧、过载帧。

数据帧

数据帧包含用于传输的节点数据的帧。数据帧由提供信息的附加字段组成,即仲裁字段、控制字段、数据字段、CRC字段、2位确认字段和帧结束。

有两种类型的数据帧:标准帧格式、扩展帧格式

两种格式的唯一区别是标准帧支持11位标识符,扩展帧支持29位标识符,由11位标识符和扩展18位标识符组成。IDE位在标准帧中是显性的,在扩展帧中是隐性的。

标准帧格式:

标准帧主要用于发送数据。

2.png

图2. 标准帧

术语

• SOF - 帧的开始,表示帧传输的开始。
• Identifier - 11位唯一的ID,也代表信息的优先级值越低,优先级越高。
• RTR - 远程传输请求,它对数据帧是显性的,对远程帧是隐性的。
• IDE - 单一识别扩展,它对标准帧是显性的,对扩展帧是隐性的。
• R0 - 保留位。
• DLC - 数据长度代码,定义了正在发送的数据的长度,它的大小为4位。
• 数据——要传输的数据和长度由DLC决定。
• CRC——循环冗余校验,它包含前面应用程序数据的校验和,用于错误检测。
ACK——确认,它的长度为2位,如果接收到准确的消息,则占主导地位。
• EOF——帧的末端,必须是隐性的。
• IFS——帧间空间,它包含控制器将正确接收的帧移动到正确位置所需的时间。

扩展帧:

3.png

图3. 扩展帧

它与标准帧相同,但有一些额外的字段。

SRR替代反向请求。SRR位总是作为隐性位传输,以确保基本数据帧与扩展数据帧相比具有较高的优先权,如果两个信息具有相同的11位标识符,它还包含一个11位标识符以外的18位标识符。

r1- 保留位。

远程帧

远程帧与数据帧相似,但有两点不同。远程帧是由接收方发送的,用于请求发送方提供数据,所以远程帧和数据帧之间的区别是远程帧不包含任何数据字段,因为它不用于数据传输。第二个区别是远程帧的RTR 位为隐性状态,当总线上具有相同标识符的数据帧和远程帧同时发送时,由于数据帧RTR位是显性的,数据帧将在仲裁中赢得总线控制权。

错误帧

错误帧是用于接收和发送消息时检测出错误时,通知错误的帧。错误帧由六个显性位组成的错误标志和由八个隐性位组成的错误界定符构成。

错误标志分为:主动错误标志、被动错误标志

主动错误标志:当错误主动节点检测到一个总线错误时输出的一个主动错误标志,来中断当前的数据发送。其中主动错误标志由6个连续的显性位构成。

被动错误标志:当错误被动节点检测到一个总线错误时输出的一个被动错误标志,并紧接着发送错误定界字段。其中错误被动标志由6个连续的隐性位构成。

错误计数器:如果在总线上检测到一个错误,那么TEC或REC计数就会增加。

  1. 发送错误计数器(TEC)
  2. 接收错误计数器(REC)

• 当 TEC 和 REC 小于 128 时,发送活动错误帧
• 当 TEC 或 REC 大于 127 且小于 255 时,传输被动帧
• 当TEC大于255时,节点进入总线关闭状态,此时不能发送帧

4.png


图4. 错误转换状态图

过载帧

过载帧是用于接收单元通知发送单元它尚未完成接收准备的帧。过载帧中包含两个字段,过载标志和过载界定符。过载标志由6个显性位和紧随其后的其他节点产生的过载标志构成,过载界定符由8个隐性位组成,在以下两种情况下,节点会发送过载帧:

  1. 当接收单元需要发送节点延缓下一帧传输
  2. 节点在帧间间隔检测到非法显性位

仲裁

仲裁是一种解决冲突的机制,当一个以上的节点同时准备传输信息时。只要总线是空闲的,任何节点都可以传输数据。如果多个节点同时准备传输数据,对总线的访问就会发生冲突,可以通过使用标识符的仲裁来解决。在仲裁过程中,每个发射器都会将传输的比特值与总线上的比特值进行比较。如果比特值是相同的,节点继续传输比特。如果传输的比特值与总线上的比特值不一样,那么,优势比特就会覆盖劣势比特。

CAN报文的仲裁字段由1位或29位标识符和RTR位组成。具有最低值的标识符具有最高的优先权。如果数据帧和远程帧都有相同的标识符,并准备在同一时间发送数据,那么数据帧的优先级就高,因为远程传输位(RTR)在数据帧中是主导位,在远程帧中是隐性位。

消息级CAN总线错误控制机制

与其他协议相比,即CAN与LIN、CAN与MOD总线相比,CAN协议是稳健的,错误检查使CAN协议达到稳健。通过这些机制,如果检测到错误,节点就会传送一个错误帧并销毁传送的帧。

CRC校验

循环冗余校验值由发送节点计算并通过CRC字段发送,该值被所有节点接收。然后所有接收节点计算CRC值并将该值与发送值匹配。如果值不同,则生成错误帧。

ACK时隙

当发送节点发送消息时,在确认时隙中发送一个隐性位。如果接收到一条消息,则确认槽由显性位替换,该位将确认至少一个节点正确接收到该消息。如果该位是隐性的,则没有节点正确接收到消息。

形式错误

当一个固定形式的位场含有1个或多个非法位,则检测到一个形式错误,如帧结尾固定为隐性位,却检测到了显性位。

*内容来源自PathPartner Technology,版权归原作者所有,如涉及版权问题请联系沟通

审核编辑:符乾江

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

    关注

    146

    文章

    17112

    浏览量

    350900
  • CAN总线
    +关注

    关注

    145

    文章

    1942

    浏览量

    130714
  • 汽车
    +关注

    关注

    13

    文章

    3482

    浏览量

    37235
收藏 人收藏

    评论

    相关推荐

    CAN总线技术的未来趋势

    CAN总线技术自1980年代末期推出以来,已经成为汽车和工业控制系统中不可或缺的通信标准。随着物联网(IoT)、自动驾驶技术以及智能制造的兴
    的头像 发表于 11-21 10:37 323次阅读

    使用CAN总线进行汽车电控系统设计

    Area Network,控制器局域网)总线是德国Bosch公司在20世纪80年代初为解决汽车中众多的控制与测试仪器之间的数据交换而开发的种通信协议。它已经成为国际标准和行业标准,被誉为“最有前途的现场
    的头像 发表于 11-12 09:58 246次阅读

    读懂单灯控制器工作原理

    读懂单灯控制器工作原理
    的头像 发表于 11-11 13:13 189次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>读懂</b>单灯控制器工作原理

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

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

    读懂MSA(测量系统分析)

    读懂MSA(测量系统分析)
    的头像 发表于 11-01 11:08 851次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>读懂</b>MSA(测量系统分析)

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

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

    汽车CAN总线的特点和应用

    汽车CAN总线种连接汽车各种控制单元的通信协议和数据传输标准,它对于现代汽车的发展具有重要意
    的头像 发表于 09-30 11:31 544次阅读

    读懂新能源汽车的功能安全

    电子发烧友网站提供《读懂新能源汽车的功能安全.pdf》资料免费下载
    发表于 09-04 09:22 3次下载

    CAN/CAN FD/CAN XL三大总线协议解读,是逐步替代关系吗?

    电子发烧友网报道(/吴子鹏)在软件定义汽车逐渐成为主流的当下,数据传输的速度和效率成为打造智能汽车的瓶颈,在这种大背景下,传统CAN总线
    的头像 发表于 08-12 01:12 4359次阅读

    技术小课堂 | CAN总线应用常见问题(1)

    ··CAN是控制器局域网络(ControllerAreaNetwork,CAN)的简称,由德国的BOSCH公司开发,并最终成为国际标准(ISO11898),是国际应用最广泛的现场总线
    的头像 发表于 07-25 08:37 645次阅读
    <b class='flag-5'>技术</b>小课堂 | <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>应用常见问题(1)

    CAN总线的特点、原理及应用

    CAN总线(Controller Area Network)是种用于汽车和工业自动化领域的局域网技术,具有实时性、可靠性、灵活性和成本效益
    的头像 发表于 06-16 10:19 3496次阅读

    读懂CAN通讯错误帧

    CAN总线通信技术广泛应用于多个行业,是每个总线设计工程师必学的个通讯网络。然而,对于CAN
    的头像 发表于 06-12 08:24 2667次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>读懂</b><b class='flag-5'>CAN</b>通讯错误帧

    CAN总线错误帧及其排查方法简单介绍#汽车CAN总线 

    CAN总线汽车电子
    北汇信息POLELINK
    发布于 :2024年03月15日 14:14:40

    CAN总线汽车领域的应用及挑战

    作为种串行通讯协议,CAN总线初期专为汽车电子设备间的通信而开发。借助其高度可靠、实时响应及灵活应用等特质,该总线
    发表于 02-15 14:46 1267次阅读