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

    文章

    1073

    浏览量

    41869
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1866

    浏览量

    99815
  • 总线
    +关注

    关注

    10

    文章

    3014

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    SPI通信总线概述和Verilog实现

    SPI = Serial Peripheral Interface,是串行外围设备接口,是一种高速,全双工,同步的通信总线
    的头像 发表于 02-07 14:28 1987次阅读
    <b class='flag-5'>SPI</b><b class='flag-5'>通信</b><b class='flag-5'>总线</b>概述和Verilog实现

    iic协议spi协议的区别

    I2C协议SPI协议的区别 1. 通信方式 I2C :是一种多主机、多从机的通信协议,使用两条线(数据线SDA和时钟线SCL)进行
    的头像 发表于 02-05 11:28 4649次阅读

    ADS1278通过SPI通信协议读取转换数据时遇到的疑问求解

    我用的是TI的ADS1278进行六通道电压同步采样,工作在SPI的TDM,离散数据模式。在通过SPI通信协议读取转换数据时,采用了下面的读取方法: 通过DSP处理器SPI接口MIS
    发表于 01-14 06:31

    总线通信协议解析及应用

    在现代计算机系统中,总线通信协议扮演着至关重要的角色。它们定义了数据如何在处理器、内存、输入/输出设备等组件之间传输。 总线通信协议的基本概念 总线
    的头像 发表于 12-31 10:07 1923次阅读

    常见串口通信协议 如何设置串口参数

    ,使用9针或25针的D-sub连接器。它支持全双工通信,但传输距离和速率有限。 RS-485 :这是一种差分信号的串行通信协议,可以支持更远距离和更高速率的通信,常用于工业现场总线
    的头像 发表于 12-27 09:51 4708次阅读

    如何使用Arduino实现CAN总线通信

    CAN(Controller Area Network)总线是一种常用于汽车和工业控制系统的串行通信协议,以其高可靠性和实时性而闻名。Arduino,作为一种流行的开源微控制器平台,可以通过附加
    的头像 发表于 12-23 09:06 2817次阅读

    CAN总线与其他通信协议对比

    在现代工业和汽车领域,通信协议扮演着至关重要的角色。它们允许不同的电子控制单元(ECU)之间进行数据交换,确保系统的正常运行和协调。CAN总线作为一种成熟的现场总线技术,以其高可靠性、实时性和灵活性
    的头像 发表于 12-20 17:59 2613次阅读

    AUTOSAR通信协议解析 如何实现AUTOSAR通信

    通信协议栈是一个复杂的系统,它涵盖了多种通信方式和模块,以实现车内ECU之间的高效、可靠的数据交换。以下是对AUTOSAR通信协议的解析及实现AUTOSAR通信的方法: 一、AUTOS
    的头像 发表于 12-17 14:54 3951次阅读