首页 > 应用 > 测试测量
[导读]SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速、全双工、同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便。其现已发展成为一种工业标准,目前,各半导体公司推出了大量的带有SPI接口的具有各种各样功能的芯片,如RAM,EEPROM,FlashROM,A/D(D/A)转换器、LED显示驱动器、I/O接口芯片、实时时钟、UART收发器等等,为用户的外围扩展提供了极其灵活而经济的选择。这也使得对SPI信号的测试分析需求更加广泛。

SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速、全双工、同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便。其现已发展成为一种工业标准,目前,各半导体公司推出了大量的带有SPI接口的具有各种各样功能的芯片,如RAM,EEPROM,FlashROM,A/D(D/A)转换器、LED显示驱动器、I/O接口芯片、实时时钟、UART收发器等等,为用户的外围扩展提供了极其灵活而经济的选择。这也使得对SPI信号的测试分析需求更加广泛。

本文引用地址: http://www.21ic.com/app/test/201807/806563.htm

SPI总线包含四种输出方式(SPI0,SPI1,SPI2,SPI3),SPI0和SPI3方式比较常用。SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降沿)数据即被采样;如果CPHA=1,在串行同步时钟的第二个(上升或下降沿)数据才被采样。

1.jpg

 

2.png

 

图1 SPI信号四种输出方式时序图

SPI总线测试需求

工程师对SPI总线测试和分析的需求主要涵盖以下两个方面:

1.了解总线正在发生什么:软件工程师设计SPI主设备发出的消息内容,硬件工程师则需要确定消息是不是被准确无误的传送到从设备上。传统的方法是使用示波器把信号捕获下来,然后根据高低电平特点转换成“1”或“0”,然后再去对比SPI协议,将其还原成有意义的消息帧。显然这种方式费时费力,在转换的过程中还容易出错。SDS3000X系列智能示波器支持SPI总线解码功能,可以直接对总线传输信号进行触发解码。并以不同的方式动态显示在示波器屏幕上。不同的显示方式可以更好地适应不同的分析需求:比如硬件工程师可能希望以二进制的方式查看SPI消息内容,底层驱动工程师希望以16进制方式分析波形,而应用软件工程师则希望以ASCII码的方式去了解总线上实际运行的数据内容。

2.调试总线上有故障的节点:SPI设备可以实现一个主设备连接多个从设备的需求,通过片选信号(SS/CS)来选择需要操作的从设备。当主设备切换传输对象的时候,我们需要关注总线所发送的信息是否与所选择的从设备一致。有可能出现所发送的信息与当前所选择的从设备并不一致的状况。

SPI总线模拟测试方法

本例中我们使用SDS3000X系列智能示波器以及STB-3信号演示板进行单向SPI总线测试模拟。

 

3.jpg

 

图2 实验连接图

单向的SPI总线信号包括一根时钟线SCLK、一根片选信号线CS和一根数据线SDA,可由鼎阳的STB-3板模拟输出,其输出信号速率为1Mbps,数据内容为:(XX为随机字符)96'h53_49_47_4C_45_4E_54_5F_XX_XX_XX_XX。

SPI触发

SPI 总线是为芯片间的数据通信而设计的,因此,在大多数情况下,由于传输数据的不同使得信号并非周期性信号。这就要求在对该总线进行测试时,要能准确地触发到数据帧的“头”,并将其“稳定”显示在仪器上,便于观察和分析。

SDS3000X系列智能示波器支持串行总线触发功能,按下前面板上侧菜单栏区域的“触发–触发设置”唤出触发设置对话框,设定好信号对应的探头(本例设置为CH1:SDA;CH2: SCLK;CH3:CS),就可以直接对SPI信号进行触发。

 

4.jpg

 

图3 SPI信号触发功能

在模拟测试前,我们已知STB-3演示板所输出的SPI信号输出方式为SPI3(在实际测试中,SPI从设备的工作模式也会在数据手册里标明,或者在时序图中给出)。因此我们在触发的时候就要进行相应的配置。SDS3000X智能示波器支持在触发和解码时对SPI输出方式进行选择。

 

5.jpg

 

图4 SPI触发信号设置

PS:SDS3000X系列智能示波器支持串行总线触发解码功能,支持的协议有IIC、IIS、SPI、UART/RS232、LIN、CAN、CAN-FD、FlexRay、MIL 1553、USB 2.0。

