当前位置: 首页 > news >正文

通信协议——SPI通信协议

一、SPI 协议简介

SPI(Serial Peripheral interface,串行外围设备接口) 通信协议是 Motorola 公司首先在其MC68HCXX 系列处理器上定义的。SPI 接口是一种高速的全双工同步的通信总线,已经广泛应用在众多 MCU、存储芯片、AD 转换器和 LCD 之间。

功能说明

SPI 总线

IIC 总线

通信方式

同步 串行 全双工

同步 串行 半双工

总线接口

MOSI、MISO、SCL、CS

SDA、SCL

拓扑结构

一主多从/一主一从

多主从

从机选择

片选引脚选择

SDA上设备地址片选

通信速率

一般50MHz以下

100kHz、400kHz、3.4MHz

数据格式

8位/16位

8位

传输顺序

MSB/LSB

MSB

二、SPI 协议应用

SPI 广泛用于连接高速外围设备,如:

  • 数据存储设备(SD卡、闪存)
  • 显示屏(LCD、OLED)
  • 传感器(加速度计、陀螺仪)
  • 数模转换器(DAC)和模数转换器(ADC)

三、SPI 协议接口

MISO(Master In / Slave Out)主设备数据输入,从设备数据输出。

MOSI(Master Out / Slave In)主设备数据输出,从设备数据输入。

SCLK(Serial Clock)时钟信号,由主设备产生。

CS(Chip Select)从设备片选信号,由主设备产生。

四、SPI 协议四种工作模式

主从设备 必须使用相同的工作模式——SCLK、CPOL 和 CPHA,才能正常工作。如果有多个 从设备,并且它们使用了不同的工作模式,那么 主设备 必须在读写不同 从设备 时需要重新修改对应从设备的模式。以上SPI总线协议的主要内容。

1. CPOL

CPOL(Clock Polarity),就是时钟的极性。通信的整个过程分为空闲时刻和通信时刻,如果SCLK在数据发送之前和之后的空闲状态是高电平,那么就是CPOL=1;如果空闲状态SCLK是低电平,那么就是 CPOL=0。

时钟相位(CPHA)定义数据的采集时间:

2. CPHA

CPHA(Clock Phase),就是时钟的相位。同步通信的一个特点就是所有数据的变化和采样都是伴随着时钟沿进行的,也就是说数据总是在时钟的边沿附近变化或被采样。而一个时钟周期必定包含了一个上升沿和一个下降沿。这里将结束空闲状态之后的第一个边沿当作奇数边沿,第二个边沿当作偶数边沿,以此类推,奇偶交替

CPHA=0,在时钟的第一个跳变沿(上升沿或下降沿)进行数据采样,在第2个边沿发送数据

CPHA=1,在时钟的第二个跳变沿(上升沿或下降沿)进行数据采样,在第1个边沿发送数据

3. 工作模式

  • 模式0:CPOL= 0,CPHA=0。空闲状态时 SCLK 串行时钟为低电平;数据采样在 SCLK 时钟的奇数边沿,本模式中,奇数边沿为上升沿;数据更新在 SCLK 时钟的偶数边沿,本模式中,偶数边沿为下降沿。
  • 模式1:CPOL= 0,CPHA=1。空闲状态时 SCK 串行时钟为低电平;数据采样在 SCLK 时钟的偶数边沿,本模式中,偶数边沿为下降沿;数据更新在 SCLK 时钟的奇数边沿,本模式中,偶数边沿为上升沿。
  • 模式2:CPOL= 1,CPHA=0。空闲状态时 SCLK 串行时钟为高电平;数据采样在 SCLK 时钟的奇数边沿,本模式中,奇数边沿为下降沿;数据更新在 SCLK 时钟的偶数边沿,本模式中,偶数边沿为上升沿。
  • 模式3:CPOL= 1,CPHA=1。空闲状态时 SCLK 串行时钟为高电平;数据采样在 SCLK 时钟的偶数边沿,本模式中,偶数边沿为上升沿;数据更新在 SCLK 时钟的奇数边沿,本模式中,偶数边沿为下降沿。

注:理解成 CPOL 同或 CPHA 等于 1 时,SPI 通信在 SCLK 的上升沿采样数据,下降沿发送数据,反之同理。

模式

采样数据时钟边沿

发送数据时钟边沿

CPOL= 0,CPHA=0

上升沿

下降沿

CPOL= 0,CPHA=1

下降沿

上升沿

CPOL= 1,CPHA=0

下降沿

上升沿

CPOL= 1,CPHA=1

上升沿

下降沿

相关文章:

  • 【C++编程入门】:基本语法
  • Discord多账号注册登录:如何同时管理多个账户?
  • 模型上下文协议MCP协议(Model Context Protocol)未来应用场景分析(多智能体协作A2A协议)
  • CA添加删除辅小区信令流程
  • React 第三十五节 Router 中useNavigate 的作用及用途详解
  • 如何在Windows中更改文档默认打开方式
  • 【Leetcode 每日一题】2962. 统计最大元素出现至少 K 次的子数组
  • 从Markdown到专业文档:如何用Python打造高效格式转换工具
  • 文件基础-----C语言经典题目(11)
  • 数据结构(十)---链式队列
  • 一文掌握 npm 基础与常用指令
  • Linux命令使用记录(自用)
  • 深度解析Qwen3:性能实测对标Gemini 2.5 Pro?开源大模型新标杆的部署挑战与机遇
  • 文心一言开发指南08——千帆大模型平台推理服务API
  • Manus AI多语言手写识别技术全解析:从模型架构到实战部署
  • MAC安装unar并解压.rar文件
  • 基于AutoDL V100微调DeepSeek Coder 6.7B (2)
  • 智体OS-V3.7重大发布:智体管家2.0、ai-docs知识库2.0、mcphost支持千款MCP-server、氛围电商或知识库电商模板、智体轻聊网页版
  • Java 多线程基础:Thread 类详解
  • 【Sqlalchemy Model转换成Pydantic Model示例】
  • 海尔智家一季度营收791亿元:净利润增长15%,海外市场收入增超12%
  • “75后”袁达已任国家发改委秘书长
  • 游客曝九寨沟打网约车被出租车围堵,官方:前者违规,后者做法不对
  • 探索演艺产业新路径,2万观众走进音乐科技融创节
  • 商务部:一季度我国服务贸易较快增长,进出口总额同比增8.7%
  • 专业竞演、剧场LIVE直播,32位越剧新星逐梦上海