SPI 协议介绍

SPI 协议介绍

你的电脑或者手机里面有很多小零件,它们需要互相交流信息。SPI 总线就像是这些小零件之间的“聊天线”。这个聊天线有四根,就像是一个四人聊天小组。

1. SPI 总线

SPI 是一种让电脑里的小零件互相聊天的方式,最初是由摩托罗拉公司发明的。因为它用起来很简单,所以很多其他的公司也开始用它。现在,它已经成为连接电脑内部各种小零件的标准方式了。比如,它可以连接 CPU 和键盘、屏幕、传感器、存储卡等。

SPI是同步的,就像大家聊天时需要听一个人指挥一样。它有四根线,分别是:

  • MOSI:主设备输出/从设备输入,就像一个人说话,其他人听。
  • MISO:主设备输入/从设备输出,就像其他人说话,那个人听。
  • SCLK:时钟线,就像指挥大家聊天的人。
  • CS或SS:从设备选择线(片选),就像点名,告诉谁现在可以说话。

SPI是全双工的,意味着大家可以同时说话和听,就像打电话一样。它的聊天速度可以从很慢到很快,比如从几Mb/s到几十Mb/s。

设备使用主从架构进行通信,有一个主设备,就像聊天小组的组长。组长开始聊天,其他的从设备就像是小组成员,每个成员都有自己的名字(从设备选择线),组长可以通过点名来和特定的成员聊天。

2. 接线

SPI总线就像是有四根线的聊天小组。这四根线分别是:主输出/从输入 (MOSI)、主输入/从输出 (MISO)、时钟 (SCLK) 和从选择 (SS) 或片选 (CS)。

3. 信号

当两个设备聊天时,一个就像是组长(主设备),另一个就像是小组成员(从设备)。组长控制聊天的节奏(主设备驱动时钟),数据同时传输和接收,所以这是一个全双工的聊天方式。SPI 用 CS(或SS)线来指定现在和哪个设备聊天,所以每个设备都需要有自己的 CS 信号。如果有 3 个设备,就有 3 根 CS 线从组长(主设备)连接到每个从设备。


开始聊天时,组长设置聊天的节奏(时钟),这个节奏要大家都能接受,通常是几MHz或几十MHz。然后组长通过点名(主设备选择选择线上具有逻辑电平0的从设备)来选择要聊天的成员。

在每个 SPI 时钟周期内,会发生全双工数据传输。组长在 MOSI 线上发送一个 bit,成员读取它,同时成员在 MISO 线上发送一个 bit,组长读取它。

传输就像是两个寄存器(给定字大小的移位寄存器)之间(一个在主机中,一个在从机中)的聊天,比如八位。数据通常从最重要的部分开始聊,同时接收新的最不重要的部分(数据通常首先移出最高有效位,同时将新的最低有效位移入同一寄存器。寄存器完全移出后,主机和从机就交换了寄存器。)。

如果还有更多要聊的,寄存器重新加载(重新加载移位寄存器并重复该过程),然后继续聊。聊天可以持续任意数量的时钟周期。完成后,组长停止聊天的节奏(停止时钟信号)并结束聊天(取消 CS)。

组长一次只能和一个成员聊天(主设备一次只能选择一个从设备)。那些没有被点名的成员必须忽略聊天的节奏和MOSI信号,而且不能在MISO上说话(总线上尚未使用其片选线激活的从设备必须忽略输入时钟和 MOSI 信号,并且不得驱动 MISO)。

4. 引用

https://www.picotech.com/library/knowledge-bases/oscilloscopes/serial-protocol-decoding-spi

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