当前位置: 首页 > java >正文

单片机通信协议核心关系梳理笔记(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是模块的输入口
WiFi2.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与无线模组交互,由模组处理所有无线通信的复杂性。
http://www.xdnf.cn/news/18286.html

相关文章:

  • leetcode7二分查找_69 and 34
  • 链表的核心:“增删改查”
  • Nginx 负载均衡和缓存配置
  • 【软考架构】净室软件工程
  • Gin自定义Error中间件
  • SQL-leetcode— 2356. 每位教师所教授的科目种类的数量
  • 手机 浏览器调用摄像头扫描二维码Quagga
  • 2026 济南淀粉深加工展览会亮点:玉米科技与未来产业发展
  • 03-dockerfile
  • C++继承中的虚函数机制:从单继承到多继承的深度解析
  • 【ansible】2.实施ansible playbook
  • 机器学习算法核心总结
  • 静/动态库 IIC(arm) day58
  • 医疗问答应用:UniApp + Node.js + DeepSeek API
  • Objective-C 版本的 LiveEventBus 效果
  • 直流无刷(BLDC)电机、单相直流无刷电机、三相直流无刷电机、单相直流无刷电机驱动芯片
  • 齐次线性方程组最小二乘解
  • 从零开始学AI——13
  • Docker复杂安装--最详细的MySQL主从复制与Redis集群安装、主从复制、主从扩容主从缩容实战版
  • java线程池相关知识
  • XR(AR/VR/MR)芯片方案,Soc VS “MCU+协处理器”?
  • 【动态规划、dp】P4933 大师
  • pnpm : 无法加载文件 C:\Program Files\nodejs\pnpm.ps1,因为在此系统上禁止运行脚本。
  • C++之多态(从0到1的突破)
  • Python如何将两个列表转化为一个字典
  • 基于STM32的APP遥控视频水泵小车设计
  • Codeforces MIN = GCD
  • Python爬虫实战:研究dark-fantasy,构建奇幻文学数据采集分析系统
  • BM25 vs TF-IDF:经典文本检索方法的对比
  • 【39】OpenCV C++实战篇——直线拟合、直线测距、平行线段测距;(边缘检测,剔除噪点,轮廓检测,渐进概率霍夫直线)