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结束位。

参考

爱上半导体

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值