单片机工业控制器

这是一个使用单片机和FPGA做的自动承重分拣设备的控制器

控制柜

EMI交流电源K滤波器

电磁干扰(EMI,Electromagnetic Interference): 指设备在运行过程中向周围环境发出的电磁能量,可能会对其他设备造成干扰。

固态继电器

控制器

外观和接口

控制板

系统介绍

本控制器使用单片机+FPGA的组合,为了满足高速需求至少 600pic/min,这个使用PLC是做不到的原因如下:

1 响应时间极限

• PLC 的典型循环周期在 1 ~ 10 ms,且受操作系统调度、梯形图扫描机制影响,抖动较大。

• 单片机裸机或 RTOS 可以把中断响应压到 1 µs 级;再配 FPGA 做硬件级触发,可把从“重量突变→剔除阀动作”的闭环时延降到 10 µs 以内

2 并行流水线

药品线通常 200 ~ 600 pcs/min,对应每 100 ~ 300 ms 就有一颗药。需要同时完成:高速 A/D 采样、数字滤波、阈值比较、剔除信号输出、条码/图像同步。

• FPGA 可在一个时钟周期内并行完成上述所有步骤,而 PLC 只能顺序扫描,无法在同一 tick 内完成多任务

3 确定性抖动

PLC 的通信栈、任务调度、看门狗等都会带来 10-100 µs 的抖动,这在以 0.1 g 精度、1 m/s 带速运行的称重段,会直接转化为 0.5 g 以上的称重误差。

• FPGA 的所有逻辑都在硬件门级实现,时序固定到纳秒级,无抖动

4 外设接口灵活性

高速称重模块常用 24-bit Σ-Δ ADC(采样率 4 kS/s~20 kS/s)、LVDS 相机接口、直线电机伺服驱动器,需要自定义高速串行协议或严格同步触发。

• FPGA 可以通过硬件描述语言随时“写”出新的接口,而 PLC 的通信模块种类有限,且更新周期长

5 系统成本与体积

• 一条高速分拣线往往要求 20 ~ 40 个称重单元并行工作。若用中型 PLC(每套含高速模拟量、运动控制模块),单站硬件成本 > ¥8k;而 STM32+中小规模 Cyclone IV 单站 BOM < ¥600,且体积只有 PLC 的 1/10

6 可靠性并非短板

• 早期单片机因外部分立元件多而可靠性差,但现在工业级 MCU + FPGA 核心板已做到全表贴、工业级器件、4 层板阻抗控制,现场 MTBF 与 PLC 相当

因此,在高速、高精度、大批量并行处理的药品称重分拣场景,“单片机+FPGA”用并行硬件逻辑换取时间和精度,PLC 用通用性和生态换取易维护,需求不同,自然分道扬镳

单片机和FPGA如何协同完成高速承重任务

一、功能分工(谁干什么)

1 FPGA——“硬实时流水线”

• 产生 1~10 MHz 的采样时钟,驱动 24-bit Σ-Δ ADC;

• 并行完成 24-bit 移位 → 滤波(FIR / CIC) → 阈值比较 → 剔除脉冲输出;

• 同时锁定条码/图像触发信号,保证在同一时钟周期内完成“称重-图像-剔除”同步;

• 把每颗药的重量、时间戳、通道号压缩成 32-bit 数据包,写入 FIFO,留给 MCU 读取;

• 生成 12-bit 高分辨率 PWM,直接驱动音圈或高速电磁阀,抖动 < 50 ns。

2 单片机(STM32、Cortex-M4 等)——“管理+后处理”

• 通过 SPI 或 8-bit 并行总线把 FPGA FIFO 里的原始数据批量读回;

• 做统计平均、温漂补偿、标定曲线更新;

• 把 NG 品信息经 CANopen 或 EtherCAT 上传到整线 PLC/SCADA;

• 接收上位机配方(目标重量、剔除阈值)并在线改写到 FPGA 的寄存器;

• 负责掉电保存、日志、人机界面、看门狗等“杂务”。

