1. 引言

在工业控制、数据采集及嵌入式系统中,常常需要处理开关量信号。最简单的开关量是"0"和"1"两种状态,但在工程现场,开关信号的物理形态多种多样——可能是高低电平、悬空/接地、供电/开路等。这类信号统称为离散量信号
在这里插入图片描述

三种典型的离散量输入类型为:

  • V/地:高电平(V)和接地(GND)两种状态
  • V/开:高电平(V)和开路(悬空)两种状态
  • 地/开:接地(GND)和开路(悬空)两种状态

输出端同样需要能够产生这三种信号形式,以满足不同负载和后续设备的接口要求。
在这里插入图片描述
在这里插入图片描述

本文参照典型的离散量输入输出采集卡设计,完整讲解从信号调理、隔离保护、模式选择到单片机 0–5V 逻辑电平的转换电路,帮助工程师快速搭建可靠、兼容多种信号类型的离散量接口。

2. 系统总体架构

一个完整的离散量采集与输出系统通常包含以下功能模块:

单片机系统

信号调理与隔离

输出通道

输入通道

现场信号端

V/地 传感器

V/开 开关

地/开 按钮

模式选择 / 上拉下拉

光电隔离

MCU GPIO 0–5V

光电隔离

驱动级

V/地 / V/开 / 地/开 输出

核心设计原则:

  • 信号隔离:所有输入输出均使用光电耦合器隔离,消除现场干扰和地环路
  • 模式兼容:通过跳线或开关选择输入信号类型,同一硬件兼容三种信号
  • 电平转换:将现场电压域(常见 12V/24V)转换到 MCU 可接受的 0–5V
  • 输出驱动:能驱动继电器、指示灯或下级设备,并支持多种输出形态

3. 离散量输入通道设计

输入通道需要将 V/地、V/开、地/开 三种信号统一转换为 0V/5V 逻辑电平,同时实现电气隔离。

3.1 V/地 信号输入

V/地信号最为简单,信号源主动提供高电平和低电平。常见的电压等级为 12V 或 24V(工业标准),需要经过限流和光耦隔离后送入 MCU。

电路原理

隔离带

V_IN(高/低)

R1 限流电阻

光耦 LED 侧

GND

R2 上拉(到 VCC_5V)

MCU_GPIO_IN(0/5V)

  • V_IN 为高(12V/24V)时,光耦 LED 导通,光电三极管饱和,MCU_IN 为低电平(0V)
  • V_IN 为低(GND)时,光耦 LED 截止,MCU_INR2 上拉到 5V

注意:输入端光线逻辑是反相的——高电平输入 → MCU 读到低电平;低电平输入 → MCU 读到高电平。这一反相可在软件中处理,也可在输出端再加一级反相。

关键元器件选型

元件 推荐参数 说明
光耦 PC817 / TLP185 通用低速光耦,CTR ≥ 50%
R1 2.2kΩ(24V 输入) LED 正向电流约 10mA
R2 10kΩ 上拉电阻,保证截止时稳定输出 5V

3.2 V/开 信号输入

V/开 信号是指:有效状态为高电平,无效状态为悬空(高阻)。当输入悬空时,若无处理,光耦 LED 端线路也悬空,电平不确定,容易受干扰误触发。

解决方案:输入端增加下拉电阻

V_IN(高/悬空)

R1 限流

光耦 LED

GND

Rpd(下拉到 GND)

  • V_IN 为高电平时,电流经 R1 流入 LED,光耦导通
  • V_IN 悬空时,R_pd 将输入端拉到 GND,LED 无电流,光耦可靠截止

R_pd 的典型取值:10kΩ–47kΩ。过小会导致有效高电平时分流过多,过大则下拉能力不足。

3.3 地/开 信号输入

地/开 信号是指:有效状态为接地,无效状态为悬空

输入端需要上拉到某个参考电压(如 V_24V 或 V_5V_ISO),使悬空时输入固定为高,接地时被拉低。

V_IN(低/悬空)

R1 限流

光耦 LED

GND_ISO

Rpu(上拉到 V_REF)

  • V_IN 接地时,R1 两端有压差,电流经 LED 到 GND,光耦导通
  • V_IN 悬空时,R_pu 将输入端拉高到 V_REF,LED 两端等电位,无电流,光耦截止

