SPI概念
SPI是全双工三线/四线同步串行总线
采用主从模式架构;支持多slave模式应用
一般仅支持单Master,多从机
时钟由Master控制,在时钟移位脉冲下,数据按位传输,高位在前,低位在后
SPI通信协议
起始信号:NSS信号线由高变低,是SPI通讯的起始信号
结束信号:NSS信号由低变高,是SPI通讯的停止信号
数据传输:SPI使用MOSI及MISO信号线来传输数据,使用SCK信号线进行数据同步。MOSI及MISO数据线在SCK的每个时钟周期传输一位数据,且数据输入输出是同时进行的。SPI每次数据传输可以8位或16位为单位,每次传输的单位数不受限制。
SPI通信模式
时钟极性CPOL:设置时钟空闲时的电平
当CPOL =0 ,SCK引脚在空闲状态保持低电平;
当CPOL =1, SCK引脚在空闲状态保持高电平。
时钟相位CPHA:设置数据采样时的时钟沿
当CPHA=0时,MOSI或 MISO数据线上的信号将会在SCK时钟线的奇数边沿被采样
当CPHA=1时,MOSI或 MISO数据线上的信号将会在SCK时钟线的偶数边沿被采样
SPI与i2c的区别
相同:
采用串行、同步总线
采用的是TTL电平
采用主从模式
不同:
IIC总线是半双工,SPI总线是全双工
IIC总线有应答机制,SPI总线无应答机制
IIC总线通过从机地址选择和哪一个从机进行通信,SPI总线通过片选线选择和哪一个从机进行通信
SPI总线有多少硬件设备,就需要多少片选线,比较浪费硬件资源
IIC总线通信协议是通过SCL高低电平决定读写,SPI总线通过时钟极性和时钟相位决定读写
IIC总线是高低电平进行数据传输,SPI总线是边沿触发,边沿采样