![45dfffe6e9616a5857726fdfc8f7ab5a.png](https://i-blog.csdnimg.cn/blog_migrate/f82e9ac10ad4f9f799882defb1b7ad82.jpeg)
1、SPI概述
串行外围设备接口SPI(seria丨peripheral interface)总线技术是一种同步串行接口,其硬件功能很强,所以,与SPI有关的软件相当简单,使CPU有更多的时间处理其他事务。SPI总线上可以连接多个可作为主机的MCU(微控制器)、装有SPI接口的输出设备、输入设备,如液晶驱动、A/D转换等外设,也可以简单连接到单个TTL移位寄存器的芯片。 总线上允许连接多个设备,但在任一瞬间只允许一个设备作为主机。典型的结构如图1示(3线模式)。
![38cc831132823bdd63955b45d1a6ee1d.png](https://i-blog.csdnimg.cn/blog_migrate/79e092c05c52334e19158f529b386586.jpeg)
其中SPI总线的时钟线由主机控制,另外还有数据线:主机输入/从机输出线和主机输出/从机输入线。主机和哪台从机通信通过各从机的选通线进行选择。
应用SPI的系统可以简单,也可以复杂,主要有以下几种形式:
- —台主机MCU和若干台从机MCU。
- 多台MCU互相连接成一个多主机系统。
- 一台主机MCU和若干台从机外围设备。
2、同步操作
当MSP430的 USART 模块控制寄存器 UCTL 的 SYNC 位置位且I2C位复位时,串行模块工作在SPI模式,通过4线(SOMI、SIMO、UCLK 及STE)或者3线(SOMI、SIMO、UCLK)同外界通信。MSP430的同步通信模块有如下特点:
- 支持3线或4线SPI操作。
- 支持主机模式与从机模式。
- 接收和发送有单独的移位寄存器。
- 接收和发送有独立的缓冲器。
- 接收和发送有独立的中断能力。
- 时钟的极性和相位可编程。
- 主模式的时钟频率可编程。
- 7位或8位字符长度。
2.1 SPI模式的引脚信号
引脚 SOMI、SIMO、UCLK 和 STE 用于 SPI模式。其中 SOMI、SIMO、UCLK 在主机模式和从机模式下存在差别,如图2所示。
![5574fc4d3e3dd797a0e0863e71852b6f.png](https://i-blog.csdnimg.cn/blog_migrate/fc641129c44457445eccd0ddacae8b8f.png)
STE:从机模式发送接收允许控制引脚,控制多主从系统中的多个从机。该引脚不用于3线SPI操作,可以在4线模式SPI操作中使多主机共享总线,避免发生冲突。
4线SPI操作主模式中,STE的含义如下:
- 0 SIMO和UCLK被强制进入输入状态;
- 1 SIMO和UCLK正常操作。
4线SPI操作从模式中,STE的含义如下:
- 0 允许从机发送接收数据,SOMI正常操作;
- 1 禁止从机发送接收数据,SOMI被强制进入输入状态。
2.2 SPI的操作方式
SPI是全双工的,即主机在发送的同时也在接收数据,传送的速率由主机编程决定: 主机提供时钟UCLK与数据,从机利用这一时钟接收数据,或在这一时钟下送出数据。主机在任何时侯初始化发送并控制时钟。时钟的极性和相位也是可以选择的,具体的约定由设计人员根据总线上各设备接口的功能决定。4线SPI模式用附加数据线,允许从机数据的发送和接收,它由主机控制。
(1)SPI的主机模式
图3是MSP430的USART模块使用同步模式时,作为主机与另一SPI从机设备的连接。
![b99455e6f38763f11ba513acd4e40063.png](https://i-blog.csdnimg.cn/blog_migrate/4326d5b9b2edd1a914ef00a6311a4a3d.jpeg)