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

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

3天内不再提示

CAN和CANFD协议简介(上)

瑞萨MCU小百科 来源:未知 2023-07-31 12:10 次阅读
cbe01752-2f57-11ee-815d-dac502259ad0.gif

前篇内容请点击查看:

RA MCU CAN和CANFD IP介绍

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简化程序和降低成本。

cbf0b008-2f57-11ee-815d-dac502259ad0.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欧”的电阻

cc14ff4e-2f57-11ee-815d-dac502259ad0.jpg

2.1.2 开环总线网络

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

cc2ee472-2f57-11ee-815d-dac502259ad0.jpg

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

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

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

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

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

cc4fea78-2f57-11ee-815d-dac502259ad0.png

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

cc63afae-2f57-11ee-815d-dac502259ad0.png

2.1.4 CAN协议中的差分信号

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

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

cc81e33e-2f57-11ee-815d-dac502259ad0.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。

cca66ee8-2f57-11ee-815d-dac502259ad0.jpg

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

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


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

    关注

    146

    文章

    16016

    浏览量

    343622
  • 瑞萨
    +关注

    关注

    32

    文章

    22214

    浏览量

    84915

原文标题:CAN和CANFD协议简介(上)

文章出处:【微信号:瑞萨MCU小百科,微信公众号:瑞萨MCU小百科】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    canfd协议是什么?canfd协议的应用场景

    CAN FD(CAN with Flexible Data rate)协议是一种串行通讯协议,继承了CAN总线的主要特性,如双线串行通讯、非
    的头像 发表于 04-17 14:55 119次阅读

    在同一路CAN配置经典CAN时能正常发送数据 ,按规格书配置为CANFD时,未能发送成功的原因?

    你好,我在同一路CAN配置经典CAN时能正常发送数据 ,但是按规格书配置为CANFD时,未能发送成功,想请问我以下配置是否正确。 cy_stc_c
    发表于 02-02 07:33

    CAN总线最大能够带多少节点?CANFD相对于CAN2.0有哪些差异呢?

    CAN总线最大能够带多少节点?CANFD相对于CAN2.0有哪些差异呢? CAN总线最大能够带多少节点? CAN总线是一种广泛应用于汽车领域
    的头像 发表于 01-31 14:08 853次阅读

    cancanfd的区别

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

    CANCANFD的区别 CANCANFD如何转换

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

    CAN/CANFD通信协议简介

    CAN遵循ISO制定的OSI(Open System Interconnection)七层模型,其结构体现了两层:数据链路层、物理层。
    的头像 发表于 10-31 12:48 1652次阅读
    <b class='flag-5'>CAN</b>/<b class='flag-5'>CANFD</b>通信<b class='flag-5'>协议</b><b class='flag-5'>简介</b>

    RA MCU CANFD的应用实例(上)

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

    RA MCU CANFD在FSP中的配置详解

    在瑞萨RA系列MCU产品中,目前RA4E2、RA4T1、RA6E2、RA6T2和RA6T3搭载了CANFD Lite(硬件手册中成为CANFD_B)模块,相关的详细IP介绍,请参见之前的文章
    的头像 发表于 10-20 14:46 629次阅读
    RA MCU <b class='flag-5'>CANFD</b>在FSP中的配置详解

    接收CAN公共汽车上数据包的代码

    应用程序: 这个样本代码接收 CAN 公共汽车上的数据包, 使用协议中断的检测来与 CAN 公共汽车通信的失败率匹配, 并动态调整 M253 CANFD 的失败率 。 BSP 版本:
    发表于 08-29 06:24

    玩转先楫CANFD外设系列之二:CAN外设的接收过滤器详解

    设备中的存储空间。从上篇文章《[玩转先楫CANFD外设系列之一]轻松搞起CANFD》中可知道,先楫的CANFD包括了CAN和MCAN。其中HPM6700/HPM64
    的头像 发表于 08-24 08:20 1366次阅读
    玩转先楫<b class='flag-5'>CANFD</b>外设系列之二:<b class='flag-5'>CAN</b>外设的接收过滤器详解

    CANCANFD协议简介(下)

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

    玩转先楫CANFD外设系列之一:轻松搞起CANFD

    一、概述先楫的CANFD外设,有两个CANFD的IP,其中HPM6700系列,HPM6400系列、HPM6300系列使用的是CAN,包括了经典CAN
    的头像 发表于 08-02 08:20 1326次阅读
    玩转先楫<b class='flag-5'>CANFD</b>外设系列之一:轻松搞起<b class='flag-5'>CANFD</b>

    开发者分享:轻松搞起CANFD

    先楫的CANFD外设,有两个CANFD的IP,其中HPM6700系列,HPM6400系列、HPM6300系列使用的是CAN,包括了经典CANCAN
    的头像 发表于 08-01 10:28 1530次阅读
    开发者分享:轻松搞起<b class='flag-5'>CANFD</b>

    CANFD协议 CANFD优势分析

    CAN-FD概述 1.1 基于OSI参考模型的CAN-FD 协议分层 CAN-FD 的协议架构(网络分层)与传统
    的头像 发表于 07-18 11:24 937次阅读
    <b class='flag-5'>CANFD</b><b class='flag-5'>协议</b>  <b class='flag-5'>CANFD</b>优势分析

    Can_43_LLCE驱动程序示例代码如何将CANFD更改为经典CAN?

    我下载了LLCE CAN驱动程序,运行LLCE CAN示例代码ok,目前示例代码中can frame是CANFD,我想将CANFD改成经典
    发表于 05-12 06:28