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

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

3天内不再提示

通信协议之SPI总线硬件篇

hellosz 来源:hellosz 作者:hellosz 2024-11-25 17:56 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、概述

SPI:Serial Peripheral Interface,串行外围设备接口

是由摩托罗拉在20世纪80年代中期开发的同步串行总线接口规范(带有时钟信号,通过时钟极性和时钟相位来控制采样,

即同步传输)。

1、支持半双工、全双工通信模式。

2、没有流控制和应答机制来确认是否接收到数据(UART有校验或流控制)。

3、没有一个固定的传输速率规定,已有器件SPI输出速率达到50Mbps以上(I2C有明确规定速率)。

4、只能板内的短距离传输(RS232RS485输出距离远)。

5、没有限制传输bit数量,常用的是8bit或9bit。

6、不需要硬件地址(I2C要地址),采用片选。

7、主从模式,一托多。

二、3线和4线模式

3线SPI和4线SPI各个模式下信号定义:

3线9bit I型 接口信号:SCL、CS、SDA

3线9bit II型接口信号:SCL、CS、SDO、SDI

4线8bit I型接口信号:SCL、CS、DCX、SDA

4线8bit II型接口信号:SCL、CS、DCX、SDO、SDI

3线9bit 2 data Lane 接口信号:SCL、CS、D0、D1

对于3线或4线来区分,并不是信号线的数量,也不是网上说的半双工和全双工,或者数据线数量差异。

个人认为:

3线说的是时钟、片选、数据信号(不管是一根数据线,还是两根数据线),共三种信号。

4线说的是时钟、片选、数据信号、数据或命令控制线(确定发送的是数据还是命令),共4中信号。

三、SPI 四种工作模式

通过CPOL时钟极性和CPHA时钟相位的搭配来得到四种工作模式:

wKgZomXtxOSAJVpAAABYsv1YBhk227.png

CPOL时钟极性定义的是 SCLK时钟线空闲状态时的电平

CPOL=0,即SCLK=0,表示SCLK时钟信号线在空闲状态时的电平为低电平,因此有效状态为高电平。

CPOL=1,即SCLK=1,表示SCLK时钟信号线在空闲状态时的电平为高电平,因此有效状态为低电平。

CPHA时钟相位定义的是数据位相对于时钟线的时序(即相位)

CPHA=0,即表示输出(out)端在上一个时钟周期的后沿改变数据,而输入(in)端在时钟周期的前沿(或不久之后)捕

获数据。输出端保持数据有效直到当前时钟周期的尾部边缘。对于第一个时钟周期来说,第一位的数据必须在时钟前沿之

前出现在MOSI线上。也就是一个CPHA=0的周期包括半个时钟空闲和半个时钟置位的周期。

CPHA=1,即表示输出(out)端在当前时钟周期的前沿改变数据,而输入(in)端在时钟周期的后沿(或不久之后)捕获

数据。输出端保持数据有效直到下一个时钟周期的前沿。对于最后一个时钟周期来说,从机设备在片选信号消失之前保持

MISO信号线有效。也就是一个CHPA=1的周期包括半个时钟置位和半个时钟空闲的周期。

四、SPI升级版

SPI flash接口有standard SPI、Dual SPI、Quad SPI、Octal SPI,也就是所谓的1248线模式。

wKgaomXtxRqAN-NSAAB2yzCWnrE361.png

五、SDR和DDR模式

SPI通信支持SDR和DDR模式。

SDR:Single Data Rate通过 SCLK 的触发对信号进行采样时,一个时钟周期只执行一次,称为单倍数据速率模式。

DDR:Double Data Rate通过 SCLK 的触发对信号进行采样时,每个上升沿和下降沿将采样一次。

也就是说一个时钟周期内发送2位或者接收2位数据,称为双倍数据速率模式

六、SPI Flash接口

Dual SPI有两根数据IO;Quad SPI有4根数据IO。

SPI flash spec:

wKgZomXtxSyAJAlOAADXh9dy0kw866.png

七、SPI TFT液晶屏接口

TFT液晶屏ST7789 spec定义,支持串行和并行,支持SPI多种通信模式。

wKgZomXtxTqAEyqCAAGWM8jADHU220.png

八、信号定义及连线

标准SPI接口信号定义:

wKgaomXtxUiAE7QyAAB9ddLnuZQ588.png

标准的SPI规范连线:

wKgZomXtxVWAZwjrAAAqtjMN35Y772.png

SDOSDI网络命名的连线(SDO和SDI交叉):

wKgaomXtxWKAPFYoAAApwhTqMl8503.png

SPI总线,一对多连线:

wKgaomXtxW-AV8pDAACAtdpW32k449.png

九、小结

1、有的参考设计原理图中,用SDI表示MOSI,用SDO表示MISO,连线要注意输出和输入的定义。

2、芯片引脚的信号输入或输出,是针对自身来标明的,因此在主从设备芯片的输出或输入要连接正确。

3、电路设计上引脚信号不需要上拉。如果是IO模拟的话,需注意是不是开漏,如是要加上拉。另,要确认器件spec的SPI

信息,可能有特殊的要加上下拉。

4、一对多的连线,片选信号CS单独控制,多个从设备需要多个CS信号。

5、从设备未被选中时,信号线变成高阻态(断开)。

6、Layout上没有特殊要求,当然可以SCLK信号包下地。

