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

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

3天内不再提示

通信教程的04_SPI接口说明及原理

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 作者:黄工的嵌入式技术 2020-02-05 12:29 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本教程由作者strongerHuang于2019年09月原创发布。

标签:串口、 SPI、 通信

版权所有:禁止商用

申明:该文档仅供个人学习使用,转载请公众号联系作者授权。

1写在前面

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

SPI是由摩托罗拉于 1985 年前后开发,是一种适用于短距离、设备到设备通信的同步串行接口。

从那时起,这种接口就已成为许多半导体制造商,特别是微控制器MCU)和微处理器(MPU)采用的事实标准。

2SPI接口

SPI总线是一种4线总线,通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以。

MOSI:Master Output Slave Input,主设备数据输出,从设备数据输入;

MISO:Master Input Slave Output,主设备数据输入,从设备数据输出;

SCLK:Serial Clock,时钟信号,由主设备产生;

SS:Slave Select,从设备选择信号,由主设备控制;

上面的SS信号,也可以理解为CS信号,一般是低电平有效,所以也是NSS(非)信号;

CS:Chip Select,片选信号(从设备使能/选择信号),由主设备控制;

2.1 一主一从

最基本的SPI通信就是一主一从,比如:一个STM32作为主机,一个W25Q16(SPI Flash)作为从机。还有两个MCU之间进行SPI通信等。

上图例子是主机发送一个字节数据(0x53),从机应答一个字节数据(0x46)。

2.2 一主多从

SPI可以一主一从(一个主机,一个从机),但也可以一主多从。一主多从常见有两种连接方式。

A.常规

通常,每个从机都需要一条单独的SS线,要与指定的从机通信,将该从机的SS线设为低电平,并将其余的保持为高电平即可。

B.一条SS信号

某些应用只需要一条NSS即可(比如:移位寄存器),对于这种布局,数据从一个从设备移位到另一个从设备。

3SPI数据传输

SPI的通信比较简单,一个时钟传输一位数据(主机 -> 从机,或者从机 -> 主机)。

3.1 SPI时钟

理论上SPI的时钟频率可以做到很大,一般几MHz~几百MHz,拿常见的W25Q16来说,SPI最高支持80MHz。

SPI通信速率要结合实际情况,不能超过主机或从机支持的最大时钟频率。

3.2 SPI数据

SPI的数据分两个方向:

MOSI:主机 -> 从机

MISO:从机 -> 主机

SPI通信有一个“缺点”:没有指定的流控制,没有应答机制确认是否接收到数据。

可以理解为:不知道是什么时候主机发给从机,什么时候从机发给主机,到底该发多少字节数据等。

此时,需要通信的主机和从机达成约定,一般由主机进行控制读写的操作。

比如下面这个读写SPI Flash数据的操作:

前面1字节是指令,紧接着再3字节(24位)地址,都是由主机发送给从机。之后,主机读取数据(由从机发送出来)。

3.3 时钟极性和相位

除了设置时钟频率外,主机还必须配置与数据有关的时钟极性和相位。

CPOL确定时钟的极性,极性可以通过简单的逆变器进行转换。

CPHA确定相对于时钟脉冲的数据位的时序(即相位)。

一般集成有SPI外设的处理器,都有SPI相关的配置寄存器,拿STM32来说,参考手册里面有详细介绍SPI配置的信息。

建议大家结合时序图理解,不能死记硬背。

5

说明

1.该文档仅供个人学习使用,版权所有,禁止商用。

2.本文由我一个人编辑并整理,难免存在一些错误。

3.本文收录于公众号『嵌入式专栏』,关注微信公众号回复【通信教程】即可查看全系列教程。

