news 2026/8/18 21:31:56

通信四剑客:UART、SPI、I2C、1-Wire 的江湖恩仇录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
通信四剑客:UART、SPI、I2C、1-Wire 的江湖恩仇录

在嵌入式系统中,单片机与外部设备之间的数据交换离不开串行通信。UART、SPI、I2C 和 1-Wire是最常见的四种串行通信方式,它们各自在引脚数、速率、拓扑结构、协议复杂度等方面有着显著差异,适用于不同的应用场景。本文将对这四种协议进行系统、丰富的介绍,并给出对比与选型建议。


一、UART(通用异步收发器)

1. 基本概念

UART(Universal Asynchronous Receiver/Transmitter)是一种异步、全双工、点对点的串行通信协议。它不需要时钟线,通信双方通过约定的波特率(baud rate)来同步数据采样。UART 是计算机串口、蓝牙模块、GPS 模块、调试控制台等最常用的接口之一。

2. 电气特性与信号线

  • TX(发送):主机发送数据到对方。

  • RX(接收):主机接收对方的数据。

  • GND:共地参考。

逻辑电平常见有:

  • TTL/CMOS 电平:0~3.3V 或 0~5V,直接连接单片机引脚。

  • RS-232 电平:±3V~±15V,需要电平转换芯片(如 MAX232)。

  • RS-485 电平:差分信号,抗干扰强,适合长距离多机通信。

3. 数据帧格式

UART 以为单位传输数据,每帧包含:

[起始位][数据位(5~9位)][校验位(可选)][停止位(1/1.5/2位)]
  • 起始位:1 位低电平,表示帧开始。

  • 数据位:通常 8 位,LSB 在前或 MSB 在前可配置(通常 LSB 先)。

  • 校验位:奇校验、偶校验或无校验。

  • 停止位:1 位高电平(或 1.5/2 位),表示帧结束。

空闲时总线保持高电平。接收方在检测到下降沿(起始位)后,延时 1.5 个位周期采样数据位,以提高抗干扰能力。

4. 波特率与误差

波特率是每秒传输的码元数,常见值:9600、19200、38400、57600、115200 等。由于异步通信没有时钟线,双方晶振误差会导致采样偏移。通常要求波特率误差 < 3%,否则会出现数据错误。

5. 优缺点

优点

  • 仅需两根数据线(TX、RX),简单方便。

  • 全双工,可同时收发。

  • 协议简单,几乎所有单片机都有硬件 UART 外设。

  • 适合中等距离(RS-232 约 15m,RS-485 可达 1.2km)。

缺点

  • 点对点通信为主,多机通信需要额外协议(如 RS-485 地址码)。

  • 异步无时钟,对波特率精度要求高。

  • 速率较低,通常不超过几 Mbps(高速 UART 可达 4 Mbps)。

6. 典型应用

  • 调试串口(printf 输出)

  • GPS、蓝牙、WiFi 模块

  • 工业 RS-485 总线

  • 与 PC 通信


二、SPI(串行外设接口)

1. 基本概念

SPI(Serial Peripheral Interface)是由 Motorola 提出的同步、全双工、高速串行通信协议。它采用主从架构,由一个主机控制时钟,一个或多个从机通过片选信号被选中通信。SPI 常用于 Flash 存储器、ADC/DAC、显示屏、传感器等高速外设。

2. 信号线

  • SCLK(Serial Clock):主机产生的时钟信号。

  • MOSI(Master Out Slave In):主机发送、从机接收的数据线。

  • MISO(Master In Slave Out):从机发送、主机接收的数据线。

  • CS/SS(Chip Select / Slave Select):低电平有效的片选信号,用于选择从机。

有些变体使用三线制(共用数据线,半双工)或四线制标准全双工。

3. 工作原理与模式

SPI 通信基于移位寄存器。主机和从机各自有一个移位寄存器,在时钟边沿同时移出和移入数据,实现全双工交换。

时钟极性与相位(CPOL、CPHA)

  • CPOL=0:空闲时 SCLK 为低电平。

  • CPOL=1:空闲时 SCLK 为高电平。

  • CPHA=0:第一个时钟边沿采样数据。

  • CPHA=1:第二个时钟边沿采样数据。

四种组合模式(模式 0、1、2、3)需主机与从机配置一致。

