IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 整车CAN通讯之canfd协议研究 -> 正文阅读

[系统运维]整车CAN通讯之canfd协议研究

目录

CAN FD是什么

CANFD诞生原因

CAN FD对比FlexRay的优势

CAN FD对比以太网的优势

低成本解决方案:

CAN FD与传统CAN比较

CAN FD报文结构

起始位SOF(start of frame)

仲裁场(Arbitration Field)

DLC控制域(control Field)

CRC

ACK


CAN FD是什么

???

CANFD:可以理解成CAN协议的升级版,只升级了协议,物理层未改变。


CANFD诞生原因

1. 原因主要是因为汽车功能越来越多,越来越复杂,传统的CAN总线(CAN2.0)的负载率越来越高,甚至负载率高达95%

2. 因为传统CAN总线的局限性:

· 传输率最大为1Mbiy/s(典型的<= 500kbit/s);

· 传统CAN数据帧超过50%的额外开销(overhead > 50%)。

3. 对比其他协议,额外开销比例要小得多,如UDP 1500 bytes/datagram, 64 bytes overhead),FlexRay254 bytes/frame, 8 bytes overhead)。

4. 因为历史原因,汽车不可能直接放弃目前的传统CAN总线技术,一切推到重来。那么为了解决CAN总线负载率问题,而又能兼容CAN总线,并且研发成本不能太高的问题。


CAN FD对比FlexRay的优势

1. CAN FD的开发成本远低于FlexRay

2. FlexRayECU升级刷写不友好。

CAN FD对比以太网的优势

1. CAN FD的开发成本远低于以太网;

2. 以太网优势在于大数据的传输但不能完全适用于当前汽车架构。


低成本解决方案:

根据节点优先级动态更改波特率。例如,当节点AB想用高波特率通信时,按流程:

Step1A按照默认波特率通知其他节点停止接收,通知B节点提高波特率。

Step 2A提高波特率:2~10HMz

Step 3AB互相通信

Step 4AB通信完释放总线。

Step5:其它节点按照默认波特率通信。

CAN-FD在仲裁场增加BRS位,只要一个Bit的时间1-2us,就可以无缝切换波特率。仅仅更换传统控制器CAN节点的收发器,使收到BRS位有效时立即关闭接收,避免波特率不一致使低速节点发出错误帧。使用最低的成本就是可以实现一个CAN网络中个别节点的速率提升。


CAN FD与传统CAN比较

CanCanFD主要区别:传输速率不同、数据长度不同、帧格式不同、ID长度不同。

对比传统CAN的数据帧,CAN FD在控制场新添加EDL位、BRS位、ESI位,采用了新的DLC编码方式、新的CRC算法(CRC场扩展到21位)

  1. 一条报文中含有两种速率,仲裁段和传统CAN有着相同的速率,而数据段最高可以达到5Mbps
  2. 拥有更大的数据载荷,一条报文最大可以传输64字节的数据。

成本上CAN FD和传统CAN几乎一样,硬件构造除了CAN Controller需要更换外其他完全一样,软件只需要一些小变更即可,其他触发管理机制也和原来的传统CAN一样,CAN FD兼容传统CAN

通过CAN FD,可以使汽车上的软件拥有更快的下载速度、避免数据分割成数条报文、降低现有总线的负载、增加总线上的节点、避免网络的分割,以及加速长总线(卡车、公交车)上的通信等优势。


CAN FD报文结构

CAN的报文详解见另外一篇文章:一文掌握汽车总线CAN帧报文_ IT技术猿猴的博客-CSDN博客

从上图可以看出,CAN FD报文在数据段之前基本和传统CAN类似,EDL位、BRS位、ESI


起始位SOFstart of frame

传统CAN的数据帧起始位SOFCAN FD的数据帧起始位SOF是一样的,一个bit的显性位‘0’


仲裁场(Arbitration Field

对比传统CAN数据帧,CAN FD共享相同的CAN ID,包括扩展数据帧的ID

CAN FDRRS bit(始终为显性位‘0’)代替RTR


FDFFD format)表示CAN FD还是传统CAN数据帧:

·FDF = ‘0’ --> 传统CAN数据帧

?FDF = ‘1’--> CAN FD数据帧

增加了BRS位(Bit Rate Switch速率不切换/速率切换)来表示时钟频率的切换?BRS = ‘1’表明时钟频率切换

增加了ESI位(Error State Indicator error passive/ active)来表明错误状态。


DLC控制域(control Field

CAN FD因为最大可以传输64字节的数据,所以DLC和传统报文的有些区别

数据段的变化就是由最大8字节变成了如图中DLC所描述的那样,最大可容纳64字节数据。


CRC

数据段后面的CRC和ACK,因为CAN FD的CRC对bit stuff也进行计算,所以在报文帧中增加了Stuff Count

Stuff Count可以分为两部分,即代表bit stuff个数余8的数据位,以及最后的奇偶校验位。

CAN总线由于位填充规则对CRC的干扰,造成错帧漏检率未达到设计意图。CAN FDCRC算法做了改变,即CRC以含填充位的位流进行计算。在校验和部分为避免再有连续位超过6个,就确定在第一位以及以后每4位添加一个填充位加以分割,这个填充位的值是上一位的反码。作为格式检查,如果填充位不是上一位的反码,就作出错处理。CAN FDCRC场扩展到了21

CRC的位长则根据数据长度不同而不同:

  • 传统CAN的CRC位长15bit
  • 数据长度为16字节和16字节以下的CAN FD报文的CRC位长17bit
  • 数据长度为16字节以上的CAN FD报文的CRC位长21bit

ACK

CAN FD的CRC分隔和ACK与传统CAN一样,但是因为考虑到收发器速率切换的问题,总线分别可以容忍数据的1位延长,即CRC Delimiter从原来的1位【1】变为了CAN FD的最大2位【1】,ACK从原来的1位【0】变为了CAN FD的最大2位【0】。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-08 22:59:52  更:2022-03-08 23:01:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 3:41:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码