Pico汽车示波器论坛(广州虹科)

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1854|回复: 0

CAN总线哪个节点在通讯?发送了什么信息?(一)

[复制链接]
发表于 2020-10-20 17:24:55 | 显示全部楼层 |阅读模式
CAN总线哪个节点在通讯?发送了什么信息?(一)
作者:Steve Smith

最近关于CAN 总线哪个模块在通讯以及传输了什么信息的讨论非常多,因此我想和大家分享用PicoScope 6 Automotive软件处理这个问题的一些方法。众所周知,要想将CAN总线信号正确有效地译码并不容易。虹科Pico汽车示波器的优异性能可以帮我们很好地观察和分析CAN信号。


如图1所示,在CAN bus总线上测得两个CAN数据包。CAN高3.5V动态电压,CAN低1.5V动态电压,静态电平为2.5V。

1.png
图1

放大波形如图2所示,可以看到CAN信号的“振铃”和“过冲”。请注意,这些现象对于CAN总线信号是正常的,测试线和环境噪音都会对此产生影响。“振铃”和“过冲”并不是故障现象,CAN 物理层具有很强的抗干扰和容错能力。

2.png
图2

为了可以观察多一些CAN信号波形,我将时基设置为100ms/div,这样一个屏幕的捕获时间为1秒。使用PicoScope软件的串行译码功能,在1秒的CAN信号中就得出了1066条信息!如图3所示。

3.png
图3

如果您对串行译码对话框中“波特率”的设置不太确定的话,可以按照图4进行测量。

4.png
图4

请注意,图3中有一个“采样率可能过低”的警告。这是因为,采集CAN信号的理想采样率是2MS/s。从图3右侧属性对话框可以看到,采样率为1MS/s,小于理想采样率因此出现警告。采样率过低有可能导致串行译码出现一些红色数据,即不能完全正确地进行译码。


为了避免这种情况出现,我们会从软件和硬件两方面采取一些方法来改善。

(1)第一个方法是调整时基和样本数以达到理想采样率。如图5所示,我将时基设置为500ms/div,样本数设置为10MS,这样一个屏幕采集时间为5s。采样率=10MS/5s=2MS/s,以确保可以正常译码CAN信号。

2)第二个方法是使用高阻抗探头TA375/TA499采集CAN信号,在保证信号完整的前提下,减少了振铃、噪音等干扰信号。更多内容请浏览以下帖子:高阻抗探头TA375测CAN和FlexRay


如图5所示,我已经按照上述两种方法进行改进,虽然仍有”采样率可能过低”的警告,但是串行译码表格内的全部数据都是正确有效的,总共有5318条信息!

5.png
图5

图5中B通道连接了一个TA234电流钳,接在变速杆处测信号电流。变速杆向CAN总线发送信息时,CAN信号差分电压(0-2V)会变化,变速杆支线上会有电流流动,出现电流尖峰。


使用软件的缩放功能,拖动时间标尺,我们可以测出相邻两个电流尖峰的时间间隔,约为30ms。然后我们将鼠标移动到电流峰值对应的译码栏上,会弹出一个窗口显示该位置数据包的数据。如图6所示。

6.png
图6

在这里我建议将B通道电流波形放大50倍,以确保电流尖峰和数据包特定位置对齐,方便我们将鼠标移到对应位置,如图7所示。通过观察发现,电流尖峰(在变速杆上)总是与ID为1 97的CAN模块传输相对应,并且这些传输每30 ms发生一次!因此基本可以说,ID 1 97是属于变速杆的。

7.png
图7

关于ID我在这里简单讲一下,ID有11位的和29位的,ID值越小优先级越高,并且一个模块可能有很多不同的ID。举个例子,发动机冷却液温度的ID和发动机转速的ID是不一样的,但它们都来自发动机这个模块。再比如,假设某个ID数据中某一字节表示的是“打开/关闭刹车”,我们可能会觉得这个ID是属于ABS系统的。这并不准确,因为“打开/关闭刹车”这个信息也有可能是来自定速巡航系统。


回到本文中的案例,我们知道变速杆处每30ms产生一次电流尖峰,因此在串行译码表格中的“过滤”功能这里,我们输入ID 1 97。表格只会显示与ID 1 97相关的所有数据包。然后我们发现,相邻的两个数据包,开始时间或结束时间都是相差约30ms,如图8所示。这里请注意,我们对B通道采用了1kHz的低通过滤,有助于观察到电流尖峰,避免其他信号干扰。

8.png
图8

请注意图8中黄色区域里的数据,特别是第四个字节C0。没有操纵变速杆时,各个数据包里的ID 1 97第四个字节一直保持C0。接下来我将操纵变速杆以改变变速杆的位置,我们之所以这样做是为了再次确认ID 1 97是不是属于变速杆。


使用PicoScope的第三个通道(通道C),我们在变速杆“Park”按钮上(电子手刹按钮)放置了一个压力开关,NVH接口盒(TA259)用于为这个压力开关供电,然后又通过TA259 BNC至BNC线连接到虹科Pico示波器上。这样打开和关闭“Park”按钮时,信号都会以波形显示PicoScope软件上。请注意,我们是在钥匙打到ON挡、未起动发动机下进行测试的,避免CAN信号上信息通讯太多,并且蓄电池正常工作。

9.png
图9

打开串行译码设置对话框,勾选“时间标尺间”,“过滤”中输入ID 1 97,如图10。

10.png
图10

观察图10黄色框里的数据,第四个字节在打开/关闭电子手刹按钮时发生变化。从C0(打开电子手刹)变成D5(关闭电子手刹),再回到C0(打开电子手刹)。我原本以为一按下电子手刹按钮,就会马上出现电流尖峰,但实际上并不是这样,不过30ms的传输时间也足以确保变速杆指令正常执行了。


至此,我们可以确认ID 1 97就是来自变速杆。通过测量电流(本文测变速杆处)以及更改CAN模块的工作状态(本文开闭电子手刹按钮),我们找出了变速杆的一个ID,并且知道变速杆发送信息时字节的变化。虹科Pico汽车示波器不仅仅只能采集和观察波形,还具有强大的串行译码功能!通过上述的一些技巧方法,我们可以知道CAN总线哪些节点在通讯以及它们发送了什么信息!


相关系列推荐:



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|Pico汽车示波器论坛(广州虹科)

GMT+8, 2024-3-28 16:14 , Processed in 0.464799 second(s), 29 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表