SPI接口

SPI(Serial Peripheral Interface--串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。SPI总线可直接与各个厂家生产的多种标准外围器件相连,包括FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。该接口一般使用4条线:串行时钟线(SCLK)主机输入/从机输出数据线MISO主机输出/从机输入数据线MOSI低电平有效的从机选择线NSS。

应用

SPI接口的全称是"Serial Peripheral Interface",意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM、FLASH、实时时钟、AD转换器,还有数字信号处理器和数字信号解码器之间。

SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,低位在后,为全双工通信,数据传输速度总体来说比I2C总线要快,速度可达到几Mbps。

特点

信号线少,协议简单,相对数据速率高。

SPI接口的一个缺点:没有指定的流控制,没有应答机制确认是否接收到数据

接口信号

多个从器件硬件连接示意图

(1)MOSI – 主器件数据输出,从器件数据输入

(2)MISO – 主器件数据输入,从器件数据输出

(3)SCLK –时钟信号,由主器件产生,最大为fPCLK/2,从模式频率最大为fCPU/2

(4)NSS – 从器件使能信号,由主器件控制,有的IC会标注为CS(Chip select)

点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。在多个从器件的系统中,每个从器件需要独立的使能信号,硬件上比I2C系统要稍微复杂一些。

SPI接口在内部硬件实际上是两个简单的移位寄存器,传输的数据为8位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后。如下图所示,在SCLK的上升沿上数据改变,同时一位数据被存入移位寄存器。

 

工作模式

通讯时序图通讯时序图

SPI有四种工作模式,各个工作模式的不同在于SCLK不同, 具体工作由CPOL,CPHA决定

CPOL: (Clock Polarity),时钟极性

当CPOL为0时,时钟空闲时电平为低;

当CPOL为1时,时钟空闲时电平为高;

CPHA:(Clock Phase),时钟相位

当CPHA为0时,时钟周期的上升沿采集数据,时钟周期的下降沿输出数据;

当CPHA为1时,时钟周期的下降沿采集数据,时钟周期的上升沿输出数据;

 

 

 

 

 

状态标志   

  应用可通过三种状态标志监视 SPI 总线的状态。

发送缓冲区为空 (TXE)

       此标志置 1 时,表示发送缓冲区为空,可以将待发送的下一个数据加载到缓冲区中。对SPI_DR 寄存器执行写操作时,将清零 TXE 标志。

接收缓冲区非空 (RXNE)

       此标志置 1 时,表示接收缓冲区中存在有效的已接收数据。读取 SPI_DR 时,将清零该标志。

BUSY

       BSY 标志由硬件置 1 和清零(对此标志执行写操作没有任何作用)。BSY 标志用于指示SPI 通信的状态。

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值