4. 拓扑结构

  • 一主一从:最简单,直接连接。

  • 一主多从:主机为每个从机分配独立的 CS 引脚,或使用菊花链(daisy chain)方式。

5. 优缺点

优点

  • 高速:时钟可达数十 MHz,甚至 100 MHz 以上。

  • 全双工:同时收发数据。

  • 协议简单:无寻址、无应答,硬件实现容易。

  • 推挽驱动:信号质量好,无需上拉电阻。

缺点

  • 所需引脚较多(至少 4 根,多从机时需更多 CS)。

  • 无标准协议层,不同器件配置差异大。

  • 无应答机制,无法确认从机是否收到数据。

  • 传输距离短,通常用于板级通信(< 几十厘米)。

6. 典型应用

  • SPI Flash(W25Q128)

  • 高速 ADC/DAC

  • TFT 显示屏

  • SD 卡(SPI 模式)

  • 无线模块(nRF24L01、LoRa)


三、I2C(Inter-Integrated Circuit,又称 IIC)

1. 基本概念

I2C 是 Philips(现 NXP)开发的同步、半双工、多主多从串行总线。它仅用两根线(SDA、SCL)即可连接多个设备,通过地址进行寻址。I2C 广泛应用于板级低速外设,如 EEPROM、传感器、RTC、PMIC 等。

2. 信号线

  • SDA(Serial Data):串行数据线。

  • SCL(Serial Clock):串行时钟线,由主机产生。

  • GND:共地。

两根线均通过上拉电阻连接到电源(通常 3.3V 或 5V),采用开漏输出,实现“线与”逻辑。

3. 电气特性与地址

  • 上拉电阻:典型值 4.7kΩ,根据总线电容和速率调整。

  • 逻辑电平:低电平由设备拉低,高电平由上拉电阻拉高。

  • 地址:每个从机有 7 位或 10 位地址。7 位地址模式下,总线上最多可挂 112 个设备(部分地址保留)。常见地址如 0x50(EEPROM)、0x68(MPU6050)、0x48(ADS1115)。

4. 通信协议

I2C 通信以字节为单位,每字节 8 位,MSB 在前。每次传输由主机发起,以起始条件开始,停止条件结束。

起始条件(START):SCL 高电平时,SDA 从高到低跳变。
停止条件(STOP):SCL 高电平时,SDA 从低到高跳变。
数据位:SDA 在 SCL 低电平时改变,在 SCL 高电平时保持稳定。
应答位(ACK/NACK):每传输完 8 位数据后,接收方在第 9 个时钟脉冲拉低 SDA 表示 ACK,保持高电平表示 NACK。

传输格式

[START][从机地址(7位)+R/W位][ACK][数据字节][ACK]...[STOP]

5. 时钟拉伸(Clock Stretching)

当从机需要更多时间处理数据时,可以将 SCL 拉低,使主机等待,直到从机释放 SCL。这是一种流控机制。

6. 多主机与仲裁

I2C 支持多主机。当多个主机同时发送时,通过“线与”机制进行仲裁:发送低电平的主机优先,竞争失败的主机自动退出,不破坏总线数据。

7. 速率模式

  • 标准模式:100 kbps

  • 快速模式:400 kbps

  • 快速模式+:1 Mbps

  • 高速模式:3.4 Mbps

  • 超快速模式:5 Mbps(单向)

8. 优缺点

优点

  • 仅需两根线,节省引脚。

  • 支持多主多从,地址寻址灵活。

  • 有应答机制,可靠性较高。

  • 可挂载大量设备,适合板级传感器网络。

缺点

  • 速率较低(通常 400 kbps)。

  • 开漏结构导致上升沿较慢,影响高速通信。

  • 协议相对复杂,需要处理起始/停止/应答/仲裁等。

  • 半双工,同一时刻只能单向传输。

9. 典型应用

  • EEPROM(AT24C02)

  • 传感器(温度、湿度、加速度计、陀螺仪)

  • RTC 时钟芯片

  • 电源管理 IC

  • OLED 显示屏(部分)


四、1-Wire(单总线)

1. 基本概念

