CAN总线(二)——CAN2.0标准与协议分析
目录
1. CAN 协议的基本概念
2. CAN 协议及标准规格
2.1 ISO 标准化的 CAN 协议
2.2 ISO11898 和 ISO11519-2 的不同点
3. CAN协议
3.1 帧的种类
3.2 数据帧
3.3 遥控帧
3.4 错误帧
3.5 过载帧
4. CAN协议帧的其他要点
4.1 帧间隔
4.2 优先级的决定
4.2.1 数据帧和遥控帧的优先级
4.2.2 标准格式和扩展格式的优先级
4.3 位填充
4.4 错误的种类
4.5 位时序
5. 总结
1. CAN 协议的基本概念
2. CAN 协议及标准规格
2.1 ISO 标准化的 CAN 协议
2.2 ISO11898 和 ISO11519-2 的不同点
在物理层(PMA 层、MDI 层),ISO11898 和 ISO11519-2 的主要不同点如下表所示:
3. CAN协议
3.1 帧的种类
- 数据帧
- 遥控帧
- 错误帧
- 过载帧
- 帧间隔
3.2 数据帧
【注】显性电平和隐性电平:
- 总线上的电平有显性电平和隐性电平两种。
- 总线上执行逻辑上的线“与”时,显性电平的逻辑值为“0”,隐性电平为“1”。
- “显性”具有“优先”的意味,只要有一个单元输出显性电平,总线上即为显性电平。并且,“隐性”具有“包容”的意味,只有所有的单元都输出隐性电平,总线上才为隐性电平。(显性电平比隐性电平更强。)
- 标准格式的 ID 有 11 个位。从 ID28 到 ID18 被依次发送。禁止高 7 位都为隐性。 (禁止设定:ID=1111111XXXX)
- 扩展格式的 ID 有 29 个位。基本 ID 从 ID28 到 ID18,扩展 ID 由 ID17 到 ID0 表示。基本 ID 和 标准格式的 ID 相同。禁止高 7 位都为隐性。(禁止设定:基本 ID=1111111XXXX)
【注】:CRC 顺序是根据多项式生成的 CRC 值,CRC 的计算范围包括帧起始、仲裁段、控制段、数据段。 接收方以同样的算法计算 CRC 值并进行比较,不一致时会通报错误。
表示确认正常接收的段。ACK 槽(ACK Slot)和 ACK 界定符 2 个位构成。
3.3 遥控帧
- •数据帧和遥控帧的不同
遥控帧的 RTR 位为隐性位,没有数据段。
- 遥控帧没有数据段,数据长度码该如何表示?
- 没有数据段的数据帧有何用途?
3.4 错误帧
3.5 过载帧
4. CAN协议帧的其他要点
4.1 帧间隔
4.2 优先级的决定
4.2.1 数据帧和遥控帧的优先级
4.2.2 标准格式和扩展格式的优先级
4.3 位填充
4.4 错误的种类
- 位错误
- 填充错误
- CRC 错误
- 格式错误
- ACK 错误
4.5 位时序
- 同步段(SS)
- 传播时间段(PTS)
- 相位缓冲段 1(PBS1)
- 相位缓冲段 2(PBS2)
【注】:所谓采样点是读取总线电平,并将读到的电平作为位值的点。位置在 PBS1 结束处。
5. 总结
目前CAN总线中使用最广泛的正是CAN 2.0 A/B协议,上述协议正是如此,也称作传统CAN(Classic CAN)。其中CAN 2.0A协议仅支持标帧格式,而CAN 2.0B协议支持标准帧格式(Stand Frame,11位标识符)和扩展帧格式(Extend Frame,29位标识符),CAN 2.0B协议的存在只是为了解决标识符不够用的情况(标识符也称作CAN ID,位于数据帧或遥控帧的仲裁场),所以CAN 2.0B和CAN 2.0A一样每个数据帧最多传输8个字节的数据。标准帧和扩展帧可以在同一条CAN总线上传输。仅支持CAN 2.0A的设备会丢弃接收到的扩展数据帧/扩展遥控帧(因为控制场的保留位不符合语法),但是不会报错。
CAN总线(二)——CAN2.0标准与协议分析相关推荐
- CAN2.0和J1939协议的关系
转发自http://www.cankau.cn/support/help/can-vs-j1939.html 很长时间没搞明白j1939与CAN2.0的关系,这篇文章让我明白了. CAN2.0是一种总 ...
- mediasoup 源码分析(二十四)stun 协议分析
目录 stun介绍 stun 协议分析 属性消息 stun介绍 stun 即:Session Traversal Utilities for NAT.用于NAT穿透的网络协议. 作用: stun协议主 ...
- 【转】PBOC3.0和PBOC2.0标准规范异同分析
2013年2月,中国人民银行发布了<中国金融集成电路(IC)卡规范(V3.0)>(以下简称PBOC3.0),PBOC3.0是在中国人民银行2005年颁布的<中国金融集成电路(IC)卡 ...
- 中国移动飞信协议分析
登录 POST /nav/getsystemconfig.aspx HTTP/1.1 User-Agent: IIC2.0/PC 2.2.0230 Content-Type: application/ ...
- 飞信的协议分析(转)
飞信的协议分析 转自:http://hi.baidu.com/nathan2007/blog/category/%B7%C9%D0%C5%D0%AD%D2%E9%B7%D6%CE%F6 作者:na ...
- QQ协议分析之TCPF包数据分析
2019独角兽企业重金招聘Python工程师标准>>> QQ协议分析之TCPF包数据分析 博客分类: 抓包 说明: 本文档说明的是解密以后的TCPF数据包的字段内容.有关如何解密,请 ...
- Wireshark协议分析从入门到精通(免费版)-陈鑫杰-专题视频课程
Wireshark协议分析从入门到精通(免费版)-5479人已学习 课程介绍 Wireshark是目前全球使用广泛的开源抓包软件(前身为Ethereal),是一个通用化的网络数据嗅探器 ...
- CAN总线(三)——CAN FD协议及其与CAN2.0的异同
目录 1. CANFD的来历 2. CANFD与CAN的协议异同 3. CANFD帧结构解析 3.1 帧起始 3.2.仲裁域 3.3 控制域 3.4 数据域 3.5 CRC 3.6 ACK 3.7 ...
- CAN 总线 之四 BOSCH CAN2.0 Part A
前言 随着越来越多的应用程序接受和引入串行通信,这就要求对特定应用程序的通信功能分配消息标识符以进行标准化.如果将原来由 11 个标识符位定义的地址范围扩大,则可以更方便地使用 CAN 实现这些应 ...
最新文章
- 进程与线程的一个简单解释
- 使用mysql_MySQL 的安装与使用(一)
- 60进制时间计算器_不止加减乘除,Windows 自带计算器还有这些隐藏技巧
- C语言判断一个数是否是回文数Palindrome算法(附完整源码)
- Transact-SQL 示例 - 如何在拼接的动态sql内调用外部变量
- mysql存储过程into_MySQL存储过程中使用SELECT …INTO语句为变量赋值
- java和python混合编程_浅谈C++与Java混合编程
- kali下生成web端后门
- android wp主题,WP桌面:win10系统的最佳替代安卓应用
- Spark源码系列(一)spark-submit提交作业过程
- 关于使用VS.Net2003调试器出现的问题及相关解决方法[转]
- 虚幻引擎(UE4) UMG实例
- 惊艳!用 Python 送女神们别样的礼物!
- IDEA 创建工作空间 (空项目) 项目组
- 【C语言】案例四十八 综合案例——天生棋局(围棋棋盘)
- 做短视频的几个小技巧,助你吸粉引流
- [机缘参悟-12]:“易经“、“儒“、“释“、“道“、“法”、“墨”、“兵”的基本原理与核心思想
- Warning: To load an ES module, set “type“: “module“ in the package.json or use the .mjs extensi
- 38. OP-TEE中secure stroage------安全文件数据格式和操作过程
- Review | 科学禁食时代的来临