SPI总线及协议分析


SPI总线https://mp.weixin.qq.com/s?__biz=Mzg3NDkwMjc2NA==&mid=2247483727&idx=1&sn=b2aaabd36e9ede4b2d3197edcf0a27d8&chksm=cec8e4ccf9bf6ddaedb8db4030bbe564df964cc2f4a5f47e4c45fcf4a5abd87e63906d5603de#rd

SPI具有以下特点:

  • 全双工/半双工同步串行通信

  • 一主多从

  • 通过片选信号选择通信设备

  • 可编程的时钟极性和时钟相位

1 信号描述

信号描述
MOSIMaster Output Slave Input,主机输出、从机输入引脚,用于数据传输。
MISOMaster Input Slave Output,主机输入、从机输出引脚,用于数据传输。
SSSlave Select,选择信号,用以协调主从设备的通信。
SCK时钟信号,用以同步数据的发送或接收。

(图)spi信号连接

2 不同时钟极性CPOL和时钟相位CPHA下的数据传输

CPOL为0时,SCK在空闲时为低电平;CPOL为1时,SCK在空闲时为高电平。

CPHA = 0 传输格式

定义SCK信号的第1个边沿,对应的MISO的电平为从机输出到主机的第1个有效数据,对应的MOSI的电平为主机输出到从机的第1个有效数据。

  • 发出片选信号,切换需要传输数据信号

  • 发出片选信号后,至少维持(tL),开始生成时钟信号

  • 在第1个时钟边沿采样数据

  • 在第2个时钟边沿切换数据

  • 在第3个时钟边沿采样数据

  • ...

  • 完成数据传输后,最后1个时钟周期的第2个边沿需要维持(tT),才能取消片选

  • 如需发起下一次数据传输,需要在上一次传出结束后至少间隔(tI)

(具体时间参数请参考指定通信设备的数据手册)

(图)CPHA = 0

CPHA = 1 传输格式

定义SCK信号的第2个边沿,对应的MISO的电平为从机输出到主机的第1个有效数据,对应的MOSI的电平为主机输出到从机的第1个有效数据。

  • 发出片选信号

  • 发出片选信号后,至少维持(tL),开始生成时钟信号

  • 在第1个时钟边沿切换数据

  • 在第2个时钟边沿采样数据

  • 在第3个时钟边沿切换数据

  • 在第4个时钟边沿采样数据

  • ...

  • 完成数据传输后,最后1个时钟周期的第2个边沿需要维持(tT),才能取消片选

  • 如需发起下一次数据传输,需要在上一次传出结束后至少间隔(tI)

(具体时间参数请参考指定通信设备的数据手册)

(图)CPHA = 1

3 功能延伸

自动控制SS信号

SPI工作在主模式下,可选择自动控制SS信号。在数据传输时,自动片选外部设备。在数据传输完成后,自动取消外部设备片选。

三线SPI

在常规的四线模式下,SPI通过MOSI和MISO完成数据的双向传输(全双工)。SPI也可以工作在半双工模式下,这时只需要一根信号线就可以完成数据的输入输出。

  • 在主机模式下,MOSI作为数据的I/O信号线(MOMI,Master Output, Master Input)

  • 在从机模式下,MISO作为数据的I/O信号线(SISO,Slave Iuput Slave Output)

(图)三线SPI和四线SPI

通过SPI控制器控制数据的输入和输出。在数据输出时,由SCK信号线生成时钟信号。在信号输入时,SCK则接收时钟信号,用以同步数据输入。

5 结束语

至此,SPI总线已介绍完毕,希望本文可以帮助到大家!

欢迎大家通过后台与我交流学习心得,水平有限,如有错漏的地方请不吝指出,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值