嵌入式常见通讯协议不可不知的二三事

一、常见通信协议

嵌入式常见通讯协议不可不知的二三事_第1张图片

二、传输时序——同步传输VS异步传输

这个特性关注的是​​收发双方如何协调发送数据的起始和结束时刻,即如何保持时序上的一致​​。

  1. ​同步传输:​

    • ​原理:​​ 发送方和接收方使用一个​​公共的时钟信号​​来严格同步数据传输。数据不是单个字节发送,而是以连续的、大小固定的​​数据块(称为帧或数据包)​​ 进行传输。
    • ​时序:​​ 时钟信号确保发送方和接收方在精确的同一时刻采样数据线上的数据。接收方知道何时开始采样(帧头同步),何时结束(帧尾标识或固定长度)。
    • ​数据格式:​​ 数据块包含:
      • ​同步字符/帧起始标志:​​ 标记一个帧的开始。
      • ​用户数据:​​ 连续传输的实际数据位。
      • ​校验信息:​​ 用于错误检测(如CRC)。
      • ​帧结束标志:​​ 标记帧的结束(某些协议)。
    • ​优点:​
      • ​高传输效率:​​ 没有每个字节的起始/停止位开销,纯数据传输比例高。
      • ​高速:​​ 适用于高速数据传输(如计算机网络内部通信、内存总线)。
      • ​支持成块数据传输。​
    • ​缺点:​
      • ​复杂性:​​ 需要精确的时钟同步机制,硬件成本较高。
      • ​差错恢复困难:​​ 如果一帧出错,通常需要重传整个帧。
    • ​典型应用:​​ 计算机网络(以太网、PPP)、数字电话系统、USB 3.0+、PCIe、SATA、HDMI(内部数据通道)、光纤通道等高速接口。
  2. ​异步传输:​

    • ​原理:​​ 数据传输没有公共时钟信号。数据以​​独立的字符(通常是1个字节)​​ 为单位传输。每个字符在发送前加上​​起始位​​,在发送后加上​​停止位​​(有时还可能有奇偶校验位),形成一个“字符帧”。
    • ​时序:​​ 接收方通过检测起始位的下降沿来启动本地时钟(但时钟独立于发送方)。这个本地时钟仅维持足够的时间来采样该字符的数据位。
    • ​数据格式:​​ 每个字符帧包含:
      • ​起始位:​​ 固定为低电平(逻辑0),标识一个字符的开始。
      • ​数据位:​​ 5-8位,通常为7或8位(如ASCII码)。
      • ​校验位(可选):​​ 如奇校验或偶校验,用于简单错误检测。
      • ​停止位:​​ 固定为高电平(逻辑1),标识字符结束。长度可以是1、1.5或2位时间。
    • ​优点:​
      • ​简单:​​ 实现相对简单,硬件成本低。
      • ​灵活:​​ 发送方和接收方不需要严格同步时钟,可以在任何空闲时间发送字符。
      • ​容易恢复错误:​​ 如果某个字符出错,通常只需要重传该字符本身(虽然协议本身不保证,由上层处理)。
    • ​缺点:​
      • ​传输效率低:​​ 每传输一个字节,都要增加额外的起始、停止位(有时还有校验位),这些是开销(例如,传输一个8位字符可能需要10或11位传输)。
      • ​速度限制:​​ 相对同步传输,速度较低(尤其在高速长距离时)。
    • ​典型应用:​​ RS-232/UART串口(COM口)

三、传输方式——串行传输 vs 并行传输

