DSP课件 串行外设接口SPI

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第15章串行外设接口SPI15.1SPI模块的通用知识SPI是SerialPeripheralInterface的缩写,翻译成中文就是串行外围设备接口。SPI是一种高速的同步串行输入输出接口,允许1~16位的数据流在设备与设备之间进行交换,通常用于DSP与外围设备或者DSP与其他控制器之间进行通信。SPI和SCI的区别SCI串行通信接口低速异步串行通信SPI串行外设接口高速同步串行通信同步通信时,通信双方的设备必须拥有相同的时钟脉冲,以相同的步调进行数据传输,就像国庆阅兵时,队伍中的官兵在统一的口令下齐步前进,整齐划一。异步通信时,通信双方的设备可以拥有各自独立的时钟脉冲,可以独自进行数据传输,就像是两个人在散步,可以各走各的。SPI的总线系统SPI的总线系统可以直接与各个厂家生产的多标准外围器件直接接口,SPI接口一般使用四条线。当然,并不是所有的SPI接口都是采用四线制的,有的SPI接口带有中断信号线INT,而有的SPI接口没有主机输出/从机输入线MOSI。在X281X中SPI接口采用的是四线制。CS线路名称线路作用SCK串行时钟线MISO主机输入/从机输出线MOSI主机输出/从机输入线低电平有效的从机选择线SPI的环形总线结构SPI是一个环形总线结构,其时序其实比较简单,主要是在时钟脉冲SCK的控制下,两个双向移位寄存器SPIDAT进行数据交换。SPIDAT数据传输示例15.2F2812SPI模块的概述SPI模块的特点具有4个外部引脚。有两种工作模式可以选择:主工作模式和从工作模式。波特率:具有125种可编程的波特率。能够使用的最大波特率受到I/O缓冲器最大缓存速度的限制,这些缓冲器是使用在SPI引脚上的I/O缓冲器,而最高的波特率不能超过LSPCLK/4。SPI模块的特点单次发送的数据字的长度为1~16位,可以通过寄存器设定。可选择的四种脉冲时钟配置方案。接收和发送可以同步操作,也就是说可以实现全双工通信。和SCI相同,发送和接收都能通过查询或者中断方式来实现。SPI模块的特点具有6个控制寄存器、3个数据寄存器和3个FIFO寄存器。值得注意的是,SPI所有的控制寄存器都是8位的,当寄存器被访问时,数据位于低8位,而高8位为0,因此把数据写入SPI这6个控制寄存器的高8位是无效的。X281X的SPI也具有2个16级的FIFO,一个用于发送数据,一个用于接收数据。在标准的SPI模式(非FIFO模式)下,发送中断和接收中断都使用SPIINT/RXINT。在FIFO模式中,接收中断使用SPIINT/RXINT,而发送中断使用的是SPITXINT。SPI的信号总结SPISTE信号名称功能描述外部引脚SPISOMISPI从模式输出/主模式输入引脚SPISIMOSPI从模式输入/主模式输出引脚SPICLKSPI串行时钟引脚SPI从模式发送使能引脚控制信号SPI时钟速率LSPCLK中断信号SPIINT/RXINT发送中断/接收中断(不使用FIFO情况下)SPITXINT发送中断(使用FIFO情况下)SPI模块的结构框图SPI主从工作模式主机模式问:如何设置SPI成为主机,就像图15-6中的处理器1?答:通过设置SPI工作控制寄存器SPICTL的MASTER/SLAVE位为1来使得SPI工作于主机模式。编程的语句为:SpiaRegs.SPICTL.bit.MASTER_SLAVE=1。主机模式问:整个SPI的通信网络中的时钟和波特率是由主机来提供的吗?答:是的。从字面上理解,主机就是在系统中占主导地位的设备,关乎到整个系统的运行。主机通过SPICLK引脚为整个通信网络提供时钟脉冲信号。由于每经过一个时钟脉冲,SPI就完成一位数据的发送,因此时钟脉冲的频率就是通常所说的波特率,其值由主机的SPIBBR寄存器来决定。通过对SPIBBR寄存器的编程,SPI能够实现125种不同的波特率,最大波特率为LSPCLK/4。主机模式问:主机的数据是如何发送和接收的呢?答:主机通过SPISIMO引脚来发送数据,而通过SPISOMI引脚输入数据。如图15-6所示,当数据写到移位寄存器SPIDAT或者写到串行发送缓冲器SPITXBUF的时候,就会启动SPISIMO引脚开始发送数据,首先发送的是SPIDAT的最高位,接着将剩余的数据左移1位,然后将接收到得数据通过SPISOMI引脚移入SPIDAT的最低有效位。主机模式问:在数据传输过程和传输完成两种状态时,主机的SPISTE引脚有何变化?答:从前面的学习已经知道,引脚SPISTE是从机使能信号,这是一个低电平有效的信号,也就是说当主机需要给从机发送数据的时候,引脚SPISTE就被置为低电平,当主机发送完需要发送的数据后,引脚SPISTE重新被置为高电平。片选信号的存在使得系统能够同时拥有多个从机,但是在同一时刻,只能有一个从机起作用。从机模式问:SPI从机的时钟是由随决定的?答:前面已经讲到过,SPI系统通信的时钟是由主机来决定的,也就说从机通过SPICLK引脚来接受主机提供的串行移位时钟。从机SPICLK引脚的输入频率应不大于LSPCLK/4。从机模式问:SPI从机的时钟是由随决定的?答:前面已经讲到过,SPI系统通信的时钟是由主机来决定的,也就说从机通过SPICLK引脚来接受主机提供的串行移位时钟。从机SPICLK引脚的输入频率应不大于LSPCLK/4。从机模式问:从机的数据是如何接收和发送的呢?答:这个和主机的数据传输机制其实是类似的,首先,从机数据是通过SPISOMI引脚来发送的,而通过SPISIMO引脚来接收的。当从机接收到来自于主机脉冲信号的边沿时,就可以启动数据的发送和接收了。当数据写入SPIDAT或者SPITXBUF后,SPIDAT就开始将数据的最高位移出,同时左移剩下的数据,然后将接收到的数据移入SPIDAT的最低位。从机模式问:由于从机通常是接收功能用的比较多,那如何禁止SPI的发送功能?答:可以通过设置SPICTL寄存器的TALK位来禁止SPI的发送功能,编程语句为:SpiaRegs.SPICTL.bit.TALK=0。SPI数据格式X281X的SPI通过对配置控制寄存器SPICCR的第3位至第0位的选择,可以实现1~16位数据的传输。当每次传输的数据少于16位时,需要注意以下几点:当数据写入SPITXBUF和SPIDAT寄存器时,必须左对齐;当数据从SPIRXBUF寄存器读取时,必须右对齐;SPIRXBUF寄存器中存放的是最新接收到的数据,数据采用右对齐方式,再加上前面移位到左边后留下的位。SPIDAT和SPIRXBUF寄存器数据移动方式SPI波特率LSPCLKSPIBaudRate4LSPCLKSPIBaudRateSPIBRR1SPI通过对寄存器SPIBRR的配置,可以实现125种不同的波特率,计算公式如下:当SPIBRR=0,1,2时:当SPIBRR=3~127时:SPI时钟配置SPI的中断

1 / 26
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功