1-Wire 是 Dallas Semiconductor(现 Maxim Integrated / ADI)开发的单线、异步、半双工串行通信协议。它仅用一根数据线(DQ)加地线即可实现主机与多个从机之间的通信,甚至可以通过数据线为从机寄生供电。最典型的器件是 DS18B20 数字温度传感器。

2. 电气特性

  • 数据线 DQ:开漏结构,外接上拉电阻(典型 4.7kΩ)。

  • 空闲状态:高电平(由上拉电阻维持)。

  • 驱动方式:任何设备都可以拉低 DQ,释放后由上拉电阻拉高,实现“线与”。

3. 供电方式

  • 外部供电:从机有独立 VDD 引脚,提供稳定电源。

  • 寄生供电:从机无外部电源,利用数据线高电平期间向内部电容充电。在需要大电流操作(如温度转换)时,主机需在数据线上提供强上拉(用 MOSFET 直接拉高)。

4. 通信协议

1-Wire 通信以时隙(time slot)为基本单位,每个时隙传输一位。通信总是由主机发起。

初始化(复位/存在脉冲)

  • 主机拉低 DQ 至少 480 µs,然后释放。

  • 从机检测到上升沿后,拉低 DQ 60~240 µs 作为存在脉冲应答。

  • 主机检测到低电平表示有从机存在。

写时隙

  • 写 0:主机拉低 DQ 至少 60 µs。

  • 写 1:主机拉低 DQ 1~15 µs 后释放,由上拉电阻拉高。

  • 从机在拉低后 15~60 µs 窗口内采样。

读时隙

  • 主机拉低 DQ 1 µs 以上,然后释放。

  • 从机若发送 0 则继续拉低,发送 1 则释放。

  • 主机在拉低后 15 µs 内采样 DQ 电平。

数据字节:LSB 在前,每字节 8 位。标准速率约 16.3 kbps,过驱动模式约 142 kbps。

5. 设备寻址

每个 1-Wire 器件都有全球唯一的 64 位 ROM 地址,包括:

  • 8 位家族码(如 DS18B20 为 0x28)

  • 48 位序列号

  • 8 位 CRC 校验

ROM 命令用于设备选择与管理:

  • Skip ROM(0xCC):跳过寻址,广播命令。

  • Match ROM(0x55):指定 64 位地址,只有匹配设备响应。

  • Search ROM(0xF0):枚举总线上的所有设备地址。

  • Read ROM(0x33):读取单个设备的地址。

6. 优缺点

优点

  • 仅需一根数据线,布线极简。

  • 支持多设备并联,唯一地址寻址。

  • 可寄生供电,省去电源线。

  • 适合长距离低速传输(可达 100 米以上)。

缺点

  • 速率极低(标准 16.3 kbps)。

  • 时序要求严格,软件模拟易受中断影响。

  • 抗干扰能力一般,不如差分总线。

  • 多设备枚举算法较复杂。

7. 典型应用

  • 多点温度采集(DS18B20)

  • 身份识别(iButton)

  • 小容量 EEPROM(DS2431)

  • 传感器网络


五、四种协议对比

特性UARTSPII2C1-Wire
信号线数2(TX/RX)+GND4(SCLK/MOSI/MISO/CS)+GND2(SDA/SCL)+GND1(DQ)+GND
时钟方式异步,双方约定波特率同步,主机提供时钟同步,主机提供时钟异步,时隙定时
双工性全双工全双工半双工半双工
典型速率9600~4 Mbps1~100+ Mbps100 kbps~3.4 Mbps16.3 kbps(标准)
多设备支持通常点对点,或 RS-485 多机一主多从,需片选多主多从,地址寻址多设备,唯一 64 位地址
寻址方式无(或地址位)片选 CS7/10 位地址64 位 ROM 地址
应答机制ACK/NACK存在脉冲
电平类型TTL/RS-232/RS-485推挽(通常)开漏+上拉开漏+上拉
传输距离RS-232 15m,RS-485 1.2km板级(<30cm)板级(<1m)可达 100m+
复杂度低(硬件简单)中等(协议较复杂)高(时序严格)
典型应用调试、GPS、蓝牙Flash、ADC、显示屏EEPROM、传感器、RTC温度传感器、iButton

