是德科技使用 CAN-dbc 字符触发和解码更快速地完成汽车设计调试 使用 Keysight InfiniiVision 3000T 4000 和 6000 X 系列示波器 应用指南
序言 差分控制器局域网 (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 的标配
03 是德科技 使用 CAN-dbc 字符触发和解码更快速地完成汽车设计调试 应用指南 对 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 十六进制? 这个十六进制字符数据串表达什么意思呢? 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, 如本实例所示 示波器如何将原始比特转换为符号代码? 图 1a. 对帧 0x201 进行触发和解码 图 2a. 对 CAN 总线进行字符触发和解码 图 1b. 十六进制解码信息的扩展视图 图 2b. 字符解码轨迹的扩展视图
04 是德科技 使用 CAN-dbc 字符触发和解码更快速地完成汽车设计调试 应用指南 了解.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 文件内容的简单实例 虽然是德科技在图 3 中使用了文本编辑器来创建.dbc 文件, 但是这里还有其他更高效的创建方法 特别是对复杂的汽车 CAN 系统创建.dbc 文件 如今最常用的工具就是 Vector 的 CANdb++ 软件 如欲了解该软件工具的更多信息, 请联系 Vector Informatik GmbH
05 是德科技 使用 CAN-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) 以及数值 但这样的功能很难在市面上的其他示波器产品中看到 图 4a. 把.dbc 文件调入到示波器, 以进行字符触发和解码 图 4b. 字符解码轨迹的扩展视图 图 5. 使用示波器的实时数据包查看工具来观察一条信息及其所有的信号 真实的汽车.dbc 文件往往有覆盖信息和信号的长名称, 通常每条信息包含了三个以上的信号 无论是时间关联解码轨迹还是协议列表, 您都无法在一条消息中查看到所有的重要数据 但是借助列表 工具 图标选择, 您可以选择打开实时 数据包查看工具, 显示示波器正在触发的这条信息中的所有信号更新 图 5 显示了这个数据包查看工具针对一条包含多个信号的信息给出的扩展视图 只需拉动滚动条就能观察列表底部的信号
06 是德科技 使用 CAN-dbc 字符触发和解码更快速地完成汽车设计调试 应用指南 同时对 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. 字符解码轨迹的扩展视图
07 是德科技 使用 CAN-dbc 字符触发和解码更快速地完成汽车设计调试 应用指南 总结 目前, 汽车工程师可以使用多种工具对他们的 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 系列示波器上使用 出版物标题出版物类型出版物编号 InfiniiVision 3000T X-Series Oscilloscopes 技术资料 5992-0140EN InfiniiVision 4000 X 系列示波器技术资料 5991-1103CHCN InfiniiVision 6000 X 系列示波器技术资料 5991-4087CHCN 用于 InfiniiVision X 系列示波器的串行总线选件技术资料 5990-6677CHCN InfiniiVision 示波器探头和附件 技术资料 5968-8153CHCN Oscilloscope Measurement Tools to Help Debug Automotive Serial Buses 应用指南 5991-0512EN Faster Characterizing CAN Bus Arbitration 应用指南 5991-4166EN CAN Eye-diagram Mask Testing 应用指南 5991-0484EN 评测用于串行总线应用的分段存储器 应用指南 5990-5817CHCN 产品网站 如欲了解最新 最全面的应用和产品信息, 请访问是德科技产品网站 : www.keysight.com/find/dsoxt3auto www.keysight.com/find/dsox4auto www.keysight.com/find/dsox6auto 是德科技示波器 从 20 MHz 到 >90 GHz 的多种型号 业界领先的技术指标 功能强大的应用软件
08 是德科技 使用 CAN-dbc 字符触发和解码更快速地完成汽车设计调试 应用指南 mykeysight www.keysight.com/find/mykeysight 个性化视图为您提供最适合自己的信息! www.keysight.com/go/quality 是德科技公司 DEKRA 认证 ISO 9001:2008 质量管理体系 是德科技渠道合作伙伴 www.keysight.com/find/channelpartners 黄金搭档 : 是德科技的专业测量技术和丰富产品与渠道合作伙伴的便捷供货渠道完美结合 www.keysight.com/find/scope 如欲获得是德科技的产品 应用和服务信息, 请与是德科技联系 如欲获得完整的产品列表, 请访问 : www.keysight.com/find/contactus 是德科技客户服务热线热线电话 : 800-810-0189 400-810-0189 热线传真 : 800-820-2816 400-820-3863 电子邮件 : tm_asia@keysight.com 是德科技 ( 中国 ) 有限公司北京市朝阳区望京北路 3 号是德科技大厦电话 : 86 010 64396888 传真 : 86 010 64390156 邮编 : 100102 是德科技 ( 成都 ) 有限公司成都市高新区南部园区天府四街 116 号电话 : 86 28 83108888 传真 : 86 28 85330931 邮编 : 610041 是德科技香港有限公司香港北角电器道 169 号康宏汇 25 楼电话 : 852 31977777 传真 : 852 25069233 上海分公司上海市虹口区四川北路 1350 号利通广场 19 楼电话 : 86 21 26102888 传真 : 86 21 26102688 邮编 : 200080 深圳分公司深圳市福田区福华一路 6 号免税商务大厦裙楼东 3 层 3B-8 单元电话 : 86 755 83079588 传真 : 86 755 82763181 邮编 : 518048 广州分公司广州市天河区黄埔大道西 76 号富力盈隆广场 1307 室电话 : 86 20 38390680 传真 : 86 20 38390712 邮编 : 510623 西安办事处西安市碑林区南关正街 88 号长安国际大厦 D 座 501 电话 : 86 29 88861357 传真 : 86 29 88861355 邮编 : 710068 南京办事处南京市鼓楼区汉中路 2 号金陵饭店亚太商务楼 8 层电话 : 86 25 66102588 传真 : 86 25 66102641 邮编 : 210005 苏州办事处苏州市工业园区苏华路一号世纪金融大厦 1611 室电话 : 86 512 62532023 传真 : 86 512 62887307 邮编 : 215021 武汉办事处武汉市武昌区中南路 99 号武汉保利广场 18 楼 A 座电话 : 86 27 87119188 传真 : 86 27 87119177 邮编 : 430071 上海 MSD 办事处上海市虹口区欧阳路 196 号 26 号楼一楼 J+H 单元电话 : 86 21 26102888 传真 : 86 21 26102688 邮编 : 200083 本文中的产品指标和说明可不经通知而更改 Keysight Technologies, 2013-2015 Published in USA, March 13, 2015 出版号 :5991-2847CHCN www.keysight.com