您现在的位置是:首页 >技术教程 >CAN总线通讯协议学习网站首页技术教程

CAN总线通讯协议学习

昊月光华 2024-06-17 11:19:14
简介CAN总线通讯协议学习

s目录

CAN(controller Area Network) 控制器局域网

CAN通讯

CAN总线的数据帧

解析


CAN(controller Area Network) 控制器局域网

        CAN总线应用最多的是汽车领域,这里的控制器在汽车领域的专业术语是ECU.(electronic control unit)电子控制单元。可以看成一个超小型的计算机,内部集成了供电系统,单片机,驱动系统,是汽车领域里最小的控制模块。为了能让ECU之间进行通信,人们设计了CAN协议。这就是CAN的由来。

(ECU挂在CAN总线上,组成局域网通讯)

CAN通讯

通讯需要专门的CAN收发器,经过CAN收发器,普通信号变成差分信号.2根差分线表示一个信号,

当收到低电平时,两根差分线的电压差位2V(一个3.5,一个1.5)当收到高电平时,两个差分线的压差为0V. CAN收发器也可以把差分信号转换为普通信号(高低电平发送给单片机)

CAN通讯采样差分通讯的好处:两根线组成双绞线,受到干扰也是同时受到干扰,压差保持不变。通讯距离可以达到1000m。

CAN总线的数据帧

图1(标准帧而非拓展帧)

解析

  1. 起始位必须是0
  2. 11位识别码,用来区分ECU,同时也代表发送数据的优先级。 
  3. RTR位(一位)用来区分数据帧(0),或者远程请求帧(1)
  4. 6位控制码,第一位IDE用来区分标准格式和拓展格式。(在标准格式中有11位识别码,而在拓展帧中有29位识别码。所以图1为标准帧,IDE位0.第二位为空闲位为0,后四位为DLC位(Data Link Control)数据长度代码.它的二进制编码位0-8 即为0000-1000,为n则后面的数据位只有n个字节(8*n位),
  5. 16位CRC码,循环冗余检测码.(16位的前15位)15位CRC校验码,根据数据计算的CRC码,设备接收端以此来判断数据是否正确。16位的最后一位为CRC界定符,为1.把后面信息隔开。
  6. 2位ACK码,第一位是ack确认槽,发送端发送1,接受端发送0表示确认。第二位为1,与后面数据隔开.
  7. 7位逻辑1结束位。

参考

爱上半导体

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。