常见问题整理总结

问题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. 电气特性
    • 信号电平:采用单端信号 ,以地为参考。逻辑 1 对应 -3V ~ -15V ,逻辑 0 对应 +3V ~ +15V;低于 ±3V 的电压为无效电平。
    • 接口引脚:常见 9 针(DB9)接口,核心引脚为 TXD(发送)、RXD(接收)、GND(接地),其余为握手信号(如 RTS、CTS),实际点对点通信时可仅接 3 根线。
  2. 通信特点
    • 传输距离:理论最大 15 米,距离过长会导致信号衰减、抗干扰能力下降。
    • 通信方式:全双工(TXD 和 RXD 独立,可同时收发)。
    • 传输速率:常见速率为 9600bps、19200bps、115200bps,最高可达 20kbps(受距离限制)。
    • 抗干扰能力:单端信号易受共模干扰,适合无强电磁干扰的室内短距离场景。
  3. 典型应用电脑与串口设备(如单片机、串口屏、GPS 模块)的直接连接,早期的鼠标、Modem 也采用 RS232 通信。

二、 RS485 串口

RS485 是为长距离、多节点工业通信设计的标准,全称为 EIA-RS-485-A,弥补了 RS232 传输距离短、抗干扰弱的缺点。

  1. 电气特性
    • 信号电平:采用差分信号 ,通过两根线(A 线 / D+、B 线 / D-)的电压差表示逻辑:
      • 逻辑 1:B 线电压 - A 线电压 > +200mV
      • 逻辑 0:B 线电压 - A 线电压 < -200mV
    • 接口引脚:核心为 A、B 两根差分线,无需单独接地(但实际工程中建议接屏蔽地以提升抗干扰性)。
  2. 通信特点
    • 传输距离:理论最大 1200 米,传输速率与距离成反比(1200 米时速率约 10kbps,近距离可达 10Mbps)。
    • 通信方式:半双工(同一时刻只能收或发,需通过控制引脚如 DE/RE 切换收发状态);部分芯片支持全双工,但工业场景中半双工更常用。
    • 节点数量:总线型拓扑结构,最多可支持 32 个节点(使用中继器可扩展至 256 个以上)。
    • 抗干扰能力:差分信号可有效抑制共模干扰,适合工业现场、强电磁干扰环境。
  3. 典型应用工业控制总线(如 Modbus-RTU 协议)、楼宇自控、安防监控、智能仪表组网等多设备互联场景。

问3 SPI IIC USART 几种通讯协议有什么区别?

  • SPI

    • 典型引脚:4 根 (主设备视角)
      • SCK:串行时钟(主设备产生,同步时序)
      • MOSI:主发从收
      • MISO:主收从发
      • NSS/CS:片选信号(主设备通过拉低对应引脚选中从设备)
    • 拓扑:一主多从(星型 / 菊花链),每个从设备需要独立的 NSS 引脚;支持全双工。
    • 无地址机制:靠片选信号区分设备。
  • I²C

    • 典型引脚:2 根 (所有设备共用)
      • SCL:串行时钟(主设备产生)
      • SDA:串行数据(双向传输,靠上拉电阻维持电平)
    • 拓扑:一主多从 / 多主多从(总线型),所有设备挂在同一条总线上。
    • 地址机制:每个从设备有唯一 7 位 / 10 位地址,主设备通过地址寻址,无需片选引脚。
  • USART

    • 典型引脚:2 根(异步模式)
      • TX:发送引脚
      • RX:接收引脚
    • 同步模式需额外 SCK 时钟引脚,但极少使用。
    • 拓扑:点对点(默认),若要多设备通信需搭配物理层(如 RS485 总线)。
    • 无时钟线(异步模式):靠约定波特率、帧格式(起始位 + 数据位 + 停止位)同步。
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 差分物理层,抗干扰极强,适合工业现场。
相关推荐
亦诚亦心2 小时前
单片机各种驱动简要解释
单片机·嵌入式硬件
阿拉斯攀登2 小时前
51单片机:点灯程序
单片机·嵌入式硬件·51单片机
逐步前行2 小时前
C51_AT24C02 EEPROM
单片机
zhmc3 小时前
单片机ADC内部基准参考电压有那些应用
单片机·嵌入式硬件
阿拉斯攀登3 小时前
51单片机概述
单片机·嵌入式硬件·51单片机
tang_shou3 小时前
STM32CubeMx使用STM32F4系列芯片实现串口DMA接收
c语言·arm开发·stm32·单片机·嵌入式硬件·mcu·stm32cubemx
m0_553210043 小时前
stm32读取rtc年份错误问题,需要指定星期几
stm32·单片机
Jerry丶Li3 小时前
NXP--S32K移植FreeRTOS
嵌入式硬件·rtos·nxp·s32k
q27551300424 小时前
PL27A1对拷线搭配 PTCB818A 设计资料 高速跨系统互传+键鼠共享一缆搞定
经验分享·单片机·嵌入式硬件·硬件架构·信号处理