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

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

3天内不再提示

详解SPI通信协议

sanyue7758 来源:处芯积律 2023-03-25 10:27 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

SPI接口信号

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

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

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

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

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

多从机模式

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

11fb80dc-cab3-11ed-bfe3-dac502259ad0.png

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

12181b7a-cab3-11ed-bfe3-dac502259ad0.png

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

122b9c5e-cab3-11ed-bfe3-dac502259ad0.png

QSPI协议

QSPI协议读写时序:

124e56ae-cab3-11ed-bfe3-dac502259ad0.jpg

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

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

SPI工作模式

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

125b396e-cab3-11ed-bfe3-dac502259ad0.png

官方时序图如下:

126c2990-cab3-11ed-bfe3-dac502259ad0.png

127f15b4-cab3-11ed-bfe3-dac502259ad0.png

CPOL=0CPHA=0(常用)

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

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

129dc266-cab3-11ed-bfe3-dac502259ad0.png

CPOL=1,CPHA=1 (常用)

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

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

12bf93e6-cab3-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

    文章

    1074

    浏览量

    41870
  • 寄存器
    +关注

    关注

    31

    文章

    5590

    浏览量

    129097
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1867

    浏览量

    99871

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

    fpga与spi通信协议

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

    SPI通信协议

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

    SPI通信协议的基础知识解析

    SPI通信协议详解写在最前: 本文讲述了SPI通信协议的基本内容包括如下SPI的基础知识
    发表于 12-13 08:05

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

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

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

    SPI通信协议讲解SPI通信概念SPI通信SPI
    发表于 02-17 06:09

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

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

    Modbus通信协议详解

    关于Modbus通信协议详解和应用分析
    发表于 10-12 16:54 151次下载
    Modbus<b class='flag-5'>通信协议</b><b class='flag-5'>详解</b>

    SPI通信协议及实例打包

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

    SPI通信协议讲解

    SPI通信协议讲解SPI通信概念SPI通信SPI
    发表于 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

    方便,所以越来越多的芯片集成了这种通信协议;二、寻址方式当主设备要和某个从设备进行通信时,主设备需要先向
    发表于 12-22 19:33 6次下载
    <b class='flag-5'>通信协议</b>(<b class='flag-5'>SPI</b>)

    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>

    通信协议IIC与SPI之间有何区别?

    现今,在低端数字通信应用领域,我们随处可见IIC(Inter-Integrated Circuit)和 SPI(Serial Peripheral Interface)的身影。原因是这两种通信协议
    的头像 发表于 02-13 10:27 2164次阅读
    <b class='flag-5'>通信协议</b>IIC与<b class='flag-5'>SPI</b>之间有何区别?

    SPI通信协议原理是什么

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