中国电子技术网

设为首页 网站地图 加入收藏

 
 

使用示波器CAN-dbc字符触发和解码更快速地完成汽车设计调试

关键词:示波器 汽车CAN系统 CAN-dbc 字符触发 解码

时间:2021-06-08 16:26:00      来源:网络

差分控制器局域网(CAN)总线广泛应用于当前汽车的传动系统和车身控制中。CAN 总线是由 Bosch 公司在 30 多年前开发的一种通信协议,一直被视为汽车的“主力”串行控制总线。CAN 总线同时也在工业和医疗设备控制应用中得到了大量应用。

差分控制器局域网(CAN)总线广泛应用于当前汽车的传动系统和车身控制中。CAN 总线是由 Bosch 公司在 30 多年前开发的一种通信协议,一直被视为汽车的“主力”串行控制总线。CAN 总线同时也在工业和医疗设备控制应用中得到了大量应用。

示波器作为最重要的测量工具,目前广泛用于汽车串行总线物理层的测试和调试。尽管 CAN 总线协议分析仪(例如 Vector 的 CAN 分析仪)非常适合测试和调试总线数据在更高协议层级别上的传输,示波器的优势在于它允许您监测 CAN 总线物理层的模拟信号质量(即信号完整性)。汽车自身的电气环境非常不理想,伴有大量噪声和意外瞬变。示波器的核心竞争力在于,它能够捕获和显示罕见汽车瞬变和噪声的细节(可能导致 CAN 总线误差)。

本应用指南首先将展示在 CAN 差分总线上进行示波器十六进制触发和解码与 CAN-dbc 字符触发和解码之间的区别。随后再就执行 CAN 总线字符解码所需的核心元件提供一些背景资料(行业标准的 .dbc 文件)。然后逐步讲解如何使用 Keysight 3000T、4000 和 6000 X 系列示波器执行 CAN 字符触发和解码。CAN-dbc 字符触发和解码是选件 DSOXT3AUTO、DSOX4AUTO 和 DSOX6AUTO CAN/LIN 的标配。

对 CAN 总线进行触发和解码

为了同步和识别特定的 CAN 帧以进行测试和调试,目前大多数中档和高性能示波器(包括 Keysight InfiniiVision 2000、3000、 4000 和 6000 X 系列示波器)都能对 CAN 总线进行触发,并且解码成十六进制格式。此类测量功能可作为 InfiniiVision X 系列示波器的选件。

图 1 显示了 Keysight InfiniiVision X 系列示波器对 CAN 总线进行触发,并且解码成十六进制格式。注意:借助示波器的模拟捕获功能,我们在测量实例中可以看到噪声以及不同的脉冲幅度。在每个被捕获的帧下面都有时间关联的解码信息,用于告诉您每个帧的内容。在示波器显示屏的上半部分是协议列表显示,以用户熟悉的表格形式来提供所有捕获帧的内容,类似于传统的协议分析仪。

在这个测量示例中,示波器被设置为对帧 ID 0x201 十六进制进行触发,与 010 000 0001 二进制相互关联。帧(0x201)的 8 位数据字段显示了“0B A8 00 00 27 10 00 00”。什么是 0x201 十六进制?这个十六进制字符数据串表达什么意思呢?


图 1a. 对帧 0x201 进行触发和解码

图 1b. 十六进制解码信息的扩展视图

CAN 总线字符解码

如前所述,CAN 协议分析仪的一个优势是它能够显示在更高抽象协议、应用级别上的结果。换言之,它是将捕获数据转换为人类语言,而不是神秘的计算机语言,例如“速度 = 852.52 rpm”。 CAN-dbc 字符触发和解码也可使用 Keysight 3000T、4000 和 6000 X 系列示波器完成(Keysight 2000 和 3000A X 系列不支持 CAN-dbc)。图 2 显示了 4000 X 系列示波器现在对总线进行字符触发和解码。

