kaiyun官方注册
您所在的位置: 首页> 测试测量> 设计应用> 自定义串行总线的触发和分析
自定义串行总线的触发和分析
摘要:随着嵌入式技术的发展,串行总线技术也被越来越多的应用于各个领域。比如I2C、SPI总线常被用于消费电子设备之中,CAN、LIN总线则在汽车电子领域被广泛应用。
Abstract:
Key words :

随着嵌入式技术的发展,串行总线技术也被越来越多的应用于各个领域。比如I2C、SPI总线常被用于消费电子设备之中,CAN、LIN总线则在汽车电子领域被广泛应用。为满足开发者分析调试的需要,目前一些高端的数字示波器产品已经加入了串行总线的触发和分析功能。基本上都是针对目前主流的通用串行总线协议,如I2C、SPI、CAN、LIN、UART等,可以满足大部分串行总线调试的需求。

但是,在一些特殊情况下,开发者所要调试的可能不是这种应用广泛的串行总线,比如只有列车上才会用到的WTB总线和MVB总线;开发者也可能要对通用串行总线协议进行修改来满足自己的应用需要,从而形成一种非标准的串行总线协议。在这些情况下,一般示波器提供的串行总线功能就无法胜任。开发者或者付出高额成本采用逻辑分析仪进行总线分析,或者使用比较原始的方法来手动分析,费时费力。

为满足用户对特殊串行总线调试的需求,一些测试仪器厂商推出了具备自定义串行总线触发和分析功能的示波器产品,用户可根据自己的需要进行简单的设定就能实现非通用串行总线的调试。下文以横河电机公司新推出的DLM2000示波器为例,详细说明一下此种功能。

串行总线的分析功能分为两个部分,总线触发和总线分析。

自定义串行总线的触发:

自定义串行总线 触发设定菜单

图表1 自定义串行总线触发设定菜单

DLM2000支持标准的CAN/LIN/I2C/SPI/UART总线触发,在串行总线触发菜单中有一项是<用户定义>(User Define)。进入这一项就可以进行自定义总线的触发设置。在此菜单中可以进行如下设置:

数据源(DATA:指定通道作为数据信号源。

激活电平(Active:指定将高电平或者低电平设为逻辑1。

时钟(Clock:对于通过时钟同步的总线,可以进行时钟的相关设置,选择时钟源以及设定在时钟信号的上升沿或下降沿进行采样。

片选(CS:当使用时钟同步信号时,通过片选信号来控制数据的有效性。可以设置片选源,以及高电平有效或者低电平有效。

锁存(Latch:可以指定时钟同步采样的数据源码型与指定码型进行比较的时间。可以是定锁存源,以及在锁存源的上升沿或是下降沿进行比较。

触发条件:可以将数据码型作为触发条件使用。当采样得到的数据源的码型与指定码型一致时,数据码型触发条件成立。

自定义串行总线 触发条件设定

图表2 自定义串行总线触发条件设定

数据码型的长度可以设为1~128位,并制定按照二进制或是十六进制来设定码型。

比特率:当没有同步时钟源时,可以对信号的比特率进行设定,设定范围从1kbps至50Mbps,步进值为1kbps。

下面是一个带时钟同步信号的自定义总线触发示例。

首先正确设置时钟源、数据源、片选信号和锁存信号,再设置好相应的触发条件,就可以像通用串行总线一样进行触发,捕获所需要的信号波形。

时钟同步串行总线 触发示例

图表3 时钟同步串行总线触发示例

自定义串行总线的分析:

l解码设置

进行自定义总线的触发之后,就可以进行解码分析了。同样要进行相应的设置。与触发的设置类似,要指定数据源、时钟源、片选源和锁存源,并进行相应的设定;对于没有时钟同步的总线,还要指定比特率,可设置范围也是1kbps~50Mbps。然后需要设置解码的起始点。之所以要设置解码起始点,是因为示波器没有内置自定义总线的协议,无法判断总线的帧结构,所以需要手动指定解码的起始点。

自定义串行总线 分析设定

图表4 自定义串行总线分析设定

l解码显示

打开解码显示功能,就可以在数据波形的下方看到解码的结果了。不过解码显示只有在关闭时钟时才能出现。解码结果可以以二进制或者十六进制进行显示。由于没有内置协议,所以无法以帧结构方式进行显示。

自定义串行总线解码显示格式 设定

图表5 自定义串行总线解码显示格式设定

l数据搜索

如果想在大量的数据中找到自己想要的数据,可以使用搜索功能,指定搜索的数据位数以及数据码型,执行搜索后很快就会将搜索到的结果标记出来并显示在缩放窗口中。搜索设定与触发条件设定类似。

下面以列车上常用的MVB串行总线为例,介绍自定义串行总线功能的使用方法。

多功能车厢总线MVB(Multifunction Vehicle Bus)是列车通信网络TCN(Train Communication Network)为实现位于同一车辆或固定重联的不同车辆中的标准设备之间的数据通信而定义的总线标准。

MVB总线上的串行数据采用异步差分传输的曼彻斯特码,曼彻斯特编码中的每个数据位应用以下规范编码:

a)一个“1”的编码在位元的前半部分“高”,后半部分“低”;

b)一个“0”的编码在位元的前半部分“低”,后半部分“高”;

如果曼彻斯特码中出现整个位元的高电平(NH)或整个位元的低电平(NL),则被认为非数据符,用于特殊场合,如:帧头,帧尾标识。

MVB总线属于异步传输总线,所以在进行触发和分析时不需要设置时钟源、片选和锁存等信号,只需要设定正确的比特率与合适的开始点。MVB总线的比特率一般为1.5Mbps,正确设置就可以了。

需要注意的是开始点的指定。因为MVB总线采用曼彻斯特编码,不同于常用的高低电平来确定逻辑“0”和“1”的方式,所以只有开始点的位置很合适才能正确解码。

设置好之后,解码结果会显示在波形下方,通过人工对比可以简单判断解码是否正确。通过显示设置可以将解码结果显示为二进制、十六进制或者ASCII形式,便于读取。

MVB 串行总线触发分析

图表6 MVB串行总线触发分析

如上面示例那样,如果所调试的总线不是CAN,LIN,I2C,SPI以及UART这些通用串行总线,DLM2000的自定义串行总线分析功能可在一定程度上为用户的分析工作提供便利,而且不用付出高昂的费用。这也是当初开发这个功能的初衷。

此内容为AET网站原创,未经授权禁止转载。
Baidu
map