单片机工业控制器
这是一个使用单片机和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