单片机通信协议核心关系梳理笔记(UART/USART/232/485/SPI/12C/LIN/BLE/WIFI)
一、 核心基石:UART 与 USART
这是理解所有串行通信的起点。
特性 | UART (通用异步收发器) | USART (通用同步/异步收发器) |
---|---|---|
核心特点 | 异步通信 | 同步 + 异步通信 |
时钟信号 | 无单独的时钟线。依靠预定义的波特率同步。 | 有单独的时钟线(CLK)。同步模式依赖此时钟。 |
连接线 | 最少2根:TXD (发送) 和 RXD (接收) | 异步模式:2根 (TXD, RXD) 同步模式:3+根 (TXD, RXD, CLK) |
关系 | USART 是 UART 的超集。一个USART模块可以配置为UART模式工作。 | |
关键区别 | 简单、常见、成本低。速率和可靠性受双方时钟精度影响。 | 更灵活。同步模式速度更高、可靠性更强,但多占一根引脚。 |
通俗比喻 | 两个人聊天:仅靠语速(波特率)来理解对方。 | 一个人唱歌,一个人打拍子:唱的人按拍子唱,听的人按拍子听,节奏精准。 |
现状:在现代单片机中,标为“UART”的接口实质上绝大多数都是“USART”功能,只是大家习惯统称为UART。
二、 理解层次:物理层 vs. 数据链路层
这是理清所有协议关系的最关键概念。请参考OSI模型(简化版):
- 物理层 (Physical Layer):规定“如何传输0和1”,解决电气特性、电平标准、接口形状的问题。好比公路的材料和结构(柏油路、水泥路、铁轨)。
- 数据链路层 (Data Link Layer):规定“数据包如何组织、如何校验、谁先说话”,解决帧格式、差错控制、寻址、仲裁的问题。好比交通规则(红绿灯、停让标志、车道线)。
常见的物理层标准/协议
协议 | 描述 | 特点 | 与UART的关系 |
---|---|---|---|
TTL电平 | 单片机引脚直出电平 (0V=0, 3.3V/5V=1) | 距离极短(<0.5m),易受干扰 | UART 产生 TTL电平信号 |
RS-232 | 通过芯片(如MAX232)将TTL电平转换为(±3~±15V) | 抗干扰增强,距离可达15米,点对点 | UART -> MAX232芯片 -> RS-232接口 |
RS-485 | 通过芯片(如MAX485)将TTL转换为差分信号(A+, 😎 | 抗干扰极强,距离远(1200m),支持多点 | UART -> MAX485芯片 -> RS-485网络 |
CAN收发器 | 将CAN控制器的TTL信号转换为CAN差分电平(CAN_H, CAN_L) | 高速、高可靠,用于汽车和工业领域 | 单片机CAN控制器 -> CAN收发器 -> CAN总线 |
常见的数据链路层协议
协议 | 描述 | 特点 | 与UART的关系 |
---|---|---|---|
UART帧 | UART硬件本身定义的简单帧格式(起始位+数据位+校验位+停止位) | 非常简单,无地址、无复杂校验 | UART 自身的规则 |
SPI | 同步、全双工、高速通信协议。有CLK, MOSI, MISO, CS线 | 速度快,通常有独立的硬件控制器 | 独立,不依赖UART |
I2C | 同步、半双工、两线制(SCL, SDA)。支持多主多从,通过地址寻址 | 引脚节省,有独立的硬件控制器 | 独立,不依赖UART |
CAN | 高速、可靠、多主仲裁的工业级总线协议。有复杂的帧格式和错误检测 | 可靠性极高,有独立的硬件控制器和收发器 | 独立,不依赖UART |
LIN | 低速、低成本、单主多从的汽车网络协议 | 其物理层和帧格式基于UART,是UART的上层应用协议 | 基于 UART构建 |
三、 无线协议分析:蓝牙、WiFi、2.4G
无线协议是完整的协议栈,包含了从物理层到应用层的所有定义。单片机通常通过串口与实现这些协议的“模组”交互。
技术 | 物理层 (公路) | 数据链路层及更高层 (交通规则) | 单片机如何与其交互 |
---|---|---|---|
蓝牙 (Bluetooth) | 2.4GHz无线电波 (GFSK调制) | 基带/L2CAP层:管理连接、分包、加密。 应用层Profile:如SPP(串口透传)、GATT(低功耗蓝牙) | 单片机通过 UART 连接蓝牙模块(如HC-05),发送AT指令或数据。模块内部完成所有复杂协议处理。UART是模块的输入口。 |
WiFi | 2.4GHz/5GHz无线电波 (DSSS/OFDM调制) | MAC层:帧结构、CSMA/CA访问控制、加密(WPA2)。 TCP/IP协议栈:运行在更上层。 | 单片机通过 UART 或 SPI 连接WiFi模块(如ESP8266),发送AT指令控制其联网和收发TCP/IP数据包。 |
2.4G私有协议 (如NRF24L01) | 2.4GHz无线电波 (GFSK调制) | 厂商自定义的简单链路层:定义自己的数据包结构(地址、载荷、CRC)。 | 单片机通过 SPI 接口直接控制射频芯片的寄存器,配置参数并收发原始数据包。这里用了SPI,因为速度要求比UART高。 |
四、 总结与全局关系图
所有协议与单片机核心的关系,可以通过下图一目了然:
图例与说明:
- 黄色框:单片机内部的功能模块(硬件控制器)。
- 蓝色框:物理层转换芯片或协议栈(软件)。
- 绿色框:外部网络或设备。
- 粉色框:无线模组,其内部实现了完整的复杂协议栈。
- 实线:代表数据流的主要路径和依赖关系。
- 关键路径:
- UART路径:展示了UART数据如何通过不同物理层芯片(RS232/RS485)转换为不同的网络标准,以及如何作为高层协议(LIN/PPP)的基础和无线模组(BLE/Wi-Fi)的输入通道。
- 独立协议路径:展示了SPI、I2C、CAN作为独立且平行的通信方式,直接由专用控制器管理。
- 无线路径:展示了单片机通过UART或SPI与无线模组交互,由模组处理所有无线通信的复杂性。