CAN总线协议——数据链路层

本文详细介绍了CAN总线中数据帧的各个组成部分及其功能,包括帧起始、仲裁段、控制段等,并对比了数据帧与遥控帧的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


帧种类
数据帧的组成
灰色部分:产生一个电平,知道是显性(因为是低电压)
隐性时突然来了一个下降沿,这个表示这要传输一个数据了
注意电平信号(加粗的黑色线)
(1)、帧起始(标准、扩展格式相同)
    表示帧开始的段,1个位的显性位;
为什么不称高低电平,要用显性隐性??==》有点像生物上的DNA,显性更具包容性
数据帧要注意:在空闲时是隐性的,要开始工作时会有一个低电平(SOF低电平)来通知,
显性容易改变总线上的电平,也容易检测到总线上是否有人在传输数据
(2)、仲裁段 (ID段)
      表示数据的优先级的段
      标准格式和扩展格式在此的构成有所不同;
ID的设置是为了区分数据帧的优先级,优先级越高的数据帧,会被优先接收处理。判断优先级的高低通过识别:从ID的最高位(MSB)开始判断,若连续出现显性电平(逻辑0)个数最多的,优先级越高。
通过STR位来确定是标准格式还是扩展格式
为什么禁止高7位为隐性
(3)、控制段 
表数据帧里数据段的字节数(也就是长度信息)
(4)、数据段(标准、扩展格式相同)
户需要发送的数据内容,可一次性发送0–8个字节的数据。(每个数据占用一个字节)
(5)、CRC段(标准、扩展格式相同)
检查帧传输错误的帧。(检查范围:起始端,仲裁段,控制段,数据段)
由15位的CRC顺序和1位的CRC界定符(用于分隔的位)构成。
(6)、ACK段
确认并响应是否正常接收,
(7)、帧结束
由7个隐形位(逻辑1)组成,因此ID仲裁断禁止出现1111111****形式的 格式。

遥控帧
请求指定ID发送数据,跟数据帧格式相比少一个数据段
遥控帧跟数据帧的区别,遥控帧的PTR位为0,并且没有数据位
错误帧
错误标志说明产生什么的错误, 重叠部分是什么意思?
过载帧

有些错误只有单方面能检测
间隔帧
间隔表示:间隔时间

优先级



因为遥控帧的RTR位为隐性电平,而数据帧的RTR位为显性电平,所以ID位一致的情况下数据帧的游优先级更高
同样,标准帧的优先级也更高
位时序(波特率的设置)
波特率大和位时间有关,为位时间的倒数关系。
一个位分为4段:同步段,传播时间段,相位缓冲段1,相位缓冲段2。每个段都是Tq的整数倍,通过设定每个段的Tq数可计算出: 波特率=1/(n*Tq) 。(可以不用详细了解每个段,但需知道与波特率的关系)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值