一个主MPU需要使用SPI总线外接5个外设,则总共需要多少引脚?

SPI总线的通讯协议是什么?_百度知道
SPI总线的通讯协议是什么?
SPI总线有几条线,通讯协议是什么?和I2C比较的优点和缺点!
每个从设备需要独立的使能信号,说NPCS0~3接4-16译码器,其时序其实很简单、系统温度等多个参数。数据输出通过 SDO线,在紧接着的下降沿或上升沿被读取:SCL为高电平时,它支持多主控(multimastering),所以每个电路和模块都有唯一的地址,其中SPICLK是整个SPI总线的公用时钟,并且能够以10Kbps的最大传输速率支持40个组件。通讯是通过数据交换完成的.1 总线的构成及信号类型   I2C总线是由数据线SDA和时钟SCL构成的串行总线,由判断为受控单元出现故障,从设备数据输入(2)SDI
– 主设备数据输入。也就是说、亮度等)及需要调整的量,SCK信号线只由主设备控制,译码器的输入为NPCS0~3,就可以完成8位数据的传输,必须有主机。I2C总线的另一个优点是,且为全双工通信、sck,降低了互联成本。不同的SPI设备的实现方式不尽相同,两个双向移位寄存器进行数据交换、结束信号和应答信号,因此I2C总线占用的空间非常小,MOSI是主机的输出。AT91RM9200的SPI接口主要由4个引脚构成。若未收到应答信号,减少了电路板的空间和芯片管脚的数量,根据实际情况作出是否继续传递信号的判断,而SPI允许数据一位一位的传送:SCL为高电平时,互为主从,&#47:因为SPI的数据输入和输出线独立,单主多从;寄存器=0101010x,对此芯片的操作才有效。下降沿到来的时候,那么这时寄存器=0101010sdi,方便了管理,这时PCS输出=NPCS,两个寄存器的内容互相交换一次,用于连接微控制器及其外围设备,从设备不能控制信号线,CPU接收到应答信号后。可随时监控内存,结束传送数据,这个译码器是需要外接4-16译码器。这就是SCK时钟线存在的原因,由ss(cs)。SPI总线可以配置成单主单从;控制量决定该调整的类别(如对比度、MOSI,等待受控单元发出一个应答信号,相反&#47,又是发送器(或接收器)。   I2C总线在传送数据过程中共有三种类型信号,以管理系统的配置或掌握组件的功能状态,由SCK提供时钟脉冲,主要是数据改变和采集的时间不同:这样的传输方式有一个优点SPI的通信原理很简单,MOSI。(1)SDO
– 主设备数据输出,在至少8次时钟信号的改变(上沿和下沿为一次),当没有时钟跳变时,地址码用来选址、sdo构成。CPU向受控单元发出一个信号后:开始信号,从设备数据输出(3)SCLK
– 时钟信号,在时钟信号上沿或下沿采集有不同定义,在互相通信的两个SPI总线的器件,上升沿发送、高位先发送。I2C总线  I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线。CPU发出的控制信号分为地址码和控制量两部分,输出用于16个外设的选择,表示已收到数据,如今主要在服务器管理中使用,向发送数据的IC发出特定的低电平脉冲。I2C总线产生于在80年代,甚至允许暂停。   1 I2C总线特点   I2C总线最主要的优点是其简单性和有效性,在信息的传输过程中、硬盘,SPI接口的一个缺点,在一个基于SPI的设备中。
假设下面的8位寄存器装的是待发送的数据:接收数据的IC在接收到8bit数据后,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),可发送和接收数据。   应答信号,确定控制的种类。   2 I2C总线工作原理   2,至少有一个主控设备。  开始信号。在CPU与被控IC之间,SDA由低电平向高电平跳变,最高传送速率100kbps。  结束信号,因为SCK时钟线由主控设备控制。这样,与普通的串行通讯不同。这就允许在同一总线上连接多个SPI设备成为可能,从机的输出,I2C总线上并接的每一模块电路既是主控器(或被控器),开始传送数据,SDA由高电平向低电平跳变:SPICLK:没有指定的流控制。在多个从设备的系统中,所以允许同时完成数据的输入和输出,增加了系统的安全性。由于接口直接在组件之上,SDO(数据输出), 它们分别是。/SS是从机的标志管脚。在一个SPI通信系统中,CS(片选)。最后,互不相关。接下来就负责通讯的3根线了;SS。一个主控能够控制信号的传输和时钟频率。SPI还是一个数据交换协议,sdi上的电平将所存到寄存器中去,却彼此独立,这里先要知道SPI是串行通讯协议,这取决于它所要完成的功能,由主设备控制其中CS是控制芯片是否被选中的。
那么第一个上升沿来的时候 数据将会是sdo=1,各控制电路虽然挂在同一条总线上,即接通需要控制的电路,从机的输入输出的标志、sdi。例如管理员可对各个组件进行查询,SDI。完成一位数据传输,但就像电话机一样只有拨通各自的号码才能工作,MISO 是主机的输入, 其中任何能够进行发送和接收的设备都可以成为主总线。各种被控制电路均并联在这条总线上、IC与IC之间进行双向传送,最初为音频和视频设备开发,输入也使用同样原理、下降沿接收,在任何时间点上只能有一个主控,如电源和系统风扇;SS管脚的电平低的是从机,硬件上比I2C系统要稍微复杂一些。当然。也是所有基于SPI的设备共有的,也就是说数据是一位一位的传输的。总线的长度可高达25英尺、网络,从机的输入,其中包括单个组件状态的通信,主要是在sck的控制下。同样。这样就完成里一个spi时序。这样。 要注意的是,这样在 8个时钟脉冲以后、MISO及 &#47。二 SPI协议举例SPI是一个环形总线结构,从设备不采集或传送数据。SPI的片选可以扩充选择16个外设,数据在时钟上升沿或下降沿时改变;SS管脚的电平高的是主机,SDO则基于此脉冲完成数据传输、MISO作为主机,没有应答机制确认是否接收到数据。在点对点的通信中,主设备通过对SCK时钟线的控制可以完成对通讯的控制,显得简单高效,SPI接口不需要进行寻址操作,具体请参考相关器件的文档,普通的串行通讯一次连续传送至少8位数据。这样传输的特点,它们是SDI(数据输入),由主设备产生(4)CS
– 从设备使能信号,SCK(时钟),事实上3根也可以(单向传输时),需要至少4根线,这种模式通常有一个主设备和一个或多个从设备,它以主从方式工作
相关专业回答
SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。
– 主设备数据输出,从设备数据输入
– 主设备数据输入,从设备数据输出
(3)SCL...
其他类似问题
为您推荐:
您可能关注的推广回答者:
通讯协议的相关知识
其他2条回答
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁第05章-3、SPI总线_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
第05章-3、SPI总线
上传于||暂无简介
大小:526.50KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢8066人阅读
SPI总线协议及SPI时序图详解【转】
SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。
&&&&& SPI是一个环形总线结构,由ss(cs)、sck、sdi、sdo构成,其时序其实很简单,主要是在sck的控制下,两个双向移位寄存器进行数据交换。
&&& 上升沿发送、下降沿接收、高位先发送。
&&& 上升沿到来的时候,sdo上的电平将被发送到从设备的寄存器中。
&&& 下降沿到来的时候,sdi上的电平将被接收到主设备的寄存器中。
&&& 假设主机和从机初始化就绪:并且主机的sbuff=0xaa (),从机的sbuff=0x55 (),下面将分步对spi的8个时钟周期的数据情况演示一遍(假设上升沿发送数据)。
---------------------------------------------------
脉冲&&&&&&&&&& 主机sbuff&&& 从机sbuff&&&& sdi&&& sdo
---------------------------------------------------
0&&& 00-0&&&& &&&& &&&&& 0&&&&& 0
---------------------------------------------------
1&&& 0--1&&&& 0101010x&&&& &&&&& 0&&&&& 1
1&&& 1--0&&&& &&&& &&&&& 0&&&&& 1
---------------------------------------------------
2&&& 0--1&&&& 1010100x&&&& &&&&& 1&&&&& 0
2&&& 1--0&&&& &&&& &&&&& 1&&&&& 0
---------------------------------------------------
3&&& 0--1&&&& 0101001x&&&& &&&&& 0&&&&& 1
3&&& 1--0&&&& &&&& &&&&& 0&&&&& 1
---------------------------------------------------
4&&& 0--1&&&& 1010010x&&&& &&&&& 1&&&&& 0
4&&& 1--0&&&& &&&& &&&&& 1&&&&& 0
---------------------------------------------------
5&&& 0--1&&&& 0100101x&&&& &&&&& 0&&&&& 1
5&&& 1--0&&&& &&&& &&&&& 0&&&&& 1
---------------------------------------------------
6&&& 0--1&&&& 1001010x&&&& &&&&& 1&&&&& 0
6&&& 1--0&&&& &&&& &&&&& 1&&&&& 0
---------------------------------------------------
7&&& 0--1&&&& 0010101x&&&& &&&&& 0&&&&& 1
7&&& 1--0&&&& &&&& &&&&& 0&&&&& 1
---------------------------------------------------
8&&& 0--1&&&& 0101010x&&&& &&&&& 1&&&&& 0
8&&& 1--0&&&& &&&& &&&&& 1&&&&& 0
---------------------------------------------------
&&& 这样就完成了两个寄存器8位的交换,上面的0--1表示上升沿、1--0表示下降沿,sdi、 sdo相对于主机而言的。根据以上分析,一个完整的传送周期是16位,即两个字节,因为,首先主机要发送命令过去,然后从机根据主机的名准备数据,主机在下一个8位时钟周期才把数据读回来。
&&& SPI总线是Motorola公司推出的三线同步接口,同步串行3线方式进行通信:一条时钟线SCK,一条数据输入线MOSI,一条数据输出线MISO;用于 CPU与各种外围器件进行全双工、同步串行通讯。SPI主要特点有:可以同时发出和接收串行数据;可以当作主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护;总线竞争保护等。
&&& SPI总线有四种工作方式(SP0, SP1, SP2, SP3),其中使用的最为广泛的是SPI0和SPI3方式。
&&& SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果 CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。 SPI主模块和与之通信的外设音时钟相位和极性应该一致。
SPI时序图详解-SPI接口在模式0下输出第一位数据的时刻
&&&&SPI接口在模式0下输出第一位数据的时刻
SPI接口有四种不同的数据传输时序,取决于CPOL和CPHL这两位的组合。图1中表现了这四种时序,
时序与CPOL、CPHL的关系也可以从图中看出。
CPOL是用来决定SCK时钟信号空闲时的电平,CPOL=0,空闲电平为低电平,CPOL=1时,
空闲电平为高电平。CPHA是用来决定采样时刻的,CPHA=0,在每个周期的第一个时钟沿采样,
CPHA=1,在每个周期的第二个时钟沿采样。
由于我使用的器件工作在模式0这种时序(CPOL=0,CPHA=0),所以将图1简化为图2,
只关注模式0的时序。
我们来关注SCK的第一个时钟周期,在时钟的前沿采样数据(上升沿,第一个时钟沿),
在时钟的后沿输出数据(下降沿,第二个时钟沿)。首先来看主器件,主器件的输出口(MOSI)输出的数据bit1,
在时钟的前沿被从器件采样,那主器件是在何时刻输出bit1的呢?bit1的输出时刻实际上在SCK信号有效以前,
比 SCK的上升沿还要早半个时钟周期。bit1的输出时刻与SSEL信号没有关系。再来看从器件,
主器件的输入口MISO同样是在时钟的前沿采样从器件输出的bit1的,那从器件又是在何时刻输出bit1的呢。
从器件是在SSEL信号有效后,立即输出bit1,尽管此时SCK信号还没有起效。关于上面的主器件
和从器件输出bit1位的时刻,可以从图3、4中得到验证。
注意图3中,CS信号有效后(低电平有效,注意CS下降沿后发生的情况),故意用延时程序
延时了一段时间,之后再向数据寄存器写入了要发送的数据,来观察主器件输出bit1的情况(MOSI)。
可以看出,bit1(值为1)是在SCK信号有效之前的半个时钟周期的时刻开始输出的(与CS信号无关),
到了SCK的第一个时钟周期的上升沿正好被从器件采样。
图4中,注意看CS和MISO信号。我们可以看出,CS信号有效后,从器件立刻输出了bit1(值为1)。
通常我们进行的spi操作都是16位的。图5记录了第一个字节和第二个字节间的相互衔接的过程。
第一个字节的最后一位在SCK的上升沿被采样,随后的SCK下降沿,从器件就输出了第二个字节的第一位。
SPI总线协议介绍(接口定义,传输时序)
一、技术性能
SPI接口是Motorola 首先提出的全双工三线同步串行外围接口,采用主从模式(Master Slave)架构;支持多slave模式应用,一般仅支持单Master。
时钟由Master控制,在时钟移位脉冲下,数据按位传输,高位在前,低位在后(MSB first);SPI接口有2根单向数据线,为全双工通信,目前应用中的数据速率可达几Mbps的水平。
-------------------------------------------------------
二、接口定义
SPI接口共有4根信号线,分别是:设备选择线、时钟线、串行输出数据线、串行输入数据线。
(1)MOSI:主器件数据输出,从器件数据输入
(2)MISO:主器件数据输入,从器件数据输出
(3)SCLK :时钟信号,由主器件产生
(4)/SS:从器件使能信号,由主器件控制
-------------------------------------------------------
三、内部结构
-------------------------------------------------------
四、传输时序
SPI接口在内部硬件实际上是两个简单的移位寄存器,传输的数据为8位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后。如下图所示,在SCLK的下降沿上数据改变,上升沿一位数据被存入移位寄存器。
SPI接口没有指定的流控制,没有应答机制确认是否接收到数据。
SPI接口时钟配置:
在主设备这边配置SPI接口时钟的时候一定要弄清楚从设备的时钟要求,因为主设备这边的时钟极性和相位都是以从设备为基准的。因此在时钟极性的配置上一定要搞清楚从设备是在时钟的上升沿还是下降沿接收数据,是在时钟的下降沿还是上升沿输出数据。但要注意的是,由于主设备的SDO连接从设备的SDI,从设备的SDO连接主设备的SDI,从设备SDI接收的数据是主设备的SDO发送过来的,主设备SDI接收的数据是从设备SDO发送过来的,所以主设备这边SPI时钟极性的配置(即SDO的配置)跟从设备的SDI接收数据的极性是相反的,跟从设备SDO发送数据的极性是相同的。下面这段话是Sychip Wlan8100 Module Spec上说的,充分说明了时钟极性是如何配置的:  The 81xx module will always input data bits at the rising edge of the clock, and the host will always output data bits on the falling edge of the clock.  意思是:主设备在时钟的下降沿发送数据,从设备在时钟的上升沿接收数据。因此主设备这边SPI时钟极性应该配置为下降沿有效。
又如,下面这段话是摘自LCD Driver IC SSD1289:
  SDI is shifted into 8-bit shift register on every rising edge of SCK in the order of data bit 7, data bit 6 && data bit 0.
  意思是:从设备SSD1289在时钟的上升沿接收数据,而且是按照从高位到低位的顺序接收数据的。因此主设备的SPI时钟极性同样应该配置为下降沿有效。
  时钟极性和相位配置正确后,数据才能够被准确的发送和接收。因此应该对照从设备的SPI接口时序或者Spec文档说明来正确配置主设备的时钟。
SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片 的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,比如P89LPC900.&&&&&&& SPI,是一种高速的,全双工,同步的通信总线,其工作模式有两种:主模式和从模式,无论那种模式,都支持&&&&&&& 3Mbit/s的速率,并且还具有传输完成标志和写冲突保护标志。到目前为止,我使用过的具有SPI总线的器件,就是存储芯片 Eprom:at25128,在使用过程中,发现的确是有这种总线的优点。下面以P89LPC900单片机的SPI总线来解释SPI总线的通用使用规 则。&&&&&&& LPC900单片机的SPI接口主要由4个引脚构成:SPICLK、MOSI、MISO及/SS,其中SPICLK是整个SPI总线的公用时 钟,MOSI、MISO作为主机,从机的输入输出的标志,MOSI是主机的输出,从机的输入,MISO是主机的输入,从机的输出。/SS&是从机的标志管脚,在互相通信的两个SPI总线的器件,/SS管脚的电平低的是从机,相反/SS管脚的电平高的是主机。在一个SPI通信系统中,必须有主机。&&&&&&& SPI总线可以配置成单主单从,单主多从,互为主从。今以互为主从模式作为讲解: &&&&&& 要进行SPI互为主从操作,必须遵照以下步骤:&
&&&&&& 1 对A、B进行初始化,均设为主机(需要进行以下操作)。&&&&&&& a) SPI端口初始化为准双向。&&&&&&& b) SPCTL配置为0x50,SSIG=0,SPEN=1,MSTR=1。&&&&&&& c) 清除SPSTAT中的SPIF及WCOL标志位为0。&&&&&&& d) 如果需要使用SPI中断,可使能相应中断位。&&&&&&& 2 将A上一个引脚连接到B的/SS引脚上,然后拉低/SS,可将B强行置为从机模式,同时B机会发生以下变化:&&&&&&& a) B机的MSTR位自动清0。&&&&&&& b) B机的MOSI及SPICLK强行变为输入模式,MISO则变为输出模式。&&&&&&& c) B机SPIF位置位。&&&&&&& d) 如果SPI中断使能,B机将执行SPI中断服务程序。&&&&&&& 3 B机可设置为查询接收或中断接收方式,以时刻准备接收由A机发送过来的数据,要使B机恢复为主机,必须完整执行步骤1。 本示例中,通过两块DP932 实验板构成了SPI互为主从测试系统。
&&&&&& 程序中应注意的问题:&&&&&&& 1 程序中应注意对首次拉低SS引脚进行处理:当A机首次通过B_SS将B机设置为从机后,从机的SBIF位会置位(会被认为完成一次传输),如果这之前,使 能了SPI中断,则从机则会执行相应的中断服务程序(本示例程序中,当B机的SS引脚被拉为低电平,B机的SBIF首次置位进行处理)。&&&&&&& 2 关于从机恢复为主机的问题:互为主从模式中,当B机被A机设置为从机后,CPCTL寄存器中MSTR位被清除为0,且SPIF被置1,MOSI和SPICLK强制变为输入模式,MISO强制变为输出模式。要想恢复为主机,必须执行以下操作:&&&&&&& a) 将MSTR位置1,SPIF位清0。&&&&&&& b) 将MOSI,SPICLK,MISO及SS重新恢复为准双向口。&&&&&&& c) 在a)、b)之前,需要注意将B_SS拉高,如果其一直为低电平,即使完成a)、b)操作,也会将B机重新设置为从机。&&&&&&& 3 在SPI总线的使用过程中,可以通过DORD(SPI数据顺序选择位),CPOL(SPI时钟极性选择位),CPHA( SPI时钟相位选择位)控制主/从机传输格式。对于本实验,可以忽略这些位的影响,但是在使用一些其他SPI器件时,必须根据从器件数据手册的要求,对 SPI数据的传输顺序,SPI的时钟极性,及SPI的时钟相位进行正确的设置。&&&&&&& 4 一些SPI的应用系统,由于硬件的设计并不是很合理,所以有时SPI通信不正常(传输数据出错,或其他情况),你可以试着降低SPI总线的传输速率,或者调节一些SPI时钟极性及相位,以使传输稳定。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:111407次
积分:1785
积分:1785
排名:第14610名
原创:61篇
转载:30篇
评论:26条
(3)(1)(1)(1)(1)(1)(1)(7)(6)(3)(5)(3)(7)(3)(1)(7)(4)(2)(1)(8)(1)(1)(2)(5)(1)(4)(4)(1)(3)(3)多种工业应用串行总线特性及比较(SPI UART IIC CAN)_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
多种工业应用串行总线特性及比较(SPI UART IIC CAN)
上传于||文档简介
&&常​用​的​工​业​总​线​标​准
阅读已结束,如果下载本文需要使用5下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩5页未读,继续阅读
你可能喜欢3461人阅读
总线接口(13)
美国力科公司深圳代表处&& 齐天熠
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位寄存器装的是待发送的数据,上升沿发送、下降沿接收、高位先发送。&&&&&& 那么第一个上升沿来的时候 数据将会是sdo=1;寄存器=0101010x。下降沿到来的时候,sdi上的电平将锁存到寄存器中去,那么这时寄存器=0101010sdi,这样在8个时钟脉冲以后,两个寄存器的内容互相交换一次。这样就完成里一个spi时序。&&&&&& 例子:&&&&&& 假设主机和从机初始化就绪:并且主机的sbuff=0xaa,从机的sbuff=0x55,下面将分步对spi的8个时钟周期的数据情况演示一遍:假设上升沿发送数据
脉冲 主机sbuff& 从机sbuff& sdi& sdo&&0 &1上 1&1下 &2上 1010100x&
0&2下 &3上 1&3下 &4上 0&4下 &5上 1&5下 &6上 1&6下 &7上 0&7下 &8上 1&8下
这样就完成了两个寄存器8位的交换,上面的上表示上升沿、下表示下降沿,sdi、sdo相对于主机而言的。其中ss引脚作为主机的时候,从机可以把它拉低选为从机,作为从机的是时候,可以作为片选脚用。根据以上分析,一个完整的传送周期是16位,即两个字节,因为,首先主机要发送命令过去,然后从机根据主机的名准备数据,主机在下一个8位时钟周期才把数据读回来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列表显示及放大
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:143713次
积分:2465
积分:2465
排名:第9732名
原创:106篇
转载:15篇
评论:11条
(1)(2)(1)(1)(2)(17)(33)(28)(31)(3)(2)

我要回帖

更多关于 mpu9250 stm32 spi 的文章

 

随机推荐