差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
whatisserialbus [2023/05/15 08:58] gongyu |
whatisserialbus [2023/05/27 08:54] (当前版本) gongyu |
||
---|---|---|---|
行 1: | 行 1: | ||
## 什么是串行总线? | ## 什么是串行总线? | ||
- | * 同步全双工的[[I2C]] | + | SPI、I2C 和 UART 协议有什么区别? |
- | * 同步半双工的[[SPI]] | + | |
+ | I2C 和 SPI 均与专用时钟同步线 。 | ||
+ | |||
+ | 物理层:I2C使用2个引脚:SDA(双向数据)和SCL(时钟)。 SPI 至少使用 3 个引脚:MOSI(主输出、从输入)、MISO、SCK 和零个或多个 /SS(从选择)。 | ||
+ | 时钟:I2C 使用一些标准时钟速率:100 KHz、400 KHz 和一些更快的模式。SPI 时钟可以低于所有连接设备的最大时钟频率(通常在 10 MHZ 左右) | ||
+ | 应用:I2C比SPI通信协议实现起来更便宜。SPI只支持一个master | ||
+ | 总线上的设备,而 I2C 支持多个主设备。 | ||
+ | 总体而言,SPI更适合高速和低功耗应用,而 I2C 更适合与大量外设通信以及 I2C 总线上外设之间主设备角色的动态变化。 | ||
+ | 另一方面,UART 是异步的,没有时钟线 | ||
+ | UART:代表通用异步接收/传输。 简单来说𝗨𝗔𝗥𝗧 𝗻𝘁 在接收和发送控制器之间。 接收 MCU 将期望以特定波特率(例如 9600)将位接收到其 RX 端口,而发送 MCU 将以相同的波特率(9600)发送位。双方之间没有主时钟。 | ||
+ | |||
+ | * 同步半双工的[[I2C]] | ||
+ | * 同步全双工的[[SPI]] | ||
* 异步半双工的[[UART]] | * 异步半双工的[[UART]] |