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:同步 + 全双工 + 串行