实际设计中,V_REF 可以复用 V/地 输入所使用的供电轨(如 +24V)。R_pu 典型值 4.7kΩ–10kΩ。

3.4 三合一输入模式选择电路

要实现同一硬件兼容三种信号类型,核心思路是通过跳线或拨码开关切换上拉/下拉/直通配置。

V/地 模式

V/开 模式

地/开 模式

V_IN 端子

跳线 / 开关矩阵

直通到 R1

接入 Rpd → GND

接入 Rpu → V_REF

R1 限流

光耦

MCU

实现方式

使用 2×3 排针 + 短路帽,两种跳线配置即可覆盖三种模式:

模式 跳线连接 等效电路
V/地 不接上拉/下拉(或悬空跳线位) 输入端仅经 R1 到光耦
V/开 跳线接通 R_pd → GND 输入端对地有下拉电阻
地/开 跳线接通 R_pu → V_REF 输入端对 V_REF 有上拉电阻

实际也可使用三档拨动开关或继电器切换,实现更便捷的配置。

4. 离散量输出通道设计

输出通道的任务是:将 MCU 的 0/5V 逻辑信号转换为符合现场要求的离散量输出。

4.1 V/地 输出

目标:当 MCU 输出高电平时,输出端为 V(如 24V);低电平时为 GND。

实现方案:光耦 + NPN 三极管推挽级

隔离

集电极

MCU GPIO

R1 限流

光耦 LED

GND

V_24V_ISO

R2 上拉

Q1 NPN 基极

OUT 端子

负载

GND_ISO

  • MCU 输出高电平 → 光耦导通 → Q1 基极为低(截止) → OUT 通过负载内部上拉到 V_24V
  • MCU 输出低电平 → 光耦截止 → Q1 基极被 R2 拉高(导通) → OUT 被拉低到 GND

需要做逻辑反相处理时,可在 MCU 侧软件反转,或使用两路光耦/反相器。

4.2 V/开 输出

要求:输出端在高电平和悬空(高阻)之间切换,而不是主动拉低。这常见于需要模拟"干接点"开关的场景。

实现方案:光耦 + MOSFET 作为开关

使用 N-MOSFET 做高边开关(或 P-MOSFET 配合电平移位):

MCU GPIO → 光耦 → MOSFET 栅极驱动
MOSFET 漏极 → OUT(+24V 通过 MOSFET 通断)
  • MCU 高电平 → 光耦导通 → MOSFET 导通 → OUT = 24V
  • MCU 低电平 → 光耦截止 → MOSFET 截止 → OUT = 高阻

或可采用光耦继电器(PhotoMOS),直接实现开/关(无机械触点),最为简洁。

推荐器件

  • AQY212 / TLP172A:内置 MOSFET 输出的光耦继电器,可直接驱动小负载,隔离电压高,输出悬空或导通,天然适合 V/开 输出

4.3 地/开 输出

要求:输出端在接地和高阻之间切换。

实现:光耦 + NPN 开集极输出

隔离

MCU GPIO

R1

光耦 LED

Q1 NPN 开集极

OUT(地/开)

外部上拉(可选)

  • MCU 高电平 → 光耦导通 → 电流流入 Q1 基极 → Q1 饱和导通 → OUT 接地
  • MCU 低电平 → 光耦截止 → Q1 截止 → OUT 高阻

开集极输出可以承受比 MCU 供电更高的电压(由 Q1 的 V_CEO 决定,如 2N3904 可承受 40V),注意续流保护。

4.4 输出模式选择

同样通过跳线切换输出拓扑:

  • 连接推挽级 → V/地 模式
  • 连接 MOSFET 高边开关 → V/开 模式
  • 连接 NPN 开集极 → 地/开 模式

若使用 PhotoMOS 之类器件,甚至可以仅更换末级驱动电路板(子板)来实现不同输出模式。

5. 隔离设计要点

5.1 电源隔离

输入侧、输出侧、MCU 侧三者必须独立供电,使用隔离 DC-DC 模块:

供电 典型电压
MCU 侧 板载 LDO/DC-DC 5V / 3.3V
输入隔离侧 隔离 DC-DC 5V 或 24V(依传感器)
输出隔离侧 隔离 DC-DC 24V(驱动继电器等)

推荐使用 B0505S / B2405S 系列隔离电源模块,隔离耐压 1500V DC 以上。

