SPI总线概述
SPI总线介绍
SPI(Serial Peripheral interface):是由Motorola公司开发的串行外围设备接口,是一种高速的,全双工,同步的通信总线。主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器等器件。
UART:异步串行全双工
SPI:同步串行全双工(异步没有连接相同的时钟线,同步有)
SPI总线接口与物理拓扑结构
(1)五线制接口(4线SPI)―4-wire-spi
MOSI(单向数据线)、MISO(单向数据线)、CLK(时钟线)、NSS/CS(片选)
(2)四线制接口(3线SPI)
SDA(双向数据线)、CLK(时钟线)、NSS/CS(片选)
(3) 拓扑图
在SPI总线上,有主机(MCU)和从机(外围器件)之分, 主机只有一个,从机可以有多个。主机通过从机的片选信号线来选中从机与其进行通信。同一时间只能选择其中一个从机。随着SPI总线上挂接的从机增多,主机的片选IO也响应会增多。
M:master O:output S:slaver I:Input
MOSI(单向数据线):主出从入, 主机通过这跟数据线发送数据给从机。
MISO(单向数据线):主入从出, 从机通过这跟数据线发送数据给主机。
SCK(单向):时钟线,控制数据线什么时候才能传输数据。只有主机才能控制时钟线。
只有主机才能主动寻求从机与其通信,从机永远不可能主动跟主机通信。
CS:片选信号线,主机通过片选信号线来选中从机与其通信。(选妃)
SPI总线通信原理
主机片选从机
主机通过时钟线决定什么时候发送数据给从机
主机通过时钟线决定什么时候接受从机的数据
主机取消片选
补充时序图常识:
平行线:数据不允许发生改变,必须稳定发送
交叉线:数据允许发生改变,但不一定要变
SPI数据格式有4种: MODE0~3
决定数据格式的因素:时钟线哪一种跳边沿发送数据,前沿还是后沿接受数据,总线的空闲电平状态