SPI总线协议

0. 概述

  • 数据线:

    SCL :同步时钟线,用于控制时序,可通过CPOL设置极性

    MOSI发送-接收 数据线

    MISO接收-发送 数据线

    CS/NSS片选信号线,电平有效,但是每个从设备都想要一根CS线,占用引脚多

  • 支持全双工通信

  • 高速片上通信协议:

    支持MHz级速率(取决于设备)

    波特率 = SCK 时钟频率

1. 四个参数

1. LSB/MSB: 大端小端选择

示例:(如下图)

2. 8-bit/16bit: 字长选择

3. 时钟极性(CPOL):

  • CPOL = 0SCL空闲状态为电平

  • CPOL = 1SCL空闲状态为电平

    示例:(如下图)

4. 时钟相位(CPHA):

  • CPHA= 0:在时钟信号SCK的第一个跳变沿采样

  • CPHA = 1:在时钟信号SCK的第二个跳变沿采样

示例:(如下图)

2. 四种时钟模式

  • tip:若发送数据在上升沿,则接收数据在下降沿,反之
模式 CPOL CPHA SCL 空闲电平 主设备更新数据(MOSI) 主设备采样数据(MISO) 从设备采样数据(MOSI) 从设备更新数据(MISO)
0 0 0 低电平 下降沿 上升沿 上升沿 下降沿
1 0 1 低电平 上升沿 下降沿 下降沿 上升沿
2 1 0 高电平 上升沿 下降沿 下降沿 上升沿
3 1 1 高电平 下降沿 上升沿 上升沿 下降沿

3. 多从机模式

3.1 多CS模式 :每个从机都需要一根单独的CS线

3.2 菊花链(环形)拓扑:

  • 菊花链的最大缺点是因为是信号串行传输,所以一旦数据链路中的某设备发生故障的时候,它下面优先级较低的设备就不可能得到服务了;
  • 另一方面,距离主机越远的从机,获得服务的优先级越低,数据的转发次数越多,所以需要安排好从机的优先级

4.优缺点:

4.1 优点:

  • 全双工串行通信
  • 通信速率高
  • 配置简单
  • 硬件结构简单,从机使用主机时钟

4.2 缺点

  • 通常只支持一个主机
  • 需要更多的引脚
  • 没有物理层的错误检测协议
  • 没有硬件从机应答信号
  • 通信距离短(片上通信)

5.参考链接

SPI协议详解(图文并茂+超详细) - 知乎

图片来源:B站up主 铁头山羊

SPI总线协议的更多相关文章

  1. SPI总线协议及SPI时序图详解

    SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口.SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚 ...

  2. SPI总线协议及SPI时序图详解【转】

    转自:https://www.cnblogs.com/adylee/p/5399742.html SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接 ...

  3. 【转】SPI总线协议

    SPI总线协议 By Xiaomin | April 17, 2016| 技术 概述 SPI(Serial Peripheral Interface)总线是主要应用于嵌入式系统内部通信的串行同步传输总 ...

  4. 关于I2C和SPI总线协议【转】

    关于I2C和SPI总线协议 IICvs SPI 现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral ...

  5. spi 总线协议记录

    摘抄至: http://blog.csdn.net/skyflying2012/article/details/11710801 概述: SPI, Serial Perripheral Interfa ...

  6. SPI总线协议理解

    1.什么是SPI: 是摩托罗拉公司设计的一种全双工通信.高速的.同步的串行外部设备通信协议. 2.SPI作用: 用于设备之间的数据交互. 3.SPI由什么构成: 1)MOSI:主设备输出从设备输入线, ...

  7. SPI总线协议介绍

    http://blog.csdn.net/ce123_zhouwei/article/details/6897293 https://www.cnblogs.com/yangguang-it/p/71 ...

  8. SPI、I2C、UART三种串行总线协议的区别

    第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART(Universal Asynchronous R ...

  9. SPI、I2C、UART三种串行总线协议的区别和SPI接口介绍(转)

    SPI.I2C.UART三种串行总线协议的区别 第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART( ...

  10. MSP430单片机的两种SPI总线实现方式

    MSP430单片机上的SPI总线的实现方式分为两种:硬件实现和软件实现. 二者的抽象层次不同,硬件实现方式下程序员只需要完成总线协议的寄存器层,即一字节(char,8位二进制)数据,而软件实现方式下程 ...

随机推荐

  1. 解决微信二维码接口接口返回:errcode\":47001,\"errmsg\":\"data format error rid: xxx和处理返回的buffer的问题

    data format error rid问题: 在php中使用curl调用微信二维码生成接口getwxacodeunlimit时得到错误响应信息: errcode\":47001,\&qu ...

  2. 一个用原生JavaScript实现的日历小工具,开箱即用

    ---------------- 用原生JavaScript实现的一个日历小工具,开箱即用,可用于做签到记录.日程等显示控件,具体自己发挥啦 效果如下图,可以自行美化  >>点击体验< ...

  3. wpf 控件绑定鼠标命令、键盘命令

    1 <Window x:Class="CommandDemo.MainWindow" 2 xmlns="http://schemas.microsoft.com/w ...

  4. .net core分布式锁的实现(基于redis)

    一.单个redis节点 实现原理:核心采用StackExchange.Redis的LockTake方法实现.支持同步获取锁,或者等待直到超时获取锁. 基于SENTX命令. copy一下文档的demo ...

  5. 通用型产品发布解决方案(SpringBoot+SpringCloud+Spring CloudAlibaba+Vue+ElementUI+MyBatis-Plus+MySQL+Git+Maven)03

    通用型产品发布解决方案(基于分布式微服务技术栈:SpringBoot+SpringCloud+Spring CloudAlibaba+Vue+ElementUI+MyBatis-Plus+MySQL+ ...

  6. 基于Gazebo/ROS2的智能仓储机器人强化学习控制系统开发全攻略

    引言:仓储自动化与强化学习的碰撞 在工业4.0浪潮下,智能仓储系统正经历从传统AGV到自主决策机器人的跨越式发展.本文将深入解析如何利用Gazebo仿真平台与ROS2框架,结合Stable-Basel ...

  7. wso2~对接外部认证系统keycloak

    在 WSO2 Identity Server 或 WSO2 API Manager 中,Identity Providers (身份提供者) 功能允许您将外部身份管理系统(如 Keycloak.Azu ...

  8. Array, Set, Map知多少?

    Array,Set和Map三个作为Javascript中可迭代的集合数据类型,在编程过程中使用的频率也比较高.针对三种数据类型各自的一些特性,本文的内容将从以下几个方面来上述数据类型做一个总结. 实例 ...

  9. ActiveMQ消息投递方式之异步投递【转】

    ActiveMQ消息投递方式一共有四种:同步投递.异步投递.延迟投递和定时投递. 同步发送:消息生产者使用持久(Persistent)传递模式发送信息的时候,Producer.send()方法会被阻塞 ...

  10. logback.xml配置分享

    前言 个人习惯,仅供学习参考 功能 日志异步输出 日志每天自动归档一次 日志文件达到一定大小时,也会进行归档 归档时,进行zip压缩 归档的日志放在 yyyy-MM-dd 文件夹中 当归档的日志文件总 ...