can总线报文是固定的吗_【技术分享】CAN总线中的电平、逻辑、报文是怎么来的?-通信/网络-与非网...

本文介绍了CAN总线节点通讯原理,详细阐述了电平如何转换为逻辑信号,逻辑信号如何转化为报文,并分析了报文在上位机的显示方式。重点强调了CAN总线报文错误大多源于物理层,推荐使用CANScope总线分析仪进行故障定位。
摘要由CSDN通过智能技术生成

CAN 总线的报文是怎么产生以及收发的,遇到通讯异常的问题时从什么角度分析?这篇文章将会带您快速了解报文的传输原理。

1 节点通讯的原理

图 1 CAN 节点示意图

如图 1 所示是一个 CAN 节点的示意图,整体包括了 CAN 收发器、CAN 控制器和 MCU。我们以节点发送报文为例,当我们使用上位机软件发送一段报文时,报文会通过 MCU 发送给 CAN 控制器。CAN 控制器将这段报文解析成逻辑信号后,再发送给 CAN 收发器。CAN 收发器根据 CAN-bus 标准将接收到的逻辑信号转换成电信号,再通过 CAN_H 和 CAN_L 两根总线将电信号传到总线上的其他节点上。

简单说就是 MCU 将报文发送给控制器,控制器将报文转换成符合规范的 CAN 报文后,通过 CAN 收发器以电信号的形式在总线上进行传输。

2 电平是如何转换成逻辑?

图 2 CAN-bus 信号电平

如图 2 所示,CAN 总线使用的是双线差分信号,所以分为 CAN_H 和 CAN_L 两根总线,根据两根总线之间电压的差值大小来判断其显隐性。而线缆上传输的电平信号只有两种可能,分别为显性电平和隐性电平,其中显性电平代表逻辑 0,隐性电平代表逻辑 1。

当接受到报文时,首先就要通过 CAN 收发器将电信号转换成逻辑信号。根据图 3 所示的 ISO11898 高速 CAN 电平标准进行判断,但是线路上经常会受到各种干扰,为了保证传输的稳定性。所以差分电平小于 0.5V 就是隐性电平代表逻辑 1,差分电平大于 0.9V 就是显性电平代表逻辑 0。

图 3 ISO11898 高速 CAN 电平

3 逻辑信号如何转换成报文?

CAN 控制器是 CAN-bus 设备的核心元件,集成了 CAN 规范中数据链路层的全部功能,能够自动完成 CAN-bus 协议的解析。

当 CAN 收发器将逻辑信号传送给 CAN 控制器后,CAN 控制器会将逻辑信号转换成符合 CAN 规范的 CAN 帧。而 CAN 帧的类型包括了数据帧、远程帧、帧间空间、错误帧和超载帧。

图 4 标准帧格式

以最常见的数据帧为例,图 4 就是标准帧的格式,包括了帧起始、仲裁场、控制场、数据场等。

图 5 报文解析实例

图 5 就是报文解析的实例,当接受到对应的逻辑信号后,CAN 控制器就会根据规定的 CAN 帧格式进行解析,并将报文发给 MCU。

4 上位机报文显示

图 6 上位机报文显示

如图 6 所示,当 CAN 控制器完成了 CAN-bus 协议的解析后,就会将报文传输到 MCU 中在上位机软件中进行显示。像帧起始、CRC 场、ACK 场这样的数据不读取,所以我们上位机软件只显示数据帧类型、帧 ID 和帧数据等信息。

5 总结

对于 CAN 总线报文错误来说,百分之 90 的错误都来自于物理层,而 CANScope 总线分析仪可以对 CAN 波形与报文同步发送和接收,快速对 CAN 总线进行各项测试,帮助工程师们快速完成故障定位和问题排查。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值