美文网首页
04-嵌入式原理图入门-SPI总线

04-嵌入式原理图入门-SPI总线

作者: GuangZhi | 来源:发表于2020-02-21 05:17 被阅读0次

SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工的,同步的通信总线。

SPI优点:

支持全双工通信(允许数据同时在两个方向上传输);

通信简单(一条总线只负责发,一条总线只负责收);

数据传输快;

不需要像I2C设备那样寻址,通过片选选择即可。

SPI缺点:

没有应答机制确认是否接收到数据,所以跟I2C总线协议(I2C有ACK响应信号)比较在数据可靠性上有一定的缺陷。

SPI常用于 EEPROM、ADC、DAC、移位寄存器、SRAM等外围IC。

先了解SPI硬件接线:

图1.spi硬件接线

从图中知道:

1.SPI通常由一个主机和多个从设备组成;

2.SPI主要包含四条总线:

①.SCLK:时钟信号,由主机产生;

②.MOSI:输出信号;

③.MISO:输入信号;

④.CS:片选,主机输出与片选使能同样的电平则选中与此spi设备通信,其余从设备片选不使能;

需要注意的是,SPI通信有4种不同的模式,不同的从设备可能在出厂是就是配置为某种模式,

这是不能改变的。因此主机需要通过软件配置为相应的模式才能与SPI从设备正常通信。

SPI模式设置是通过配置CPOL(时钟极性)和CPHA(时钟相位)来控制通信模式。

CPOL:时钟极性,简单说就是配置SCLK空闲状态时是处于低电平还是高电平。

CPOL=0,表示SCLK空闲状态时是低电平;CPOL=1,表示SCLK空闲状态时是高电平;

CPHA:时钟相位,用来表示数据采集(读数据)是在奇数个边沿还是偶数个边沿。

CPHA=0,表示数据采集(读数据)是在奇数个边沿;CPHA=1,表示数据采集(读数据)是在偶数个边沿。

因此由CPOL和CPHA可组合成以下四种通信模式:

模式1:CPOL=0,CPHA=0。此时空闲态时,SCLK处于低电平,数据采集是在奇数个边沿,也就是数据采集是在上升沿,数据发送是在下降沿。

模式2:CPOL=0,CPHA=1:此时空闲态时,SCLK处于低电平,数据采集是在偶数个边沿,也就是数据采集是在下降沿,数据发送是在上升沿。

模式3:CPOL=1,CPHA=0:此时空闲态时,SCLK处于高电平,数据采集是在奇数个边沿,也就是数据采集是在下降沿,数据发送是在上升沿。

模式4:CPOL=1,CPHA=1:此时空闲态时,SCLK处于高电平,数据采集是在偶数个边沿,也就是数据采集是在上升沿,数据发送是在下降沿。

SPI设备也正是根据这样的规则,在SCLK边沿变化时通过输出总线MOSI发送数据和通过输入总线MISO读取数据进行通信。

SPI不像I2C有固定的通信数据格式,SPI只规定了通信有4条总线(如果主机不需要读数据,只需SCLK,MOSI、CS三条)

和4种通信模式,具体的SPI数据通信格式只能看具体芯片手册。

至此,SPI协议基本了解。下一篇将记录NAND学习心得。

相关文章

网友评论

      本文标题:04-嵌入式原理图入门-SPI总线

      本文链接:https://www.haomeiwen.com/subject/lssqqhtx.html