了解示波器的基本操作

R&S®ESSENTIALS | 数字示波器基础

使用示波器调试串行协议

作者:James Lewis l 测试与测量专家兼博主

准备好深入了解神奇的 UARTI2C(Q)SPICAN 总线。您不仅将了解到这些串行协议,还将学习如何使用示波器进行调试。我们将为您介绍有用技巧和实用见解,助您了解基础知识,从容进行协议调试。

边缘计算设备有一个连接到传感器、执行器、按钮和显示器的微控制器 (MCU)。这些设备大部分都通过 UART、I2C 或 CAN 等数字协议和 MCU 通信。使用示波器调试这些串行协议的一个优势在于,相较于之前并行处理多个总线,少量信号更易于探测。示波器可以通过探头提供一套全面的分析工具,不用单独使用协议分析仪。以下是使用示波器解码串行协议的一些技巧和关于常见串行协议的基础信息。

示波器与逻辑分析仪

R&S®RTM3000 示波器

R&S®RTM3000 示波器

主要特点:

  • 带宽:100 MHz 至 1 GHz
  • 采样率:最大 5 Gsample/s
  • 存储深度:最大 80 Msample
  • ADC 分辨率:10 位

示波器、逻辑分析仪或者专用的协议分析仪都可用来解码协议。不过,哪种工具效果最好呢?我们简单比较了这三种工具。

逻辑分析仪通道相当于数字比较器。因此,逻辑分析仪只能判定信号是高电平还是低电平。逻辑分析仪一般至少有八个通道,部分型号的通道多达 32 个或更多。协议分析仪与逻辑分析仪类似,但具有特定于协议的硬件和软件来解码串行链路。

相比之下,示波器的分辨率位数多,但通常只有两个或四个通道。更高的位深度有助于查看信号的模拟特性

幸运的是,使用现代示波器基本上不用纠结于三选其一的问题。包括所有罗德与施瓦茨型号在内的许多示波器都同时提供模拟和数字逻辑通道。这种示波器被称为“混合信号示波器”。

一些示波器甚至配有适用于串行总线的协议解码工具!例如,R&S®RTB2000R&S®MXO 4R&S®RTO 6 内置协议解码和触发功能,可用于常用的串行协议。

示波器在检测到协议错误的时候尤其有用。借助对总线进行采样的一个或多个模拟通道,可以知道在协议错误发生时(或前后)是否存在模拟问题。逻辑分析仪很少能做到这一点。

由于串行协议多种多样,而不同示波器支持的协议也有所不同,因此下文针对调试常见总线电路介绍了一些注意事项和技巧。

UART

通用异步接收机/发射机 (UART) 也称为“串行”协议。发射和接收信号线没有独立的时钟信号。这种点到点传输通常只需连接两个设备。

在一些情况下,调试 UART 最简单,因为可以只查看一个 TX 或 RX 信号。但是,实际上通常需要查看双向信号,才能了解通信状况。

UART 装置

UART 装置

UART 的灵活帧结构

UART 的灵活帧结构

UART 具有灵活的帧结构。起始位和停止位的数量不固定,外加一个可选的奇偶校验位。数据位一般为 8 位。由于 UART 是异步通信,主机和设备必须对这些参数和波特率达成一致。示波器在调试过程中也要满足同样的要求。

在示波器上进行调试

提示:解码器通常允许在捕获信号后更改波特率。如果发现解码器对无用信号进行解码,可以调整此设置。否则将无法正确解码(或触发)。

SPI 和 QSPI

所有设备共享时钟信号
所有设备共享时钟信号

SPI (S-P-I) 是“串行外设接口”。它类似于移位寄存器。所有设备共享时钟信号;主输出从输入 (MOSI) 信号和主输入从输出 (MISO) 信号。这些相当于 UART 的“TX”和“RX”信号。不过,这些信号明确指明了数据传输方向。例如,MOSI 表示数据从主机传输到设备,而 MISO 则表示数据从设备传输到主机。这降低了探测到错误信号的可能性!

SPI 协议支持多个设备共享同一总线。每个设备都有一个片选 (CS) 信号来加以区分。但是,如果只有一个 SPI 设备,设计时可能会省略(或始终启用)CS 信号。同样,如果只朝一个方向传输数据,只需连接合适的 MOSI 或 MISO 信号。

使用示波器进行调试时也是如此。如果总线上只有一个设备,就无需探测 CS 信号。如果只朝一个方向传输数据,就只探测一个信号,大多数解码器都能处理这种情况。不过始终需要时钟信号

什么是 QSPI?

