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

简单了解高阻抗(High-Z)

  高阻抗(High-Z)状态表示一个引脚既不输出高电平(1),也不输出低电平(0),而是像一个断开的电路,表现得像一个非常大的电阻(几 MΩ 或更高)连接到信号线上;是一种让引脚“退出驱动、让位他人”的机制,换句话说:

该引脚“退出了战斗”,不影响总线电平,也不参与驱动。

1、高阻抗的电气本质

在电路内部,一个 IO 引脚的电平是通过下图这种结构控制的:

         Vcc│[PMOS] ← 控制输出高电平│
IO ──────┼─────► 输出引脚│[NMOS] ← 控制输出低电平│GND

在正常“推挽输出”中:

  • PMOS 导通 → 输出高电平

  • NMOS 导通 → 输出低电平

而当进入 高阻状态(High-Z)时

  • PMOS 和 NMOS 都关闭

  • 输出引脚 不连接到电源或地

  • 表现为一个断开的端口,称为“三态逻辑”中的第三态(除了高、低之外的“Z”)

2、高阻抗的主要特点

特点描述
像断路 引脚不会驱动任何电压
输入高灵敏 极易受周围电场、静电、噪声干扰
电压不可预测 如果悬空,电平是随机的、不稳定的
不影响总线 多个器件共用信号线时,可通过高阻切换“谁说话”
常见于三态IO口 比如 GPIO、复用接口、总线驱动器、数据总线

3、High-Z 状态的典型应用场景

场景原因
总线共享(如 I²C、SPI、并口) 多个器件共用数据线,非当前发送器需进入高阻以避免冲突
多主设备总线 例如多主 I²C,每个主设备在非通信时必须释放总线(High-Z)
MCU 作为输入时 设置为高阻输入状态,以监听电平,不干扰外部驱动
开漏/开集电极输出 输出“0”时拉低,输出“1”时mos管关闭进入高阻,由上拉电阻拉高
三态缓冲器控制信号 控制何时一个设备“说话”,何时“闭嘴”(进入高阻)

三态缓冲器(tri-state buffer)

               控制引脚EN = 1
输入信号 ─▶ [缓冲器] ─▶ 输出信号控制引脚EN = 0
输入信号 ─▶ [缓冲器] ─▶ 高阻状态(不影响输出线)

 

控制电路是否驱动输出,常用于多设备控制同一信号线,如 MCU 总线接口

4、如何“进入”和“退出”高阻抗状态

具体做法取决于你用的是什么平台或设备,但基本分为以下两种常见控制方式:

①MCU(单片机)中的 GPIO 控制

  MCU GPIO 引脚常见状态:

模式含义
输出推挽 有源输出高或低(非高阻)
输出开漏 输出 0 时导通;输出 1 时进入高阻
输入模式(高阻) IO 不主动驱动电平,只“监听”电压
输入带上拉/下拉 高阻 + 内部拉电阻
模拟模式 也常为高阻,适合ADC采样

 

进入高阻(例:STM32、Arduino、ESP32):

  • 把 IO 设置为 输入模式(Input / Floating)

  • 或设置为 开漏输出且输出高电平

示例:STM32 HAL 库

HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET); // 拉高(开漏)
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;         // 设置开漏输出
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);             // 进入高阻态

示例:Arduino

pinMode(PIN, INPUT);          // 高阻态
pinMode(PIN, OUTPUT);         // 推挽
digitalWrite(PIN, HIGH);      // 推挽输出高
pinMode(PIN, INPUT_PULLUP);   // 高阻 + 上拉

使用三态缓冲器(Tri-state buffer)

  硬件逻辑中使用专门的芯片(如 74HC125、74LS245)或 FPGA 驱动:

原理图示意:

      输入信号 ──► [三态缓冲器] ──► 总线(共用)▲EN 控制引脚

EN=1 时:

  • 缓冲器导通 → 输出信号

EN=0 时:

  • 缓冲器输出进入高阻状态,不会干扰总线

4、注意事项

错误用法后果
引脚悬空但未上拉/下拉 电压不稳定,容易误判、高功耗
总线多个设备不进入高阻 发生“信号冲突”→ 烧芯片
忘记退出高阻态输出信号 引脚不响应、不工作
http://www.sczhlp.com/news/648.html

相关文章:

  • 中台建设为什么需要领域驱动设计
  • 不同Linux发行版Node安装指南
  • 虚化引擎游戏解包工具
  • hyper-v安装manjaro虚拟机
  • spring-data-JPA代码审计
  • 小作业 7(5 道不等式练习题)
  • CF2128F Strict Triangle
  • Dubbo
  • AWS上实现超大规模模型训练的近线性扩展
  • 现代Web服务器性能革命:我的Rust框架探索之旅(6906)
  • Hyperlane性能调优秘籍:从毫秒级响应到百万QPS的优化之路(0548)
  • 实时通信协议的Rust实现(4131)
  • Rust生态系统在Web开发中的优势(9336)
  • TCP连接优化的实战经验(3008)
  • 高并发处理的Rust实现方案(6871)
  • 内存使用效率的终极对决:零拷贝技术的实战应用(0581)
  • 实时通信技术深度对比:WebSocket与SSE的最佳实践(4367)
  • Hyperlane框架的高级特性深度解析:从零拷贝到宏系统的完美融合(8284)
  • WebSocket服务端的高效处理(2177)
  • 跨平台Web服务开发的新选择(5907)
  • 异步编程在Web开发中的应用(9589)
  • 从零开始构建高性能实时聊天系统:Hyperlane框架实战指南(3242)
  • 高性能路由系统的设计与实现(4242)
  • 现代Web框架的性能基准测试(8242)
  • HTTP响应处理的灵活设计(2278)
  • HTTP请求处理的高效封装(6235)
  • Web服务器性能大比拼:谁才是真正的速度之王(0372)
  • 中间件架构设计模式:从Express到现代Rust框架的演进(4232)
  • 中间件架构的优雅实现(8032)
  • Rust异步Web框架性能突破之路(1499)