6最后

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

    关注

    18

    文章

    6457

    浏览量

    140278
  • SPI接口
    +关注

    关注

    0

    文章

    289

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    常用通信接口速查表

    在嵌入式开发中,通信接口是连接MCU、传感器、模块和外部设备的关键桥梁。UART、SPI、I2C、CAN、USB……每种接口都有各自特点和应用场景。今天,我们整理一份常用
    的头像 发表于 01-19 09:06 790次阅读
    常用<b class='flag-5'>通信</b><b class='flag-5'>接口</b>速查表

    深入解析SPI通信:高速全双工,如何连接微控制器与万千外设?启明云端乐鑫代理

    你是否曾好奇,手机触摸屏如何灵敏响应,温度传感器数据如何被读取,或是存储芯片如何快速读写?其背后,往往离不开一种高效而常见的通信协议——SPI。本期启明云端一起揭开SPI的神秘面纱
    的头像 发表于 01-13 18:03 640次阅读
    深入解析<b class='flag-5'>SPI</b><b class='flag-5'>通信</b>:高速全双工,如何连接微控制器与万千外设?启明云端乐鑫代理

    瑞芯微(EASY EAI)RV1126B SPI使用

    1.SPI简介SPI是串行外设接口(SerialPeripheralInterface)的缩写,是Motorola公司推出的一种同步串行接口技术,是一种高速、全双工、同步的
    的头像 发表于 01-03 14:00 1949次阅读
    瑞芯微(EASY EAI)RV1126B <b class='flag-5'>SPI</b>使用

    国产SPI NOR Flash接口闪存介绍

    在当今各类电子设备对存储性能要求日益提升的背景下,SPI NOR Flash凭借其高速读取、低功耗及灵活接口等优势,成为嵌入式系统代码存储的关键元件。GT25Q系列SPI NOR Flash采用先进
    的头像 发表于 12-26 11:51 660次阅读

    type-c数据线与接口说明

    type-c数据线与接口说明
    发表于 12-08 15:31 0次下载

    SPI的多机通信

    SPI支持多机通信模式。在该模式下,主机的从机选择 CS 引脚应配置为输入,与其他主机的总线申请信号相连,用于检测 SPI 总线是否发生冲突。如果某一主机的从机选择 CS 引脚被拉为低电平,
    发表于 12-08 06:47

    常见SPI温度传感器芯片有哪些?(什么是SPI温度传感器芯片?)

    SPI(Serial Peripheral Interface)是一种同步串行通信接口,具备全双工、高速率的特点。基于SPI的温度传感器芯片可直接与MCU
    的头像 发表于 12-01 16:21 798次阅读
    常见<b class='flag-5'>SPI</b>温度传感器芯片有哪些?(什么是<b class='flag-5'>SPI</b>温度传感器芯片?)

    基于STEVAL-BMS1T的隔离式SPI通信技术解析与应用指南

    STMicroelectronics STEVAL-BMS1T SPI转隔离式SPI加密狗支持将SPI信号转换为隔离式SPI信号,从而将必要的电线数量从四根减至两根。ISOSPI协议提
    的头像 发表于 10-16 14:01 817次阅读
    基于STEVAL-BMS1T的隔离式<b class='flag-5'>SPI</b><b class='flag-5'>通信</b>技术解析与应用指南

    Microchip 23AA04M/23LCV04M 4Mb SPI/SDI/SQI SRAM技术解析

    Microchip Technology 23AA04M和23LCV04M 4Mb SPI/SDI/SQI SRAM是随机存取存储器器件,可通过兼容串行外设接口 (
    的头像 发表于 10-09 11:16 1190次阅读

    嵌入式接口通识知识之SPI接口

    3.1 基本概念SPI的全称是Serial Peripheral Interface,译为串行外设接口。它是一种高速的,全双工,同步的通信总线,广泛应用于嵌入式系统,用于控制器和各种外围设备之间
    发表于 08-14 14:45

    SPI通信笔记:基础+动图+时序图+总结,一文吃透!

    SPI现在已经成为MCU和外围设备之间最常用的通信方式了。它是一种同步、全双工、主从式的通信接口。工作原理其实很直接:主机产生时钟信号,从机跟着这个时钟同步收发数据。允许双向传输,可以
    的头像 发表于 07-29 14:15 8341次阅读
    <b class='flag-5'>SPI</b><b class='flag-5'>通信</b>笔记:基础+动图+时序图+总结,一文吃透!

    无线通信的隐形冠军:泽耀科技SPI射频模块硬核解析

    硬核设计匠心通信WIRELESSCOMMUNICATION在物联网设备蓬勃发展的今天,无线通信模块已成为各类智能硬件的“神经末梢”。而其中,基于SPI接口的射频模块因其灵活的控制方式和
    的头像 发表于 06-24 11:05 1808次阅读
    无线<b class='flag-5'>通信</b>的隐形冠军:泽耀科技<b class='flag-5'>SPI</b>射频模块硬核解析

    LTM2895 100MHz隔离型DAC SPI串行接口技术手册

    LTM2895 是一款采用 DAC 控制信号的高速隔离型 μModule ^®^ (微型模块) SPI 接口,该器件专为隔离LTC 的通用型 DAC 系列和隔离通用型 SPI 接口而设
    的头像 发表于 06-03 10:04 1578次阅读
    LTM2895 100MHz隔离型DAC <b class='flag-5'>SPI</b>串行<b class='flag-5'>接口</b>技术手册

    ESP32平台 + SPI接口芯片DM9051ANX实现以太网通信

    可以利用SPI、UART等GPIO较少的硬件接口,作为对外通信,在这里我选用在市场上广泛被采用且仅4条线通信SPI
    发表于 05-23 10:22

    基于RK3576开发板的SPI使用说明

    SPI是串行外设接口(Serial Peripheral Interface)的缩写,是 Motorola 公司推出的一种同步串行接口技术,是一种高速、全双工、同步的通信总线在用户空间
    的头像 发表于 05-07 10:31 1732次阅读
    基于RK3576开发板的<b class='flag-5'>SPI</b>使用<b class='flag-5'>说明</b>