0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文搞懂SPI通信协议

sanyue7758 来源:全栈芯片工程师 2023-03-23 16:51 次阅读

SPI是Serial Peripheral Interface的简称,是由Motorola公司推出的一种高速、全双工的总线协议,可以实现一对一、一对多芯片通信

SPI接口信号

SPI由SCLK、CS/SSEL、MOSI,MISO四根线组成,

SCLK,时钟信号,时钟频率即SPI速率,和SPI模式有关;

MOSI,主机输出,从机输入;

MISO,主机输入,从机输出;

CS/SSEL,从机设备选择,低电平有效;

多从机模式

如果主机有多个片选CS端口,可采用下图模式,主机只能获取一个从机的MISO信号,其它从机输出信号须为高阻。

a9065f2c-c957-11ed-bfe3-dac502259ad0.png

菊花链连接,节省GPIO、节省布线面积,但需要保证从机支持菊花链模式。

a9152908-c957-11ed-bfe3-dac502259ad0.png

菊花链的数据传输时序:通过移位 送达数据。

a91e5a3c-c957-11ed-bfe3-dac502259ad0.png

QSPI协议

QSPI协议读写时序:

a948e55e-c957-11ed-bfe3-dac502259ad0.jpg

注意,很多人写公众号都没说清楚,为什么SPI能做到全双工,而有些QSPI不能呢?

因为从下面时序图可看到,发送时,待发送数据的一组8bit寄存器只在下降沿向左移位(高位先发,低位补充0即可),那么必然存在另一组8bit寄存器用以在上升沿接收数据,这样就可以构成全双工,而QSPI一般用FIFO/SRAM进行数据传输,基于成本考虑,一般只能半双工。

SPI工作模式

根据时钟极性CPOL(Clock Polarity)、时钟相位CPHA(Clock Phase),SPI有4种模式,最广泛使用的是模式0和3:

a96d0d8a-c957-11ed-bfe3-dac502259ad0.png

官方时序图如下:

a974d9f2-c957-11ed-bfe3-dac502259ad0.png

a9a64adc-c957-11ed-bfe3-dac502259ad0.png

CPOL=0CPHA=0(常用)

CPOL=0,SPICLK空闲状态为低电平;

CPHA=0,SPICLK第一个边沿(上升沿)采集数据、第二个沿输出数据;

a9eb547e-c957-11ed-bfe3-dac502259ad0.png

CPOL=1,CPHA=1 (常用)

CPOL=1,SPICLK空闲状态为高电平;

CPHA=1,SPICLK第二个边沿(上升沿)采集数据、第三个沿输出数据;

aa18e70e-c957-11ed-bfe3-dac502259ad0.jpg    

CPOL=0,CPHA=1(不常用)

CPOL=0,SPICLK空闲状态为低电平;

CPHA=1,SPICLK第二个边沿(下升沿)采集数据、第三个沿输出数据;

CPOL=1,CPHA=0

(不常用)

CPOL=1,SPICLK空闲状态为高电平;

CPHA=0,SPICLK第一个边沿(下升沿)采集数据、第二个沿输出数据;





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 通信协议
    +关注

    关注

    28

    文章

    854

    浏览量

    40250
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1700

    浏览量

    91291
  • 时钟信号
    +关注

    关注

    4

    文章

    445

    浏览量

    28506
  • miso
    +关注

    关注

    0

    文章

    7

    浏览量

    5407

原文标题:详解SPI通信协议

文章出处:【微信号:处芯积律,微信公众号:处芯积律】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    常用的串口通信协议SPI协议简析

    SPI(serial peripheral interface)也是种同步串行通信协议。这里为啥要说“也”呢,回想上篇介绍的PS/2不也是同步串行
    发表于 07-07 09:33 4208次阅读

    搞懂SPI通信协议

    SPI 的英文全称为 Serial Peripheral Interface,顾名思义为串行外设接口。SPI种同步串行通信接口规范,主要应用于嵌入式系统中的短距离
    发表于 06-06 10:02 1144次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>搞懂</b><b class='flag-5'>SPI</b><b class='flag-5'>通信协议</b>

    fpga与spi通信协议

    fpga通过spi通信协议在与外围设备实现通信的过程中程序代码该怎么写?新手勿喷
    发表于 04-09 12:44

    SPI通信协议

    LOTO虚拟示波器采集到的数据波形并进行对比分析,方便大家的理解。SPI通信协议般只需要四根线将主控芯片与从芯片连接起来,其中四根线分别为:(1)SDO– 主设备数据输出,从设备数据输入(2)SDI– 主设备数据输入,从设备数
    发表于 08-09 07:49

    SPI是什么?SPI通信协议说明

    文章目录目录前言SPI是什么?二、SPI通信协议1.通信引脚说明2.通信格式说明3.实现形式
    发表于 02-17 06:45

    SPI通信协议讲解相关资料推荐

    了I2C通信协议大概,弄懂了I2C通信那么相信你也可以轻松弄懂的,因为I2C和SPI之间有些共同点。I2C通信
    发表于 02-17 06:09

    SPI通信协议通信过程是怎样的?

    SPI通信协议通信过程是怎样的?
    发表于 02-17 06:52

    SPI通信协议及实例打包

    本文是SPI通信协议及实例打包分享。
    发表于 11-16 13:24 47次下载

    SPI通信协议讲解

    了I2C通信协议大概,弄懂了I2C通信那么相信你也可以轻松弄懂的,因为I2C和SPI之间有些共同点。I2C通信
    发表于 12-22 19:19 26次下载
    <b class='flag-5'>SPI</b><b class='flag-5'>通信协议</b>讲解

    通信协议SPI

    STM32模拟SPI通信协议SPI的简介:SPI是串行外设接口的缩写,是种高速的,全双工、同步的串行
    发表于 12-22 19:20 22次下载
    <b class='flag-5'>通信协议</b>:<b class='flag-5'>SPI</b>

    通信协议SPI

    SPI简介SPI(Serial Peripheral Interface)是串行外设接口的缩写,SPI是高速的,**全双工**、**同步**的串行
    发表于 12-22 19:33 6次下载
    <b class='flag-5'>通信协议</b>(<b class='flag-5'>SPI</b>)

    i2c和spi通信协议的概念与区别 I2C/SPI总线通信协议搞懂没有

      通信协议 同步VS异步、串行VS并行有什么区别? 通信协议是个基本功,哪里都用的到。 但是般也很少人能很自信说自己完全弄懂了某个通信协议。很多时候我们用到的只是
    的头像 发表于 06-23 17:19 3592次阅读

    Arduino UNO上的SPI通信协议

    电子发烧友网站提供《Arduino UNO上的SPI通信协议.zip》资料免费下载
    发表于 11-09 10:24 0次下载
    Arduino UNO上的<b class='flag-5'>SPI</b><b class='flag-5'>通信协议</b>

    【世说知识】搞懂UART通信协议

    UART,即通用异步接收器/发送器,是最常用的设备间通信协议,正确配置后,UART可以配合许多不同类型的涉及发送和接收串行数据的串行协议工作。在串行通信中,数据通过单条线路或导线逐
    的头像 发表于 02-02 10:46 2137次阅读
    【世说知识】<b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>搞懂</b>UART<b class='flag-5'>通信协议</b>

    SPI通信协议原理是什么

    Peripheral Interface,也就是串行外设接口,同样是通信协议,在很多芯片中都有集成。 相比之前学习的UART串口通信,他多了两根线,其中个是时钟信号,另
    的头像 发表于 11-24 17:37 1013次阅读
    <b class='flag-5'>SPI</b><b class='flag-5'>通信协议</b>原理是什么