这个特性关注的是​​在一个时钟周期内如何发送单个数据位​​。

  1. ​串行传输:​

    • ​原理:​​ ​​一次只发送或接收一个数据位​​。数据位在​​一条物理线路上​​(或一对差分线)按​​时间顺序​​依次传输。
    • ​特点:​
      • ​线路数量少:​​ 仅需要1根或2根(差分信号)数据线进行通信(加上地线,有时还需要控制线)。
      • ​成本低:​​ 导线和连接器成本低。
      • ​布线简单:​​ 适合长距离传输(避免信号同步问题)。
      • ​需要同步/异步机制:​​ 必须解决时序问题(用同步或异步技术)。
      • ​现代高速主流:​​ 虽然每次只传1位,但通过​​大幅提高时钟频率​​(MHz, GHz)和使用差分信号克服干扰,串行在现代通信中占据了绝对优势,速度远超传统的并行。
    • ​典型应用:​​ 所有网络(以太网、WiFi、光纤)、USB、HDMI、DisplayPort、SATA、PCIe、RS-232/485、I²C、SPI(虽然是多线但数据通道是串行)等。​​绝大多数现代高速接口都是串行传输!​
  2. ​并行传输:​

    • ​原理:​​ ​​一次同时发送或接收多个数据位(通常是一个字节或多个字节的宽度)​​。每个数据位使用​​独立的物理线路​​。
    • ​特点:​
      • ​线路数量多:​​ 需要n条数据线才能同时传输n位(例如,8位需要8条数据线,加上若干控制线和地线)。
      • ​成本高:​​ 导线、连接器成本高,布线复杂。
      • ​距离短:​​ 难以在较高速度下实现长距离传输,因为各数据线之间的​​信号偏斜(Skew)​​问题会随频率提高和距离增长而加剧(一个线上1到了,另一个线上1还没到),导致数据采样错误。
      • ​速度限制:​​ 由于偏斜问题,理论上更高的单通道潜力在现代技术下无法发挥,整体速度被串行超越。
      • ​时钟一致要求高:​​ 同步各条线路上的时钟和数据变化非常关键。
    • ​典型应用:​​ 老式打印机接口(LPT/Parallel Port)、CPU与内存之间的早期总线(如SDRAM的64位数据总线)、老式硬盘接口(如PATA/IDE,已淘汰)、芯片封装内部的短距离通信。​​在现代高速接口中几乎被串行完全取代。​

​小结:​​ ​​并行一次传多位但线多成本高易偏斜,适合短距离低速;串行一次传1位但线少成本低易高速,已占据现代传输的主导地位。​​ 不要被“并行”字面意思欺骗,它通常更慢更贵。

四、传输的通道——双工 vs 单工vs半双工

这个特性关注的是​​通信节点之间数据传输的“方向性”​​。

  1. ​单工:​

    • ​原理:​​ 数据传输只能在一个方向上进行,是​​单向的​​。通信中一方固定为发送方,另一方固定为接收方。​​角色不能互换。​
    • ​例子:​​ 传统的电视广播(电视台发送,电视接收)、无线键盘/鼠标(设备发送,电脑接收)、大多数传感器(只发送数据到控制器)。
    • ​优缺点:​​ 最简单,但无法双向交互。
  2. ​半双工:​

    • ​原理:​​ 数据可以在两个方向上传输,但​​同一时间只能在一个方向上传​​。通信双方都能发送和接收数据,但​​不能同时进行​​。需要某种机制(如控制信号或协议规则)来决定当前轮到谁发送。
    • ​例子:​​ 对讲机(需要按下“Push to Talk”键才能发送)、集线器(HUB)连接的传统以太网(10BASE-T/100BASE-TX)、WiFi(在同一个频率信道上)、RS-485总线、I²C总线、某些早期的调制解调器协议。
    • ​优缺点:​​ 比单工灵活可以双向,但效率比全双工低,因为存在“切换方向”的等待时间(​​Turnaround Time​​)。
  3. ​全双工:​

    • ​原理:​​ 数据可以​​在两个方向上同时、独立地传输​​。双方可以同时发送数据和接收数据,互不干扰。这通常需要​​两条物理通道​​(如两条独立的导线、两条光纤、或者频分复用FDD)。
    • ​例子:​​ 电话通话(双方可以同时说话和听)、交换机(Switch)连接的全双工以太网(需要协议和硬件支持)、USB(主机和设备可以同时发送数据)、PCIe(使用发送/接收独立通道)、现代移动通信(LTE/5G)。
    • ​优缺点:​​ 最高效、实时性最好,没有方向切换延迟。但通常需要更多的物理资源(两条通道)或更复杂的技术(如回波消除)。

你可能感兴趣的:(单片机,嵌入式硬件)