can总线总结-硬件
来源:互联网 发布:云计算idc业务 编辑:程序博客网 时间:2024/06/06 13:24
CAN2.0A/B标准规定:总线空闲时,CAN_H和CAN_L上的电压为2.5V
在数据传输时
显性电平(逻辑0):CAN_H3.5V CAN_L 1.5V
隐性电平(逻辑 1):CAN_H 2.5V CAN_L 2.5V “显性”具有“优先”的意味
同时开始发送时,各发送单元从仲裁段的第一位开始进行仲裁。连续输出显性电平最多的单元可继续发送。
所有单元必须设定成统一的通信速度,可通过发送“遥控帧” 请求其他单元发送数据。
Physical Layer
信号电平
信号传输、抗干扰
位定时、同步
位编解码
Data Link Layer
总线仲裁机制
位填充机制机制
can 报文帧结构
报文打包
can 总线容错
网络负载率
Application Layer
j1939 本质
如何将29ID分类
j1939 组织架构
协议查找
总线速率
通信是通过以下5 种类型的帧进行的。 数据帧 ,遥控帧 ,错误帧 ,过载帧 ,帧间隔
数据帧 用于发送单元向接收单元传送数据的帧。
遥控帧 用于接收单元向具有相同ID 的发送单元请求数据的帧。
错误帧 用于当检测出错误时向其它单元通知错误的帧。
过载帧 用于接收单元通知其尚未做好接收准备的帧。
帧间隔 用于将数据帧及遥控帧与前面的帧分离开来的帧。
数据帧的结构
帧起始:1bit 。从图中看出,在帧间隙后由逻辑1 (至少两个bit)向逻辑0 的跳变就被认为是帧起始,它的作用就是为了硬同步。
仲裁场:由29bit 的ID标示符和IDE 、SRR 、RTR 位构成。IDE 位用于标示该帧是扩展帧(29bit ID)还是标准帧(11bit ID );
控制场:包括两位保留位(必须为0),和数据长度位(DLC0~DLC3)
数据场:包括最多8个字节的数据
CRC 场:是一种算法,对数据进行CRC 校验,共15bit,其后跟了一位CRC 界定符——为1(隐性电平)
应答场:为两个1(总线电平为低电平),其中一位为应答间隙,另一位为应答界定符。成功接收到数据的节点必须发送一位显性位(总线电平为高电平)来应答该发送节点,必须注意:该显性位必须在应答间隙期间,即1bit 的时间内将总线电平拉高。
帧结尾:7个连续的1组成(隐性电平)
SRR 在扩展帧中为一隐性位;RTR位为远程帧标志位。
由上图可以看出,11bit的基本ID首先被发送(ID28~ID18),然后在发送18bit的扩展ID(ID17~ID0 )
数据帧:帧起始+仲裁段+控制段+数据段+ CRC段+ ACK段
1. 帧起始(SOF 1bit):1bit:0
2. 仲裁段:
a) :标准格式(基本ID+RTR:11bit+1bit=12bit):ID+1;(ID的高7位必须有0)
b) :扩展格式(基本ID+SRR+IDE+扩展ID+RTR:11bit+1bit+1bit+18bit+1bit=32bit);
ID+1+1+EID+1; (ID的高7位必须有0)
3. 控制段:
a) :标准格式(基本IDE+r0+DLC:1bit+1bit+4bit=6bit):1+1+DLC;(DLC:0到8)
b) :扩展格式(基本IDE+r1+r0:1bit+1bit+4bit=6bit):1+1+DLC;(DLC:0到8)
4. 数据段(0到8字节max 64):(发送时MSB开始输出);
5. CRC段(CRC+CRC界定符:15bit+1bit=16bit):CRC+1
6. ACK段(ACK槽+ACK界定符:1bit+1bit=2bit):发送方:1+1
Xxx帧结束(EOF:7bit):7个位的1。
0xxxxxxx xxxx111xxxxdata(0-64) crc(15)111
CAN总线通过如下几个方面进行错误检测
(1)当节点赢得总线发送权后,会对总线电平进行检测,当发送的电平和检测到的总线电平不一致时,认为错误
(2)出现6个连续相同的电平时,认为是填充错误
(3)CRC 错误,接收数据的节点按照与发送数据的节点相同的方法计算数据的CRC 校验值,如果接收节点的计算结果与数据包中CRC 场的数据不一致,认为是CRC 错误
(4)应答错误,在应答场如果没有监控到一个显性电平,那么就认定一个应答错误
(5)固定位错误,例如:CRC 界定符等,其电平是固定的,当监控到该电平不相符时,认定一个错误
另:总线同步机制也是CAN总线容错的一种方式
标准格式的ID 有11个位。从ID28 到ID18 被依次发送。禁止高7 位都为隐性。 (禁止设定:ID= 1111111 XXXX )
扩展格式的ID 有29个位。基本ID 从ID28 到ID18,扩展ID 由ID17 到ID0 表示。基本ID 和标准格式的ID 相同。禁止高7 位都为隐性。(禁止设定:基本ID= 1111111 XXXX )
- can总线总结-硬件
- CAN总线(硬件篇)
- CAN总线使用总结
- CAN总线基础总结
- CAN总线基础总结
- CAN总线学习总结
- CAN总线基础总结
- can总线资源总结
- TJA1050T CAN总线通信硬件原理
- STM32 CAN 总线 自我学习总结
- STM32Fxx系列CAN总线配置总结
- STM32的CAN总线学习总结
- CAN总线
- can总线
- CAN总线
- CAN总线
- CAN总线
- CAN 总线
- Java或web中解决所有路径问题
- 由boost::timer_traits引出的部分测试
- 近似js的php毫秒
- Box2D多边形刚体贴图
- listView 中relativeLayout 布局的 android:layout_alignParentBottom="true" 无效的解决办法
- can总线总结-硬件
- Android应用实例之---使用Linkify + 正则式区分微博文本链接及跳转处理如同新浪微博Android版的应用上,当我们点击微博文本上的链接会自动跳转界面,或网站链接跳转网页浏览,或邮箱链接
- flexpaper源码分析
- Rational Rose 工具箱
- 如何判断三点共线
- Native Method
- 创业随感-目标
- EXJjs 递归拼接出的tree json格式
- 如何下载和安装最新的Android开发包(windows版)