Design and Implementation of a 365nm UV LED Array Auto-Uniformity System for Photolithography
本项目设计并实现了一套基于 365nm紫外LED阵列 的自动匀光系统,主要应用于光刻(Photolithography) 领域。系统通过96通道的高精度光强传感器阵列实时检测曝光平面光强分布,结合最小二乘法匀光调控算法和PID闭环控制,实现曝光平面光强的自动均匀化调控。
- 作者:whale
光刻技术是微纳制造领域的核心支撑技术,曝光平面光强均匀性直接影响光刻图形精度。传统汞灯光源存在能耗高、寿命短、均匀性调控困难等问题。365nm紫外LED具有低功耗、长寿命、快速响应等优势,但多LED阵列拼接时因灯珠特性差异和光学衰减易导致光强分布不均。
本项目通过构建"检测→计算→调控"闭环控制系统,实现了曝光平面光强均匀性的实时动态补偿,匀光精度目标达到±5%以内。
┌─────────────────────────────────────────────────────────┐
│ PC (LabVIEW) │
│ ┌─────────────┐ ┌────────────┐ ┌─────────────────┐ │
│ │ 数据采集模块 │ │ 匀光算法 │ │ 数据处理与显示 │ │
│ │ (VISA/串口) │ │ (最小二乘) │ │ (Excel/TXT/图表)│ │
│ └──────┬──────┘ └─────┬──────┘ └─────────────────┘ │
└─────────┼───────────────┼────────────────────────────────┘
│ 串口/WiFi │ PWM控制
▼ ▼
┌─────────────────────────────────────────────────────────┐
│ ESP8266 主控制器 │
│ ┌──────────┐ ┌──────────┐ ┌──────────────────────┐ │
│ │ I2C总线 │ │ GPIO控制 │ │ WiFi AP + TCP Server │ │
│ │ (50kHz) │ │ (A,B,C) │ │ (SSID : 8888) │ │
│ └─────┬────┘ └────┬─────┘ └──────────────────────┘ │
└────────┼────────────┼────────────────────────────────────┘
│ ▼
│ ┌───────────────┐
│ │ 12× DG4051 │ 8通道模拟多路复用器
│ │ MUX阵列 │ (C:GPIO12, B:GPIO14, A:GPIO16)
│ └───────┬───────┘
▼ ▼
┌─────────────────────────────────────────────────────────┐
│ 96通道传感器采集层 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ ADS1015#1│ │ ADS1015#2│ │ ADS1015#3│ 12位ADC │
│ │ (0x48) │ │ (0x49) │ │ (0x4A) │ ±0.256~±6.144V│
│ │ CH0~CH3 │ │ CH0~CH3 │ │ CH0~CH3 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ × 8 MUX通道 × 12 组 = 96 通道 │
└──────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ 9× LED灯板 365nm UV LED阵列 │
│ PWM独立调光 | 365nm波长 | 紫外光刻胶敏感波段 │
└─────────────────────────────────────────────────────────┘
| 组件 | 型号/参数 | 数量 | 用途 |
|---|---|---|---|
| 主控芯片 | ESP8266 (NodeMCU) | 1 | 系统控制、通信、ADC采集 |
| ADC芯片 | ADS1015 (12-bit) | 3 | 光强传感器模拟信号数字化 |
| 多路复用器 | DG4051 (8通道) | 12 | 扩展ADC通道至96路 |
| UV LED灯板 | 365nm紫外LED | 9 | 曝光光源(PWM可调) |
| 光强传感器 | 紫外光电探测器 | 37 (96通道) | 曝光平面光强检测 |
| PCB板 | 定制设计 | 若干 | 传感器阵列、驱动电路 |
| 电源模块 | DC稳压电源 | 1 | 系统供电 |
| 软件 | 语言/平台 | 功能 |
|---|---|---|
| ESP8266固件 | Arduino C++ | 96通道ADC采集、MUX控制、WiFi通信 |
| LabVIEW上位机 | LabVIEW 2017 | 数据采集、匀光算法、PWM控制、数据显示 |
| Python数据处理 | Python 3 | TXT→Excel批量转换、数据后处理 |
uv-auto-flat-repo/
├── README.md # 项目说明文档
├── docs/ # 文档目录
│ └── 开题报告.pdf # 开题报告(原版PDF)
├── firmware/esp8266/ # ESP8266固件
│ ├── channel37/ # 主固件(96通道)
│ │ └── channel37.ino # 完整96通道ADC采集程序
│ └── example/ # 优化版固件
│ └── example.ino # 抗干扰优化版(中值滤波+校准)
├── labview/ # LabVIEW上位机程序
│ ├── read37(test_pro).vi # 主采集VI(含控制界面)
│ ├── sub_vi/ # 子VI模块
│ │ ├── auto_light.vi # 自动匀光控制
│ │ ├── auto_calibration.vi # 自动校准
│ │ ├── data_process.vi # 数据处理
│ │ ├── Least squares solution.vi # 最小二乘求解
│ │ ├── 测光强.vi # 光强测量
│ │ ├── median and average.vi # 中值滤波与均值
│ │ ├── read37.vi # 37通道读取
│ │ ├── read37 and record.vi # 读取并记录
│ │ ├── TSVD.vi # 截断SVD正则化
│ │ └── λ.vi # 波长参数
│ ├── raw_data/ # 原始采集数据
│ │ ├── S_rawdata_b1~b9.txt # 传感器标定数据
│ │ ├── board_1.vi # 单板数据采集
│ │ ├── data_process.vi # 数据处理
│ │ ├── out.xlsx / out1.xlsx # 处理后数据
│ │ └── b9/ # 实测数据(19组时间序列)
│ └── median and average.vi # 根目录数据处理VI
├── python/ # Python辅助脚本
│ └── txt_excel.py # 批量TXT→Excel转换
└── 实测/ # 实测照片
├── 光强30/ # 光强30档实测照片+视频
│ ├── IMG_20250917_*.jpg # 6张实测照片
│ └── 光强30.mp4 # 实测视频
└── 光强40/ # 光强40档实测照片
└── IMG_20250917_*.jpg # 6张实测照片
- 96个独立ADC通道:3个ADS1015 × 4通道 × 8 MUX组
- 可编程增益:±0.256V / ±0.512V / ±1.024V / ±2.048V / ±4.096V / ±6.144V
- 双模式通信:串口(115200bps) + WiFi(TCP Server, 端口8888)
- 采样优化:中值滤波(5次采样去掉极值取平均)、I2C降速至50kHz抗干扰
- LED-传感器映射标定:逐LED逐档位标定,建立9块LED灯板对37个传感器(96通道)的贡献权重矩阵
- 最小二乘求解:基于标定矩阵,以目标光强为约束,求解各LED最优PWM值
- TSVD正则化:引入截断奇异值分解抑制噪声干扰
- PID辅助调节:弥补最小二乘法动态响应不足,减少超调
设定目标光强 → 最小二乘计算PWM → LED阵列发光
↓
传感器采集光强
↓
计算均匀性误差
↓
┌─── 误差<阈值? ───┐
↓ 否 ↓ 是
PID+最小二乘调整 维持当前PWM
| 命令 | 功能 | 示例 |
|---|---|---|
READ |
读取所有96通道 | READ |
READSLOW |
慢速稳定读取 | READSLOW |
GAIN:n |
设置ADC增益 | GAIN:1 (设±4.096V) |
TESTCH:n |
测试单个通道 | TESTCH:42 |
CALIBRATE |
校准所有通道 | CALIBRATE |
CALCH:n |
校准单通道 | CALCH:30 |
AUTO:n |
自动读取间隔ms | AUTO:1000 |
STOP |
停止自动读取 | STOP |
STATUS |
系统状态 | STATUS |
6.59,6.31,7.19,6.83,8.66,6.06,6.41,6.65,6.59
6.59,6.31,7.19,6.83,8.67,6.06,6.41,6.65,6.58
7.01,7.06,8.06,7.23,9.11,6.86,6.70,7.11,7.17
...
9列数据对应9块LED灯板在不同PWM档位下的传感器检测值矩阵
CH0:2,0.000250V
CH1:2,0.000250V
CH3:4603,0.575375V ← 有光感应的通道
CH20:4706,0.588250V ← 有光感应的通道
CH24:4712,0.589000V ← 有光感应的通道
...
每组36通道 × 12次读取(共432行),可看到光敏通道电压明显高于背景
设 LED灯板PWM值向量为 x = [x₁, x₂, ..., x₉]ᵀ,传感器检测光强向量为 y = [y₁, y₂, ..., y₃₇]ᵀ,标定得到的映射矩阵为 A (37×9):
y = A · x
目标光强为 y_target,优化目标:
min || A·x - y_target ||²₂
加入Tikhonov正则化:
min || A·x - y_target ||²₂ + λ||x||²₂
最优解:
x* = (AᵀA + λI)⁻¹ Aᵀ y_target
通过TSVD(截断奇异值分解)处理AᵀA可能存在的病态问题。
| 类别 | 组件 | 数量 | 单价(元) | 小计(元) |
|---|---|---|---|---|
| 主控与通信 | ESP8266 NodeMCU | 1 | 15 | 15 |
| ADC采集 | ADS1015模块 | 3 | 8 | 24 |
| 多路复用 | DG4051芯片 | 12 | 3 | 36 |
| 光源 | 365nm UV LED灯板 | 9 | 30 | 270 |
| 传感器 | 紫外光电探测器 | 37 | 20 | 740 |
| PCB制作 | 定制PCB板 | 3 | 80 | 240 |
| 驱动电路 | PWM驱动模块 | 9 | 15 | 135 |
| 电源 | DC稳压电源模块 | 1 | 120 | 120 |
| I2C电平转换 | 1 | 5 | 5 | |
| 结构件 | 遮光罩/暗箱 | 1 | 200 | 200 |
| 光学滤光片 | 1 | 150 | 150 | |
| 支架与机械件 | 若干 | 100 | 100 | |
| 线材与辅料 | 杜邦线、排针、焊锡等 | 若干 | 100 | 100 |
| 软件 | LabVIEW (教育版) | 1 | 0 | 0 |
| 合计 | 2,135元 |
| 指标 | 目标值 | 当前状态 |
|---|---|---|
| 匀光精度(均匀性误差) | ±5% | 开发中 |
| 系统响应时间 | ≤0.5s | 开发中 |
| 稳态误差 | ≤2% | 开发中 |
| ADC采样通道数 | 96 | ✅ 已实现 |
| 采样精度 | 12-bit | ✅ 已实现 |
| 通信方式 | 串口+WiFi | ✅ 已实现 |
| 标定功能 | 逐LED逐档位 | ✅ 已实现 |
| 中值滤波 | 5采样去极值 | ✅ 已实现 |
# 使用Arduino IDE打开 firmware/esp8266/channel37/channel37.ino
# 安装依赖库:Adafruit ADS1X15, ESP8266WiFi
# 选择开发板:NodeMCU 1.0 (ESP-12E Module)
# 烧录即可- 需安装 NI LabVIEW 2017 或更高版本
- 需安装 NI VISA 驱动(用于串口通信)
- 打开
labview/read37(test_pro).vi运行
# 批量转换传感器原始数据到Excel
cd python
python3 txt_excel.py| 时间 | 阶段 | 内容 |
|---|---|---|
| 2026.01-02 | 方案设计 | 文献调研、系统方案、开题报告 |
| 2026.02-03 | 硬件开发 | PCB设计、元器件采购、硬件集成 |
| 2026.03-04 | 标定实验 | LED-传感器映射标定、数据预处理 |
| 2026.04-05 | 算法开发 | 最小二乘法匀光算法、闭环控制 |
| 2026.05-06 | 系统测试 | 匀光精度测试、优化改进 |
| 2026.06-08 | 论文撰写 | 数据整理、论文定稿、答辩准备 |
| 难点 | 解决方案 |
|---|---|
| 96通道高速采集干扰 | I2C降速至50kHz、MUX稳定延时、中值滤波 |
| 365nm紫外光检测噪声 | 硬件遮光+软件卡尔曼滤波+3σ异常值剔除 |
| LED标定矩阵病态问题 | TSVD正则化 + Tikhonov正则项 |
| 闭环控制动态响应 | 最小二乘前馈 + PID反馈混合控制 |
| WiFi/串口双模通信冲突 | 双缓冲区独立处理、事件驱动架构 |
本项目为学术研究项目,代码和文档仅供参考学习。
-
作者:whale
-
课题:基于LED阵列的365nm紫外光在光刻领域的自动匀光系统设计与实现
最后更新:2026年5月