二、通信方式(怎么握手)

数据线

• 8-bit 或 16-bit 并行口 + 2 根握手线(REQ / ACK)——一次突发 1 kB,带宽 ≈ 20 MB/s; • 如果板子空间紧张,改用 40 MHz SPI,主频下有效带宽 ≈ 10 MB/s,已足够 600 pcs/min 产线。

控制/寄存器线

• FPGA 内部做 256×16-bit 双口 RAM,MCU 通过 A0~A7 地址线随机读写,像访问外设寄存器; • MCU 把新的重量阈值、滤波系数、标定增益写进去,FPGA 下一个时钟周期就生效。

中断/事件

• FPGA 每完成一次“称重+剔除”就在 FIFO 里压入 1 个 32-bit 结果,并拉高 INT; • MCU 收到中断后读走一整批数据,再把 INT 清零,形成乒乓式缓冲。

时间线示例(一颗药 100 ms 节拍)

0 ms 药品进入称重段 → FPGA 0.2 ms 内完成 4000 次采样并滤波 → 0.8 ms 给出剔除脉冲 → 2 ms 内把结果写入 FIFO → MCU 在 5 ms 内读走数据并上传 → 10 ms 后上位机收到 NG 报警。

整条链路的硬实时部分(0~1 ms)由 FPGA 保证;其余 99 ms 的统计、通信、人机交互由 MCU 负责。

一句话:

FPGA 用硬件并行逻辑把“μs 级称重→剔除”做成确定性流水线;单片机用 C 语言把“参数管理、统计、网络”做成易维护的后台任务,两者通过高速 SPI 或并行总线 + 中断握手即可无缝配合。

I2C EEROM 断电存储数据

4AHCT541 同相缓冲/驱动器

74AHCT541 是一块“带三态输出的 8 路同相缓冲/驱动器”,专门用来把单片机/FPGA 的弱 IO 信号变成“力气大、抗干扰、可多片并联”的总线级信号。

一、它到底“干嘛用”?

场景 用 74AHCT541 的原因
MCU 驱动能力不足 MCU 引脚只能出 4 mA,541 能出 ±35 mA,可直接点亮 LED、驱动继电器、长距离线缆
总线隔离/多主共享 三态输出(OE 脚)能让总线“脱开”,多片 541 并联,不会打架
电平转换 输入兼容 TTL(5 V),输出也是 CMOS/TTL 兼容,3.3 V 系统 ↔ 5 V 外设
信号整形 输入迟滞 + 快速边沿,消除长线反射、毛刺
保护 MCU 被驱动的器件故障时,541 先挂,MCU 引脚不直接暴露在大电流/高压

二、芯片关键信息

  • 逻辑功能:8 路同相缓冲(输入=输出,不反转)

  • 输出类型:三态(高电平 / 低电平 / 高阻)

  • 驱动能力:IOH/IOL = ±35 mA(VCC=4.5 V)

  • 传播延时:典型 5.5 ns(比 74HC 系列更快)

  • 电源范围:4.5 V – 5.5 V(AHCT 系列,TTL 兼容)

  • 封装:SOIC-20、TSSOP-20、DIP-20 均有

三、典型接线

VCC  ── 5 V
GND  ── 0 V
OE1, OE2  ── 低电平使能(可接 MCU 脚做总线开关)
1A..8A  ── 来自 MCU/FPGA
1Y..8Y  ── 去 LED、继电器、总线、长电缆

OE=1 → 所有输出高阻(总线脱开) OE=0 → 正常缓冲输出

四、应用实例

MCU → 多路 LED 大电流

MCU 引脚 → 74AHCT541 → LED 阵列(每路 20 mA,8 路共 160 mA)

FPGA → 长距离 RS-485 总线

FPGA 3.3 V IO → 74AHCT541(5 V 输出) → 485 收发器,提高噪声容限

多片 RAM 并联

每片 RAM 数据线经 541 驱动,OE 由片选控制,实现“谁选通谁说话”

