can初步自学笔记

一、CAN初识
1.CAN基本概念
CAN总线是在物理层、数据链路层和一部分的传输层定义的一套标准。
又分为高速CAN和低速CAN。在这里插入图片描述 2.信号传输方式
CAN传输线缆采用 双绞线以便产生差分信号,提高抗干扰能力。
终端加电阻用来消除电缆线高频传输时产生的末端反射。
11898-1对应controller
11898-1对应controller、11898-2对应高速can收发器、11898-3对应低速can收发器、11898-4增加了时间触发通讯机制

2.高速CAN收发器和低速CAN收发器
CAN总线上产生的是电信号,由CAN收发器将电信号转换为逻辑电平
显性点平对应逻辑0 ,隐性点平对应逻辑1,在CAN总线上有着显性点平覆盖隐性电平的原则(0&1 = 0)。
在这里插入图片描述
低速CAN 0-125 K ,可以不需要终端电阻
在这里插入图片描述
高速CAN
最大传输速率 1M ,需要串联终端电阻 在这里插入图片描述
二、数据传输
1.数据帧格式
去中心化,分布式原则:总线空闲时间任一节点均可竞争发送消息、消息将被广播,由节点自己决定是否过滤在这里插入图片描述在这里插入图片描述
sof 1bit:发出一个显性位边沿,网络节点以此开始同步
id 11bit:定义消息优先级/总线竞争力,数字越低优先级越高
RTR 1bit:显性表示数据帧
r 1bit:保留位
dlc 4bit:表示数据场的字节长度
crc场 16:crc校验场,含1bit隐性位的界定符
ack场 2bit:ack场,同样含1bit隐性位界定符(由接收方进行确认,收到消息给出一个显性位,如果一个节点都没有确认收到消息,发送方监听此位为隐形位就会报错)
IDE 1bit:扩展帧标识符,扩展帧的id可以有29位,扩展帧和标准帧格式不同,不能存在于同一can网络
EOF 7bit:结束标志,7bit隐性位
ITM 3bit:帧间隔,实际不属于帧内的区域,先列出来,必须等待帧间隔才能发送消息
2.id优先级竞争
CAN总线上没有主控,任意节点主动竞争发送权,每个节点在发送消息时都会监控总线上的点平,当send 1 bus 出现0 时说明竞争失败,该节点转为接收方,退出此次竞争,等待bus free重新竞争,但这一方式有一个明显弊端,低优先级在消息众多的情况下会阻塞很久,造成网络负载率较高。
在这里插入图片描述
三、总线同步
1.数据帧sof会发出显性点平表示开始同步。
2.硬同步:帧与帧之间会插入隐性点平来避免信号线一直拉高点评,硬同步会保障帧头。
3重同步:控制器会对每一个位的下降沿进行判断,如发现自己和总线上的时钟不同步,则会自动进行调整,每次可调整的宽度即同步跳转宽度(SJW)
四、数据保护机制
1、CAN总线采用NRZ编码(没有应用曼彻斯特)用来减小干扰,但会影响同步所以引入了位填充机制(发送器只要检测到位流里有5 个连续相同值的位便自动在位流里插入一补充位)。
2、五种监测机制
接收方检测:
位填充错误:查看位流里是否有六个连续相同值得位。
格式错误:数据帧格式与标准不符都会从报错
CRC错误:接收方生成crc与发送方比对
接收方检测:
位发送错误:发送消息时总线总是发送点平不同
ACK应答错误:没有接受到应答信号
3、错误帧
CAN总线有着保持数据一致性的原则,检测到错误所有节点都会知道
主动错误:检测错误主动报错,发出错误标识符(连续6个显性位)和错误界定符(连续8个隐形位);目的在于“主动”通知错误,即使别的节点没有发现此错误;
被动错误:检测错误,被动等待其他节点报错后发送错误标识符(连续6个隐形位)和错误标识符(连续8个隐形位);目的在于识别错误,回应主动错误。
两个六个隐性位的错误标识符可能会由于其他原因重叠。
4、错误计数器
为了避免某个设备因为自身原因(例如硬件损坏)导致无法正常收发数据而不断地破坏数据帧,从而影响其他正常节点通讯,CAN-bus规范中规定每个CAN控制器都有一个发送错误计数器和一个接收错误计数器。
在这里插入图片描述
主动错误:发现错误后会很积极主动地上报错误
被动错误:TEC or REC 计数超过127就进入此状态,此时,该节点发现错误后只会发送6个隐性位,不会把错误广播出去,中间隔8位
总线关闭状态:计数器大于255进入此状态,想要重新挂载到总线上需要重启,需要连续发送128个隐性点平

	本文仅作为自己的学习笔记,参考b站视频,以及网上资料自己总结。
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值