完整教程:单片机通信协议核心关系梳理笔记(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。就是:在现代单片机中,标为“UART”的接口实质上绝大多数都是“USART”特性,只
二、 理解层次:物理层 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与无线模组交互,由模组处理所有无线通信的复杂性。
浙公网安备 33010602011771号