使用PicoScope示波器解码SPI总线信号

2026.02.04 | 焜财商富 | 31558次围观

1关于SPI总线

串行外设接口(SPI,Serial Peripheral Interface)总线最早由Motorola开发,用于其微控制器产品。由于其结构简单、实现直接,随后被其它厂商广泛采用,目前已在嵌入式系统领域的各类器件中得到普及。

SPI总线通常用于微控制器或CPU与外设之间的芯片级通信,例如显示模块、ADCDAC、EEPROMSD卡及其它存储器件。

SPI总线是一种主从式、四线制串行通信总线,包含以下四条信号线:MOSI(主输出/从输入)、MISO(主输入/从输出)、SCLK或SCK(串行时钟)、SS(从设备选择)或CS(片选)。

089f37a2-0112-11f1-90a1-92fbcf53809c.jpg

图1 SPI总线架构

在SPI通信系统中,各设备以主从关系运行。主设备通过生成共享的串行时钟信号来发起并控制所有数据传输。

SPI是一种全双工通信协议,这意味着在每一个时钟周期内,主设备和从设备都可以同时发送和接收数据。为了与多个从设备进行通信,主设备通常为每个从设备提供一根独立的片选(CS)信号线。

为了保证SPI总线的正常工作,主设备在任意时刻只能与一个从设备通信。这一机制通过CS信号来实现。任何未被选中的从设备都必须忽略来自主设备的SCK和MOSI信号,同时不得驱动MISO信号线,其输出应保持高阻态,以避免总线冲突。

SPI通信通常包括以下几个步骤

•初始化:主设备首先将SCK时钟频率配置为目标从设备所支持的范围内(通常为几MHz到几十MHz)。

•从设备选择:主设备将对应从设备的CS信号拉低(通常为逻辑低电平,即0 V),以选中该从设备。

•数据交换:在每一个时钟周期内都会发生一次全双工数据传输。主设备通过MOSI信号线输出一位数据,从设备进行采样;同时,从设备通过MISO信号线输出一位数据,主设备进行采样。

•通信结束:数据交换完成后,主设备停止输出时钟信号,并将CS信号拉高,取消对从设备的选中。

图2 SPI总线中的数据传输机制

SPI的数据传输依赖于主设备和从设备内部位宽相同的移位寄存器(例如8位)。这些寄存器通过MOSI和MISO信号线相互连接,形成一个环形缓冲结构。其工作原理如下:

•在每一个时钟沿,主设备和从设备都会将寄存器中的一位数据(通常是最高有效位MSB)移出到各自的输出线上。同时,它们也会从对方的输出线上采样一位数据,并移入自身寄存器的最低有效位(LSB)。

•当时钟脉冲数量达到寄存器位宽时,主设备和从设备寄存器中的原始数据就完成了一次完整交换。

•如果需要继续传输数据,只需重新加载移位寄存器,并重复该过程即可。

09745ebe-0112-11f1-90a1-92fbcf53809c.jpg

图3 SPI在时钟上升沿采样的时序图

2 Pico串行总线解码与协议分析解决方案简介

PicoScope示波器标配有超过40种串行通信协议解码功能。随着PicoScope软件的持续免费升级,未来还将支持更多协议解码功能。

目前支持的协议包括:

1-Wire、ARINC 429、BroadRReach、CAN、CAN FD、CAN J1939、CAN XL、DALI、DCC、DMX512、Ethernet 10BASE-T、扩展UART、Fast Ethernet 100BASE-TX、FlexRay、I²C、I²S、I³C BASIC v1.0、LIN、Manchester、MIL-STD-1553、MODBUS ASCII、MODBUS RTU、NMEA-0183、并行总线、PMBus、PS/2、PSI5(传感器)、Quadrature、RS232/UART、SBS Data、SENT Fast、SENT Slow、SENT SPC、SMBus、SPI-MISO/MOSI、SPI-SDIO、USB(1.0/1.1)以及风速传感器协议等。

图4 PicoScope支持的串行协议解码器

解码后的数据通过两种互补的方式进行显示,便于高效分析。

图形显示方式:解码数据以十六进制、二进制、十进制或ASCII格式显示在波形下方,并与原始波形共用同一时间轴。错误帧会自动以红色高亮显示,便于快速识别。用户可以对任意数据帧进行放大,以进一步分析信号完整性或噪声问题。

0a25b4d4-0112-11f1-90a1-92fbcf53809c.jpg

图5 PicoScope中的图形解码显示方式

表格显示方式:表格视图提供所有解码数据帧的完整列表,包括数据内容、标识符和标志位。用户可以对数据进行筛选,仅显示感兴趣的帧,也可以通过搜索功能查找具有特定属性的数据帧。统计功能还可显示更详细的物理层信息,例如帧时间和电压电平。

0a7dec6c-0112-11f1-90a1-92fbcf53809c.jpg

图6 PicoScope中的表格解码显示方式

这两种视图是相互联动的:在表格中点击任意一帧,示波器界面会自动缩放并定位到对应的波形位置。

为了进一步提升分析效率,“Link File(链接文件)”功能允许用户将数据字段与自定义的、易于理解的文本字符串进行关联。此外,PicoScope还支持将所有解码数据导出为电子表格,用于后续分析。

