单片机通信协议核心关系梳理笔记(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协议栈:运行在更上层。 单片机通过 UARTSPI 连接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与无线模组交互,由模组处理所有无线通信的复杂性。
相关推荐
正点原子1 天前
《ESP32-S3使用指南—IDF版 V1.6》第三十四章 RGB触摸实验
单片机·物联网·嵌入式
FreakStudio1 天前
一文速通 Python 并行计算:教程总结
python·pycharm·嵌入式·面向对象·并行计算
酷飞飞2 天前
STC8单片机驱动I2C屏幕:实现时间、日期与温湿度显示
单片机·嵌入式硬件·51单片机·嵌入式
西工程小巴3 天前
实践笔记-VSCode与IDE同步问题解决指南;程序总是进入中断服务程序。
c语言·算法·嵌入式
闻道且行之4 天前
嵌入式|VNC实现开发板远程Debian桌面
运维·debian·嵌入式
small_wh1te_coder6 天前
GCC深度剖析:从编译原理到嵌入式底层实战
汇编·c++·面试·嵌入式·状态模式·c
stone51956 天前
TOTP算法与HOTP算法
c语言·物联网·算法·嵌入式·iot平台·智能门锁
酷飞飞7 天前
RTC时钟倒计时数码管同步显示实现(STC8)
单片机·嵌入式硬件·51单片机·嵌入式·stc8
酷飞飞9 天前
基于STC8单片机的RTC时钟实现:从原理到实践
单片机·嵌入式硬件·51单片机·嵌入式