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状态 
-  回读机制:每个设备发出一个数据位后,都会读回总线当前的电平状态,以确定自己的电平被发送。 
错误处理
错误类型
| 错误类型 | 错误的内容 | 错误的检测帧(段) | 检测单元 | 
| 位错误 | 比较输出电平和回读信号,当两电平不一样时产生此错误 | 
 | 发送单元 接收单元 | 
| 填充错误 | 连续检测到6位相同电平时产生此错误 | 
 | 发送单元 接收单元 | 
| CRC错误 | 计算的CRC结果和接收到的CRC不一样时产生此错误 | 
 | 接收单元 | 
| 格式错误 | 再固定电平字段检测到相反电平时产生此错误 | 
 | 接收单元 | 
| ACK错误 | 发送单元再ACK槽中检测出隐性电平,即没有接收发应答时产生此错误 | 
 | 发送单元 | 
错误状态
通过状态机切换设备错误状态
-  设备初始状态为主动错误状态 
-  主动错误状态检测到错误时,发送主动错误状态帧,会破坏数据传输 
-  当TEC或REC>127时,设备进入被动错误状态,此时检测到错误,发送被动错误,不会破坏数据传输, 
-  当TEC>255时,设备进入总线关闭状态 
  
  



















