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

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

3天内不再提示

CAN和CANFD协议简介(上)

RA生态工作室 2024-01-26 08:06 次阅读

1. 概述

CAN(Controller Area Network)和CANFD(Controller Area Network Flexible Data-rate)是一种常用于汽车和工业领域的通信协议。

CAN协议最初是由德国的博世公司Bosch)在20世纪80年代开发的,旨在解决汽车电子设备之间的通信需求。它是一种高效可靠的串行通信协议,可支持在短距离上的高速数据传输。CAN协议以事件触发的方式进行通信,允许多个设备同时参与通信,并通过优先级机制确保数据传输的实时性和可靠性。Classic CAN,传统CAN,有时也称为经典CAN或普通CAN。

CAN协议的特点包括

双线制:CAN总线由CAN_H和CAN_L两根传输线组成,用差分信号传输数据,以提高抗干扰性能。

冲突检测与冲突解决:多个设备同时发送数据时,CAN协议能够检测到冲突并通过优先级机制解决。

帧格式简单:CAN消息由ID、数据、控制位和CRC校验组成,具有较小的开销和较高的数据传输效率。

容错能力强:CAN协议使用位级错误检测和错误恢复机制,能够实现高可靠性的数据传输。

随着汽车电子系统的发展和数据通信需求的增加,CANFD协议应运而生。CANFD在保持CAN协议基本特性的同时,增加了一些新的特性,主要是在数据传输速率和数据长度上的增强。相对于传统的CAN协议,CANFD支持更高的数据传输速率(最高可达到8Mbps)和更大的数据长度(最多可传输64字节的数据)。这使得CANFD能够满足对数据带宽要求更高的应用场景,如高级驾驶辅助系统(ADAS)和自动驾驶领域。

CAN FD协议是由Bosch以及行业专家预研开发的,并于2012年发布。通过标准化对其进行了改进,现已纳入ISO 11898-1:2015。原始的Bosch CAN FD版本(非ISO CAN FD)与ISO CAN FD是不兼容。CAN FD具有四个主要优点:

增加了数据的长度:CAN FD每个数据帧最多支持64个数据字节,而传统CAN最多支持8个数据字节。这减少了协议开销,并提高了协议效率。

增加传输的速度:CAN FD支持双比特率;与传统CAN一样,标称(仲裁)比特率限制为1 Mbit/s,而数据比特率则取决于网络拓扑/收发器。实际上,可以实现高达5 Mbit/s的数据比特率(实际应用中可以达到8 Mbit/s,但没有标准)。

更好的可靠性:CAN FD使用改进的循环冗余校验(CRC)和“受保护的填充位计数器”,从而降低了未被检测到的错误的风险。这在汽车和工业自动化等安全攸关的应用中至关重要。

平滑过渡:在一些特定的情况下CAN FD能用在仅使用传统CAN的ECU上,这样就可以逐步引入CAN FD节点,从而为OEM简化程序和降低成本。

wKgaomaCHjKADCJ9AAERlxC5ayE238.png

与传统CAN相比,CAN FD可以将网络带宽提高3到8倍,效率可从50%提升到90%,从而为数据的增长提供了一种简单的解决方案。

2. CAN协议

2.1 物理层

I2C、SPI等具有时钟信号的同步通讯方式不同,CAN通讯并不是以时钟信号来进行同步的,它是一种异步通讯,只具有CAN_High和CAN_Low两条信号线, 共同构成一组差分信号线,以差分信号的形式进行通讯。

CAN物理层的形式主要有两种:闭环总线网络和开环总线网络。

2.1.1 闭环总线网络

如下所示的图中的CAN通讯网络是一种遵循ISO11898标准的高速、 短距离“闭环网络”,它的总线最大长度为40m,通信速度最高为1Mbps,总线的两端各要求有一个“120欧”的电阻

wKgZomaCHmKAeqhLAAP-CwP115s054.png

2.1.2 开环总线网络

