Login
升级VIP 登录 注册 安全退出
当前位置: 首页 > word文档 > 合同模板 > SPI通讯协议介绍

SPI通讯协议介绍

收藏

本作品内容为SPI通讯协议介绍,格式为 docx ,大小 84739 KB ,页数为 6页

SPI通讯协议介绍


('SPI通讯协议介绍SPIinterfaceSPI接口介绍SPI是由美国摩托罗拉公司推出的一种同步串行传输规范,常作为单片机外设芯片串行扩展接口。SPI有4个引脚:SS(从器件选择线)、SDO(串行数据输出线)、SDI(串行数据输入线)和SCK(同步串行时钟线)。SPI可以用全双工通信方式同时发送和接收8(16)位数据,过程如下:主机启动发送过程,送出时钟脉冲信号,主移位寄存器的数据通过SDO移入到从移位寄存器,同时从移位寄存器中的数据通过SDI移人到主移位寄存器中。8(16)个时钟脉冲过后,时钟停顿,主移位寄存器中的8(16)位数据全部移人到从移位寄存器中,随即又被自动装入从接收缓冲器中,从机接收缓冲器满标志位(BF)和中断标志位(SSPIF)置“1”。同理,从移位寄存器中的8位数据全部移入到主寄存器中,随即又被自动装入到主接收缓冲器中.主接收缓冲器满标志位(BF)和中断标志位(SSPIF)置“1”。主CPU检测到主接收缓冲器的满标志位或者中断标志位置1后,就可以读取接收缓冲器中的数据。同样,从CPU检测到从接收缓冲器满标志位或中断标志位置1后,就可以读取接收缓冲器中的数据,这样就完成了一次相互通信过程。这里设置dsPIC30F6014为主控制器,ISD4002为从器件,通过SPI口完成通信控制的过程。SPI总线协议SPI是一个环形总线结构,由ss(cs)、sck、sdi、sdo构成,其时序其实很简单,主要是在sck的控制下,两个双向移位寄存器进行数据交换。假设下面的8位寄存器装的是待发送的数据10101010,上升沿发送、下降沿接收、高位先发送。那么第一个上升沿来的时候数据将会是sdo=1;寄存器=0101010x。下降沿到来的时候,sdi上的电平将所存到寄存器中去,那么这时寄存器=0101010sdi,这样在8个时钟脉冲以后,两个寄存器的内容互相交换一次。这样就完成里一个spi时序。例子:假设主机和从机初始化就绪:并且主机的sbuff=0xaa,从机的sbuff=0x55,下面将分步对spi的8个时钟周期的数据情况演示一遍:假设上升沿发送数据第1页脉冲主机sbuff从机sbuffsdisdo01010101001010101001上0101010x1010101x011下0101010010101011012上1010100x0101011x102下1010100101010110103上0101001x1010110x013下0101001010101101014上1010010x0101101x104下1010010101011010105上0100101x1011010x015下0100101010110101016上1001010x0110101x106下1001010101101010107上0010101x1101010x017下0010101011010101018上0101010x1010101x108下010101011010101010这样就完成了两个寄存器8位的交换,上面的上表示上升沿、下表示下降沿,sdi、sdo相对于主机而言的。其中ss引脚作为主机的时候,从机可以把它拉底被动选为从机,作为从机的是时候,可以作为片选脚用。根据以上分析,一个完整的传送周期是16位,即两个字节,因为,首先主机要发送命令过去,然后从机根据主机的名准备数据,主机在下一个8位时钟周期才把数据读回来SPI总线是Motorola公司推出的三线同步接口,同步串行3线方式进行通信:一条时钟线SCK,一条数据输入线MOSI,一条数据输出线MISO;用于CPU与各种外围器件进行全双工、同步串行通讯。SPI主要特点有:可以同时发出和接收串行数据;可以当作主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护;总线竞争保护等。图3示出SPI总线工作的四种方式,其中使用的最为广泛的是SPI0和SPI3方式(实线表示):第2页图2SPI总线四种工作方式SPI总线接口及时序SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI主模块和与之通信的外设音时钟相位和极性应该一致。SPI总线接口时序如图所示。第3页SPI功能模块的设计根据功能定义及SPI的工作原理,将整个IPCore分为8个子模块:uC接口模块、时钟分频模块、发送数据FIFO模块、接收数据FIFO模块、状态机模块、发送数据逻辑模块、接收数据逻辑模块以及中断形式模块。深入分析SPI的四种传输协议可以发现,根据一种协议,只要对串行同步时钟进行转换,就能得到其余的三种协议。为了简化设计规定,如果要连续传输多个数据,在两个数据传输之间插入一个串行时钟的空闲等待,这样状态机只需两种状态(空闲和工作)就能正确工作。SPI协议简介SPI,是英语SerialPeripheralinterface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约第4页了芯片的管脚,同时为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中断服务程序。3B机可设置为查询接收或中断接收方式,以时刻准备接收由A机发送过来的数据,第5页要使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时钟极性及相位,以使传输稳定。第6页',)


  • 编号:1700665751
  • 分类:合同模板
  • 软件: wps,office word
  • 大小:6页
  • 格式:docx
  • 风格:商务
  • PPT页数:84739 KB
  • 标签:

广告位推荐

相关合同模板更多>