问题1:IIC为什么要用开漏模式?
答:
1. 实现总线的 "线与" 逻辑,支持多设备共享总线
IIC 总线是半双工、多主多从的串行总线,SDA(数据线)和 SCL(时钟线)两条线需要被总线上所有主 / 从设备共享。
- 开漏输出的特性 :开漏引脚只有两种状态 ------低电平 和高阻态 ,无法主动输出高电平。要让总线呈现高电平,必须依赖外部上拉电阻。
- 线与逻辑的作用:当多个设备同时驱动总线时,只要有任意一个设备将引脚拉到低电平,整个总线的电平就会被拉低;只有所有设备都处于高阻态时,总线才会被上拉电阻拉到高电平。这个特性完美适配 IIC 的总线仲裁机制:当多个主设备同时发起通信时,能通过检测总线电平来判断是否发生冲突,避免数据错乱。
如果改用推挽模式,当两个设备同时输出高低电平,会造成电源和地的直接短路,不仅会烧毁芯片引脚,还会彻底破坏总线通信。
2. 支持不同电平的设备兼容
开漏模式下,总线的高电平电压由外部上拉电阻的电源决定,而非芯片内部的电源。
- 例如:3.3V 的 STM32 芯片和 5V 的 Arduino 芯片可以共存在同一条 IIC 总线上,只要将上拉电阻接到 3.3V 或 5V 电源(根据实际需求选择),就能实现跨电平通信。
- 推挽模式的高电平由芯片内部电源固定,无法灵活适配不同电压的设备。
3. 降低总线功耗与噪声
开漏模式下,总线在空闲状态时被上拉电阻拉到高电平,此时所有设备的引脚都处于高阻态,几乎不消耗电流。而推挽模式在输出高电平时会持续有电流流过,功耗更高,且更容易引入电磁噪声。
- 上拉电阻的阻值通常选择 4.7kΩ ~ 10kΩ,阻值过小会增加功耗,阻值过大会降低总线的响应速度。
问2:串口RS485和RS232介绍下?
答:
一、 RS232 串口
RS232 是异步串行通信 的经典标准,主要用于短距离、点对点的设备通信。
- 电气特性
- 信号电平:采用单端信号 ,以地为参考。逻辑
1对应 -3V ~ -15V ,逻辑0对应 +3V ~ +15V;低于 ±3V 的电压为无效电平。- 接口引脚:常见 9 针(DB9)接口,核心引脚为 TXD(发送)、RXD(接收)、GND(接地),其余为握手信号(如 RTS、CTS),实际点对点通信时可仅接 3 根线。
- 通信特点
- 传输距离:理论最大 15 米,距离过长会导致信号衰减、抗干扰能力下降。
- 通信方式:全双工(TXD 和 RXD 独立,可同时收发)。
- 传输速率:常见速率为 9600bps、19200bps、115200bps,最高可达 20kbps(受距离限制)。
- 抗干扰能力:单端信号易受共模干扰,适合无强电磁干扰的室内短距离场景。
- 典型应用电脑与串口设备(如单片机、串口屏、GPS 模块)的直接连接,早期的鼠标、Modem 也采用 RS232 通信。
二、 RS485 串口
RS485 是为长距离、多节点工业通信设计的标准,全称为 EIA-RS-485-A,弥补了 RS232 传输距离短、抗干扰弱的缺点。
- 电气特性
- 信号电平:采用差分信号 ,通过两根线(A 线 / D+、B 线 / D-)的电压差表示逻辑:
- 逻辑
1:B 线电压 - A 线电压 > +200mV- 逻辑
0:B 线电压 - A 线电压 < -200mV- 接口引脚:核心为 A、B 两根差分线,无需单独接地(但实际工程中建议接屏蔽地以提升抗干扰性)。
- 通信特点
- 传输距离:理论最大 1200 米,传输速率与距离成反比(1200 米时速率约 10kbps,近距离可达 10Mbps)。
- 通信方式:半双工(同一时刻只能收或发,需通过控制引脚如 DE/RE 切换收发状态);部分芯片支持全双工,但工业场景中半双工更常用。
- 节点数量:总线型拓扑结构,最多可支持 32 个节点(使用中继器可扩展至 256 个以上)。
- 抗干扰能力:差分信号可有效抑制共模干扰,适合工业现场、强电磁干扰环境。
- 典型应用工业控制总线(如 Modbus-RTU 协议)、楼宇自控、安防监控、智能仪表组网等多设备互联场景。


问3 SPI IIC USART 几种通讯协议有什么区别?
-
SPI
- 典型引脚:4 根 (主设备视角)
- SCK:串行时钟(主设备产生,同步时序)
- MOSI:主发从收
- MISO:主收从发
- NSS/CS:片选信号(主设备通过拉低对应引脚选中从设备)
- 拓扑:一主多从(星型 / 菊花链),每个从设备需要独立的 NSS 引脚;支持全双工。
- 无地址机制:靠片选信号区分设备。
- 典型引脚:4 根 (主设备视角)
-
I²C
- 典型引脚:2 根 (所有设备共用)
- SCL:串行时钟(主设备产生)
- SDA:串行数据(双向传输,靠上拉电阻维持电平)
- 拓扑:一主多从 / 多主多从(总线型),所有设备挂在同一条总线上。
- 地址机制:每个从设备有唯一 7 位 / 10 位地址,主设备通过地址寻址,无需片选引脚。
- 典型引脚:2 根 (所有设备共用)
-
USART
- 典型引脚:2 根(异步模式)
- TX:发送引脚
- RX:接收引脚
- 同步模式需额外 SCK 时钟引脚,但极少使用。
- 拓扑:点对点(默认),若要多设备通信需搭配物理层(如 RS485 总线)。
- 无时钟线(异步模式):靠约定波特率、帧格式(起始位 + 数据位 + 停止位)同步。


- 典型引脚:2 根(异步模式)
3. 传输速率与距离
-
SPI
- 速率:最高可达几十 Mbps(如 STM32 的 SPI 最高支持 45Mbps),速率仅受限于芯片和外设性能。
- 距离:极短(厘米级),仅适合芯片间板载通信(如 MCU 与 Flash、显示屏、ADC 芯片通信)。
-
I²C
- 速率:分三个等级
- 标准模式:100kbps
- 快速模式:400kbps
- 高速模式:3.4Mbps
- 距离:短距离(米级内),适合板载或近距离多设备组网(如传感器阵列、EEPROM 芯片)。
- 速率:分三个等级
-
USART
- 速率:常见 9600bps~115200bps,最高可达数 Mbps(近距离)。
- 距离:取决于物理层
- 直接 TTL 电平:几十厘米
- 转 RS232:15 米
- 转 RS485:1200 米
4. 抗干扰能力
- SPI:无应答机制,抗干扰弱,适合电磁环境稳定的板内通信。
- I²C:有应答(ACK/NACK)机制,主设备可检测数据是否传输成功,抗干扰中等。
- USART :异步模式无应答,但若搭配 RS485 差分物理层,抗干扰极强,适合工业现场。
