CAN
2024-06-20 19:23:00 0 举报
AI智能生成
无
作者其他创作
大纲/内容
协议11898
iso的osi模型
分支主题
11898-1对应controller
11898-2对应高速can收发器
11898-3对应低速can收发器
11898-4增加了时间触发通讯机制
推荐用sub-d9插头
边界条件
长度40米
速率1Mbit/S
网络末端要有终端电阻
32个节点
物理构成
分支主题
controler
根据需要接受的message数量
数量多,需要object storage
少则不需要
transver
低速can收发器
0-125k
不需要终端电阻
差分电平
分支主题
高速can收发器
0-1M
需要120Ω终端电阻
差分电平
分支主题
抗干扰能力
8kv esd保护
推荐增加共模扼流圈
分支主题
总线逻辑
逻辑1是隐性
逻辑0是显性
多节点同时发送时,遵行线and逻辑
分支主题
分支主题
communication
去中心化,分布式原则
总线空闲时间任一节点均可竞争发送消息
消息将被广播,由节点自己决定是否过滤
事件驱动(11898-4另外增加了时间触发机制)
通信矩阵
分支主题
总线竞争
解决多个节点在同一时间点发消息的问题
通过id来竞争
每个节点在进行发送时都会对总线电平进行监控
send 0 出现 1 :报错
send 0 出现 0 :继续
send 1 出现 1:继续
send 1 出现 0:竞争失败,转为接收方
图解
分支主题
能够实现通过id来进行竞争的原因:
总线遵循线与逻辑0为显性,1位隐性
节点在发送时会监听总线电平,进行判断
竞争失败者
行为
节点会自动在检测到总线空闲的第一时间再次尝试发送
风险
在网络负载率很高,也就是消息很多的时候,低优先级的消息可能会延迟很久才能发送成功
竞争流程图
分支主题
数据保护
在物理设计上就要加强emc
NRZ编码可以减小干扰发射
分支主题
双绞线canh canl差分信号消除共模干扰
建议每米扭转30次
终端电阻消除电缆线高频传输时传输末端的反射
tja1042的接线推荐
分支主题
把120的电阻拆开成两个,配合电容可以形成两路低通滤波器(允许低频通,高频被电容导入地)
总线逻辑错误检测机制 detection
五种检测机制
stuffcheck
接收节点检测
检测是否有位填充错误,出现6个同极性位就报错
formcheck
接受节点检测
检测crc界定符和ack界定符以及eof区域是否出现显性位
bit monitorint
发送节点检测
发送显性位,但总线是隐性位就报错
crc
接收节点检测
接收方会快速生成一个值,与发送方的crc段进行比对,不一致就报错
ack check
发送方检测
接收方会在收到消息后在ack应答位给出一个显性电平,如果发送方检测到该位为隐性,则报错
图解
从区域上看
分支主题
总线逻辑错误处理机制 handling
data consistency 数据一致性
出于此原则,检测到错误的节点会让所有人都知道此刻有一个错误
错误帧
格式
图解
分支主题
errorflag段
六个显性电平(制造一种位填充错误)
第一个errorflag是由发现错误的节点发送的,他发送完后就继续发送错误界定符,直到总线出现连续的8个隐性位则错误帧完毕
第二个errorflag是有第一个errorflag引起,由其他节点发送,该区域可能会和第一个errorflag区域重叠,原因是第一个errorflag还没发完,总线就已经形成六个显性位,从未触发那些节点发送errorflag
错误界定符由8bit的隐性位构成
错误跟踪机制 error tracking
为了避免总线被永久错误节点卡死,比如,这个节点由于本身的原因一直在报错,导致总线没法正常发送了,需要一种机制来进行鉴别并限制其功能
在每个controller里都会实现
图解
分支主题
发送错误计数器
成功发送一条消息 -1
检测到错误,如果是该节点是发送方,+8
接收错误计数器
检测到错误,如果该节点是接收方+1,如果是引起错误的接收方 +8
成功发送一条消息 -1
节点的三种状态:
error active
默认初始状态,发现错误后会很积极主动地上报错误
error passive
TEC or REC 计数超过127就进入此状态
此时,该节点发现错误后只会发送6个隐性位,不会把错误广播出去
并且,发送连续帧时,中间必须间隔8bit的延缓时间
bus off
controller挂了,或者TEC大于255,就会进入这个状态,需要重启,或者等待128个11位隐性位电平
总线同步
首次同步有sof发起
为什么要同步
因为没有单独的时钟线
因为是NRZ编码,不是曼侧斯特编码(自带时钟同步)
重同步
位填充机制 bit stuffing
每五个同样极性的位后面会被插入一个反极性位,确保接收节点采集到足够的边沿进行重同步
新插入的反极性位也会被用于下一次插入计算
分支主题
位填充机制作用范围(sof-crc)
利用隐形位到显性位的边沿进行重同步
帧格式
data frame数据帧
用于主动传输数据
格式
分支主题
sof 1bit
发出一个显性位边沿,网络节点以此开始同步
id 11bit
定义消息优先级/总线竞争力,数字越低优先级越高
RTR 1bit
显性表示数据帧
r 1bit
保留位
dlc 4bit
表示数据场的字节长度
crc场 16
crc校验场,含1bit隐性位的界定符
从sof到数据场的所有数据进行encode
由发送方填
ack场 2bit
ack场,同样含1bit隐性位界定符
由接收方进行确认,收到消息给出一个显性位
如果一个节点都没有确认收到消息,发送方监听此位为隐形位就会报错
IDE 1bit
扩展帧标识符,扩展帧的id可以有29位
分支主题
扩展帧和标准帧格式不同,不能存在于同一can网络
EOF 7bit
结束标志,7bit隐性位
ITM 3bit
帧间隔,实际不属于帧内的区域,先列出来,必须等待帧间隔才能发送消息
remote frame远程帧
用于请求数据,很少用
格式
分支主题
error frame错误帧
格式
分支主题

收藏
0 条评论
下一页