选用示波器侦测串口总线的通讯是比较常用的一种解码技能。以Pico示波器为例,Pico示波器具有串行解码的功用,可以对CAN、FlexRay、 I2C、I2S、SPI、LIN或UART等串行总线进行解码。Pico示波器比较适合做串行解码,由于它们的深度存储器可以让软件收集较长时刻、不间断的数据,尤其是6000系列可以在几秒内收集数千个数据帧存入到512M的样本存储器。下面将介绍如何用一个款Pico示波器进行CAN总线数据解码。
一、CAN总线解码概述
1、 CAN总线概念
数据通讯时,物理线路上传输的信号是由一系列凹凸电平组成的,这些凹凸电平携带了咱们所需求的信息,在数据接纳端,咱们需求将这些物理电平依照原始的编码规矩进行解析,然后得到实践的物理信号。
CAN(控制器区域网络)总线是一种在轿车和工业机械中运用的串行协议,答应微控制器彼此通讯。该规范开始由 Robert Bosch GmbH 于 1983 年拟定。它运用双绞线上传输差分信号,别离为CAN高(CAN H )和CAN低(CAN L),当线路遭到共模搅扰之后,信号差值不变,信号仍然可以正确被解析。
2 CAN总线上传输的电平特色
CAN 总线上发布了ISO11898和ISO11519两个通讯规范,别离对应高速CAN和容错CAN。此两个规范差分电平的特性不同。本文首要介绍如何用Pico示波器进行ISO11898规范的CAN总线解码。
CAN高电平大约为3.5V左右,CAN低电平大约为1.5V左右,CAN差分电平大约在2V左右。一般情况下,咱们可以从三种CAN总线波形上进行解码:
1)从CAN-H总线上传输的电平,阈值设置为3V左右即可
2)从CAN-L总线上传输的电平,阈值设置为1.6V左右即可
3)从差分波形(CANH-CANL)上进行解码,阈值设置为1.5左右即可。从差分波形上解码愈加精确,由于差分波形滤除了线路上的共模搅扰信号。
可是很惋惜,现在PicoScope6软件的串行解码功用只能从CANH或CANL波形上进行解码,暂时还无法实现从差分波形上进行解码。
二、PicoScope6 串行解码功用
三、解码设置
Pico的任何一台示波器都具有串行解码的功用,不同系列的差异在于示波器硬件参数高时,收集到的波形愈加滑润,噪声小。在进行解码时,咱们可以只从CAN高波形上进行解码,或只从CAN低波形上进行解码,或许一起对CANH和CANL波形进行解码。
3.1 仅从CAN低波形上进行解码设置
1将CAN网络中的CANL端接入到示波器A通道(示波器通道恣意挑选)探头的正极,CAN网络的GND衔接探头的负极。
2 点击PicoScope6东西菜单,挑选串行解码功用。弹出串行解码设置窗口。
1)设置A通道协议:CAN Low
2)设置CAN低判别阈值,如1.6V。该阈值用于判别CAN-L电平是“0”或“1”.
3)设置总线波特率,即现在测验网络的波特率,例如500K波特。
4)设置显现形式,挑选“在视图中”或“在窗口中”检查CAN数据。
In View: 在视图中,在波形显现窗口检查解码之后的CAN数据。
In Window: 在窗口中,在表格中检查解码之后的CAN数据。
2、仅从CAN高波形上进行解码设置
1)将CAN网络中的CANH端接入到示波器A通道(示波器通道恣意挑选)探头的正极,CAN网络的GND衔接探头的负极。
2 )点击PicoScope6东西菜单,挑选串行解码功用。弹出串行解码设置窗口。
设置过程如下:
1)设置A通道协议:CAN High
2)设置CAN低判别阈值,如3V。该阈值用于判别CAN-L电平是“0”或“1”.
3)设置总线波特率,即现在测验网络的波特率,例如500K波特。
4)设置显现形式,挑选“在视图中”或“在窗口中”检查CAN数据。
In View: 在视图中,在波形显现窗口检查解码之后的CAN数据。
In Window: 在窗口中,在表格中检查解码之后的CAN数据。
3、从CAN高波形和CAN低波形上一起解码
1)将CAN网络中的CANH端接入到示波器A通道(示波器通道恣意挑选)探头的正极,CAN网络的GND衔接探头的负极。
2)将CAN网络中的CANH端接入到示波器B通道(示波器通道恣意挑选)探头的正极,CAN网络的GND衔接探头的负极。
留意:CANH和CANL运用的测验通道可以自由挑选。只是在进行解码设置时,对应正确即可。
3 )点击PicoScope6东西菜单,挑选串行解码功用。弹出串行解码设置窗口。
在一个窗口别离设置CANH和CANL的解码设置,详细参阅3.1和3.2章节的设置。如下图所示:
四、运用留意事项
Pico示波器进行串行解码有一个技能难点:Pico示波器的解码以完好的一个CAN数据帧为单位,即只要收集到完好的一帧CAN报文,才干将该数据帧完好的解分出来。
1) 收集CANH和CANL波形时,留意时基的设置。即确保每一个波形页面至少可以收集到一个完好的数据帧,此刻才干够解分出CAN报文。关于CAN总线来说,时基设置在1ms/div或许大于1ms/div即可。
2) 留意采样率的设置,要确保收集到的波形不失真。例如CAN总线的波特率为500Kbps,那么采样率只要大于1MS/s,才干够收集到正确的波形(满意乃奎斯特规律)。
3 )示波器的波形(一个显现页面)与波形之前是不接连的,总是或多或少一些空隙。所以当在进行CAN总线解码时,波形页面的边际会有一些无法被解析的数据帧,首要原因是波形页面边际将一个完结的数据帧截断了,以至于无法得到争夺的解析。如下图所示: