CAN总线学习条记(1、CAN总线界说)

[复制链接]
发表于 2025-12-30 18:09:32 | 显示全部楼层 |阅读模式
CAN总线学习条记(1、CAN总线界说)

江协科技CAN总线入门教程视频学习条记
CAN特性


  • 两根通讯线(CAN_H\CAN_L),两根线,无需工地
  • 差分信号,抗干扰本事强
  • 高速CAN(ISO11898):125K-1Mbps,<40m
  • 低速CAN(ISO11519):10K-125Kbps,<1km
  • 异步,无需时钟线,通讯速率由装备各自约定
  • 半双工,可挂载多装备,多装备同时发送数据时通过仲裁判定先后序次
  • 11/29位报文ID,用于区分消息功能,同时决定优先级
  • 可设置1-8字节有用载荷
  • 可实现广播式和哀求式两种传输方式
  • 应答、CRC校验、位添补、位同步、错误处置惩罚等特性
CAN硬件电路


CAN电平尺度


帧格式

帧范例
用途
数据帧
发送装备主动发送数据(广播式)
遥控帧
吸收装备主动哀求数据(哀求式)
错误帧
某个装备检测堕落误时,向其他装备关照错误
过载帧
吸收装备关照其尚未做好吸收预备
帧隔断
用于将数据帧及遥控帧与前面的帧分脱离
数据帧和遥控帧使用最多,别的3种帧做相识即可
数据帧



  • 在ack槽时,可以有多个吸收方同时拉开总线,由于一个报文可以被多个装备同时吸收。
  • SOF(start of frame):帧起始。体现反面一段波形为传输的数据位
  • ID(identify):标识符,区分功能,同时决定优先级
  • RTR(remote transmission request):远程哀求位,区分数据帧和遥控帧
  • IDE(identifier Extension):扩展标记位,区分尺度格式和扩展格式
  • SRR(substitute remote request):替换RTR,协议升级时留下的偶然义位
  • r0/r1(reserve):保存位,为后续协议升级留下空间
  • DLC(data length code):数据长度,指示数据段有几个字节
  • Data:数据段的1-8个字节有用数据
  • CRC(cyclic redundancy check):循环冗余校验,校验数据是否准确
  • ACK(acknowledgement):应答位,判定命据有没有被吸收方吸收
  • CRC/ACK界定符:为应答位前后发送方和吸收方开释总线留下时间
  • EOF(end of fram):帧竣事,体现数据位已经传输完毕

遥控帧

遥控帧无数据段,RTR为隐形电平1,别的部分与数据帧类似

仲裁

多装备同时发送时的规则

  • 数据帧和遥控帧ID一样时,数据帧RTR位为显性电平0,以是数据帧的优先级高于遥控帧
  • 数据帧的尺度格式和扩展格式的高11位一样时,扩展帧的SRR为隐性电平1,以是尺度格式的优先级高于扩展格式
  • 尺度遥控帧和扩展数据帧高11位一样时,尺度遥控帧的IDE位为显性电平0,以是尺度遥控帧的优先级高于扩展数据帧
先到先得


  • 已有装备在使用总线发送数据帧/遥控帧,则别的装备不能再同时发送数据帧/遥控帧(可以发送错误帧/过载帧粉碎当前数据)
  • 只有在总线空闲时(一连检测到11个隐性电平),装备才华发送数据帧/遥控帧
非粉碎性仲裁


  • CAN总线根据ID举行非粉碎性仲裁,ID号小的(优先级高)取到总线控制权,ID号大的(优先级低)仲裁败北后将转入吸收状态,等候下一次总线空闲时再实验发送。
  • 线与特性:总线上任何一个装备发送显性电平0时,总线就会出现显性电平0状态;只有总线上全部装备都发送隐性电平1时,总线才会出现隐性电平1状态
  • 回读机制:每个装备发出一个数据位后,都会读回总线当前的电平状态,以确定自己的电平被发送。
错误处置惩罚

错误范例

错误范例
错误的内容
错误的检测帧(段)
检测单元
位错误
比力输出电平和回读信号,当两电平不一样时产生此错误


  • 数据帧(SOF-EOF)
  • 遥控帧(SOF-EOF)
  • 错误帧
  • 过载帧
发送单元
吸收单元
添补错误
一连检测到6位类似电平常产生此错误


  • 数据帧(SOF-CRC)
  • 遥控帧(SOF-CRC)
发送单元
吸收单元
CRC错误
盘算的CRC结果和吸收到的CRC不一样时产生此错误


  • 数据帧
  • 遥控帧
吸收单元
格式错误
再固定电平字段检测到相反电平常产生此错误


  • 数据帧
  • 遥控帧
  • 错误界定符
  • 过载界定符
吸收单元
ACK错误
发送单元再ACK槽中检测出隐性电平,即没有吸收发应答时产生此错误


  • 数据帧(ACK槽)
  • 遥控帧(ACK槽)
发送单元
错误状态

通过状态机切换装备错误状态

  • 装备初始状态为主动错误状态
  • 主动错误状态检测到错误时,发送主动错误状态帧,会粉碎数据传输
  • 当TEC或REC>127时,装备进入被动错误状态,此时检测到错误,发送被动错误,不会粉碎数据传输,
  • 当TEC>255时,装备进入总线关闭状态



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表