SPI总线测试和分析

发布者:科技驿站最新更新时间:2012-04-12 来源: 61ic关键字:SPI总线  寄存器  物理线路 手机看文章 扫描二维码
随时随地手机看文章

1、SPI总线简介
SPI(Serial Peripheral Interface--串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息,20世纪80年代由Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCLK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。其主要特点包括:可以同时发出和接受串行数据;可以作为主机或丛机工作;发送结束中断标志;写冲突保护;总线竞争保护。图1是 SPI总线架构示意图。

图1 SPI 总线架构
SPI是一个环形总线结构,由SS(CS)、SCK、SDI、SDO组成,在主设备和从设备之间双向传输,实现发送和接收数据,最高速率可达5Mbps。由SS(CS)信号来选定与主设备通信的从设备,所以在某时间点内主设备与从设备之间可实现点对点通信,其好处是不需要进行寻址操作。SPI共有4种工作模式,SP0、SP1、SP2、SP3,其中比较常用的是SP0、SP3。SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI主模块和与之通信的外设时钟相位和极性应该一致。图2是SPI 总线4种工作模式时的SCK示意。



图2 SPI总线4种工作模式示意
SPI是一个环形总线结构,其主要工作时序是在SCK的控制下,两个双向移位寄存器进行数据交换。
假设下面的8位寄存器装的是待发送的数据10101010,上升沿发送、下降沿接收、高位先发送。
那么第一个上升沿来的时候 数据将会是sdo=1;寄存器=0101010x。下降沿到来的时候,sdi上的电平将锁存到寄存器中去,那么这时寄存器=0101010sdi,这样在8个时钟脉冲以后,两个寄存器的内容互相交换一次。这样就完成里一个spi时序。
例子:
假设主机和从机初始化就绪:并且主机的sbuff=0xaa,从机的sbuff=0x55,下面将分步对spi的8个时钟周期的数据情况演示一遍:假设上升沿发送数据

脉冲 主机sbuff 从机sbuff sdi sdo
0 10101010 01010101 0 0
1上 0101010x 1010101x 0 1
1下 01010100 10101011 0 1
2上 1010100x 0101011x 1 0
2下 10101001 01010110 1 0
3上 0101001x 1010110x 0 1
3下 01010010 10101101 0 1
4上 1010010x 0101101x 1 0
4下 10100101 01011010 1 0
5上 0100101x 1011010x 0 1
5下 01001010 10110101 0 1
6上 1001010x 0110101x 1 0
6下 10010101 01101010 1 0
7上 0010101x 1101010x 0 1
7下 00101010 11010101 0 1
8上 0101010x 1010101x 1 0
8下 01010101 10101010 1 0

这样就完成了两个寄存器8位的交换,上面的上表示上升沿、下表示下降沿,sdi、sdo相对于主机而言的。其中ss引脚作为主机的时候,从机可以把它拉低选为从机,作为从机的是时候,可以作为片选脚用。根据以上分析,一个完整的传送周期是16位,即两个字节,因为,首先主机要发送命令过去,然后从机根据主机的名准备数据,主机在下一个8位时钟周期才把数据读回来[page]
2、SPI总线测试的需求
工程师对SPI总线测试和分析的需求主要涵盖以下三个方面:
2.1 了解总线正在发生什么
软件工程师设计了SPI主设备发出的消息内容,但硬件工程师需要确定消息是不是被准确无误的传送到物理线路上,需要了解总线上真正在发生什么。传统的使用示波器的方式是先用探头把信号捕获下来,然后根据电平特点转换成“1”或“0”,然后再去对比SPI协议,将其还原成有意义的消息帧。这种方式费时费力,对工程师的业务能力要求很高,而且仪器使用效率很低。工程师需要仪器能提供一种自动化的方式,直接将采集到的波形翻译成容易识别的内容,再根据不用类别工程师的需求,以不同的方式动态显示在仪器屏幕上。比如硬件工程师可能希望以二进制的方式查看SPI消息内容 ,底层驱动工程师希望以16进制方式分析波形,而应用软件工程师则希望以ASCII文本的方式去了解总线上实际运行的数据内容。

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

2.3 分析EEPROM或者Falsh内存单元的有效性
EERPOM/Falsh是在各类系统单板上广泛使用的存储器件,主要作用是保存系统上电时需要导入的信息,比如主内存地址、容量、模式,各种设备初始化状态、部分系统信息等,EEPROM/Falsh器件大多通过SPI总线传递数据。当读写EEPROM/Falsh配置信息出错的情况下,我们就不仅仅需要知道是哪片EEPROM出问题,更有意义的是要深入到器件内部,定位具体是哪个地址单元出了问题,是读数据过程中有问题还是写数据过程中有问题。

3、力科示波器充分满足工程师测试SPI总线的需求
广大工程师用户日益需要能处理各种通用测量任务、同时又能满足分析 SPI总线等低速串行总线的专用需求、且符合有限预算的解决方案,力科基于Windows操作系统的全系列示波器产品满足了这些需求,这些系列包括WaveSurfer Xs、WaveRunner Xi、WavePro 7Zi和WaveMaster 8Zi,这些产品一个很重要的的应用方面就是调试串行总线。示波器不仅要能测量信号电平、频率等常规项目,还要能提供专门的软件包以更深入分析和调试SPI总线。

  力科 SPI测试软件包的总线协议触发功能和总线协议解码功能,能够帮助工程完成设备调试:

3、1 总线协议触发
在力科示波器界面下进入菜单项“Trigger”->”Serial Data”->”SPI”,弹出的界面中允许用户按照特定的模式去触发SPI消息帧,如下图3所示。你可以根据自己的需求选择不同的数据对总线进行触发。可以选择对SPI总线标准下的某一子集(SPI、SIOP、SSPI)做触发。可以设置时钟的相位和极性,及数据的高位或者低位触发。可以输入需要触发的数据是多少,且数据的位数是可以调整的。也可以选择以2进制还是16进制做为触发的数据格式。
通过总线触发,我们可以对总线所传输的信息和可能出现的错误做分析和调试



图3 力科示波器 SPI软件包设置触发界面

3、2 总线协议解码
在力科示波器界面下进入菜单项“Analysis”->”Serial Decode”->”SPI”,用户对总线正在传输的数据内容进行实时解码,解码后的内容能选择以“二进制”、“十六进制”和“ASCII”三种方式直接显示在波形上方。例如图4中的信息,MOSI上的第二个0x05,表示RDSR,查看读状态寄存器,MISO上随即返回0x02,表示该设备是可写的,且处于空闲状态。
通过对捕获到的总线协议做解码,我们可以直观的看到总线上传输的数据是否是工程师实际上发送和接收所要求的数据,从而帮助调试。



图4 SPI总线解码
除了可以直接在波形上显示解码结果以外,力科还提供了列表显示解码结果。例如图5中的信息,列表显示了解码后该字段的相关信息,可以通过点击列表的某一行来放大该段数据以观察波形细节。


图5 SPI列表显示及放大

关键字:SPI总线  寄存器  物理线路 引用地址:SPI总线测试和分析

上一篇:USB3.0的物理层测试简介与难点分析
下一篇:浅析射频标识RFID测试技术

推荐阅读最新更新时间:2024-03-30 22:25

51单片机寄存器配置小技巧
整型数据转换二进制数据的技巧知识点: 该技巧比较适合应用在51单片机寄存器的配置方面;减少了我们的计算量。 思路—— 我们比较习惯直接的整型数据;当我们需要配置寄存器,这时能不能直接利用该数据作为我们配置寄存器的数据呢?这过程需要将数据转换,例如将一个int 型 11110111 转换成 0xf7 该如何做到呢? 此时可以利用到##在C语言中的粘合作用,具体百度。 一, #define Bin(n) LongToBin(0x##n##l) //注意该处l是L的小写,而不是1。 此时使用时11110111则变为十六进制的0x11110111 而在此之前应先定义LongToBin(n) 二, #d
[单片机]
51单片机<font color='red'>寄存器</font>配置小技巧
stm32 SPI通信[操作寄存器+库函数]
SPI(Serial Peripheral Interface--串行外设接口) 总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。 SPI是Freescale(原 Motorola)公司首先在其处理器上定义的。 SPI是一种高速、主从式、全双工、同步传输的通信总线,SPI总线在物理层体现为四根传输线: MOSI (Master Output Slaver Input) – 主器件数据输出,从器件数据输入 MISO (Master Input Slaver Output) – 主器件数据输入,从器件数据输出 SCLK – 时钟信号,由主器件产生 NSS – 从器件使能信号,由主器
[单片机]
stm32 SPI通信[操作<font color='red'>寄存器</font>+库函数]
PIC单片机双机异步通信程序详解
1 单片机PIC1编程(发送部分) #include /*该程序实现单片机双机异步通信功能,该程序是发送部分*/ unsigned char tran ; /*定义一个数组存储发送数据*/ unsigned char k,data; /*定义通用寄存器*/ cONST char table ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80, 0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x7f,0xbf,0x89,0xff}; /*不带小数点的显示段码表*/ /*SPI显示初始化子程序*/ void SPIINIT() {
[单片机]
LabVIEW移位寄存器
移位寄存器可以将数据从一个循环周期传递到另外一个周期。在程序设计中,经常要用到它.创建一个移位寄存器的方法是,用鼠标右键单击循环的左边或者右边,在快捷菜单中选择 Add Shift Register。如右图所示。 移位寄存器在流程图上用在循环边框上相应的一对端子来表示。右边的端子中存储了一个周期完成后的数据,这些数据在这个周期完成之后将被转移到左边的端子,赋给下一个周期。移位寄存器可以转移各种类型的数据--数值、布尔数、数组、字符串等等。它会自动适应与它连接的第一个对象的数据类型。下图表示了它的工作过程. 图2-3 Shift Register的工作过程 可以令移位寄存器记忆前面的多个周期的数值。这个功能对
[测试测量]
LabVIEW移位<font color='red'>寄存器</font>
寄存器的引用
段寄存器是因为对内存的分段管理而设置的。16位CPU有四个段寄存器,所以,其程序可同时访问四个不同含义的段。段寄存器及其偏移量的引用关系如图所示。 段寄存器CS指向存放程序的内存段,IP是用来存放下条待执行的指令在该段的偏移量,把它们合在一起可在该内存段内取到下次要执行的指令。 段寄存器SS指向用于堆栈的内存段,SP是用来指向该堆栈的栈顶,把它们合在一起可访问栈顶单元。另外,当偏移量用到了指针寄存器BP,则其缺省的段寄存器也是SS,并且用BP可访问整个堆栈,不仅仅是只访问栈顶。 段寄存器DS指向数据段,ES指向附加段,在存取操作数时,二者之一和一个偏移量合并就可得到存储单元的物理地址。该偏移量可以是具体数值、符号地址和指针寄存
[单片机]
段<font color='red'>寄存器</font>的引用
基于SPI总线和ADE77xx专用芯片的三相多功能电度表的原理与应用
引言 我国经过二十多年的改革开放和技术引进,在高技术方面已与国外缩小了不少差距,但能源利用效率,尤其是电能的综合利用率仍然差距较大。“十一五”规划提出了达到同一GDP增长率需节能20%的奋斗目标,以科学的发展观,创新、节能、环保是当前技术革命的三大重点。 我国是能源消耗大国,而能源又十分缺乏,它极大地制约了我国国民经济的健康、快速、持续发展,因此一方面要大力寻找新能源,如风能、核能、太阳能,同时又要大力节约能源。 用SPI总线把ADE77xx系列专用电能计测芯片如表1所示和单片微机组合而成的多功能、峰谷用电,分时计费的电度表是目前的主流,应大力推广。 笔者曾用SPI总线 把ADE7758 和MCU组成多功能——峰谷用电、分时
[嵌入式]
ARM处理器寄存器介绍
ARM处理器模式 用户模式(User):ARM处理器正常的程序执行状态 快速中断模式(FIQ):用于高速数据传输或通道处理 外部中断模式(IRQ):用于通用的中断处理 管理模式(Supervisor):操作系统使用的保护模式 数据访问终止模式(Abort):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护 系统模式(System):运行具有特权的操作系统任务 未定义指令中止模式(Undifined):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真 ARM寄存器 ARM共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器.这些寄存器不能被同时访问,但在任何时候,通用寄存器R0~R14,程序计
[单片机]
ARM处理器<font color='red'>寄存器</font>介绍
瑞萨RX内核设计实现高代码效率
  瑞萨科技已完成了一个新型CISC(复杂指令集计算机)CPU架构设计,它将在瑞萨未来一代CISC微控制器(MCU)的代码效率、处理性能和功耗方面发挥作用。采用了新型架构的产品将以“RX”系列命名。   新推出的RX是瑞萨第一个eXtreme MCU内核系列。今天的嵌入式系统需要采用更先进的技术和更复杂的设计,以支持产品的更高性能和多种功能。因此,随着系统复杂性和程序规模的增加,MCU必须运行得更快和更有效率,以便实时执行大型应用程序。   新型RX架构实现了一些重要特性: 1. 最高工作频率: 200MHz 2. 处理性能(MIPS/MHz):1.25 MIPS/MHz(Dhrystone v2.1基准) 3. 高代码效率:
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved