SPI(Serial Peripheral Interface)是一种串行总线外设接口,为高速同步串行输入/输出端口,其传送速率和数据长度可编程。它只需3根引脚线(发送、接收与时钟)就可以与外部设备相连。SPI是一种同步通信接口,两台通信设备在同一个时钟下工作。
SPI通常用于DSP芯片与外部设备或其他控制器之间的通信,通过SPI可以构成多机通信系统,还可以扩展芯片。许多芯片如A-D、D-A、移位寄存器、显示控制驱动器、日历时钟、I/O、E2PROM及语音电路等可以采用SPI接口扩展,例如MAX5121为具有SPI接口的12位D-A转换器芯片。
SPI模块与CPU的接口如图11-1所示。
图11-1 SPI模块与CPU的接口
SPI模块有4个引脚:
●SPISIMO——SPI从输入/主输出(Slave In,Master Out)引脚。SPI工作在主模式下为发送(输出),从模式下为接收(输入)。
●SPISOMI——SPI从输出、主输入(Slave Out,Master In)引脚。SPI工作在主模式下为接收(输入),从模式下为发送(输出)。
●SPICLK——SPI时钟引脚。SPI工作在主模式下为输出时钟,从模式下为输入时钟。
●——SPI从发送使能引脚。主模式下,该引脚为通用I/O引脚。从模式下该引脚可作为I/O功能也可作为选通功能。作为选通功能时,若为高电平,将使SPI移位寄存器停止工作且输出引脚为高阻态;若为低电平,将使能SPI的传送功能。不使用SPI模块时,这些引脚可用作通用I/O引脚。
SPI模块结构框图如图11-2所示。
图11-2 SPI模块结构框图
SPI模块的主要特性如下:(www.daowen.com)
1)两种工作模式:主模式和从模式。
2)波特率:支持125种不同的波特率。
3)数据长度:1~16个数据位。
4)有4种SPICLK时钟方式。
5)同时接收和发送操作(发送功能可以用软件禁止)。
6)同时接收和发送操作可以通过中断或查询方式来完成。
7)SPI模块的12个控制寄存器位于寄存器帧2中。这些控制寄存器均为16位。
SPI寄存器有:SPI配置控制寄存器SPICCR(包含用于SPI配置的控制位)、SPI控制寄存器SPICTL(包含用于数据发送的控制位)、SPI状态寄存器SPISTS(包含了接收器和发送器状态位)、SPI波特率寄存器SPIBRR(确定传送速率)、SPI接收仿真缓冲寄存器SPIRXE-MU、SPI接收缓冲寄存器SPIRXBUF、SPI发送缓冲寄存器SPITXBUF、SPI串行数据寄存器SPIDAT、SPI FIFO发送寄存器SPIFFTX、SPI FIFO接收寄存器SPIFFRX、SPI FIFO控制寄存器SPIFFCT以及SPI优先级控制寄存器SPIPRI,它们用于控制SPI的操作。其中的SPI串行数据寄存器SPIDAT用作发送/接收移位寄存器。
28x系列芯片增加了4级深的接收与发送FIFO以减少CPU的负担。其他增强特性如下:
●延迟的传送控制。
●三线SPI方式。
●的反信号,以支持双SPI数字音频接收模式。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。