一,基础知识
没有时钟信号线,属于半双工异步通讯,由CAN_HIGH和CAN_LOW组成
特点:数据传输快,数据量大,布线简单(只需2根线),可搭载设备多,大部分运用于汽车通讯
接线
高速 短距离 闭环 最高速度可达1Mbps,最长距离40m。
传输距离远 开环 最高速度125Kbps,最远距离1km。
节点:由一个can控制器和一个can收发器组成。
差分信号
所谓的差分信号就是CAN_HIGH减去CAN_LOW,
0v相当于逻辑1(隐性电平) 2v相当于逻辑0(显性电平)
位同步:有四个阶段
ss段:同步段
PTS段:传播时间段,用于补偿网络的延时时间
PBS1,PBS2:补偿阶段的误差
CAN报文(帧):
(1)帧起始:表示数据传输开始的意思,告诉一声数据要来了,他只有一个数据位,并且是显性电平
(2)仲裁段: 这段很重要,CAN通讯协议中不对节点地址分配优先级,而是对信息的重要程度分配优先级。仲裁段的主要内容就是ID信息。这个ID决定信息的优先级。对于重要的信息,我们可以给他一个高的优先级 当同时出现显性电平(0)和隐形电平(1)时,显性电平的优先级高,如图,此时的话,节点1报文就会失去对总线的占有权。
RTR段: 此段用于区分数据帧与远程帧,显性电平表示数据帧,隐形表示远程帧。
(3)控制段: r0,r1为保留位,默认显性,DLC段为数据长度。
(4)数据段: 存储着原始的数据,数据段中最重要的内容。IDE用于区分标准帧与扩展帧 显性为标准帧
(5)CRC段: 表示一个15位的校验码,算出来的校验码和接收到的校验码相同,表示正确,如果出现错位,则会通过错误帧返回,请求重新发送。
(6)CRC界定符: 分界线
(7)ACK段: 与I2C协议相似,表示应答。
(8)帧结束: 表示传输完成。