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

简单了解高阻抗(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、注意事项

错误用法后果

引脚悬空但未上拉/下拉

电压不稳定,容易误判、高功耗

总线多个设备不进入高阻

发生“信号冲突”→ 烧芯片

忘记退出高阻态输出信号

引脚不响应、不工作

相关文章

华为什么系列打游戏最好
365提款不到账的吗

华为什么系列打游戏最好

📅 01-26 👀 1112
王祖蓝是什么星座
365bet注册官网

王祖蓝是什么星座

📅 10-08 👀 3601