四线 SPI (QSPI) 协议是常用的闪存芯片接口标准。QSPI 与 SPI 一样有时钟引脚、片选引脚和数据引脚。

集成电路总线 (I2C)

设备共享时钟和数据线
设备共享时钟和数据线

集成电路总线 (I2C) 是由飞利浦(现恩智浦)开发的一种协议。有些支持 I2C 的设备为了避免商标或授权问题,会使用“双线”的说法。

总线上的所有设备共享时钟和数据线,并且每个设备都必须有一个唯一的地址。一般来说,使用 I2C 的传感器或设备会有一个基地址,其中有几个位可以用来设置地址的最低有效位。当总线上有多个相同的传感器但引脚数量非常少时,这种方法很有用。

在示波器上调试 I2C 时需要两个通道。在主机与设备通信时,时钟信号才可以运行。因此,示波器必须捕获时钟和数据信号。

I2C:7 位或 8 位(或 10 位)

I2C 地址容易混淆,因为它有两种不同的地址模式:7 位和 10 位。7 位模式更常用,但会造成混淆,因为它有时会被当成 8 位地址!

对比 7 位和 8 位地址模式
对比 7 位和 8 位地址模式

混淆原因在于地址后面的读/写位。读取操作的值为“1”,写入操作的值为“0”。因此,在进行 I2C 调试时,如果目标地址触发失败,可以尝试将地址左移一位,并加上读/写位的值

CAN 总线

CAN 总线使用差分信号传输
CAN 总线使用差分信号传输

控制器局域网 (CAN) 为汽车应用而开发,目前仍广泛应用于运输业。CAN 使用差分信号传输,增强了对电气噪声的抗干扰能力,非常适合工业应用。

不过,虽然 CAN 采用差分信号,但在大多数情况下都不需要使用差分示波器探头。示波器解码器只需使用单端探头探测“CANH”或“CANL”信号,即可解码总线。

CAN 2.0 协议有两个版本:基本版使用 11 位地址,扩展版使用 29 位地址。两个版本的仲裁和控制字段上的数据帧略有不同,除此之外其余数据包都相同。

使用 R&S®RTM3000 解码 CAN
使用 R&S®RTM3000 解码 CAN

CAN 总线只使用两条信号线,而这两条都不是时钟信号。因此,如果解码结果错乱,可以尝试调整采样点以改变解码器采样数据的位置。

解码与触发

解码是一种后处理方法,用来分析捕获的波形,并将协议解码为人类可读格式。通常,解码后的数据可以覆盖在波形显示上,或在表格中显示。(R&S RTERTO6RTP 等部分示波器还提供总线利用率等附加分析工具。)具有深存储的示波器可以捕获长时间的信号,然后搜索感兴趣的事件(或这些事件发生的频率)。这主要是一种“软件”方法。

触发发生在示波器的触发系统内。协议触发会持续监控串行总线,以确定事件何时发生。例如,两种常见的触发是 I2C 地址或错误条件(NAK 或奇偶校验错误)。触发选项通常仅限于少数特定于协议的操作,也可能仅限于地址、数据或有效载荷的位深度。这主要是一种“硬件”方法。

示波器有时候会结合这两种方法:触发系统可能会“自动触发”,而协议解码器会查找感兴趣的事件,并在屏幕中心显示。如果示波器“遗漏”了特定事件,可以对照手册查看哪些触发条件基于“硬件”,哪些基于“软件”。

总结

  • 大多数边缘计算设备都通过 UART、SPI、I2C 或 CAN 等数字协议和 MCU 通信。
  • 示波器提供了多种工具来解码串行协议。
  • 一些示波器甚至配有适用于串行总线的协议解码工具。
  • UART 没有独立的时钟信号,其属于点到点传输,因此只需要连接两个设备。
  • SPI 就像一个移位寄存器,所有设备共享时钟信号、MOSI 信号和 MISO 信号。
  • 调试 I2C 时需要两个通道。只有在主机与设备通信时,时钟信号才运行,因此示波器必须捕获时钟和数据信号。
  • CAN 则采用差分信号传输,但通常不需要使用差分示波器探头。示波器解码器只需使用单端探头探测“CANH”或“CANL”信号,即可解码总线。
  • 所有罗德与施瓦茨示波器都提供可选的串行协议功能。可用触发因示波器型号及其带宽能力而异。但是,大多数示波器都支持此处列出的基础串行协议。
  • 对于典型串行协议的通用调试,可以使用 RTB2000 或 RTM3000。对于 480 Mbit/s 以上的协议,可以选择 MXO4 (1.5 GHz)、RTO 和 RTP 示波器。

想详细了解测试基础知识吗?

订阅我们的新闻通讯

其他相关信息