五、与 74HC541、74HCT541 区别

系列 输入阈值 电源 与 3.3 V 系统匹配
74HC541 CMOS 阈值 (0.5 VCC) 2-6 V 需额外电平转换
74HCT541 TTL 阈值 (0.8 V) 4.5-5.5 V 可直接接 3.3 V MCU
74AHCT541 TTL 阈值,更快 4.5-5.5 V 同上,速度/驱动更高

74AHCT541 就是“8 路大力士同相开关”:让 MCU 的弱信号瞬间升级成 35 mA 的总线级驱动,还能随时“隐身”高阻态,不打架、不烧片。

金升阳DCDC

VRD240512MP-8W 是金升阳的18-36V DC输入 输出5V和12V 的DC-DC电源模块

LM339M(四路差分比较器)

它是一块“纯硬件的电压裁判”,随时把两路模拟电压比出高低,并立刻给出数字 0/1 结果

一、它到底“干嘛用”?

场景 用 LM339M 的理由
过压/欠压检测 把电源或电池电压与基准比较,一旦超出范围就拉低 PG、关断系统
零交叉检测 把交流信号与 0 V 比较,产生过零中断,驱动可控硅或同步采样
窗比较器 用两片 LM339 做“窗口”,只在电压落在某区间时输出高
简单 ADC 多路 LM339 + 电阻分压 = 并行比较型闪速 ADC
振荡器/脉冲整形 把缓慢变化的正弦波整形成干净的方波(施密特触发)
红外/霍尔传感器接口 把微弱模拟信号与阈值比较,直接得到数字“有/无”信号

二、为什么选 LM339M 而不是运放或 MCU ADC?

对比点 LM339M 运放 MCU ADC
速度 1.3 µs 典型 受限于环路补偿,慢 采样+计算,ms 级
功耗 单路 0.8 mA,可关断 通常更高 ADC+CPU 更高
输出类型 开路集电极,可直接拉低 30 V/16 mA 模拟,需后级比较 数字 IO,需软件
成本/体积 四路合一,几毛钱 单路 需要 MCU
可靠性 纯硬件,零软件延迟 需要外部迟滞 软件异常会失效

一句话:“LM339M 是硬件里最快的‘电压裁判’,比 MCU 轮询快 1000 倍,比分立运放省元件。”

RS485 数字隔离

RS485电平转换芯片

ADuM1402 就是一块“高速、低功耗、4 通道的数字隔离桥”——把 A 侧的数字信号完整无缺地送到 B 侧,而两侧之间可以有几 kV 的电位差,彼此不共地。

典型场景 为什么要用它
MCU ↔ 高压功率驱动(电机、逆变器、继电器) 防止功率地噪声/浪涌串进 MCU,烧毁单片机或让人触电
通信接口隔离(RS-485、CAN、SPI) 消除长距离地环流,提高抗干扰能力
医疗设备 满足安规(IEC-60601):病人端与市电端必须隔离
开关电源/太阳能逆变器 控制侧与高压母线侧需要几百伏甚至上千伏隔离

为什么选“数字隔离器”而不是传统光耦?

对比点 ADuM1402(数字隔离器) 传统光耦
传输原理 芯片级微变压器(磁耦)+ CMOS LED → 光电晶体管
速度 最高 90 Mbps,可跑 SPI 到 25 MHz 几 kbps ~ 1 Mbps
功耗 1 Mbps 时仅约 1 mA/通道 5 ~ 10 mA/通道
时序精度 2 ns 级通道匹配,可跑高速时钟 随温度、老化漂移大
集成度 4 通道单片,16-SOIC 需多颗光耦+电阻+三极管
寿命/温度 –55 °C ~ 125 °C,无 LED 老化 LED 衰减导致 CTR 下降

一句话:“用 ADuM1402 可以把原来一大把光耦+外围的电路,缩成一颗 SOIC16,跑得更快、更稳、更省电。”

三、芯片内部怎么做到的?

ADI 的 iCoupler® 技术:

