概要

在嵌入式系统和物联网设备中,微控制器与外设(如传感器、存储器、显示屏等)之间的数据交换是核心功能。实现这种数据交换的“语言”就是通信协议。串行通信因其布线简单、成本低廉而成为主流。本文将深入浅出地剖析五大经典串行通信协议:UART, SPI, I²C, RS-232, RS-485,从基础概念到实战应用,助你彻底搞懂它们!

整体架构流程

第一章:通信基础概念(新手入门)

在深入具体协议之前,我们先建立几个核心概念。

  1. 通信类型:串行 vs. 并行

(1)串行通信:
在这里插入图片描述

原理:使用一根(或极少几根)数据线,逐位依次传输数据。好比是单车道,车辆(数据位)必须排成一列依次通过。
优点:占用I/O口少,布线简单,成本低,抗干扰能力强,适合长距离通信。
缺点:在相同时钟频率下,绝对速度低于并行。
应用:USB、网络、以及我们今天要讲的所有协议。现代电子系统,串行通信是绝对的主流。

(2)并行通信:
在这里插入图片描述

原理:使用多根数据线,同时传输一个数据的多个位(比如8位、16位)。想象成一个8车道的高速公路,8辆车(数据位)并排同时到达。
优点:速度快。
缺点:占用I/O口多,布线复杂,长距离时信号间易相互干扰(同步问题)。
应用:早期计算机主板与硬盘的IDE接口、打印机LPT接口。

  1. 时钟同步方式:同步 vs. 异步
    这是理解协议差异的关键!
    (1)同步串行通信:
    在这里插入图片描述
    原理:通信双方使用统一的时钟信号(一根独立的时钟线)。发送方在时钟的特定边沿(如上升沿)输出数据,接收方在对应的边沿采样数据。收发双方步调一致。
    特点:效率高,速度快,没有额外的速率配置开销。但需要额外的时钟线。
    代表协议:SPI, I²C。
    (2)异步串行通信:
    在这里插入图片描述
    原理:没有统一的时钟线。通信双方依靠各自独立的内部时钟,并事先约定好相同的传输速率(即波特率)。通过在每个数据包前后添加起始位和停止位来实现同步。
    特点:不需要时钟线,硬件连接简单。但传输效率略低(有起始/停止位等额外开销),且对双方时钟精度要求高。
    代表协议:UART。RS-232和RS-485是物理层标准,它们通常使用UART作为控制器,因此也属于异步通信范畴。

  2. 通信方式:单工、半双工、全双工
    (1)单工:数据只能在一个方向上传输(如广播、电视)。
    在这里插入图片描述
    (2)半双工:数据可以在两个方向上传输,但不能同时进行(如对讲机,说完一句必须松开通话键才能听)。
    在这里插入图片描述

(3)全双工:数据可以在两个方向上同时传输(如电话,可以边说边听)。
在这里插入图片描述

第二章:五大协议深度解析

下面我们进入正题,逐一剖析这五大协议。
在这里插入图片描述

  1. UART - 通用异步收发传输器
    在这里插入图片描述

(1)原理:UART是芯片上的一个物理模块,它把并行数据转换成串行格式进行传输。数据被组织成帧,每帧包含:1个起始位(低电平) + 5-9个数据位 + 可选的奇偶校验位 + 1-2个停止位(高电平)。
(2)连接方式:两个UART设备直接交叉连接:TX -> RX, RX -> TX,并共地。
(3)优缺点:
优:简单、通用、硬件资源要求少。
缺:点对点、速度慢、抗干扰差。
(4)应用:调试输出、连接GPS/蓝牙模块。

  1. SPI - 串行外设接口
    在这里插入图片描述

(1)原理:同步、全双工、主从式通信。核心四线制:
SCLK: 主设备输出的时钟。
MOSI: 主设备输出,从设备输入。
MISO: 主设备输入,从设备输出。
SS/CS: 片选信号,低电平有效,用于选择特定从设备。
(2)工作流程:主设备拉低从设备的SS,并产生SCLK。数据在时钟边沿同时从MOSI和MIO移出和移入,实现全双工。
(3)优缺点:
优:速度极快、全双工、协议简单灵活。
缺:需要较多I/O口(每个从设备一个SS)、无硬件应答、不支持多主。
(4)应用:高速外设,如SD卡、Flash存储器、LCD屏。

  1. I²C - 集成电路总线
    在这里插入图片描述

(1)原理:同步、半双工、多主从式通信。仅用两根线:
SDA: 双向数据线。
SCL: 双向时钟线。所有设备都并联在总线上,通过上拉电阻将总线置于高电平。
(2)工作流程:
主设备发起起始条件(SDA在SCL高时由高变低)。
发送7位从设备地址和1位读写位。
被寻址的从设备回应应答位(ACK)。
开始传输数据,每字节后都有ACK/NACK。
主设备发出停止条件(SDA在SCL高时由低变高)。
(3)优缺点:
优:引脚极致精简、支持多主、有硬件应答。
缺:速度较SPI慢、协议复杂、总线电容影响速度。
应用:读取低速传感器(温湿度)、访问EEPROM。

  1. RS-232 & RS-485 - 工业级的UART
    可以把它们看作是UART的“翅膀”,负责将其信号送到更远、更恶劣的环境中。
    (1)RS-232:
    本质:一个物理层电气标准。它将UART的TTL电平(0V/3.3V)转换为±3±15V(逻辑1=-3-15V,逻辑0=+3~+15V)。
    特点:点对点、全双工,使用DB9接口。电压高,传输距离比TTL远。
    应用:老式电脑COM口,部分工业设备。
    (2)RS-485:
    本质:一个更先进的物理层标准。它采用差分信号传输,使用两根线A和B的电压差来表示逻辑。
    特点:抗共模干扰能力极强,适合长距离、嘈杂工业环境。
    支持多点总线结构,一条总线上可挂32-128个设备。
    通常是半双工。
    应用:工业自动化的绝对主力(PLC、变频器通信)、楼宇自控、安防系统。常与Modbus等应用层协议搭配使用。

第三章:总结与选型指南

如何选择?记住以下几点:
1、芯片间高速通信(如读Flash): 首选 SPI。
2、引脚资源紧张,连接多个低速传感器: 首选 I²C。
3、简单的固件调试、连接蓝牙/GPS模块: 用 UART (TTL)。
4、设备间长距离、高抗干扰、多节点组网(尤其是工业环境): 必须用 RS-485。
5、RS-232 在现代设计中已不常用,主要用于维护老旧设备。

一个形象的比喻:
UART:两个人面对面说话(点对点,异步)。
SPI:老师对单个学生快速提问和听回答,有节拍器同步(主从,同步,高速)。
I²C:老师对全班学生喊话,叫学号(地址)提问,被叫到的学生要答“到”(ACK)(多主从,地址寻址)。
RS-485:用对讲机在嘈杂的工地上组建了一个班组通信网络(差分,抗干扰,总线)。
希望这篇集基础与深度于一体的文章能让你对串行通信协议有一个系统而清晰的认识!如有疑问,欢迎在评论区留言讨论。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