0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

解析CAN总线

硬件攻城狮 来源:硬件攻城狮 2024-11-19 13:35 次阅读

前言

前面已经介绍了几种总线协议,那现在如果在汽车上实际应用一种总线协议来通讯的话,你会选择哪一种呢?

答案是 都不行

因为在汽车中许多系统都需要实时控制,而且数据必须可靠,即使面对面对恶劣环境也要正常运行

如何解决这个问题呢?就要看CAN总线了

ECU

如何传输数据?

现在将车上的每个设备用一条总线连接起来

37f6d1e4-a01b-11ef-93f3-92fbcf53809c.jpg

要想CAN通讯,就必须要专门的CAN收发器,经过CAN收发器,普通信号就会转化成差分信号(差分信号由两根线表示)

37fd1e64-a01b-11ef-93f3-92fbcf53809c.jpg

如果输入0,CAN收发器的两根线分别输出3.5V和1.5V(压差为2V)

如果输入1,CAN收发器的两根线都输出2.5V(压差为0V)

381db534-a01b-11ef-93f3-92fbcf53809c.jpg

为什么要这样表示数据?

想象一下,如果这条线是0V,受到了干扰,电压就会波动

38387996-a01b-11ef-93f3-92fbcf53809c.jpg

384f1534-a01b-11ef-93f3-92fbcf53809c.jpg

如果是两条线缠绕在一起,用差分信号来表示数据的话,即使受到了干扰,也是两条线一起受到干扰,依旧存在压差

CAN数据格式

这是一帧完整的数据

最开始是起始位(始终为0)

然后是11位的识别码

388dcf9a-a01b-11ef-93f3-92fbcf53809c.jpg

每一个设备都有唯一的11位识别码

38b3be9e-a01b-11ef-93f3-92fbcf53809c.jpg

紧接着是RTR位用来区分数据帧(0)或远程请求帧(1)

38c84666-a01b-11ef-93f3-92fbcf53809c.jpg

接下来是6位控制码

38cf7c88-a01b-11ef-93f3-92fbcf53809c.jpg

其中第一位的IDE位是用来区分是标准帧还是拓展帧(标准帧有11位的识别码,IDE位为0;而拓展码有29位的识别码,IDE位为1)

38e6e530-a01b-11ef-93f3-92fbcf53809c.jpg

下面是预留位,它是逻辑0

390367be-a01b-11ef-93f3-92fbcf53809c.jpg

剩下的4位为DLC位,表示数据长度

3917cb14-a01b-11ef-93f3-92fbcf53809c.jpg

每一个数值对应每一个字节(比如如图数值为8,对应数据长度为8个字节)

3922503e-a01b-11ef-93f3-92fbcf53809c.jpg

接下来是16位的CRC循环冗余校验位,它是为了确保收到的数据的准确性

首先是15位CRC校验位,如果和接收到的CRC校验位不一致,就会重新再重发一次

39385db6-a01b-11ef-93f3-92fbcf53809c.jpg

最后是CRC界定位,目的是为了与后面的数据区分开来

3947f01e-a01b-11ef-93f3-92fbcf53809c.jpg

然后是2位ACK码

第一位是ACK确认槽(发送端是1,接收端就是0)用来表示应答

第2位是ACK界定位(始终为1),目的也是为了和后面的数据区分开来,

39599058-a01b-11ef-93f3-92fbcf53809c.jpg

最后是7位结束位(时钟为1)

如果用用差分信号表示,电平是这样的,如图所示

396098e4-a01b-11ef-93f3-92fbcf53809c.jpg

如果此时总线上同时有2个设备发出控制信号,究竟优先执行哪一个设备的信号呢?

39863842-a01b-11ef-93f3-92fbcf53809c.jpg

这就得看11位的识别码了,它不仅指定了哪个设备,还表示了优先级

399bc536-a01b-11ef-93f3-92fbcf53809c.jpg

当总线同时为1或0,总线会被置为0(即优先执行电平0)

总结

了解完了CAN总线,或许会有一个疑惑点?

CAN总线和RS485是不是有点相似,对吧?

虽然的确有些相似之处,但CAN总线是专门用于汽车领域的,就比如数据可靠性,CAN总线检测到数据不一致,就会重新发送,而485就发一次,不管是不是正确的数据

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 收发器
    +关注

    关注

    10

    文章

    3519

    浏览量

    106361
  • CAN总线
    +关注

    关注

    145

    文章

    1959

    浏览量

    131262