如下所示的图中的是遵循ISO11519-2标准的低速、远距离“开环网络”,它的最大传输距离为1km, 最高通讯速率为125kbps,两根总线是独立的、不形成闭环,要求每根总线上各串联有一个“2.2千欧”的电阻。

wKgaomaCHoeAPYx7AAR0-aWaEGE925.png

2.1.3 ISO11898(闭环总线网络)和11519-2 (开环总线网络)协议的不同点

ISO11898 和 ISO11519-2 标准对于数据链路层的定义相同,但物理层不同。

ISO11898是通信速度为125kbps-1Mbps的CAN高速通信标准。

ISO11519是通信速度为125kbps以下的CAN低速通信标准。

下图描述了ISO11898和11519-2物理层的主要不同点。

wKgaomaCHp-AVcYuAAOxXo-LA1I466.png

用户需根据系统需要设定通信速度及总线长度。

wKgZomaCHrGAHpkqAACs1n0uGuI197.png

2.1.4 CAN协议中的差分信号

差分信号又称差模信号,与传统使用单根信号线电压表示逻辑的方式有区别,使用差分信号传输时,需要两根信号线,这两个信号线的振幅相等, 相位相反,通过两根信号线的电压差值来表示逻辑0和逻辑1。

CAN协议中对它使用的CAN_High及CAN_Low表示的差分信号做了规定, CAN协议标准表示的信号逻辑参见下表。

wKgZomaCHtaAGxgeAAF-DmCA2tk087.png

以高速CAN协议为例,当表示逻辑1时(隐性电平),CAN_High和CAN_Low线上的电压均为2.5v, 即它们的电压差VH-VL=0V;而表示逻辑0时(显性电平), CAN_High的电平为3.5V,CAN_Low线的电平为1.5V, 即它们的电压差为VH-VL=2V。例如,当CAN收发器从CAN_Tx线接收到来自CAN控制器的低电平信号时(逻辑0), 它会使CAN_High输出3.5V,同时CAN_Low输出1.5V,从而输出显性电平表示逻辑0。

wKgaomaCHuqAeygkAAVnP1BfO4g069.png

在CAN总线中,必须使它处于隐性电平(逻辑1)或显性电平(逻辑0)中的其中一个状态。假如有两个CAN通讯节点,在同一时间,一个输出隐性电平, 另一个输出显性电平,类似I2C总线的“线与”特性将使它处于显性电平状态,显性电平的名字就是这样来的,即可以认为显性具有优先的意味。

由于CAN总线协议的物理层只有1对差分线,在一个时刻只能表示一个信号,所以对通讯节点来说,CAN通讯是半双工的,收发数据需要分时进行。在CAN的通讯网络中,因为共用总线,在整个网络中同一时刻只能有一个通讯节点发送信号,其余的节点在该时刻都只能接收。

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

    关注

    146

    文章

    17152

    浏览量

    351260
  • CAN
    CAN
    +关注

    关注

    57

    文章

    2755

    浏览量

    463742
  • CANFD
    +关注

    关注

    0

    文章

    58

    浏览量

    4962
