SPI是英文“Serial Peripheral Interface”的缩写,中文意思是串行外围设备接口,SPI是Motorola公司推出的一种同步串行通讯方式,是一种三线同步总线,因其硬件功能很强,与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。
SPI接口是Motorola 首先提出的全双工三线同步串行外围接口,采用主从模式(Master Slave)架构;支持多slave模式应用,一般仅支持单Master。时钟由Master控制,在时钟移位脉冲下,数据按位传输,高位在前,低位在后(MSB first);SPI接口有2根单向数据线,为全双工通信,目前应用中的数据速率可达几Mbps的水平。
SPI接口主要应用在 EEPROM、FLASH、实时时钟、AD转换器,还有数字信号微控制器和数字信号解码器之间。SPI是一种高速的、全双工、同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,比如ATMEGA16、LPC2142、S3C2440。
SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)也是所有基于SPI的设备共有的,它们是MISO(数据输入)、MOSI(数据输出)、SCK(时钟)、CS(片选)。
串行外围设备接口(SPI)是一个工作于全双工模式下的同步串行数据通讯协议。设备通过4线双端接口工作于主机/从机模式进行通讯。NuMicro M051系列包括最多2组SPI控制器,将从外设接收到的数据进行串并转换, 或将要发送到外设的数据进行并串转换。每组SPI控制器都可被设置成主机;也可设置为被片外主机设备控制的从机。
16.2 特性
l 最多两组SPI控制器
l 支持主/从机模式
l 可配置比特长度,一个传输字最多可达32比特;可配置的传输字数,一次最多可传输2个字,所以一次数据传输的最大比特长度是64比特
l 支持burst操作模式,在一次传输过程中,发送/接收可执行两次字传输
l 支持MSB 或 LSB 优先传输
l 字节或字休眠模式
l 主机模式下可输出多种串行时钟频率
l 主机模式下支持两个可编程的串行时钟频率
SPI通信有以下特点:
①主机控制具有完全的主导地址。它决定着通信的速度,也决定着何时可以开始和结束一次通信,从机只能被动响应主机发起的传输。
②SPI通信是一种全双工高速的通信方式。从通信的任意一方来看,读操作和写操作都是同步完成的。
③SPI的传输始终是在主机控制下,进行双向同步的数据交换。
16.3 功能
主机/从机模式 SPI控制器可通过设置SLAVE 位(SPI_CNTRL[18])被配置为主机或从机模式,来与片外SPI从机或主机设备通讯。在主机模式与从机模式下的应用框图如图16.3-1和图16.3-2所示。
图 16.3-1 SPI主机模式应用框图
图 16.3-2 SPI主机模式应用框图
l 从机选择
在主机模式下,SPI控制器能通过从机选择输出脚SPISS驱动一个片外从机设备。从机模式下,片外的主机设备驱动从机选择信号通过SPISS输入到SPI控制器。在主机/从机模式下,从机选择信号的有效电平可以在SS_LVL位 (SPI_SSR[2])被编程为低有效或高有效,SS_LTRIG 位(SPI_SSR[4])配置从机选择信号SPISS 为电平触发或边沿触发。触发条件的选择取决于所连接的外围从机/主机的设备类型。
l 从机选择
在主机模式下,SPI控制器能通过从机选择输出脚SPISS驱动一个片外从机设备。从机模式下,片外的主机设备驱动从机选择信号通过SPISS输入到SPI控制器。在主机/从机模式下,从机选择信号的有效电平可以在SS_LVL位 (SPI_SSR[2])被编程为低有效或高有效,SS_LTRIG 位(SPI_SSR[4])配置从机选择信号SPISS 为电平触发或边沿触发。触发条件的选择取决于所连接的外围从机/主机的设备类型。