如何用Pico示波器进行CAN总线解码分析

2016-01-26 08:23周翠
单片机与嵌入式系统应用 2015年10期
关键词:波特率示波器电平



如何用Pico示波器进行CAN总线解码分析

广州虹科电子科技有限公司周翠

Pico示波器具有串行解码的功能,能够对CAN、FlexRay、I2C、I2S、SPI、LIN或UART等串行总线进行解码。Pico示波器比较适合做串行解码,因为它们的深度存储器可以让软件采集较长时间、不间断的数据,尤其是6000系列能够在几秒内采集数千个数据帧存入到512M的样本存储器。下面将介绍如何用一款Pico示波器进行CAN总线数据解码。

1关于CAN总线解码

1.1什么是CAN总线?

数据通信时,物理线路上传输的信号是由一系列高低电平组成的,这些高低电平携带了我们所需要的信息,在数据接收端,我们需要将这些物理电平按照原始的编码规则进行解析,从而得到实际的物理信号。

CAN(控制器区域网络)总线是一种在汽车和工业机械中使用的串行协议,允许微控制器相互通信。该标准最初由 Robert Bosch GmbH 于 1983 年制定。它使用双绞线传输差分信号,分别为CAN高(CAN_H )和CAN低(CAN_L),当线路受到共模干扰之后,信号差值不变,信号依然能够正确被解析。

1.2CAN总线上传输的电平特点

CAN总线上发布了ISO11898和ISO11519两个通信标准,分别对应高速CAN和容错CAN。此两个标准差分电平的特性不同。本文主要介绍如何用Pico示波器进行ISO11898标准的CAN总线解码。

表 1

图 1

CAN高电平大概为3.5 V左右,CAN低电平大概为1.5 V左右,CAN差分电平大概在2 V左右。一般情况下,我们可以从三种CAN总线波形上进行解码:

① 从CAN_H总线上传输的电平,阈值设置为3 V左右即可。

② 从CAN_L总线上传输的电平,阈值设置为1.6 V左右即可。

③ 从差分波形(CANH_CANL)上进行解码,阈值设置为1.5 V左右即可。从差分波形上解码更加准确,因为差分波形滤除了线路上的共模干扰信号。

但是很遗憾,目前PicoScope6软件的串行解码功能只能从CAN_H或CAN_L波形上进行解码,暂时还无法实现从差分波形上进行解码。

2解码设置

Pico的任何一台示波器都具有串行解码的功能,不同系列的区别在于示波器硬件参数高时,采集到的波形更加平滑,噪声小。在进行解码时,我们可以只从CAN高波形上进行解码,或只从CAN低波形上进行解码,或者同时对CAN_H和CAN_L波形进行解码。

2.1仅从CAN低波形上进行解码设置

将CAN网络中的CAN_L端接入到示波器A通道(示波器通道任意选择)探头的正极,CAN网络的GND连接探头的负极。点击PicoScope6工具菜单,选择串行解码功能。弹出串行解码设置窗口。

图 2

设置步骤如下:

① 设置A通道协议:CAN Low。

② 设置CAN低判断阈值,如1.6 V。该阈值用于判断CAN_L电平是“0”或“1”。

③ 设置总线波特率,即目前测试网络的波特率,例如500 k波特。

④ 设置显示模式,选择“在视图中”或“在窗口中”查看CAN数据。

In View: 在视图中,在波形显示窗口查看解码之后的CAN数据。

In Window:在窗口中,在表格中查看解码之后的CAN数据。

2.2仅从CAN高波形上进行解码设置

将CAN网络中的CAN_H端接入到示波器A通道(示波器通道任意选择)探头的正极,CAN网络的GND连接探头的负极。点击PicoScope6工具菜单,选择串行解码功能,弹出串行解码设置窗口。

图 3

设置步骤如下:

① 设置A通道协议:CAN High。

② 设置CAN低判断阈值,如3 V。该阈值用于判断CAN_L电平是“0”或“1”。

③ 设置总线波特率,即目前测试网络的波特率,例如500 k波特。

④ 设置显示模式,选择“在视图中”或“在窗口中”查看CAN数据。

In View: 在视图中,在波形显示窗口查看解码之后的CAN数据。

In Window:在窗口中,在表格中查看解码之后的CAN数据。

2.3从CAN高波形和CAN低波形上同时解码

① 将CAN网络中的CAN_H端接入到示波器A通道(示波器通道任意选择)探头的正极,CAN网络的GND连接探头的负极。

② 将CAN网络中的CAN_H端接入到示波器B通道(示波器通道任意选择)探头的正极,CAN网络的GND连接探头的负极。

注意:CAN_H和CAN_L使用的测试通道可以自由选择。只是在进行解码设置时,对应正确即可。

③ 点击PicoScope6工具菜单,选择串行解码功能,弹出串行解码设置窗口。

在一个窗口分别设置CAN_H和CAN_L的解码设置,具体参考2.1和2.2节的设置,如图4所示。

图 4

3使用注意事项

Pico示波器进行串行解码有一个技术难点:Pico示波器的解码以完整的一个CAN数据帧为单位,即只有采集到完整的一帧CAN报文,才能将该数据帧完整地解析出来。

① 采集CAN_H和CAN_L波形时,注意时基的设置。即保证每一个波形页面至少能够采集到一个完整的数据帧,此时才能够解析出CAN报文。对于CAN总线来说,时基设置在1 ms/div或者大于1 ms/div即可。

② 注意采样率的设置,要保证采集到的波形不失真。例如CAN总线的波特率为500 kbps,那么采样率只有大于1 Ms/s,才能够采集到正确的波形(满足奈奎斯特定律)。

收稿日期:(2015-09-06)

猜你喜欢
波特率示波器电平
UART 波特率检测电路的FPGA 设计算法与实现
CAN 总线波特率自适应程序设计
波特率自适应的CAN驱动在嵌入式Linux下的实现①
一款教学示波器的Y通道设计与实现
可携带式虚拟双踪示波器
基于TEGRA K1的实时信号处理示波器的设计
详解lAP15W4K58S4单片机的串行口通信
三电平PWM并网变换器LCL滤波器量化设计
准PR控制的三电平逆变器及中点平衡策略
NPC五电平Z源逆变器的设计研究