在测量实例中,示波器被设置为触发信息“Brake_Torque”,与特定帧 ID(0x211)有直接关系。示波器没有使用一长串的十六进制字符来表示帧 / 信息中的数据字段,它现在用带符号的值、单位和 / 或编码状态(例如“On”、“Off”、“Reverse”等)来显示“信号”名称。注意在字符 CAN 语言中,“信号”不是向示波器 BNC 发送的电子输入信号。“信号”通常表示一个物理参数或条件,例如“Total_Torque:131.0640k ft/lbs”,如本实例所示。示波器如何将原始比特转换为符号代码?


图 2a. 对 CAN 总线进行字符触发和解码

图 2b. 字符解码轨迹的扩展视图

了解 .dbc 文件

所有汽车都与每条 CAN 总线有关联,并且每辆汽车都关联着一个 .dbc 文件,即“数据库 CAN”文件。.dbc 文件是一个 ASCII 格式的文件,其 .dbc 扩展名可用于定义 CAN 网络。图 3 显示了是德科技创建的简单 .dbc 文件的一部分。这个 .dbc 文件定义了是德科技示波器培训常用的 CAN 演示信号。

“信息”是表示特定帧 ID 的标签。例如,.dbc 文件中的信息:EngineData 定义了帧 ID 2,190,911,837 十进制。“信号”略微复杂。在消息:EngineData(包含 5 个字节数据(DLC = 5))中,我们已经定义了三个信号,分别标有“Fuel”、“Temp”和“Speed”。每个信号都有特定的起始字节和长度。例如,“Temp”始于 #24 字节,长度为 8 个字节。与每个已定义信号有关的是可变换算因数、单位、最小和最大警戒值,以及大端 / 小端指示器。

除了将数据转换成物理值 / 变量外,信号还可以被状态编码。关于信息:ABS,信号“Frnt-R”始于 #7 字节,长度仅为 1 个字节。这意味着信号只有 0 或 1 的二进制值。在文件的底部,“Frnt-R” 也被定义为编码状态,如果信号的值是 0,那么示波器将显示“解锁”。如果信号的值是 1,那么示波器将显示“锁定”。

用于定义特定汽车 CAN 总线的 .dbc 文件要比是德科技创建的 .dbc 实例复杂很多,如图 3 所示。糟糕的是,本文无法显示在真正的汽车中更为复杂的 .dbc 文件。汽车厂商将这类文件视为高度机密。他们不希望竞争对手获悉自己定义网络的方式。如欲了解更多信息,请参考副标题为“.dbc File Security”的文件。

虽然是德科技在图 3 中使用了文本编辑器来创建 .dbc 文件,但是这里还有其他更高效的创建方法——特别是对复杂的汽车 CAN 系统创建 .dbc 文件。如今最常用的工具就是 Vector 的 CANdb++ 软件。如欲了解该软件工具的更多信息,请联系 Vector Informatik GmbH。


图 3. .dbc 文件内容的简单实例

示波器提供 CAN-dbc 字符触发和解码