六、选型指南

  • 需要最少引脚、长距离、多传感器节点→ 选择1-Wire(如 DS18B20 温度网络)。

  • 需要高速、全双工、板级传输→ 选择SPI(如 SPI Flash、TFT 屏)。

  • 需要节省引脚、多设备共享总线、中低速→ 选择I2C(如传感器、EEPROM)。

  • 需要与 PC 通信、调试输出、简单点对点→ 选择UART(如串口调试、蓝牙模块)。

实际项目中,单片机通常同时集成多种外设,可以根据需求灵活组合。例如:用 I2C 读取传感器,用 SPI 驱动显示屏,用 UART 打印日志,用 1-Wire 采集多点温度。


七、总结

UART、SPI、I2C 和 1-Wire 是嵌入式系统中最基础也最重要的四种串行通信协议。它们各有特色:

  • UART异步全双工,简单通用,适合点对点和调试。

  • SPI同步全双工,高速高效,适合高速外设。

  • I2C两线多设备,地址寻址,适合板上传感器网络。

  • 1-Wire单线低速,可寄生供电,适合分布式传感器。

理解它们的电气特性、协议时序、拓扑结构和应用场景,是嵌入式工程师的基本功。选型时需综合考虑引脚资源、速率要求、通信距离、设备数量、功耗和开发复杂度,才能设计出稳定可靠的系统。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/18 21:30:01

闲鱼防关联系统:秒级轮询监控,竞品一动你3秒内跟进

闲鱼防关联系统&#xff1a;秒级轮询监控&#xff0c;竞品一动你3秒内跟进 干店群想赚钱&#xff0c;核心就两个字——效率。闲鱼的多店防关联管理&#xff0c;是店群运营中最耗人力也最容易出错的环节。 做店群的老板都知道&#xff0c;最怕的就是底层IP和硬件指纹穿帮。一旦…

作者头像 李华
网站建设 2026/8/18 21:28:53

汽车座舱显示系统升级:从硬件参数到用户体验的工程实践

1. 从“屏幕”到“体验”&#xff1a;佛吉亚升级车内显示器的深层逻辑 最近看到佛吉亚&#xff08;Faurecia&#xff0c;现在应该叫佛瑞亚集团了&#xff09;关于升级车内显示器的新闻&#xff0c;很多报道可能就停留在“技术升级”、“屏幕更大更清晰”的层面。但作为一个在汽…

作者头像 李华
网站建设 2026/8/18 21:26:43

Codex接入团队协作后,我推翻了三个想当然的效率假设

聊《别急着上Codex&#xff0c;先把成本、边界和失败兜底算清楚》之前&#xff0c;先说一句实在的&#xff1a;别急着背概念&#xff0c;先看它在真实项目里到底解决什么问题。摘要前阵子团队讨论把 Codex 接入研发流程&#xff0c;好几个同事信心满满&#xff0c;觉得这玩意儿…

作者头像 李华
网站建设 2026/8/18 21:26:39

数据挖掘实战:从算法到商业价值的转化策略

1. 数据挖掘的落地困境与破局之道 十年前我刚入行数据挖掘时&#xff0c;曾参与过一个零售业客户画像项目。当我们把精心构建的RFM模型和购物路径分析报告交给业务部门时&#xff0c;对方负责人翻了几页就问&#xff1a;"所以下周促销活动到底该选哪些商品&#xff1f;折扣…

作者头像 李华
网站建设 2026/8/18 21:25:27

Unity塔防抽卡手游实战:从数据驱动到移动端性能优化

1. 这个项目到底在做什么&#xff0c;以及它为什么值得你花时间 如果你正在找一个能串联起 Unity 3D 核心玩法、UI 交互和移动端适配的实战项目&#xff0c;这个“防御塔与抽卡机制”的组合是个非常典型的选择。它解决的不是一个单一功能&#xff0c;而是如何把两个看似独立的系…

作者头像 李华
网站建设 2026/8/18 21:24:43

173.企业级开发范式:ABAP 类开发 + 批量取数 + ALV 可视化落地

摘要 SAP系统作为企业资源计划领域的标杆,其底层开发语言ABAP是连接业务需求与技术实现的桥梁。本文从ABAP语言基础语法出发,深入剖析SAP数据字典对象、Open SQL操作、内表处理等核心机制,通过一个完整的采购订单查询程序实例,展示从数据建模到报表输出的全流程开发方法。…

作者头像 李华