在 CMOS 芯片上蚀刻出微型空芯变压器(线圈只有几十微米)。

输入侧把数字信号调制成短脉冲 → 通过变压器 → 输出侧解调还原。

变压器天然隔直流,耐压 > 2.5 kVrms,且 EMI 极低。

不需要 LED,也就没有光耦的“CTR 漂移、温漂、老化”问题

四、ADuM1402 在电路里长什么样?

4 个隔离通道,方向是 2 进 2 出(即 A→B 两路,B→A 两路)。

每侧独立供电 2.7 V – 5.5 V,自动完成 3.3 V ↔ 5 V 电平转换。

典型封装:16-SOIC-W(宽体,爬电距离 ≥ 8 mm)。

引脚图示意(顶视):

VDD1  1  16  VDD2
IN1+  2  15  OUT1+
IN1-  3  14  OUT1-
IN2+  4  13  OUT2+
IN2-  5  12  OUT2-
GND1  6  11  GND2
NC    7  10  NC
NC    8   9  NC

五、三分钟看懂应用例子

隔离 SPI

MCU 3.3 V ——> ADuM1402 ——> 24 V 电机驱动器

SCLK、MOSI、MISO、CS 四线全部隔离,电机噪声进不到 MCU。

隔离 RS-485

MCU UART → ADuM1402 → MAX3485(485 收发器)

一侧 3.3 V,另一侧 5 V;长线通信不再因地环路烧毁芯片。

医疗设备 UART

电脑 USB ↔ 隔离 DC-DC ↔ ADuM1402 ↔ 病人监护探头

通过 IEC-60601 安规认证。

ADuM1402 就是一颗“4 车道高速磁耦桥”:把任何 MCU/FPGA 的数字 IO,安全、快速、低功耗地送到另一个电压域,而两侧可以完全不共地,工业、医疗、电源都能用。

IO口 隔离输入

他的IO口使用光耦和单片机隔离

CLT3-4B 是 ST 的一款 4 通道数字输入限流器,常用于工业控制器中 24V 数字输入接口的前端保护。将它与光耦(如 PC817、LTV-357T 等)组合,可以构建一个 具备隔离的输入型 IO 口,适用于 PLC、工控板等场景

推荐连接方式(CLT3-4B + 光耦)

1. 输入侧(接传感器/开关)

IN1~IN4 接外部开关或传感器(如按钮、接近开关)

VCC 接 24V 工业电源

GND 接系统地

2. CLT3-4B 输出 → 光耦输入

CLT3-4B 的每个通道输出是一个 开漏结构,可以直接驱动光耦的 LED 输入端。 连接方式:

CLT3-4B 的 OUTx → 光耦的 LED 阴极

光耦的 LED 阳极 → 通过一个限流电阻(如 1kΩ)→ 3.3V 或 5V(取决于你控制器的逻辑电平)

光耦的 LED 两端并联一个反向二极管(如 1N4148)可防止反向电压损坏光耦

3. 光耦输出 → 控制器 IO 口

光耦输出为开集电极(NPN),连接方式如下:

光耦的 发射极 → 控制器 GND

光耦的 集电极 → 控制器 IO 口

控制器 IO 口 → 上拉电阻(如 10kΩ)→ 3.3V/5V(根据 MCU 电平)

链接方式:

[传感器] → [CLT3-4B INx] → [OUTx] → [光耦 LED-]
                                     [光耦 LED+] → [限流电阻] → [3.3V/5V]
[光耦输出] → [MCU IO] ← [上拉电阻] → [3.3V]

注意事项

限流电阻计算:光耦 LED 正向压降约 1.2V,电流建议 5~10mA,电阻选 330Ω~1kΩ 范围。

抗干扰设计:可在光耦输入端加 RC 滤波或 TVS 管。

输出逻辑:CLT3-4B 为 低电平有效,即输入为 24V 时,OUTx 导通,光耦 LED 亮,MCU IO 被拉低。

实际应用参考