SPI解码

在成功捕获到待测试的SPI总线信号后,接下来我们关注的问题是对SPI总线信号进行解码。

如图5所示,选择“分析-串行解码”选项,进行相应设置,即可获得解码的结果,并可以列表显示出来,便于查看。(解码的结果可以二进制、16进制以及ASCALL码的形式显示)

 

6.jpg

 

图5 SPI解码设置

 

7.jpg

 

图6 SPI解码结果(十六进制)

解码的结果与输入信号一致。

以上只是简单的使用SDS3000X系列智能示波器对SPI信号进行触发和解码。在实际应用中,SDS3000X系列智能示波器的串行总线触发解码功能可以快速的使我们获得“总线上正在发生什么”;并可根据示波器界面所呈现的解码结果分析总线所传输的的信息是否和我们预想的一致,从而精准快速地发现故障点并进行调试。

换一批

延伸阅读

[测试测量] 揭开测试测量的小秘密——每周一考 【第9周】

揭开测试测量的小秘密——每周一考 【第9周】

1、这个题目由网友flowerhuanghua 提出,测试电源纹波和噪声的时候,选择20MHZ的带宽是为了测试电源自身是否满足要求,对于电源这种低频信号而言,20MHZ带宽已经足够了。有一疑问:为什么不在示波器上选择全带宽?选择......

关键字:测试测量

[测试测量] LabVIEW中测试测量数据的存储(1)

LabVIEW中测试测量数据的存储(1)

这里说的测试测量数据是指配合NI的硬件,如PXI卡采集所得的测试测量数据。对其他的测试测量应用场景我还不熟悉。NI原先是缺乏一个比较优秀的测试测量数据存储方案的,NI后来也意识到了这个问题,于是在德国收购了一家......

关键字:LabVIEW 测试测量 数据 存储

[测试测量] 揭开测试测量的小秘密——每周一考 【第6周】

揭开测试测量的小秘密——每周一考 【第6周】

1、在进行电源测试时候,有哪些方法可用来最大化示波器的动态范围?2、在使用或选用探头的时候,注意哪些方面可以优化电源的测量精度?3、开关电源测试中有一个项目PSRR(power supply rejection ratio),这是什么意思......

关键字:测试测量 示波器 动态范围

[测试测量] TDMS文件介绍

TDMS文件介绍

终于写到TDMS了,千呼万唤始出来啊,其实所有前面的相关文章都是为了TDMS作铺垫。正是由于用户提出的种种需求以及其他种种文件格式的缺点,才有了TDMS的出现。1. TDMS文件的逻辑格式TDMS文件的逻辑格式遵循TDM三层结......

关键字:LabVIEW 测试测量数据 存储

[测试测量] LabVIEW中测试测量数据的存储(6)

LabVIEW中测试测量数据的存储(6)

接着介绍LabVIEW中的另外两种文件格式。首先是Bytestream。这个文件格式说穿了就是二进制文件。就两个VI,分别是读和写。基本支持LabVIEW中的任何类型的数据。只要你在LabVIEW中能造出的数据,都可以用这种文件格式存......

关键字:LabVIEW 测试测量数据 存储

[测试测量] Providentia研究项目:罗德与施瓦茨公司调研德国A9高速公路沿线移动通信基础设施

Providentia研究项目:罗德与施瓦茨公司调研德国A9高速公路沿线移动通信基础设施

罗德与施瓦茨公司作为Providentia研究项目的合作伙伴,参与研究题为“在创新高速公路场景中主动使用基于视频的通信技术”的项目。Providentia项目为在本地环境分析中添加新维度创造了必要的条件。......

关键字:罗德与施瓦茨 移动通信 测试测量

[测试测量] LabVIEW中测试测量数据的存储(2)

LabVIEW中测试测量数据的存储(2)

在分析TDM模型的优劣势之前,我想最好先罗列一下一些数据文件格式的技术要求。NI软件平台上针对于测试测量的数据,有很多不同的文件格式,其中有几种是支持TDM模型的。并不是说这些文件都能满足以下技术要求,我只是......

关键字:LabVIEW 测试测量数据 存储

我 要 评 论

网友评论

芯闻号

技术子站

更多

项目外包

更多

推荐博客