0ad8aa26-0112-11f1-90a1-92fbcf53809c.jpg

图7显示解码数据的可读文本

3使用PicoScope捕获SPI信号的测试设置

使用PicoScope对SPI总线通信进行有效解码,首要前提是精确的捕获到原始数据,这要求示波器具有足够的带宽和采样率。

SPI信号的工作频率范围较广。基于实践经验建议:

•示波器带宽为SPI时钟频率的3~5倍。

•采样率确保在单个数据位的上升沿或下降沿至少采集5个采样点,从而实现准确的数字信号重构。

为了进行全面分析,理想情况下应采集以下信号

•SCK(串行时钟):用于同步,是必需信号

•MOSI(主输出/从输入):主设备发送的数据

•MISO(主输入/从输出):从设备返回的数据

所需的示波器通道数量取决于具体的分析需求:

•使用两通道示波器时:必须将其中一个通道用于采集SCK,因此一次只能解码一条数据线(MOSI或MISO)。

•使用四通道或更多通道时:可同时采集SCK、MOSI、MISO以及CS信号,从而对指定从设备的通信进行完整分析。

下图8展示了使用PicoScope进行SPI测试的测试设置:

•一台PicoScope 3418E示波器(500MHz,5GS/s,2GS)通过USB Type C连接至PC,用于控制和数据采集。

•四个无源探头连接至被测设备,用于采集SCK、MOSI、MISO和CS信号。

•PC上运行PicoScope 7软件,用于控制示波器、显示波形并执行SPI协议解码。

0b320c7e-0112-11f1-90a1-92fbcf53809c.jpg

图8使用PicoScope 3418E捕获SPI信号的测试设置

4使用PicoScope解码SPI信号

按照以下步骤在PicoScope 7中完成SPI数据的采集与解码。

步骤1:在PicoScope 7的通道菜单中为各通道命名,便于后续操作和识别。

步骤2:打开“Views”,添加四个示波视图窗口,每个窗口显示一条波形,并为每个窗口命名为所显示的SPI信号。

步骤3:根据实际信号情况设置合适的垂直量程、时基和采样率。

步骤4:设置触发条件以稳定显示SPI数据,推荐使用针对SCK信号的脉冲触发。

完成以上步骤后,即可获得如图9所示的SPI波形。

0b8a7382-0112-11f1-90a1-92fbcf53809c.jpg

图9 PicoScope 7中的SPI波形显示

步骤5:点击“Serial decoding”,选择“SPI – MISO/MOSI”.

0be2c12c-0112-11f1-90a1-92fbcf53809c.jpg

图10在PicoScope 7中选择SPI解码器

步骤6:将各通道分配到解码器中对应的解码信号。若之前已正确命名通道,该过程会更加直观。阈值和迟滞参数会被自动识别,但仍可根据需要手动调整。其它SPI参数按照图11进行配置。

0c3d4b56-0112-11f1-90a1-92fbcf53809c.jpg

图11在PicoScope 7中配置SPI解码器

步骤7:点击“Next”,为解码器命名,并选择解码数据显示格式。同时还可以限制解码的时间范围,以便仅采集和分析关注的数据。

0c969c7e-0112-11f1-90a1-92fbcf53809c.jpg

图12在PicoScope 7中选择SPI解码显示格式

步骤8:点击“Finish”后,解码结果表格将显示在屏幕上。该表格既可以与示波器视图联动缩放,也可以像其它图表一样单独显示。

0ced4fce-0112-11f1-90a1-92fbcf53809c.jpg

图13 PicoScope 7中的SPI解码结果

更多功能和设置:

•解码数据上方的工具栏提供了多种实用功能,可通过“Export”或“Data to Text”导出数据。

•使用“Fields”可以选择需要显示的数据字段,并重新配置解码内容。

•搜索功能在深存储应用中尤为重要。由于PicoScope支持捕获大量数据包,借助搜索功能可以仅显示所需数据,从而大幅节省分析时间。

•将鼠标悬停在任意数据包上,即可查看该数据包的详细内容。

0d4a5c28-0112-11f1-90a1-92fbcf53809c.jpg

图14 PicoScope 7中SPI解码器的更多功能

关于Pico Technology

Pico Technology是高性能电子测试仪器的全球领先制造商。源于英国剑桥强大电子工程传统,自创立以来,通过创建和领导创新的基于PC的测试仪器,比克实现了连续33年的增长。其独特的解决方案和完整的产品线为电子工程师提供了高性能且经济高效的工具,涵盖了从物理层到协议层的整个设计验证周期:

具有内置AWG,FG,逻辑分析仪,频谱分析仪,串行协议分析仪的实时示波器,提供高达16位ADC分辨率,4G超深存储器,8个高分辨率通道和真正的差分探测。紧凑的30GHz采样示波器使工程师能够轻松实现TDR特征阻抗测试,眼图和时钟恢复等。PicoVNA(矢量网络分析仪),RFSynthesizer(射频信号合成器)和PicoConnect高带宽探头可扩展到RF应用。此外,还有最畅销的PicoLogger系列数据记录仪产品。

SDK允许用户与实现测试自动化的其他仪器一起开发自定义应用程序。终身免费软件和5年保修可保护客户的投资。

比克科技是未来。