SPI总线简介
>SPI总线介绍
SPI接口是Motorola首先提出的全双工三线同步串行外围接口,采用主从模式(Master Slave)架构;支持多slave模式应用,一般仅支持单Master. 时钟由Master控制,在时钟移位脉冲下,数据按位传输,高位在前,低位在后(MSB first); SPI接口有2根单向数据线,为全双工通信,目前应用中的 数据速率可达几Mbps的水平。
SPI总线被广泛地使用在FLASH, ADC, LCD等设备与MCU间,要求通讯速率较高的场合。
SPI总线物理—拓扑结构
>SPI接口共有4根信号线,分别是:设备选择线,时钟线,串行输出数据线,串行输入数据线。
1.MOSI : 主器件数据输出,从器件数据输入
2.MISO :主器件数据输入,从 器件数据输出
3.SCLK :时钟信号 ,由主器件产生
4./SS :从器件使能信号,由主器件控制(片选)
SPI总线协议
>起始信号 :NSS信号线由高变低,是SPI通讯的起始信号
>结束信号 :NSS信号 由 低变高,是SPI通讯的停止信号
>数据传输 :SPI使用MOSI及MISO信号线来传输数据,使用SCK信号线进行数据同步。 MOSI及MISO数据线在SCK的每个时钟周期传输一位数据,且数据输入输出
是同时 SPI每次数据传输可以8位或16位单位,每次传输的单位数不受限制。
SPI的四种通信模式
在SPI操作中,最重要的两项设置就是时钟极性(CPOL)和 时钟相位 (CPHA)这两项即是主从设备数据采样的约定方式。
>时钟极性CPOL :设置时钟空闲时 的电平。
当CPOL = 0,SCK引脚在空闲状态保持低电平;
当CPOL = 1,SCK引脚在空闲状态保持高电平。
>时钟相位CPHA :设置数据采样时的时钟沿
当CPHA = 0时,MOSI或MISO数据线上的信号将会在SCK时钟线的奇数边沿被采样
当CPHA = 1时,MOSI或MISO数据线上的信号将会在SCK时钟线的偶数边沿被采样
>通信模式的设置:
由CPOL及CPHA的不同状态,SPI分成了四种模式,主机与从机需要工作在相同模式下才可以正常通讯,因此主机要按照从机支持的模式去设置。