CAN学习笔记


以下内容为自己学习笔记。

1. CAN优点

①节点间采用多主通信模式;
②采用短帧结构,有效字节数最多8个,可达汽车实时响应要求;
③具有非破坏性总线仲裁处理机制,根据报文ID判断(ID值越小,优先级越高)
含义:优先级低的暂停发送数据,优先级高的发完后,在开始发,若总线上在传输数据, 等待发送完毕后,在开始发送数据。
④具有可靠的CRC校验方式,传输错误率极低,满足汽车数据传输的可靠性要求;
⑤仲裁失败后,会触发自动重发;
⑥节点出现错误,具有自动脱离总线的功能,不影响总线的正常工作;
⑦通信距离最大10km(速率5kbps以下),通信速率最大1MB/s(距离最长40m);
⑧节点数实际可达110个;
⑨CAN节点设计成本较低,通信介质采用双绞线,差分信号传输数据。

2. CAN物理层

根据传输速度分为高速CAN、低速容错CAN,汽车总线上还有LIN总线,三者对比可以参考以下s网站。https://blog.youkuaiyun.com/DP29syM41zyGndVF/article/details/110297485
在这里插入图片描述

2.1 高速CAN

1、总线电压
数字信号1、0分别对应隐性、显性(“显0隐1”),当CAN_H、CAN_L
都为2.5V无差压 呈隐性
为3.5V、1.5V,具有2V差压,呈显性

传输数据的介质和信号:采用双绞线的差分信号,可以有效的解决传输信号时收到的共模干扰。 在这里插入图片描述

2、拓扑结构

其中干线长度max=40m的原因是因为传输速率决定。
①CAN最长通信距离:10km,传输速率5kbps以下
②CAN通信速率最大:1MB/s,距离最长40m(一般汽车上都在这个范围内)

终端电阻RL在(100~130Ω)范围内,一般都取典型值120Ω ,一般放在CAN总线的两个端点上(放在其他地方效果不好)

终端电阻主要意义(参考:http://news.21dianyuan.com/detail/40553.html)
①可以确保电平快速进入隐性状态;
②提升信号质量。 (减少能量反射,进而减小振铃)
若不处理会造成:信号串扰、信息丢失、总线紊乱的后果
在这里插入图片描述

2.2 低速容错CAN

1、总线电压
在这里插入图片描述

2、拓扑结构
分为总线型和星型。
在这里插入图片描述

2.3 两者对比

在这里插入图片描述
备注:低速容错CAN的CAN_H、CAN_L总线电压,两者资料不一值,上面对比图为2010资料,以总线电压以下表为准。

在这里插入图片描述

2.4 CAN编码方式

采用 NRZ(非归零编码),相同带宽情况下,NRZ编码方式的信息量更大。

2.5 通信方式

在这里插入图片描述
CAN采用异步串行通信,相对于同步串行通信来说少了一根数据线,直接利用波特率采样来读数数据,但是会因为波特率误差,会产生读数数据错误。如下图所示。

在这里插入图片描述如何解决波特率误差带来的通信错误?
答:在信号的跳变沿时刻进行同步,将误差累计限制在
两个跳变沿。
在这里插入图片描述
当发送数据出现很多0或者1是,采集不到跳边,如果解决?
答:采用填充位在连续5个相同位后插入一个相反位,产生跳变沿,用于同步。(5个位是测试后适合的长度)
在这里插入图片描述

2.6 CAN采样点

在这里插入图片描述

2.7 同步

分硬同步和重同步两类,分别作用如下:
在这里插入图片描述

3. CAN数据链路层

相关缩写名称
在这里插入图片描述

3.1 CAN报文帧种类与帧格式

3.1.1 报文帧种类
在这里插入图片描述
3.1.2 数据帧结构(用的最多)在这里插入图片描述
① 帧起始(SOF):由一个显性位组成。
仅在总线空闲的时候发送,用于其它接收节点从这个帧起始位进行同步。
②仲裁段
在这里插入图片描述
IDE位
显性(0):标准帧(11位ID),位于控制段中;
隐性(1):扩展帧(29位ID),位于仲裁段中;
这里ID号其实就是设置模块的优先级,值越低,优先级越高,用于仲裁。同为标准/扩展格式时,ID号不能设置一样。
RTR位
显性(0):数据帧;
隐性(1):远程帧;
SRR位:无实际意义,永远为1,意味着,仲裁时,标准帧的优先级高于控制帧
总结
RTR:保证数据帧优先级高于遥控帧;
SRR :保证标准数据帧的优先级高于扩展数据帧。
IDE :保证标准遥控帧的优先级高于扩展遥控帧。

③控制段
在这里插入图片描述
r1、r0位:保留位,总为0
DLC:数据段长度码,共4bit,DLC=0~7,当DLC=8-15,都代表8个字节(原因是CAN报文最长8个字节)
④数据段
传输bit0~bit7,注意,传输时首先发送一个字节的MSB(最高位)
⑤CRC段
在这里插入图片描述
根据前4段数据计算一个CRC,与接收(发送端)到的CRC值比较,判断发送数据是否有意义,最后加一个固定的CRC界定符(固定为隐性电平)。
⑥ACK端
主要判断数据发送完毕后,总线是否为显性电平。
在这里插入图片描述
⑦帧结束(EOF)
由7个连续的隐性位组成。
⑧帧间隔ITM(不算数据帧内容)
在这里插入图片描述
由三个连续的隐性位组成。
总线空闲判断:检测到11个连续的隐性位(一个ACK界定符+帧结束7个+帧间隔3个)后,表示总线空闲。

⑨备注
我们分析的是固定格式,实际中是可能存在填充位的。

3.2 CAN总线竞争与仲裁机制

工作原理:发送数据同时读取总线数据,两者数据做比较。具体工作原理如下图。
在这里插入图片描述
下图为仲裁流程在这里插入图片描述

3.3 CAN节点状态与错误处理机制

1、错误类型,大致有以下5种。
在这里插入图片描述
2、错误检测区域
在这里插入图片描述
3、错误帧
主动错误发送:6个连续显性电平(错误标志)+8个连续隐性电平(错误界定符)
被动错误发送:6个连续隐性电平(错误标志)+8个连续隐性电平(错误界定符)
4、节点状态
在这里插入图片描述
具体执行流程
在这里插入图片描述
疑问:“7”处如果TEC>8,TEC加多少呢? 待解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值