收藏 人收藏

    评论

    相关推荐

    细说下与传统CAN相比CANFD CRC段带来的变化

    很多人了解过CANFD,可能知道CANFD CRC段与传统CAN CRC差距是CRC多项式不同,但实际CANFD CRC段与传统CAN的差异
    的头像 发表于 07-15 11:56 2263次阅读

    RA MCU CANFD的应用实例(

    本篇文章将以RA6E2为例,介绍如何使用瑞萨电子FSP CAN-FD lite的堆栈来设计和实现基于CAN的简易系统。最后,使用两套FPB-RA6E2和CAN收发器模块通过CAN实现相
    的头像 发表于 10-25 15:53 1287次阅读
    RA MCU <b class='flag-5'>CANFD</b>的应用实例(<b class='flag-5'>上</b>)

    CANFD节点如何与经典CAN总线正常通信呢?

    CANFD的来源是什么?CANFD有哪几个显著特点?CANFD节点如何与经典CAN总线正常通信呢?
    发表于 06-16 09:31

    CAN协议特点简介

    CAN协议CAN协议 简介CAN协议 特点(1)多主
    发表于 08-19 06:02

    请问OK1061-S使用的CAN收发器TJA1040是否支持CANFD

    OK1061-S使用的CAN收发器TJA1040是否支持CANFD,我查这个型号是不支持CANFD的,但手册里还是用这个测CANFD通讯了
    发表于 01-12 06:59

    CAN总线协议简介

    CAN总线协议1. CAN简介CAN(controller area network)控制器局域网是用于解决汽车众多控制部件之间的数据交换而
    发表于 03-01 06:29

    CANFD协议中的概念

    CANFD协议中,有个重要的概念TDC(Transmitter Delay Compensation)即发送延迟补偿。为什么会存在发送延迟,又为什么CANFD要对发送延迟做补偿? 为什么存在发送
    的头像 发表于 07-08 14:30 3173次阅读

    【EsDA协议转换】Modbus转CAN/CANFD协议

    实施IIoT,协议转换在某些场合下必不可少。本文介绍如何通过EsDA开发套件,快速完成一个Modbus转CAN协议转换器。    简介 工业物联网感知层的数据来源非常多样,通常来自各
    的头像 发表于 03-29 12:45 791次阅读

    【EsDA协议转换】Modbus转CAN/CANFD协议

    实施IIoT,协议转换在某些场合下必不可少。本文介绍如何通过EsDA开发套件,快速完成一个Modbus转CAN协议转换器。简介工业物联网感知层的数据来源非常多样,通常来自各种多源异构
    的头像 发表于 04-09 14:32 757次阅读
    【EsDA<b class='flag-5'>协议</b>转换】Modbus转<b class='flag-5'>CAN</b>/<b class='flag-5'>CANFD</b><b class='flag-5'>协议</b>

    技术分享丨CAN/CANFD一致性测试

    在汽车领域CAN/CANFD网络通信中,各节点(控制器)的质量不一致可能会引发错误、网络故障或网络瘫痪等问题,所以,为保证CAN/CANFD网络的正常安全运行,必须要执行
    的头像 发表于 04-24 09:28 3651次阅读
    技术分享丨<b class='flag-5'>CAN</b>/<b class='flag-5'>CANFD</b>一致性测试

    CANCANFD协议简介

    的串行通信协议,可支持在短距离的高速数据传输。CAN协议以事件触发的方式进行通信,允许多个设备同时参与通信,并通过优先级机制确保数据传输的实时性和可靠性
    的头像 发表于 07-31 12:10 3327次阅读
    <b class='flag-5'>CAN</b>和<b class='flag-5'>CANFD</b><b class='flag-5'>协议</b><b class='flag-5'>简介</b>(<b class='flag-5'>上</b>)

    CANCANFD协议简介(下)

    前篇内容请点击查看: RA MCU CANCANFD IP介绍 CANCANFD协议简介
    的头像 发表于 08-02 12:15 3113次阅读
    <b class='flag-5'>CAN</b>和<b class='flag-5'>CANFD</b><b class='flag-5'>协议</b><b class='flag-5'>简介</b>(下)

    CANCANFD的区别 CANCANFD如何转换

    CANCANFD的区别 CANCANFD如何转换  CAN(Controller Area Network)是一种广泛应用于汽车和工业控
    的头像 发表于 11-22 16:37 6010次阅读

    cancanfd的区别

    cancanfd的区别  CAN(Controller Area Network)和CAN-FD(CAN with Flexible Da
    的头像 发表于 12-07 15:37 4576次阅读

    CANCANFD协议简介(下)

    CANCANFD协议简介(下)
    的头像 发表于 02-19 12:08 1128次阅读
    <b class='flag-5'>CAN</b>和<b class='flag-5'>CANFD</b><b class='flag-5'>协议</b><b class='flag-5'>简介</b>(下)