工控设备中常见类似结构,如使用 LTV-357T-C 光耦配合前端保护芯片,实现 24V 输入隔离转换为 3.3V 逻辑信号

IO隔离输出

本控制器使用ST的 VNQ860SP(ST 的高边智能功率开关)与光耦组成一个隔离型控制器输出驱动 IO 口,可以实现低电压逻辑控制高边负载(如继电器、电磁阀、灯等)的方案

控制器(如 3.3V/5V MCU)通过光耦控制 VNQ860SP 的输入引脚;

实现 逻辑隔离 + 高边驱动(最大 4 路,每路 3A);

适用于工业控制、PLC 输出、电磁阀驱动等场景。

器件 型号建议 说明
高边开关 VNQ860SP ST 的 4 通道高边驱动,带诊断保护
光耦 LTV-357T-C 或 PC817 普通晶体管输出型即可
MCU STM32 / ESP32 / Arduino 控制逻辑
电源 12V 或 24V VNQ860SP 的负载电源
限流电阻 220Ω~1kΩ 光耦 LED 限流
上拉电阻 10kΩ 光耦输出上拉

逻辑流程

MCU IO → 光耦 → VNQ860SP INx → OUTx → 负载

SMBJ7.5CA TVS 静电和浪涌保护器件

工业环境中的接口和供电都需要EMC保护

SMBJ7.5CA 就是一条“反应极快的 7.5 V 保险丝”——平时隐身,一旦线路出现高于 7.5 V 的静电或浪涌,它在 ≤1 ns 内导通,把上千伏的尖峰“吃”成 12.9 V 以内,从而保护后面的 IC/接口不被击穿。

一、它到底“干嘛用”?

要命的瞬态来源 典型电压/电流 SMBJ7.5CA 做的事
ESD 静电放电(人手、空气 ±8 kV) 纳秒级 30 A 立即钳位到 12.9 V,芯片安全
雷击感应浪涌(8/20 µs) 几百伏、几十安 吸收 46.6 A 峰值电流,功耗 600 W,器件无损
电源热插拔、电机启停 负载突降 40–120 V 同上,防 MCU/DC-DC 被过压击穿
通信线共模浪涌(RS-485、CAN) ±数百伏 双向 TVS 同时保护正负摆幅

二、核心参数速览

指标 数值 含义
反向工作电压 VRWM 7.5 V 正常信号 ≤7.5 V 时,TVS 不动作,漏电流<1 µA
击穿电压 VBR 8.33 – 9.21 V 超过此值 TVS 开始雪崩导通
钳位电压 VC 12.9 V @ IPP=46.6 A 把浪涌电压“压”到 12.9 V,后级芯片安全
峰值脉冲功率 600 W (10/1000 µs) 能承受短时大能量
封装/焊盘 SMB (DO-214AA) 贴片,占板 4.3×3.6 mm,量产友好

三、为什么“一定要用”?

法规/认证要求

USB、HDMI、RS-485、CAN 等接口必须通过 IEC 61000-4-2(±8 kV 空气放电)与 IEC 61000-4-5(浪涌)测试;没有 TVS 基本过不了。

成本/风险权衡

一颗 SMBJ7.5CA ≈ 0.2 元,而一颗 MCU/接口芯片往往几元甚至几十元;一次浪涌即可报废整板。

速度与能量

压敏电阻、气体放电管响应 µs-ms 级,只能挡大能量浪涌;ESD 纳秒级只能靠 TVS(<1 ns)

四、典型应用接线

信号线/电源线 ─┬─→ 后级 IC
               │
              [SMBJ7.5CA]
               │
              GND

放在接口最前端,走线最短,地平面干净。 双向器件,正负浪涌一次搞定,无需区分极性

SMBJ7.5CA 是“7.5 V 系统的贴身保镖”:平时不耗电,瞬态来时 1 纳秒级把上千伏浪涌“吃”成 12.9 V,让昂贵的芯片永远安全。

文档信息

版权声明:可自由转载(请注明转载出处)-非商用-非衍生

发表时间:2025年8月5日 17:32