调试嵌入式系统设计中的低速串行总线(二)
SPI背景知识
串行外设接口总线(SPI)最初是摩托罗拉在20世纪80年代末为其68000 系列微控制器研制的。由于该总线简单、流行,许多其它制造商也已经采用这一标准。它现在用于嵌入式系统设计常用的各种器件中。SPI主要用于微控制器和直接外设之间。它通常用于移动电话、PDA和其它移动设备中,在CPU、键盘、显示器和内 存芯片之间通信。
工作方式
SPI (串行外设接口)总线是一种主/从结构的4线串行通信总线。4个信号是时钟(SCLK), 主输出/从输入(MOSI), 主输入/从输出(MISO)和从选择(SS)。在两台设备通信时,一台设备称为“主设备”,另一台设备称为“从设备”。主设备驱动串行时钟。它同时收发数据,因此是一种全双工协议。SPI 使用SS 线路指明与哪台设备传送数据,而不是总线上的每台设备都有一个唯一的地址。这样,总线上的每台唯一的设备都需要从主设备提供自己的SS 信号。如果有3 台从设备,那么主设备有 3 条SS 引线,每条引线都连接到每台从设备上,如图 8 所示。
在图8 中,每台从设备只与主设备通话。但是,SPI可以串联多台从设备,每台从设备依次进行操作,然后把结果发回主设备,如图9所示。因此您可以看到,SPI实现方案没有“标准”。在某些情况下,在不要求从设备向回到主设备通信时,MISO 信号可以完全省略。
在SPI数据传送发生时,8位数据字移出MOSI,不同的8位数据字移入MISO。这可以视为16 位循环位移寄存器。在传送发生时,这个16 位位移寄存器位移8 个位置,从而在主设备和从设备之间交换8位数据。一对寄存器 - 时钟极性(CPOL)和时钟相位(CPHA)决定着驱动数据的时钟边沿。每个寄存器有两种可能的状态,支持四种可能的组合,所有这些组合互不兼容。因此,主/从设备对必须使用相同的参数值进行通信。如果使用多个固定在不同配置的从设备,那么每次需要与不同的从设备通信时,主设备必须重新进行配置。
图8.常用的SPI配置。
图9.串联SPI配置。
图10. SPI 总线设置菜单。
处理SPI
DPOxEMBD 串行触发和分析应用模块还可以为SPI 总线实现类似的功能。我们可以再次使用前面板Bus按钮,简单地输入总线基本参数,包括SCLK, SS, MOSI 和MISO位于哪条通道上、门限和极性,来定义一条SPI 总线 (参见图10)。
例如,考虑一下图11 中的嵌入式系统。一条SPI 总线连接到一个合成器、一个DAC及某个I/O 上。合成器连接到VCO上,VCO为其余系统提供一个 2.5 GHz 时钟。在启动时,CPU应该对合成器编程。但是不知道哪里出了问题,VCO在产生3 GHz的信号。调试这个问题的第一步是考察CPU和合成器之间的信号,确定存在信号,没有物理连接问题,但我们找不到发生了什么问题。然后,我们决定看一下SPI 总线上传送的合成器编程使用的实际信息。为捕获这些信息,我们把示波器设成在合成器Slave Select信号激活时触发采集,并对DUT 通电,捕获启动编程命令。采集结果如图12 所示。
通道1 (黄色) 是SCLK,通道2 (青色) 是MOSI,通道3(洋红色) 是SS。为确定我们是否对设备正确编程,我们看一下合成器的产品资料。总线上的前三个消息假设是初始化合成器、加载分路器比率、锁存数据。根据技术数据,前三个传送中最后半个字节 (一个十六进制字符)应该分别是3, 0 和1,但我们看到的是0, 0 和0。在消息末尾全是0 时,我们认识到,我们在SPI 中犯了一个最常见的错误,即在软件中以相反的顺序在每个24位字中对各个位编程。在迅速改变软件配置后,得到下面的采集,VCO 正确锁定在2.5 GHz,如图13 所示。
在上面的实例中,我们使用简单的SS Active 触发。MSO/DPO 系列中完整的SPI 触发功能包括下述类型:
SS Active - 在从设备选择行对从设备变真时触发。
MOSI - 在从主设备到从设备用户指定最多16 个字节时触发。
MISO - 在从设备到主设备用户指定最多16 个字节时触发。
MOSI/MISO - 在主设备到从设备及从设备到主设备用户指定最多16 个字节时触发。
这些触发也可以隔离感兴趣的特定总线业务,解码功能则可以立即查看采集中总线传送的每条消息的内容。
图11.通过SPI控制的合成器
图12. 采集SPI 总线之外的合成器配置消息。
图13. 正确的合成器配置消息。
RS-232
背景知识
RS-232是近距离的两台设备之间进行串行通信广泛使用的标准,它主要用于PC 串行端口,另外也用于嵌入式系统,作为调试端口使用或连接两台设备。RS-232-C标准于1969年问世,之后标准修订了两次,但变化很小,其信号能够与RS-232-C 互通。业内还有几个相关标准,如RS-422 和RS-485,这些标准类似,但使用差分信令在远距离内通信。
工作方式
两台设备称为DTE (数据终端设备)和DCE (数据电路端接设备)。在某些应用中,DTE 设备控制着DCE 设备;在其它应用中,这两台设备是对等的,DTE 和DCE 之间的区别可以是任意的。
RS-232标准规定了各种各样的信号,许多信号并不常用。两个最重要的信号是发送的数据(Tx)和接收的数据(Rx)。Tx 把数据从DTE 传送到DCE。DTE 设备的Tx 线路是DCE 设备的Rx 线路。类似的,Rx 把数据从DCE传送到DTE。
RS-232 标准没有规定使用哪些连接器。最常用的连接器是25针连接器和9针连接器。也可以使10 针、8 针或6 针连接器。还可以在不使用标准连接器的情况下,把同一块电路板上的两台RS-232设备连接起来。
在连接两台RS-232 设备时,通常要求零讯号调制器。这种设备交换多条线路,包括Tx和Rx线路。通过这种方式,每台设备可以在Tx 线路上发送数据,在Rx 线路上接收数据。表2 显示了RS-232 信号常用的9 针连接器使用的针脚输出。记住,如果信号已经传过零讯号调制解调器,那么许多信号将被交换。最重要的是,将交换Tx 和Rx。
表2. 常用的RS-232 连接器针脚输出。
在探测RS-232信号时,通常要使用接续盒。这种设备允许简便地探测RS-232电缆内部的信号。接续盒成本低,可以从电子器件经销商处购买。
RS-232 标准没有规定通过总线传送的内容。ASCII 文本是最常见的内容,但也使用二进制数据。数据通常会划分成数据包。在ASCII文本中,数据包最后通常带有新行符或回车符。在二进制数据中,通常使用其它值,如00 或FF 十六进制。
设备通常使用通用异步接收机/ 发射机(UART) 实现RS-232。UART 在市面上流行的部件中广泛使用。UART 采用位移寄存器,把一个数据字节转换成串行流,反之亦然。在嵌入式设计中,UART 还直接通信,而不需使用RS-232 收发机。
图14显示了RS-232数据的一个字节。这个字节由下述位组成:
开始位-字节的开头是一个开始位。
数据位-后面跟着多个数据位。最常见的是8个数据位,某些应用使用7 个数据位。即使在只传送7 个位时,数据通常也会非正式地称为一个字节。在UART到UART 通信中,有时会使用9 位数据字。
奇偶性-一个可选的奇偶性位。
结束位- 1 个、1.5 个或2 个结束位。RS-232总线没有时钟线路。每台设备使用自己的时钟,确定什么时候对数据线路采样。在许多设计中,UART使用Tx 和Rx 信号的上升沿,把自己的时钟与其它设备的时钟同步起来。
图14. RS-232 字节结构。
处理RS-232
DPOxCOMP 应用模块支持串行触发和分析RS-232总线。您可以在示波器上方便地查看RS-232、RS-422、RS-485或UART 数据,而不需连接PC 或专用解码器。
通过使用前面板总线按钮,我们可以输入基本参数,如使用的通道、位速率和奇偶性,定义RS-232 总线(参见图15)。
图15. RS-232 总线设置菜单。
在本例中,我们选择了ASCII解码;MSO/DPO系列还作为二进制或十六进制显示RS-232 数据。
想象一下您有一台设备轮询传感器,请求通过RS-232总线传送数据。传感器没有对数据请求作出应答。您想确定传感器是不是没有收到请求,或者是不是收到请求、但忽略了请求。
首先,探测Tx 和Rx 线路,在示波器上设置一条总线。然后把示波器设置成在通过Tx 线路发送数据请求时触发采集。触发后的采集如16 所示。
在这里,我们可以看到数字通道1 上的Tx 线路及数字通道0上的Rx线路。但是,我们更关心解码的数据,其显示在原始波形上方。我们放大查看传感器的响应。概况显示了Tx线路上的请求及Rx线路上的响应。光标显示在请求结束后大约37ms时发出回复。提高控制器的超时可以解决这个问题,因为它为传感器回复提供了足够的时间。
MSO/DPO 系列示波器的RS-232 触发包括下述功能:
Tx 开始位-在表明字节开始的位上触发。
Tx数据包尾- 在数据包最后一个字节上触发。数据包可以以某个字节结尾:零 (00 十六进制), 换行(0A十六进制), 回车(0D十六进制), 空格(20十六进制)或FF 十六进制。
Tx 数据- 触发最多10 个字节的用户指定数据值。
Rx 开始位、Rx 数据包尾和Rx 数据- 这些与Tx 触发类似,但发生在Rx 线路上。通过MSO/DPO 系列示波器,可以简便地查看RS-232信号,分析信号,把这些信号与设备中的其它活动关联起来。
图16. 测量两条RS-232 总线上的消息时延。
CAN
背景知识
CAN (控制器区域网)总线是博世公司在20世纪80年代专门研制的一种分层串行数据通信协议,以在电气噪声环境中作为设备之间的通信总线。1992年,梅塞德兹- 奔驰率先在其汽车系统中采用CAN。今天,几乎每个汽车制造商都在使用CAN 控制器和网络,控制雨刷器马达控制器、雨水传感器、安全气囊、门锁、传动系统和电动车窗等等。由于能够容忍电气噪声、减少连线、校验错误及高速传送速率,CAN 正迅速扩展到其它应用中,如工业控制、舰队、医疗、航空等领域。
工作方式
CAN总线是一种平衡的(差分)2线接口,在屏蔽双绞线 (STP)、非屏蔽双绞线 (UTP)或带状电缆上运行。每个节点使用公头9 针连接器。非归零 (NRZ) 位编码与位填充一起使用,保证紧凑的消息及最小的转换数量和高抗噪声能力。CAN总线接口采用异步传输方案,在总线空闲时每个节点可以开始传送信息。消息广播到网络上的所有节点。在多个节点同时发起消息时,位仲裁用来确定哪条消息的优先权较高。消息可以是四种类型中的一种:数据帧、远程传输请求(RTR)帧、错帧或过载帧。总线上检测到错误的任何节点会传输一个错帧,导致总线上所有节点能够看到当前消息不完整,传输节点会重新发送消息。接收设备发起过载帧,表明还没有准备好接收数据。数据帧用来传输数据,远程帧由用来请求数据。数据帧和远程帧由每个帧开头和结束的开始位和停止位控制,包括下述字段:仲裁字段、控制字段、数据字段、CRC字段和ACK字段,如图17所示。
图17. CAN 数据/ 远程帧。
SOF - 帧以帧头 (SOF) 位开始。
仲裁 - 仲裁字段包括标识符(地址)和远程传输请求(RTR)位,用来区分数据帧和数据请求帧,其也称为远程帧。标识符可以采取标准格式(11位-2.0A 版)或扩展格式(29位 - 2.0B版)。
控制 - 控制字段由6个位组成,包括标识符扩展(IDE)位,它区分CAN2.0A (11 位标识符) 标准帧和CAN 2.0B (29位标识符)扩展帧。控制字段还包括数据长度代码 (DLC)。DLC长4 位,表明数据帧中数据字段的字节数或远程帧请求的字节数。
数据 - 数据字段由0-8个数据字节组成。
CRC - 15位循环冗余校验代码和隐性分隔符位。
ACK - 确认字段长两位。第一个位是时隙位,作为隐性位传输,但之后被成功地收到传输消息的任 何节点传送的显性位覆盖。第二个位是是隐性分隔符位。
EOF - 七个隐性位,表明帧尾(EOF)。
三个隐性位的间断 (INT) 字段表明总线空闲。总线空闲时间可以是任意长度,包括零。
它定义了大量的不同数据速率,最高数据速率为1Mb/s,最低数据速率为5kb/s。所有模块必须支持至少20kb/s的速率。电缆长度取决于使用的数据速率。正常情况下,系统中所有设备都以统一的固定位速率传送信息。最大线路长度在低速时可以达到几千米;典型情况是1Mbps 时40 米。在电缆每端使用端接电阻器。
处理CAN
MSO/DPO 系列的DPOxAUTO和DPO4AUTOMAX串行触发和分析应用模块可以对CAN总线实现类似的触发和分析功能。我们可以再次使用前面板 B1或B2按钮,简单地输入总线的基本参数,包括探测的CAN 信号类型及位于哪条通道上、位速率、门限和样点(位时间的%),来定义CAN 总线,参见图18。
图18. CAN 总线设置菜单。
想象一下您需要进行相关定时测量,确定从司机在司机车门仪表板上按下摇车窗开关开始到车窗实际开始移动之间的时延。通过指定司机车门中CAN模块的ID 及与“下摇车窗”命令有关的数据,您可以触发采集正在查找的数据帧。通过同时探测司机车门的下摇车窗开关及车门中的马达驱动,可以非常简便地完成这一定时测量,如图19 所示。
图中的白三角形是我们放在波形上作为参考点的标记。通过简单地按示波器前面板上Set/Clear Mark (设置/清除标记)按钮,可以在屏幕中增加或从屏幕中删除标记。按前面板上的Previous和Next按钮,缩放窗口从一个标记跳到另一个标记,从而可以简便地在采集中感兴趣的事件之间导航。
现在想象一下,如果没有这些功能会怎样执行这一任务。
如果没有CAN触发功能,您将不得不触发开关本身,捕获时间窗口足够长的活动,然后在CAN 总线上逐帧手动解码,直到最终找到适当的帧。以前需要几十分钟或几个小时完成的工作,现在只需要一会儿就可以完成。
MSO/DPO强大的CAN 触发功能包括下述类型:
帧头:触发SOF 字段。
帧类型:选项包括数据帧、远程帧、错帧和过载帧
标识符:使用读/写判定触发特定的11位或29位标
识符
数据:触发1-8 字节用户指定的数据
Missing Ack:在接收设备没有提供确认时触发
帧尾-:触发EOF 字段
这些触发类型可以轻松隔离CAN总线上查找的几乎任何项目。但触发只是开始。调试通常要求检查触发前触发后的消息内容。可以通过MSO/DPO系列的事件表简单地查看一次采集中的多个消息的内容,如图17所示。
事件表以带时戳的表格形式显示了采集中每条消息解码的消息内容。它不仅可以简便地查看总线上的所有业务,还可以简便地在消息之间进行定时测量。事件表还可以用于MSO/DPO 系列示波器支持的所有总线类型。
图21. LIN 帧的结构。
LIN
背景知识
本地互连网络(LIN)总线是LIN 联盟在1999 年开发的,在不需要CAN 总线那么高的成本、通用性和速度的应用中,作为CAN 总线的低成本替代方案。这些应用一般包括智能传感器和制动器之间的通信,如车窗控制、门锁、雨水传感器、雨刷控制、气候控制等等。
但是,由于能够容忍电气噪声、错误检测功能及高速数据传送,CAN 目前仍用于引擎定时控制、防抱死刹车系统、传动系控制等应用中。
工作方式
LIN总线是一种基于增强ISO9141标准的低成本单线实现方案。LIN网络有一个主设备,有一个或多个从设备。所有消息都由主设备发起,每条消息只有一个从设备作出响应,因此不象CAN那样需要碰撞检测和仲裁功能。通信基于UART/SCI,数据在8 位字节中与开始位、结束位和非奇偶性位一起传送。数据速率在1 k b / s -20kb/s之间,尽管听起来很慢,但它适合许多预计的应用,使EMI 达到最小。LIN 总线总是处于两种状态中的一种状态:活动状态或睡眠状态。在活动状态下,总线上所有节点是醒着的,收听相关的总线命令。通过使用主设备签发Sleep Frame(睡眠帧),或总线不活动时间长于预先确定的时间,可以使总线上的节点进入睡眠状态。然后在任何节点请求唤醒或主设备签发中断字段时,总线会被唤醒。
LIN帧由两个主要部分组成:包头和响应。包头由主设备发出,响应则由从设备发出。包头和响应都有自己的构成,如图21所示。
包头构成:
中断字段-中断字段用来表明新帧的开头。它激活和命令所有从设备接听包头的其余部分。
同步字段-从设备使用同步字段确定主节点使用的波特率,相应地进行同步。
标识符字段-标识符指明哪台从设备采取行动。
响应构成:
数据-指定的从设备应答1-8 个字节的数据。
校验和-计算得出的字段,用来检测数据传输中的错误。LIN标准已经演进了多个版本,使用两种不同形式的校验和。典型的校验和只在数据字节上计算,用于1.x版LIN系统中。增强校验和在数据字节和标识符上计算,用于2.x 版LIN 系统中。
处理LIN
MSO/DPO系列通过DPOxAUTO或DPO4AUTOMAX串行触发和分析应用模块提供LIN支持。再次使用前面板Bus 按钮,我们可以简单地输入总线的基本参数,如使用的LIN 版本、位速率、极性、门限及在哪里对数据采样(位时间的百分比),定义一条LIN总线。LIN设置菜单及解码后的LN 帧如图22 所示。
MSO/DPO 系列拥有一种强大的功能,能够同时定义和解码最多四条串行总线。回到前面的CAN 总线实例,现在想象一下LIN总线运行车窗控制装置。在司机按下Passenger WindowDown 控制装置时,司机窗户中的LIN 总线上会发起一条消息,这条消息传过中央CAN 网关,然后发送到司机车门的另一个LIN网络中。在这种情况下,我们可以触发其中一条总线上的相关消息,同时捕获和解码全部三条总线,在业务通过系统从一条总线传送到另一条总线时,可以非常简便地查看业务。如图23 所示,我们触发了第一条LIN消息,捕获了全部三条总线。
MSO/DPO 系列LIN 触发功能包括下述类型:
-同步-触发同步字段。
-标识符-触发特定的标识符。
-数据-触发1-8个字节的特定数据值或数据值范围。
标识符和数据-触发标识符和数据组合。
唤醒帧-触发唤醒帧。
睡眠帧-触发睡眠帧。
错误-触发同步错误、ID奇偶性错误或校验和错误。
这些触发类型允许比以前更快地隔离LIN总线上查找的一切特性。通过MSO/DPO 系列中的其它高级串行功能,如事件表及搜索和标记功能,调试基于LIN的汽车设计变得前所未有的简便。
FlexRay
背景知识
FlexRay 是一种相对较新的汽车总线,目前,由领先汽车公司和供应商组成的集团(称为FlexRay联盟)对这一总线的开发工作仍在进行中。随着汽车智能化程度不断提高及电子器件进入越来越多的汽车应用,制造商发现现有的汽车串行标准(如CAN 和LIN)没有满足X-bywire应用要求的速度、可靠性或冗余性,如线路制动或线路转向应用。今天,这些功能主要采用机械系统和水压系统。将来,它们将被代之以由传感器和高度可靠的电子组成的网络,这不仅可以降低汽车的成本,还可以明显提高乘客的安全性,因为它提供了许多基于智能电子的功能,如提前制动、避免碰撞、自适应巡航控制、等等。
图24. FlexRay 帧结构
工作方式
FlexRay是在屏蔽双绞线(STP)或非屏蔽双绞线(UTP)上运行的一种速率高达10 Mb/s的差分总线,其速度明显高于LIN 的20 kb/s 或CAN 的1 Mb/s 速率。FlexRay采用双通道结构,有两大优势。第一,可以配置两条通道,在关键安全应用中提供冗余通信,如x-by-wire应用,保证消息通过。第二,可以配置两条通道,在每条通道上以10 Mb/s速率发送唯一的信息,在安全重要程度较低的应用中实现20 Mb/s 的整体总线传送速率。
FlexRay 采用时间触发协议,通过同时包含静态帧和动态帧的通信周期,实现了以前的同步协议和异步协议的优势。静态帧是为总线上每台设备分配的时隙或预定长度,以在每个周期期间通信。总线上的每台设备也有机会通过动态帧在每个周期中通信,动态帧的长度(和时间)可能会变化。FlexRay帧由三个主要段组成:包头段、净荷段和包尾段。每个段都有自己的构成,如图24 所示。
包头段的构成:
指示符位-前5 个位称为指示符位,表明传送的帧的类型。选项包括正常帧、净荷帧、空帧、同步帧和启动帧。
帧号-帧号定义了应该在哪个时隙中传送帧。帧号在1-2047 之间,在通信周期中每条通道内任何单独帧号使用的次数不多于一次。
净荷长度- 净荷长度字段用来指明净荷字段中有多少个数据字。
包头CRC-使用同步帧指示符、启动帧指示符、帧号和净荷长度计算得出的循环冗余校验(CRC)代码。
循环数量- 当前通信周期的值,范围为0-63。
净荷段的构成:
数据-数据字段包含最多254 字节的数据。对在静态段中传送的帧,净荷段的前0-12个字节可以选择作为网络管理矢量使用。帧包头中的净荷前置码指示符指明净荷段是否包含网络管理矢量。对在动态段中传送的帧,净荷段的前两个字节可以选择作为消息ID 字段使用,允许接收节点根据这个字段的内容过滤或掌控数据。帧包头中的净荷前置码指示符指明净荷段是否包含消息ID。段中传送的帧,净荷段的前两个字节可以选择作为消息ID 字段使用,允许接收节点根据这个字段的内容过滤或掌控数据。帧包头中的净荷前置码指示符指明净荷段是否包含消息ID。
包尾段构成:
CRC- 使用帧的包头段和净荷估计算得出的循环冗余校验(CRC)代码。动态帧有一个额外的成分,位于包尾CRC 后面,称为动态尾部序列(DTS),防止总线接收机过早地检测通道空闲状态。
图25. FlexRay 总线设置菜单。
处理FlexRay
MSO/DPO4000 系列通过DPO4AUTOMAX 模块支持FlexRay,在所有三项汽车标准上提供了串行触发和分析功能,即CAN、LIN 和FlexRay,并在FlexRay 上提供了眼图分析和关键定时测量功能。为定义FlexRay总线,我们进入总线菜单,从支持的标准列表中选择FlexRay。FlexRay 设置菜单如图25 所示。
然后,我们使用Define Inputs 菜单,告诉示波我们是在查看FlexRay 通道A 还是通道B、我们正在探测哪类信号(差分、半差分对或控制器和总线驱动器之间的逻辑信号),然后设置门限和位速率。与4000系列上支持的其它串行标准不同,FlexRay 在查看非Tx/Rx 信号时要求设置两个门限,因为它是一种三电平总线。这样,示波器可以识别Data High 和Data Low 及两个信号电压相同的空闲状态。
MSO/DPO4000 系列强大的FlexRay 功能集如图26 所示,其中我们触发了Frame ID = 4 和Cycle Count = 0组合,捕获了大约80 个FlexRay 帧,解码了整个采集,然后让示波器搜索采集数据,找到和标记发生的所有同步帧。所有这一切只需使用100,000 点的记录长度完成。MSO/DPO4000 系列在所有通道上可以实现最深10M 点的记录长度,捕获串行活动的长时间窗口。
MSO/DPO4000 系列FlexRay触发功能包括下述类型:
帧头-触发帧头序列(FSS)的后沿。
指示符位-触发正常帧、净荷帧、空帧、同步帧或启动帧。
标识符-触发特定帧号或一个帧号范围。
循环数量-触发特定的循环数量值或一个循环数量值范围。
包头字段-触发任意包头字段或所有包头字段中用户指定值的组合,包括指示符位、帧号、净荷长度、包头CRC 和循环数量。
数据-触发最多16 个字节的数据。数据窗口可以偏移帧中用户指定字节数及非常长的数据净荷。可以作为特定值或取值范围指定所需的数据。
标识符和数据- 触发帧号和数据组合。
帧尾-触发静态帧、动态帧或所有帧。
错误- 触发大量的不同错误类型,包括包头CRC错误、包尾CRC 错误、空帧错误、同步帧错误和启动帧错误。
图26. 触发帧号和循环数,搜索采集的数据,找到启动帧。
图28. 在CAN 总线采集中搜索指定的标识符的数据。
除上面介绍的触发和解码功能外,DPO4AUTOMAX 还提供了FlexRay眼图分析功能,帮助诊断物理层问题。用户只需把软件包装到PC 上,通过LAN 或USB 把PC 连接到示波器,点击Acquire Data按钮,就可以获得信息丰富的显示画面,如图27 所示。分析功能包括:
眼图- 使用采集中的所有信息构建眼图,当前选择的帧用蓝色突出显示。与TP1或TP4模板简便地进行对比,违规的地方用红色突出显示。
解码-在模拟波形上解码当前选择的帧,整个采集在下面的表格中解码。
时间间隔误差(TIE)图-简便地目测帧内的抖动。
错误校验- 错误用红色突出显示。计算包头和包尾CRC,并与传送的帧进行对比。
定时测量-上升时间、下降时间、TSS 时长、帧时间、平均位时间、前一个同步、下一个同步、前一个周期帧、下一个周期帧。
查找-根据分组内容隔离感兴趣的特定帧。
保存-把解码后的采集保存到.csv 文件中,以进一步离线分析。
由于提供了这套完善的FlexRay触发功能及前面讨论的CAN 和LIN 功能,MSO/DPO4000 系列已经成为最优秀的汽车设计调试工具。
触发与搜索
正如我们在本应用指南中讨论的那样,必需拥有强大的触发系统,隔离串行总线上感兴趣的事件。但是,一旦已经采集了数据(示波器被停止),而且想分析数据,那么触发就没有什么用了。如果示波器具有类似触发的资源、分析停止的波形数据不是更好吗?MSO/DPO系列的Wave Inspector为您提供了强大的搜索功能。本文中讨论的所有总线触发功能还作为已采集数据的搜索标准使用。例如,在图18中,示波器已经在长采集记录中搜索了具有特定地址和数据内容的每条CAN 消息,并在显示屏顶部在每条消息上标明空心的白三角形。为在发生的消息之间导航,用户只需按前面板上的Previous和Next按钮即可。
当然,搜索也可以用于比较传统的触发类型。搜索类型包括边沿、脉宽、欠幅脉冲、建立时间和保持时间、逻辑和上升时间/下降时间。
总结
尽管嵌入式系统设计从并行总线转向串行总线带来了许多好处,但它也给设计工程师带来了许多挑战。通过传统测试测量工具,触发查找的事件要困难得多,这些工具仅仅查看模拟信号,几乎不可能告诉用户其提供了哪些信息,而且手动解码长时间的总线活动、诊断问题是非常耗时、非常容易出错的过程。MSO/DPO系列改变了这一切。由于其强大的触发、解码和搜索功能,当前的设计工程师可以以极高的效率解决嵌入式系统设计问题。
评论
查看更多