审核编辑 黄宇

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

    关注

    28

    文章

    1096

    浏览量

    42353
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1900

    浏览量

    102139
  • 总线
    +关注

    关注

    10

    文章

    3060

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    SPI通信协议深度解析

    SPI(Serial Peripheral Interface)是一种全双工同步串行通其核心信号引脚包括:
    的头像 发表于 04-22 09:27 391次阅读
    <b class='flag-5'>SPI</b><b class='flag-5'>通信协议</b>深度解析

    机器人通信协议EtherCAT和CAN如何选择

    当下,虽然行业中存在许多通信协议,但业内人士普遍认为,EtherCAT和CAN两大协议,是机器人行业未来最重要的两大协议
    的头像 发表于 01-27 15:54 4200次阅读

    基于FPGA的I2C通信协议设计

    I2C(Inter-Integrated Circuit)是一种由飞利浦半导体(现为恩智浦半导体)在1980年代初开发的同步、串行、半双工的总线通信协议。主要用于近距离(同一块印刷电路板(PCB
    的头像 发表于 12-26 09:44 6361次阅读
    基于FPGA的I2C<b class='flag-5'>通信协议</b>设计

    通信协议IIC与SPI最全对比分析

    )通信协议,这意味着总线中的只有一支中心设备能发起通信。当SPI主设备想读/写从设备时,它首先拉低从设备对应的SS线(SS是低电平有效),接着开始发送工作脉冲到时钟线上,在相应的脉冲时
    发表于 12-10 06:04

    FPGA实现基于SPI协议的Flash驱动控制芯片擦除

    本篇博客具体包括SPI协议的基本原理、模式选择以及时序逻辑要求,采用FPGA(EPCE4),通过SPI通信协议,对flash(W25Q16BV)存储的固化程序进行芯片擦除操作。
    的头像 发表于 12-02 10:00 2891次阅读
    FPGA实现基于<b class='flag-5'>SPI</b><b class='flag-5'>协议</b>的Flash驱动控制芯片擦除

    SPI、I2C、I2S、UART:通信协议解释

    不能?本文一次梳理清楚。 一、通信协议快速对照表 协议 全称 线数 通信方式 速率 应用场景 特点 SPI Serial Peripheral Interface 4根常用线(MOSI
    的头像 发表于 11-18 10:53 725次阅读

    SPI、I2C、I2S、UART:通信协议对比表

    ,有的不能?本文一次梳理清楚。一、通信协议快速对照表协议全称线数通信方式速率应用场景特点SPISerialPeripheralInterface4根常用线(MOSI
    的头像 发表于 11-17 10:53 2133次阅读
    <b class='flag-5'>SPI</b>、I2C、I2S、UART:<b class='flag-5'>通信协议</b>对比表

    Xilinx FPGA串行通信协议介绍

    Xilinx FPGA因其高性能和低延迟,常用于串行通信接口设计。本文深入分析了Aurora、PCI Express和Serial RapidIO这三种在Xilinx系统设计中关键的串行通信协议。介绍了它们的特性、优势和应用场景,以及如何在不同需求下选择合适的
    的头像 发表于 11-14 15:02 2803次阅读
    Xilinx FPGA串行<b class='flag-5'>通信协议</b>介绍

    分布式能源并网的通信协议有哪些?

    在分布式能源(如光伏、储能、微电网)并网场景中,通信协议需满足 设备互联、数据传输、远程控制、调度协同 等核心需求,不同协议因设计目标不同,适用于从设备层到调度层的不同层级。以下按 “国际标准协议
    的头像 发表于 09-18 16:40 1967次阅读
    分布式能源并网的<b class='flag-5'>通信协议</b>有哪些?

    工业通信协议都有哪些?#三格电子

    通信协议
    三格电子科技
    发布于 :2025年08月28日 10:35:26

    哪些协议是工业通信协议?#三格电子

    通信协议
    三格电子科技
    发布于 :2025年08月27日 14:16:07

    如何验证硬件加速是否真正提升了通信协议的安全性?

    验证硬件加速是否真正提升通信协议的安全性,需从 安全功能正确性、抗攻击能力增强、安全性能适配、合规一致性 等核心维度展开,结合实验室测试与真实场景验证,避免 “硬件参与即安全提升” 的表面判断。以下
    的头像 发表于 08-27 10:16 1339次阅读
    如何验证<b class='flag-5'>硬件</b>加速是否真正提升了<b class='flag-5'>通信协议</b>的安全性?

    有哪些方法可以确保硬件加速与通信协议的兼容性?

      确保硬件加速与通信协议的兼容性,核心是从 硬件选型、协议标准匹配、软硬件接口适配、全场景测试验证 四个维度建立闭环,避免因
    的头像 发表于 08-27 10:07 1363次阅读

    如何利用硬件加速提升通信协议的安全性?

    产品实拍图 利用硬件加速提升通信协议安全性,核心是通过 专用硬件模块或可编程硬件 ,承接软件层面难以高效处理的安全关键操作(如加密解密、认证、密钥管理等),在提升性能的同时,通过
    的头像 发表于 08-27 09:59 1187次阅读
    如何利用<b class='flag-5'>硬件</b>加速提升<b class='flag-5'>通信协议</b>的安全性?

    深入剖析SPI协议

    SPI,全称(Serial Peripheral interface)是由摩托罗拉公司首先定义的协议,中文名为串型外围设备接口。SPI是一种高速全双工的总线
    的头像 发表于 08-21 15:04 4284次阅读
    深入剖析<b class='flag-5'>SPI</b><b class='flag-5'>协议</b>