一旦您为想要测试和调试的 CAN 网络提供了一个 .dbc 文件,您就能很轻松地把这个 .dbc 文件导入到 Keysight 4000 和 6000 X 系列示波器。
1. 把 .dbc 文件保存到 USB 闪存中,然后将闪存插入到示波器前面板的 USB 端口。
2. 按下前面板的 [Save/Recall(保存 / 调用)] 键。
3. 选择 CAN Symbolic Data(*.dbc)作为要调入到示波器的文件类型。
4. 按下 Load to: softkey,然后选择将这个 .dbc 文件加载到 S1 (串行总线 #1)或 S2(串行总线 #2)。注意:3000T、 4000 和 6000 X 系列示波器有两个独立的串行总线解码器。
5. 借助示波器的触摸屏,导航到您想要加载的 .dbc 文件。
6. 按下 Press to Recall(按下调用)功能键,以加载这个 .dbc文件。
示波器将会解析文件并保存全部重要的转换参数。示波器的 CAN 解码和触发菜单将会提供一些选项,打开字符解码,对信息和信号进行字符触发。

图 4 显示了 Keysight 4000 X 系列示波器使用 .dbc 文件(参见图 3)对内置 CAN 培训信号进行字符触发和解码。在已捕获帧的下方是时间关联解码轨迹,显示了:EngineData 与信号“Fuel”、 “Temp”和“Speed”。在示波器显示屏的上半部分是协议列表显示,显示了所有经过字符解码的已捕获帧 / 信息。在本例中,我们能够轻松地从波形下方的时间关联解码迹线中读取这三个信号(Fuel、Temp 和 Speed)以及数值。但这样的功能很难在市面上的其他示波器产品中看到。

真实的汽车 .dbc 文件往往有覆盖信息和信号的长名称,通常每条信息包含了三个以上的信号。无论是时间关联解码轨迹还是协议列表,您都无法在一条消息中查看到所有的重要数据。但是借助列表“工具”图标选择,您可以选择打开实时“数据包查看工具”,显示示波器正在触发的这条信息中的所有信号更新。图 5 显示了这个数据包查看工具针对一条包含多个信号的信息给出的扩展视图。只需拉动滚动条就能观察列表底部的信号。


图 4a. 把 .dbc 文件调入到示波器,以进行字符触发和解码

图 4b. 字符解码轨迹的扩展视图

图 5. 使用示波器的实时数据包查看工具来观察一条信息及其所有的信号

同时对 CAN 总线执行字符解码和十六进制解码

Keysight InfiniiVision 3000T、4000 和 6000 X 系列示波器有两个独立的串行总线解码器,通常可以同时解码两个不同的串行总线。不过,您也可以使用这两个解码器同时对一个 CAN 总线执行字符解码和十六进制解码,如图 6 所示。上方的时间关联解码轨迹显示了经过字符解码的 CAN 总线,下方的时间关联解码轨迹显示了被解码成十六进制格式的同一个 CAN 总线。当您需要关联原始比特与 CAN-dbc 字符解码时,这个解码功能非常实用。

.dbc 文件安全

大多数对具体汽车下定义的 .dbc 文件都是机密文件。因为 Keysight InfiniiVision 4000 和 6000 X 系列示波器是在嵌入式操作系统中运行,所以不提供进行文件检索的接口,也不能在文件加载后将其从示波器中调回。即便是通过示波器的 LAN 端口连接至互联网,用户也无法访问内部 CPU 闪存系统。此外,您能够利用示波器标配的安全擦除特性轻松地擦除文件,这一特性倍受是德科技的航空航天与国防客户欢迎。鉴于大多数 .dbc 文件都能获得严密保护,该特性确实能够保障汽车行业的安全。在执行安全擦除特性之后,示波器中不会遗留任何 .dbc 文件。


图 6a. 同时对一个 CAN 总线执行字符解码和十六进制解码

图 6b. 字符解码轨迹的扩展视图

总结

目前,汽车工程师可以使用多种工具对他们的 CAN 设计进行测试与调试。示波器是其中一款主要的工具,用于测试和调试差分 CAN 总线的物理层信号。配有 CAN 触发和解码选件的示波器将会加快调试和测试过程。具备 CAN-dbc 字符触发和解码功能的
示波器能够更快速、更直观地隔离特定信息和信号,以进行测试。总之,“EngineData”比“0x0296A95D 十六进制”更有意义。

具备 CAN-dbc 字符触发和解码功能的示波器(例如 Keysight InfiniiVision 3000T、4000 和 6000 X 系列示波器)不会取代 CAN 协议分析仪,而 CAN 协议分析仪也不会取代示波器。汽车工程师在设计和测试汽车和 ECU 中的 CAN 总线时,通常会使用这两款仪器进行最佳测试。

CAN-dbc 字符触发和解码标配有 DSOXT3AUTO/DSOX4AUTO/DSOX6AUTO 选 件(CAN/LIN),选件被授权在 Keysight InfiniiVision 3000T、4000 或 6000 X 系列示波器上使用。

  • 分享到:

 

猜你喜欢

  • 主 题:英飞凌XMC4000支持EtherCAT®通讯的伺服/IO控制方案介绍
  • 时 间:2024.04.25
  • 公 司:英飞凌&骏龙科技

  • 主 题:安森美数字助听芯片的创新
  • 时 间:2024.05.09
  • 公 司:安森美

  • 主 题:IO-Link 技术介绍及相关设计解决方案
  • 时 间:2024.05.22
  • 公 司:ADI & Arrow