SPI协议

物理层:

1.四线制或三线制:四线制时3条总线分别为SCK、MOSI、MISO,片选线为NSS(CS)。三线制与其不同的是MOSI和MISO合并为一条线,端口为双向端口,可输入输出。

(1)NSS:从设备选择信号线,常称为片选信号线,当有多个SPI从设备与SPI主机相连时,设备的其他信号线SCK、MOIS及MISO同时并联到相同的SPI总线上,即无论有多少个从设备,都共同使用这3条总线,而每个从设备都有独立的一条NSS信号线,本信号线独占主机的一个引脚,即有多少个从设备,就有多少条片选线。SPI协议使用NSS信号线来寻址,当主机要选择从设备时,把该从设备的NSS信号线设置为低电平,该从设备即被选中,即片选有效,主机便开始与被选中的从机通信。所以SPI通信以NSS线置低电平为开始信号,以NSS线被拉高作为结束信号

(2)SCK:时钟信号线,用于通信数据同步。它由通信主机产生,决定了通信速率,两个设备之间通信时,通信速率受限于低速设备。

(3)MOSI:主设备发送,从设备接收。

(4)MISO:主设备接收,从设备发送。

2.四线制时为全双工方向同步通信,三线制时为半双工方向同步通信。

协议层:

1.SPI基本通信过程

NSS、SCK、MOSI信号都由主机控制产生,而MISO的信号由从机产生,主机通过该信号线读取从机的数据。MOSI与MISO的信号只在NSS为低电平的时候才有效,在SCK的每个时钟周期,MOSI和MISO传输一位数据。

2.通信的起始和停止信号

NSS又由高变低,是SPI通信的起始信号。NSS由低变高,是SPI通信的停止信号,表示本次通信结束。

3.数据有效性

SPI使用MOSI及MISO信号线来传输数据,使用SCK信号线进行数据同步。MOSI及MISO数据线在SCK的每个时钟周期传输一位数据,且数据输入输出是同时进行的。数据传输时,MSB先行或LSB先行并没有作硬件规定,但要保证两个SPI通信设备之间使用同样的协定,一般都会采用MSB先行模式。SPI每次数据传输可以为8位或者16位为单位,每次传输的单位数不受限制。

4.CPOL时钟极性和CPHA时钟相位

时钟极性CPOL是指SPI通信设备处于空闲状态时,SCK信号线的电平信号。CPOL为1时,空闲时SCK为高电平;为0时,空闲时SCK为低电平。

时钟相位CPHA是指数据的采样时刻。当CPHA=0时,MOSIO或者MISO数据线上的信号将会在SCK时钟线的“奇数边沿”被采样,当CPHA=1时,数据在SCK的“偶数边沿”被采样

所以,SPI共四种通信模式,可自行分析下面两图。主机与从机需要工作在相同的模式下才可以正常通信。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值