5.2 PCB 布局

  • 隔离带两侧保持≥8mm 爬电距离
  • 光耦下方 PCB 开槽,增强物理隔离
  • 不同电源域的地平面完全分割,使用不同的 GND 网络符号

6. 完整参考电路

下面给出一个完整的多通道离散量输入输出电路参考方案(以 4 路输入 / 4 路输出为例):

输入通道(单路)核心节点

现场端子 J_INx
  ├── R1(2.2kΩ / 1206)→ 光耦 PC817 引脚 1(阳极)
  ├── 跳线 JPx 公共端
  │   ├── 1 脚:R_pd(47kΩ / 0805)→ GND_ISO_IN
  │   └── 3 脚:R_pu(10kΩ / 0805)→ V_24V_ISO_IN
  └── TVS 管 SMAJ24CA 对地保护
光耦 PC817:
  引脚 2(阴极)→ GND_ISO_IN
  引脚 3(发射极)→ GND_MCU
  引脚 4(集电极)→ R_pullup(10kΩ)→ VCC_5V_MCU
  引脚 4 → MCU GPIO(配置为输入)

输出通道(单路)核心节点

MCU GPIO(输出)→ R_drv(330Ω)→ 光耦 PC817 引脚 1(阳极)
                                引脚 2(阴极)→ GND_MCU
光耦引脚 4(集电极)→ V_24V_ISO_OUT(经 10kΩ 上拉)
                    → Q1 NPN(2N3904)基极(经 1kΩ 基极电阻)
Q1 集电极 → J_OUTx 端子
Q1 发射极 → GND_ISO_OUT
继电器驱动时,J_OUTx 经继电器线圈回 V_24V_ISO_OUT

7. 采集卡参考设计——以 NI DAQ / 凌华 PCI 板卡为例

商业离散量输入输出采集卡(如 NI 6509、凌华 PCI-7230 等)有以下共同设计特点,可供参考:

设计要点 常见实现
输入范围 兼容 0–30V DC,过压保护 ±40V
隔离电压 2500Vrms 光耦隔离
输入阻抗 >100kΩ(低负载效应)
输入类型 可通过跳线/软件配置为 NPN/PNP
输出类型 开集极输出,单路 500mA 灌电流
供电方式 PCI 总线供电 + 外部端子供电可选
通道数 8/16/32 路隔离 DI,8/16 路隔离 DO

自研离散量采集卡设计建议

  1. 使用 USB/PCIe 桥接芯片(如 CH347 / FT600)与上位机通信,配合 MCU 或 FPGA 做采集调度
  2. 输入使用 8 通道光耦阵列(如 TLP290-4 × 2),减少布板面积
  3. 输出使用达林顿阵列(如 ULN2803)+ 光耦,实现多路大电流驱动
  4. 每路输入配备 LED 指示灯,方便现场调试
  5. 模式选择可用电子开关(如 CD4066)配合 MCU 控制,省去跳线

8. 实际应用注意事项

  1. 输入去抖:机械开关型输入会有抖动,建议 MCU 侧做 10–50ms 软件去抖
  2. 过压保护:输入端并联 TVS 管(如 SMAJ24CA),防止瞬态过压损坏光耦
  3. 续流二极管:输出驱动感性负载(继电器、电磁阀)时,必须反并联续流二极管(如 1N4007)
  4. 光耦速度:普通光耦(PC817)开关速度在 kHz 级别,高速应用选用 6N137 等高速光耦
  5. CTR 衰减:光耦电流传输比会随温度和使用时间下降,设计时留出 50% 以上余量
  6. 共模抑制:长线传输时,输入端可并联电容(0.1μF)滤除共模噪声,但会降低响应速度

9. 总结

本文从工程实践角度出发,完整介绍了离散量输入输出电路的搭建方法:

  • 输入侧:通过跳线切换上拉/下拉配置,兼容 V/地、V/开、地/开 三种信号,经光耦隔离后接入 MCU
  • 输出侧:利用光耦 + 三极管 / MOSFET 组合,实现三种输出形态的灵活切换
  • 隔离设计:电源隔离 + 信号隔离 + PCB 布局隔离,三管齐下确保系统可靠性
  • 参考采集卡设计:借鉴商用产品的架构,可快速扩展为多通道 USB/PCI 采集卡

掌握这些电路,即可应对绝大多数工业离散量接口场景,为自研采集卡或嵌入式控制系统打下坚实基础。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