#申请原创#
@21小跑堂
对于MCU芯片来说,无论是配置为输入,还是配置为输出,归根结底,最终操作的对象都是电压信号,而不是电流信号。这一点,大家要清楚。 如果外部输入是电流信号,则需要经过硬件电路转为电压信号,MCU程序采集并处理电压数据,再反向计算得到电流数据,如下图所示:
那为什么MCU的引脚只能识别电压信号呢?这个问题前段时间有个想转行做嵌入式软件开发的朋友问过我,当时我也只能回答部分,后面查阅和整理资料,其实这与半导体的物理特性、数字电路设计原理及其实际应用需求有关,下面我们展开说说。 半导体工作原理 晶体管作为基础单元: MCU的输入引脚本质上是连接到内部的晶体管电路,比如CMOS或TTL门电路,晶体管通过电压电平的高低来切换导通或截止状态,比如高电压代表逻辑“1”,低电压代表逻辑“0”。 电压敏感的栅极: 以MOSFET(金属氧化物半导体晶体管)为例,其栅极通过电压(而非电流)控制导通,输入阻抗极高,几乎不消耗电流,所以,MCU引脚对电压变化敏感,而不会直接对电流变化做出响应。 数字电路标准化 逻辑电平的定义: 数字电路依赖预设的电压阈值,比如TTL的2.0V以上为高电平,0.8V以下为低电平,当然不同MCU厂商定义的阈值可能会有所区别,可以查看MCU数据手册的电气参数等章节,比如STM32G4系列的数据手册里关于电压阈值说明如下图所示:
电流信号如果没有通过硬件电路或者专用芯片转换为电压信号,是无法直接匹配这些标准的。正如我们平时基本上也是把高低电平与电压数据绑定在一起一样。 抗干扰性: 电压信号在PCB走线上相对更易保持稳定,而电流信号容易受到线路阻抗或噪声等的影响,导致逻辑误判。 输入保护与接口设计 静电防护: MCU引脚通常内置ESD保护二极管,这些元件通过钳制电压来防止损坏,但对过电流比较敏感,因此在硬件设计上一般需要接外部限流电阻,如下图所示:
阻抗匹配: 高输入阻抗的电压检测电路能减少对信号源的负载效应,但是如果直接检测电流,则可能会干扰外部电路。 实际应用中的信号类型 传感器接口: 多数传感器(如温度/湿度/光敏/称重传感器等)的输出都是模拟电压信号,如果需处理电流信号,比如常见的4-20mA工业标准,则需要通过精密电阻转换为电压后再输入MCU,或者使用外置ADC芯片读取电压信号且MCU通过SPI总线等读取ADC数据,即有些ADC芯片的集成度非常高,无需外部复杂的比较器硬件电路,这种集成方案,大家有需求的也可以了解一下,如下图所示:
模拟输入: ADC(模数转换器)引脚同样也是检测电压信号,电流信号也需要先经过转换得到电压信号。 有模拟电压和数字电压的概念,但好像没有模拟电流和数字电流的概念吧。 功耗与集成度 低功耗设计: 电压检测电路功耗极低,适合电池供电场景;直接测量电流可能需要额外电路,会增加功耗和芯片复杂度。 集成限制: MCU工艺专注于高密度数字电路,集成电流检测模块(如电流镜)会占用更多硅面积,提高芯片成本。 以上作者通过几个方面阐述了MCU引脚为什么只能识别电压信号的一些理由,希望对大家有用。
|