单片机通信协议核心关系梳理笔记(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模型(简化版):

  1. 物理层 (Physical Layer) :规定"如何传输0和1 ",解决电气特性、电平标准、接口形状的问题。好比公路的材料和结构(柏油路、水泥路、铁轨)。
  2. 数据链路层 (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 TX/RX Radio UART TX/RX Radio SPI MOSI/MISO/SCK Radio 单片机 MCU Core USART/UART 模块 SPI 控制器 I2C 控制器 CAN 控制器 TTL 电平引脚 RS-232 转换芯片 RS-485 转换芯片 CAN 收发器 RS-232 设备 RS-485 网络 CAN 总线 蓝牙模块 Wi-Fi 模块 2.4G 射频模块 空中信号 空中信号 空中信号 LIN 协议栈 PPP 协议栈

图例与说明:

  • 黄色框:单片机内部的功能模块(硬件控制器)。
  • 蓝色框:物理层转换芯片或协议栈(软件)。
  • 绿色框:外部网络或设备。
  • 粉色框:无线模组,其内部实现了完整的复杂协议栈。
  • 实线:代表数据流的主要路径和依赖关系。
  • 关键路径 :
    • UART路径:展示了UART数据如何通过不同物理层芯片(RS232/RS485)转换为不同的网络标准,以及如何作为高层协议(LIN/PPP)的基础和无线模组(BLE/Wi-Fi)的输入通道。
    • 独立协议路径:展示了SPI、I2C、CAN作为独立且平行的通信方式,直接由专用控制器管理。
    • 无线路径:展示了单片机通过UART或SPI与无线模组交互,由模组处理所有无线通信的复杂性。
相关推荐
剑指offer.1 天前
ARM裸机开发-SPI
arm开发·嵌入式硬件·嵌入式·arm
___波子 Pro Max.1 天前
软件开发里的 prebuilt 是什么
嵌入式
7yewh2 天前
SLAM 三维空间刚体运动(2)
数据结构·人工智能·机器人·嵌入式·slam
LCG元2 天前
树莓派 Pico RP2040 PIO 逻辑分析仪实战:SM 指令周期拆解、DREQ 触发 DMA 环形缓冲与采样率参数实测
嵌入式·树莓派·rp2040
7yewh2 天前
SLAM 从视觉里程计到建图(6)
数据结构·人工智能·机器人·自动驾驶·嵌入式
Zwawa2 天前
蜂鸣器为什么会响:有源、无源和低电平触发
单片机·嵌入式
LCG元2 天前
STM32L431 QSPI驱动W25Q256实战:内存映射模式配置、4字节地址模式陷阱与读写吞吐实测
stm32·单片机·嵌入式·flash
fanged3 天前
嵌入式架构学习1--前言
嵌入式
feasibility.3 天前
把城市压缩成 2067 个盒子:CosFly 无人机跟踪数据管线论文解剖
人工智能·大模型·嵌入式·无人机·vla
susplus4 天前
【ARM 裸机开发 (IMX6ULL-mini)】I2C协议详解
嵌入式·arm·i2c