1. 同步 vs 异步(关注"要不要时钟"/"要不要对齐节奏")
- 同步(Synchronous) :
📣 "咱俩按节拍一起走"
→ 通信双方靠一个共同的时钟信号 协调,像军训队列,喊"一二一",你发一个我收一个,严格同步。
→ 优点:速度快、效率高;缺点:必须共用时钟线,硬件稍复杂。
👉 例子:SPI、I²C(有SCL时钟线)。 - 异步(Asynchronous) :
📣 "你发完我再看,咱不靠节拍"
→ 没有共用时钟,靠约定好的波特率 (比如都按9600bps)和起始/停止位来判断数据何时开始、何时结束。
→ 优点:连线少(比如只用两根线);缺点:容易出错,速度慢点。
👉 例子:UART(串口通信)。
✅ 记忆口诀:
"同 步要时钟 ,异 步靠约定。"
2. 全双工 vs 半双工(关注"能不能同时说话")
- 全双工(Full-duplex) :
📞 "电话通话" ------ 你说话的同时,对方也能说,双向同时通信 。
👉 例子:UART(有TX和RX两根线)、USB。 - 半双工(Half-duplex) :
📻 "对讲机" ------ 你要说就得按住按钮,说完松开才能听,同一时间只能一方发 。
👉 例子:I²C(只有一根数据线SDA,主从轮流用)、RS-485(常用于工业)。
✅ 记忆口诀:
"全 双工像打电话 ,半 双工像对讲机。"
3. 串行 vs 并行(关注"数据是一根线走,还是多根线一起走")
- 串行(Serial) :
🚶♂️ "单行道排队走" ------ 数据一位一位 按顺序通过一根线 (或一对差分线)传输。
→ 线少、抗干扰好、适合远距离,但速度受制于频率。
👉 例子:UART、SPI、I²C、USB。 - 并行(Parallel) :
🏃♂️🏃♀️🚶♂️🚶♀️ "多人并排走" ------ 数据多位同时 通过多根线 (比如8根线传一个字节)传输。
→ 速度快(一次传多位),但线多、易受干扰、不适合远距离(现代基本淘汰了)。
👉 例子:老式打印机并口、早期的RAM数据总线。
✅ 记忆口诀:
"串 行是排队 ,并 行是并排走。"
综合小例子:
- UART:异步 + 全双工 + 串行
- I²C:同步 + 半双工 + 串行
- SPI:同步 + 全双工 + 串行