原文标题:秒懂CAN总线

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    相关推荐

    全面解析CAN 总线协议技术

    CAN 是控制器局域网络 (Controller Area Network) 的简称,它是由研发和生产汽车电子产品著称的德国 BOSCH 公司开发的,并最终成为国际标准(ISO11519以及ISO11898),是国际上应用最广泛的现场总线之一。
    发表于 09-26 12:26 934次阅读

    CAN 总线错误检测机制#can总线

    CAN 总线
    北汇信息POLELINK
    发布于 :2023年05月26日 13:54:03

    什么是CAN时钟?#CAN #汽车CAN总线  #CANoe

    CAN总线
    北汇信息POLELINK
    发布于 :2024年10月29日 12:23:36

    CAN总线基础知识汇总#CAN #CANoe #汽车总线

    CAN总线
    北汇信息POLELINK
    发布于 :2024年11月04日 13:35:54

    汽车CAN总线报文类型与帧格式解析#CAN #常学常新

    CAN总线
    北汇信息POLELINK
    发布于 :2024年11月08日 18:25:47

    can卡是什么

    上传时可自主、即时发送,先进的仲裁机制保证数据不会冲突。 二、CAN 总线协议分析对比标准的通信七层模型,CAN 总线大体可分为物理层、链路层、应用层。对链路层的
    发表于 08-10 11:33

    汽车CAN/LIN总线测试流程和测试工具解析

    汽车CAN/LIN总线测试流程和测试工具解析 汽车CAN/LIN总线系统测试的关键是测试流程、测试标准和测试工具,掌握专业的
    发表于 03-19 10:44 8495次阅读

    一文解析CAN总线远程帧和错误帧

    本文主要介绍了CAN总线远程帧和错误帧,首先我们先来了解了解一下通讯时使用的帧类型有哪些,他们的作用又是什么,具体的跟随小编一起来了解一下吧。
    的头像 发表于 05-07 11:30 2.7w次阅读
    一文<b class='flag-5'>解析</b><b class='flag-5'>CAN</b><b class='flag-5'>总线</b>远程帧和错误帧

    解析汽车can总线无法读取数据情况

    现在的汽车一般都采用CAN总线作为标准的通讯总线,我们如果能够解析出一台车子的CAN总线数据,就
    发表于 08-06 16:23 3245次阅读

    解析CAN总线终端电阻的作用

    CAN总线终端电阻,一般来说都是120欧姆,实际上在设计的时候,也是两个60欧姆的电阻串起来,而总线上一般有两个120Ω的节点,基本上稍微知道点CAN
    的头像 发表于 03-22 08:38 8702次阅读

    一文解析CAN总线地址和总线访问,数据保护

      什么是CAN总线?   CAN (Controller Area Network)是二十世纪八十年代初德国Bosch公司为解决现代汽车中众多电控单元( ECU )之间的数据交换而开发的一种单工串行通信协议。
    发表于 05-16 14:31 2295次阅读
    一文<b class='flag-5'>解析</b><b class='flag-5'>CAN</b><b class='flag-5'>总线</b>地址和<b class='flag-5'>总线</b>访问,数据保护

    基于FPGA的CAN总线控制器的设计

    今天给大侠带来基于FPGA的CAN总线控制器的设计,由于篇幅较长,分三篇。今天带来第一篇,上篇,CAN 总线协议解析以及
    的头像 发表于 05-18 09:21 1424次阅读
    基于FPGA的<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>控制器的设计

    labview读取解析CAN DBC文件

    labview读取解析can总线dbc文件
    发表于 07-03 09:18 108次下载

    汽车CAN总线的特点和应用

    汽车CAN总线是一种连接汽车各种控制单元的通信协议和数据传输标准,它对于现代汽车的发展具有重要意义。以下是对汽车CAN总线的详细解析,旨在全
    的头像 发表于 09-30 11:31 1074次阅读

    CAN总线应用领域 CAN总线协议解析

    CAN(Controller Area Network)总线是一种用于车辆内部网络的串行通信协议,由Bosch公司在1986年开发。它以其高可靠性、实时性和灵活性而闻名,广泛应用于汽车电子、工业控制
    的头像 发表于 11-21 10:15 796次阅读