Giới thiệu dự án
Trong bối cảnh công nghiệp hóa và hiện đại hóa hệ thống sản xuất nhiệt, kỹ thuật điều khiển tự động đóng vai trò sống còn trong việc tối ưu hóa năng lượng và đảm bảo chất lượng sản phẩm. Theo các khảo sát công nghiệp nhiệt luyện và thiết bị gia nhiệt dân dụng, hơn 65% sự cố hỏng hóc vật liệu hoặc lãng phí điện năng xuất phát từ việc kiểm soát nhiệt độ không chính xác (dao động vượt ngưỡng quá điều chỉnh > 10%) và độ trễ phản hồi nhiệt của hệ thống chấp hành. Các lò gia nhiệt công suất vừa và nhỏ (dưới 3000W) như lò nung mẫu thí nghiệm, lò ủ gốm sứ, lò sấy nông sản và lò nướng gia dụng đòi hỏi một giải pháp điều khiển nhiệt độ bám sát giá trị đặt (setpoint) với sai số nhỏ, chi phí gia công phần cứng thấp và độ ổn định cao.
Vấn đề cốt lõi đặt ra là các bộ điều khiển công nghiệp chuyên dụng (như PLC hay PID Controller ngoại nhập) có giá thành rất cao, khó tùy biến sâu vào thuật toán điều khiển chuyên biệt; trong khi các mạch điều khiển On-Off rơ-le truyền thống lại gây ra dao động nhiệt lớn quanh vùng trung hòa, làm giảm tuổi thọ của dây điện trở đốt nóng và linh kiện đóng cắt.
Đồ án tập trung nghiên cứu, thiết kế và chế tạo bo mạch điều khiển nhiệt độ thông minh cho lò nung dân dụng công suất dưới 3000W (220V - 16A), tích hợp vi điều khiển chuyên dụng, vi mạch chuyển đổi tương tự - số (ADC) độ phân giải cao và cổng truyền thông nối tiếp giám sát trên máy tính.
graph LR
A[Cảm biến Cặp nhiệt điện] --> B[Mạch khuếch đại & Bù nhiệt]
B --> C[ADC 12-bit ICL7109]
C --> D[Vi điều khiển AT89C52]
E[Bàn phím Ma trận 16 phím] --> D
D --> F[Hiển thị 5 LED 7 đoạn]
D --> G[Mạch công suất Triac/SSR 220V-16A]
G --> H[Dây đốt lò nung <3000W]
D <--> I[Giao tiếp MAX232 / RS-232]
I <--> J[Máy tính giám sát PC]
K[Nguồn Backup Pin 3.6V] --> L[SRAM ngoài HM6264 8KB]
D <--> L
Mục tiêu của dự án:
- Thiết kế khối phần cứng hoàn chỉnh: Xây dựng bo mạch điều khiển trung tâm dựa trên vi điều khiển 8-bit AT89C52 (kiến trúc MCS-51), tích hợp bộ nhớ mở rộng SRAM HM6264 8KB có mạch nguồn dự phòng tự động sạc và lưu trữ dữ liệu.
- Thu thập tín hiệu nhiệt độ chuẩn xác: Gia công mạch cảm biến cặp nhiệt điện kết hợp bù nhiệt độ môi trường, sử dụng ADC tích phân hai độ dốc 12-bit ICL7109 nhằm đạt độ phân giải 4096 mức với độ trôi nhiệt cực thấp ($< 1\mu\text{V}/^\circ\text{C}$).
- Phát triển thuật toán điều khiển đa tầng: Nghiên cứu và hiện thực hóa các giải thuật điều khiển từ kinh điển (On-Off vùng trễ, P, PI, PD, PID) đến điều khiển hiện đại (Fuzzy Logic Controller - Điều khiển mờ) nhằm triệt tiêu sai lệch tĩnh và tối ưu thời gian đáp ứng.
- Xây dựng hệ thống giao tiếp giám sát: Thiết kế cổng truyền thông nối tiếp chuẩn RS-232 qua IC chuyển đổi mức điện áp MAX232, cho phép nạp chương trình trực tiếp vào RAM ngoài và thu thập dữ liệu thời gian thực lên máy tính với tỷ lệ lỗi baudrate xấp xỉ 0%.
Kết quả kỳ vọng và chỉ số đo lường (Measurable Metrics):
- Kiểm soát công suất tải cực đại: 3000W tại điện áp lưới 220VAC, dòng định mức 16A.
- Dải đo và điều khiển nhiệt độ: $0^\circ\text{C} - 1000^\circ\text{C}$ với sai số tĩnh $< \pm 1^\circ\text{C}$.
- Tốc độ lấy mẫu ADC: 30 lần chuyển đổi/giây, loại trừ hoàn toàn can nhiễu tần số công nghiệp 50Hz.
- Độ bền bộ nhớ: Cho phép nạp và gỡ lỗi chương trình không giới hạn số lần thông qua RAM trung gian mà không làm suy hao tuổi thọ bộ nhớ Flash on-chip (định mức 1000 chu kỳ ghi/xóa).
Phạm vi và giới hạn:
- Phạm vi: Ứng dụng cho các hệ thống lò gia nhiệt điện trở 1 pha công suất $\le 3000\text{W}$, môi trường công nghiệp nhẹ và dân dụng.
- Giới hạn: Chưa tích hợp điều khiển mạng không dây (IoT/WiFi); giao tiếp máy tính sử dụng cáp nối tiếp RS-232C cự ly ngắn ($< 15\text{m}$).
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Trong kỹ thuật điều khiển nhiệt độ hiện nay, các giải pháp tiếp cận chia thành ba phân khúc rõ rệt với những ưu nhược điểm kỹ thuật cụ thể:
| Giải pháp |
Nguyên lý hoạt động |
Ưu điểm |
Nhược điểm |
Chi phí |
| On-Off Rơ-le truyền thống |
Đóng/ngắt nguồn khi nhiệt độ vượt/dưới ngưỡng đặt kèm vùng trễ |
Đơn giản, cực rẻ, dễ lắp ráp thay thế |
Dao động nhiệt lớn ($\pm 10 - 20^\circ\text{C}$), sụt áp lưới điện, giảm tuổi thọ tiếp điểm cơ |
Cực thấp |
| Bộ điều khiển PID chuyên dụng (Omron, Autonics) |
Vi xử lý tính toán công thức vi tích phân tỉ lệ, xuất xung SSR |
Độ chính xác cao ($\pm 0.5^\circ\text{C}$), chạy ổn định công nghiệp |
Đóng kín thuật toán, khó can thiệp cấu trúc dữ liệu, khó nâng cấp lên điều khiển mờ |
Rất cao |
| Hệ thống AT89C52 + ICL7109 (Đề xuất) |
Thu thập 12-bit tích phân, xử lý số PID/Fuzzy, truyền thông PC, RAM ngoài |
Tùy biến thuật toán 100%, độ phân giải cao, có RAM debug, giá rẻ |
Đòi hỏi thiết kế phần cứng vi mạch chi tiết và lập trình ASM/C tối ưu |
Rất kinh tế |
Phân loại yêu cầu hệ thống (MoSCoW Prioritization):
- Must have (Bắt buộc): Khối vi xử lý trung tâm AT89C52 chạy ổn định; khối chuyển đổi ADC ICL7109 đọc chuẩn 12-bit; mạch công suất đóng cắt 220V/16A qua chân ngắt P3.2 (
INT0); bàn phím 16 phím cấu hình thông số và hiển thị 5 LED 7 đoạn.
- Should have (Nên có): Bộ nhớ ngoài SRAM HM6264 8KB tích hợp pin sạc backup 3.6V chống mất dữ liệu khi mất nguồn; cổng truyền thông RS-232 sử dụng IC MAX232.
- Could have (Có thể mở rộng): Bổ sung thuật toán điều khiển mờ (Fuzzy Logic) tự chỉnh định thông số không cần mô hình toán học chính xác.
- Won't have (Chưa thực hiện): Điều khiển mạng công nghiệp Modbus RS485 đa điểm hoặc giao diện giám sát web SCADA thời gian thực.
Thiết kế hệ thống
Kiến trúc phần cứng được chuẩn hóa thành 9 khối chức năng liên kết chặt chẽ thông qua hệ thống bus dữ liệu 8-bit và bus địa chỉ 16-bit:
+-----------------------------------------------------------------------+
| HỆ THỐNG ĐIỀU KHIỂN NHIỆT ĐỘ |
| |
| +-------------------+ +-------------------+ |
| | Cặp nhiệt điện K | ---> | Mạch khuếch đại | |
| | 0 - 1000°C | | & Bù điểm lạnh | |
| +-------------------+ +---------+---------+ |
| | (0 - 2.048V) |
| v |
| +-------------------+ +-------------------+ |
| | Khối hiển thị | <--- | Khối ADC 12-bit | |
| | 5x LED 7 đoạn | | Intersil ICL7109 | |
| +-------------------+ +---------+---------+ |
| ^ | (D0 - D7) |
| | v |
| +--------+----------+ +-------------------+ +------------+ |
| | Giải mã địa chỉ | <=== | Khối MCU chính | <==> | SRAM ngoài | |
| | 74HC573 + 74LS138 | (Bus)| Atmel AT89C52 | (Bus)| HM6264 8KB | |
| +-------------------+ +----+----+----+----+ +------+-----+ |
| | | | | |
| +---------------------+ | +-------------+ | |
| v v v v |
| +-------------------+ +---------+---------+ +-------+----+ |
| | Khối bàn phím | | Giao tiếp PC | | Mạch Nguồn | |
| | Ma trận 16 phím | | MAX232 / RS-232 | | Backup | |
| | (Port 1) | +-------------------+ | Pin 3.6V | |
| +-------------------+ +------------+ |
| |
| +-----------------------------------------------------------------+ |
| | Khối công suất tải nhiệt: TRIAC / MOC3021 / Tải trở P <= 3000W | |
| | (Điều khiển qua chân P3.2 / INT0 - 220VAC / 16A) | |
| +-----------------------------------------------------------------+ |
+-----------------------------------------------------------------------+
1. Khối xử lý trung tâm (MCU):
Sử dụng vi điều khiển Atmel AT89C52-24PC. Cấu hình chi tiết:
- Lõi 8-bit tương thích chuẩn công nghiệp Intel MCS-51.
- Bộ nhớ Flash on-chip: 8 KBytes, độ bền 1000 chu kỳ nạp/xóa.
- RAM nội: 256 Bytes ($00\text{H} - \text{FF}\text{H}$), trong đó 128 Bytes cao truy xuất gián tiếp qua con trỏ hoặc làm ngăn xếp Stack.
- 3 bộ định thời/bộ đếm 16-bit (Timer 0, Timer 1, Timer 2).
- Tần số dao động thạch anh: Chọn 11.0592 MHz (thay vì 12.0000 MHz) để triệt tiêu hoàn toàn sai số baudrate khi tạo xung nhịp truyền thông UART cho Timer 1 hoặc Timer 2.
2. Phân vùng không gian địa chỉ ngoại vi qua IC 74HCT573 và 74LS138:
Bus địa chỉ 16-bit ($A_0 - A_{15}$) cho phép quản lý không gian nhớ ngoài lên tới 64KB. Cổng Port 0 đóng vai trò dồn kênh giữa byte thấp địa chỉ ($A_0 - A_7$) và byte dữ liệu ($D_0 - D_7$) thông qua tín hiệu chốt ALE nối vào IC giải đa hợp chốt dữ liệu 74HCT573. Byte cao địa chỉ ($A_8 - A_{15}$) xuất trực tiếp từ Port 2.
Ba đường địa chỉ cao nhất ($A_{13}, A_{14}, A_{15}$) được đưa vào đầu vào giải mã của IC 74LS138 để phân chia 64KB thành 8 không gian nhớ 8KB độc lập:
| Dải địa chỉ Hex |
Đường chọn chip |
Thiết bị ngoại vi kết nối |
Chức năng thao tác |
0000H - 1FFFH |
$\overline{\text{CS}_0}$ |
SRAM ngoài HM6264 (8KB) |
Đọc/Ghi dữ liệu & Thực thi mã nạp ngoài |
2000H - 3FFFH |
$\overline{\text{CS}_1}$ |
ADC ICL7109 (Byte thấp) |
Đọc 8-bit dữ liệu thấp ($B_1 - B_8$) qua LBEN |
4000H - 5FFFH |
$\overline{\text{CS}_2}$ |
ADC ICL7109 (Byte cao) |
Đọc 4-bit cao ($B_9 - B_{12}$), cực tính POL, cờ OR |
6000H - 7FFFH |
$\overline{\text{CS}_3}$ |
LED 7 đoạn Hàng đơn vị |
Ghi mã 7 đoạn hiển thị hàng đơn vị |
8000H - 9FFFH |
$\overline{\text{CS}_4}$ |
LED 7 đoạn Hàng chục |
Ghi mã 7 đoạn hiển thị hàng chục |
A000H - BFFFH |
$\overline{\text{CS}_5}$ |
LED 7 đoạn Hàng trăm |
Ghi mã 7 đoạn hiển thị hàng trăm |
C000H - DFFFH |
$\overline{\text{CS}_6}$ |
LED 7 đoạn Hàng nghìn |
Ghi mã 7 đoạn hiển thị hàng nghìn |
E000H - FFFFH |
$\overline{\text{CS}_7}$ |
LED 7 đoạn Hàng chục nghìn |
Ghi mã 7 đoạn hiển thị ký tự đặc biệt/thang đo |
3. Khối chuyển đổi tương tự - số (ADC ICL7109):
ICL7109 hoạt động theo phương pháp tích phân hai độ dốc (Dual-slope integration), gồm 4 pha chuyển đổi tuần tự:
- Pha Tự động cân bằng Zero (Auto-Zero): Ngắt tín hiệu vào, nạp tụ $C_{AZ}$ bù hoàn toàn điện áp trôi lệch của bộ đệm và bộ tích phân ($V_{offset} < 10\mu\text{V}$).
- Pha Tích phân tín hiệu (Signal Integrate): Tích phân tín hiệu đo $V_{in}$ trong đúng 2048 chu kỳ xung clock ($T_{INT} = 2048 \cdot T_{CLK}$).
- Pha Khử tích phân (De-Integrate): Xả điện tích trên tụ tích phân $C_{INT}$ với điện áp chuẩn $V_{REF}$ theo độ dốc cố định. Thời gian xả về mức zero tỉ lệ tuyến tính tuyệt đối với điện áp vào:
$$\Delta t = 2048 \times \frac{V_{in}}{V_{REF}}$$
- Pha Tích phân Zero (Zero Integrate): Thu hồi nhanh lượng điện tích dư, chống nhiễu giao kênh.
Tính toán linh kiện ngoại vi cho ICL7109 với dải đo điện áp toàn thang $V_{FS} = 2.048\text{V}$ ($500\mu\text{V}/\text{LSB}$):
- Tần số dao động ADC: $f_{CLK} = 61.44\text{kHz}$ (tạo ra đúng 30 lần chuyển đổi/s, khử sóng hài lưới điện 50Hz).
- Điện trở tích phân: $R_{INT} = 100\text{k}\Omega$ để dòng tích phân cực đại không vượt quá $40\mu\text{A}$ ($I_{max} = \frac{2.048\text{V}}{100\text{k}\Omega} = 20.48\mu\text{A}$).
- Tụ tích phân: Chọn $C_{INT} = 0.15\mu\text{F}$ màng Polypropylene nhằm tránh hiện tượng hấp thụ điện tích môi chất.
- Tụ tự động chỉnh zero: $C_{AZ} = 0.33\mu\text{F} - 0.47\mu\text{F}$ (gấp $2 - 3$ lần $C_{INT}$).
- Tụ điện áp chuẩn: $C_{REF} = 1.0\mu\text{F}$, điện áp chuẩn cố định $V_{REF} = 1.024\text{V}$.
Methodology
Quy trình phát triển hệ thống áp dụng mô hình lai V-Model cải tiến, kết hợp kiểm tra mô phỏng phần cứng và tích hợp phần mềm theo từng giai đoạn:
[Phân tích yêu cầu kỹ thuật] --------------> [Kiểm thử nghiệm thu toàn tải]
\ /
[Thiết kế sơ đồ nguyên lý] -----------> [Đo kiểm sai số nhiệt & đáp ứng PID]
\ /
[Thiết kế mạch in PCB] ---------> [Kiểm thử phần cứng từng khối]
\ /
[Lập trình mã nguồn MCU & Giao tiếp PC]
Ma trận quản trị rủi ro kỹ thuật:
| Rủi ro kỹ thuật |
Mức độ |
Khả năng |
Biện pháp giảm thiểu |
| Nhiễu công nghiệp từ tải 3000W truyền ngược vào MCU |
Cao |
Cao |
Sử dụng Optocoupler MOC3021 cách ly quang hoàn toàn giữa đường điều khiển MCU và cổng Gate của Triac; đi dây mass dạng sao (Star ground). |
| Sai số tốc độ truyền UART do tần số xung nhịp |
Cao |
Trung bình |
Thay thế toàn bộ thạch anh 12MHz bằng 11.0592MHz, tính toán cấu hình Timer 1 tự nạp lại Mode 2 với sai số 0.00%. |
| Mất trắng mã chương trình khi debug trên RAM |
Trung bình |
Cao |
Thiết kế mạch nguồn Backup tự động với pin sạc Ni-Cd 3.6V kết hợp mạch cổng logic Diode Germanium sụt áp thấp ($< 0.3\text{V}$). |
Implementation và kết quả
Development process
1. Giải thuật tính toán và thiết lập tốc độ truyền nối tiếp (Baudrate Engine):
Tốc độ baud trong họ MCS-51 khi sử dụng Timer 1 ở Mode 2 (8-bit Auto-reload) được xác định bằng công thức:
$$\text{Baud Rate} = \frac{2^{\text{SMOD}}}{32} \times \frac{f_{OSC}}{12 \times (256 - \text{TH1})}$$
- Khi dùng thạch anh $f_{OSC} = 12.000\text{MHz}$ ở 9600 Baud:
$$\text{TH1} = 256 - \frac{1 \times 12 \times 10^6}{384 \times 9600} = 256 - 3.2552 = 252.7448 \implies \text{Phải làm tròn thành } 253\ (\text{Sai số } +7.00% \implies \text{Gây lỗi khung Frame})$$
- Khi sử dụng thạch anh $f_{OSC} = 11.0592\text{MHz}$ ở 9600 Baud ($\text{SMOD} = 0$):
$$\text{TH1} = 256 - \frac{11.0592 \times 10^6}{384 \times 9600} = 256 - 3 = 253\ (\text{Giá trị nạp: } \text{FDH}, \text{Sai số tuyệt đối: } 0.00%)$$
2. Cài đặt các đoạn mã xử lý hợp ngữ MCS-51 Assembly then chốt:
Cấu hình khởi tạo UART và cổng nối tiếp:
; ================================================================
; Module: KHỞI TẠO UART 9600 BAUD - TẦN SỐ THẠCH ANH 11.0592 MHz
; ================================================================
INIT_UART:
MOV TMOD, #20H ; Timer 1 Mode 2 (8-bit auto-reload)
MOV TCON, #40H ; Khởi động Timer 1 (TR1 = 1)
MOV TH1, #0FDH ; Giá trị nạp lại tạo tốc độ 9600 baud
MOV TL1, #0FDH
MOV SCON, #50H ; Chế độ 1 (8-bit UART), cho phép nhận (REN = 1)
CLR PCON.7 ; SMOD = 0: Không nhân đôi baudrate
RET
Giao tiếp đọc dữ liệu 12-bit từ ADC ICL7109 qua không gian địa chỉ ngoài:
; ================================================================
; Module: ĐỌC GIÁ TRỊ TỪ ADC ICL7109 QUA BUS NGOÀI
; CS1 = 2000H (Byte thấp B1-B8), CS2 = 4000H (Byte cao B9-B12 + POL + OR)
; ================================================================
READ_ADC_ICL7109:
; Đọc 8 bit dữ liệu thấp từ địa chỉ 2000H
MOV DPTR, #2000H ; Trỏ con trỏ dữ liệu vào vùng CS1
MOVX A, @DPTR ; Đọc byte thấp vào thanh ghi A
MOV R2, A ; Lưu byte thấp vào R2
; Đọc 4 bit dữ liệu cao + bit cờ từ địa chỉ 4000H
MOV DPTR, #4000H ; Trỏ con trỏ dữ liệu vào vùng CS2
MOVX A, @DPTR ; Đọc byte cao vào thanh ghi A
MOV R3, A ; Lưu byte cao vào R3
; Kiểm tra cờ quá dải (Over-range bit OR - Bit 5 của byte cao)
JB ACC.5, ADC_OVER_RANGE
; Xử lý tách riêng 4 bit dữ liệu B9 - B12 (Masking 0x0F)
ANL A, #0FH
MOV R3, A ; R3:R2 chứa giá trị số 12-bit hoàn chỉnh (0 - 4095)
RET
ADC_OVER_RANGE:
SETB 00H ; Bật cờ báo lỗi quá dải đo
RET
Thuật toán điều khiển PID số rời rạc (Discrete PID Controller):
Phương trình vi phân PID trong miền thời gian liên tục:
$$u(t) = K_p \cdot e(t) + K_i \int_{0}^{t} e(\tau) d\tau + K_d \frac{de(t)}{dt}$$
Chuyển đổi sang dạng phương trình sai phân số rời rạc phục vụ lập trình nhúng:
$$u(k) = u(k-1) + q_0 \cdot e(k) + q_1 \cdot e(k-1) + q_2 \cdot e(k-2)$$
Trong đó các hệ số số học được tối ưu hóa:
$$q_0 = K_p + K_i \cdot T_s + \frac{K_d}{T_s}; \quad q_1 = -K_p - 2\frac{K_d}{T_s}; \quad q_2 = \frac{K_d}{T_s}$$
// ================================================================
// Hàm tính toán đầu ra bộ điều khiển PID số
// ================================================================
float calculate_pid(float setpoint, float current_temp, float dt) {
static float prev_error = 0.0f;
static float integral = 0.0f;
float error = setpoint - current_temp;
// Khâu tỉ lệ (Proportional)
float p_out = K_P * error;
// Khâu tích phân (Integral) kèm thuật toán chống bão hòa tích phân (Anti-windup)
integral += error * dt;
if (integral > INTEGRAL_MAX) integral = INTEGRAL_MAX;
else if (integral < INTEGRAL_MIN) integral = INTEGRAL_MIN;
float i_out = K_I * integral;
// Khâu vi phân (Derivative)
float derivative = (error - prev_error) / dt;
float d_out = K_D * derivative;
// Tổng hợp đầu ra tỉ lệ phần trăm công suất (0 - 100%)
float output = p_out + i_out + d_out;
if (output > 100.0f) output = 100.0f;
if (output < 0.0f) output = 0.0f;
prev_error = error;
return output;
}
Testing và validation
Hệ thống được đưa vào vận hành thử nghiệm trên tải lò điện trở thực tế công suất 2800W, điện áp nguồn $220\text{V}/\text{50Hz}$ tại phòng thí nghiệm điều khiển tự động:
Nhiệt độ (°C)
^
| +---------------+ Giá trị đặt (Setpoint = 500°C)
| /
| / <-- Đáp ứng điều khiển PID số (Sai số <= ±0.8°C)
| +--+ /
| / \ /
| / \ /
|/ +---+ <-- Đáp ứng điều khiển On-Off (Dao động lớn ±14°C)
+---------------------------------------------------------> Thời gian (phút)
0 5 10 15 20 25
Dữ liệu đo kiểm thực nghiệm qua các phương pháp điều khiển:
| Phương pháp |
Thời gian quá độ ($t_s$) |
Độ vọt lố ($%OS$) |
Sai số tĩnh xác lập ($e_{ss}$) |
Tiêu thụ năng lượng (1h xác lập) |
| On-Off Vùng trễ |
12.5 phút |
$14.2%$ |
$\pm 12.0^\circ\text{C}$ |
$2.42\text{ kWh}$ |
| Tỉ lệ (P) |
8.2 phút |
$6.8%$ |
$+4.5^\circ\text{C}$ (Lệch tĩnh) |
$2.15\text{ kWh}$ |
| Tỉ lệ - Tích phân (PI) |
14.1 phút |
$9.5%$ |
$\pm 1.2^\circ\text{C}$ |
$1.98\text{ kWh}$ |
| PID số (Đề xuất) |
9.4 phút |
$2.1%$ |
$\pm 0.8^\circ\text{C}$ |
$1.85\text{ kWh}$ |
- Độ ổn định truyền thông RS-232: Thực hiện gửi/nhận liên tục $100.000$ gói tin dữ liệu trạng thái nhiệt độ với máy tính ở tốc độ 9600 bps; kết quả ghi nhận $0$ gói tin lỗi (Tỉ lệ lỗi bit $\text{BER} = 0$).
- Thời gian chuyển mạch dự phòng RAM: Khi ngắt đột ngột nguồn 5V chính, mạch backup dùng pin sạc 3.6V và Diode kích hoạt duy trì điện áp chân $V_{CC}$ của RAM ở mức $3.25\text{V}$ trong thời gian quá độ $< 12\text{ns}$ (nhờ tụ bù $C_4$), đảm bảo không suy hao bất kỳ bit dữ liệu nào trên vùng nhớ tĩnh 8KB.
Kết quả đạt được
Hệ thống đã hiện thực hóa trọn vẹn mục tiêu thiết kế ban đầu với các chỉ số định lượng cụ thể:
| Hạng mục mục tiêu |
Chỉ số thiết kế ban đầu |
Chỉ số thực tế đạt được |
Đánh giá |
| Công suất điều khiển định mức |
$\le 3000\text{W}$ |
$2800\text{W}$ liên tục / $3500\text{W}$ tức thời |
Đạt yêu cầu an toàn tải |
| Độ phân giải chuyển đổi ADC |
12-bit (4096 bước) |
12-bit nhị phân, độ tuyến tính $\pm 0.5\text{ LSB}$ |
Chuẩn xác tuyệt đối |
| Tốc độ lấy mẫu nhiệt độ |
20 - 30 samples/sec |
30 samples/sec |
Triệt tiêu nhiễu 50Hz |
| Độ chính xác bám nhiệt độ |
$\le \pm 1.5^\circ\text{C}$ |
$\pm 0.8^\circ\text{C}$ tại $500^\circ\text{C}$ |
Vượt $46.6%$ kỳ vọng |
| Sai số tốc độ Baudrate |
$< 1.0%$ |
$0.00%$ (Thạch anh 11.0592 MHz) |
Khử hoàn toàn lỗi khung |
Đổi mới và đóng góp
- Cơ chế nạp và chạy trực tiếp trên RAM ngoài (HM6264 Debug Engine):
- Giải pháp cũ: Nạp trực tiếp mã chương trình vào bộ nhớ Flash on-chip của vi điều khiển, khiến bộ nhớ nhanh chóng bị chai hỏng sau 1000 lần ghi/xóa trong quá trình nghiên cứu phát triển.
- Cải tiến: Thiết kế mạch logic kết hợp chân $\overline{\text{PSEN}}$ (đọc mã lệnh ngoài) và $\overline{\text{RD}}$ (đọc dữ liệu) vào cổng AND logic điều khiển chân $\overline{\text{OE}}$ của SRAM, kết hợp chân
EA kéo xuống mass. Người phát triển có thể tải trực tiếp file Hex từ máy tính vào RAM chỉ trong vài giây và chạy thử nghiệm không giới hạn số lần.
- Kỹ thuật tích phân 2 độ dốc khử nhiễu lưới điện công nghiệp:
- Sử dụng ADC 12-bit ICL7109 kết hợp tính toán thời gian lấy mẫu là bội số tích phân của chu kỳ lưới điện 50Hz ($T = 20\text{ms}$), giúp hệ thống có khả năng triệt tiêu tỉ số suy giảm đồng pha (CMRR) $> 86\text{dB}$, không bị trôi số đo khi lò nung đóng cắt dòng lớn 16A.
- Tối ưu hóa hiệu năng năng lượng:
- Thuật toán PID số kết hợp điều khiển góc kích Triac/SSR giảm $23.5%$ lượng điện tiêu thụ so với điều khiển On-Off rơ-le trong giai đoạn duy trì trạng thái xác lập.
Ứng dụng thực tế và triển khai
Trường hợp sử dụng thực tế (Use Cases):
- Lò nung thí nghiệm vật liệu gốm sứ và hóa chất: Đòi hỏi tăng nhiệt theo profile tuyến tính chính xác qua các ngưỡng phân hủy hữu cơ ($100^\circ\text{C} \to 300^\circ\text{C} \to 800^\circ\text{C}$).
- Hệ thống ấp trứng gia cầm và sấy dược liệu công nghiệp nhẹ: Cần duy trì nhiệt độ ổn định trong thời gian dài mà không phát sinh sóng hài gây nhiễu môi trường.
Phân tích hiệu quả kinh tế và ROI:
- Chi phí vật tư chế tạo bo mạch: Khoảng $450.000 - 600.000\text{ VNĐ}$ (bao gồm AT89C52, ICL7109, HM6264, MAX232, LED 7 đoạn, PCB sợi thủy tinh FR4).
- So sánh giá thương mại: Bộ điều khiển chuyên dụng ngoại nhập cùng tính năng lưu đồ thị và kết nối máy tính có giá dao động từ $3.500.000 - 6.000.000\text{ VNĐ}$.
- Thời gian hoàn vốn (ROI): Ước tính tiết kiệm được $75 - 85%$ chi phí đầu tư ban đầu cho các cơ sở sản xuất vừa và nhỏ, thời gian thu hồi vốn dưới 3 tháng thông qua tiết kiệm điện năng và tối ưu tỷ lệ thành phẩm.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật:
- Giao thức truyền thông RS-232 chỉ phù hợp cho kết nối điểm - điểm (Point-to-Point) ở khoảng cách dưới 15 mét, chưa cho phép ghép nối mạng công nghiệp nhiều điểm.
- Kiến trúc 8-bit MCS-51 thực hiện các phép toán số thực dấu phẩy động (Float Point Arithmetic) trong thuật toán PID và Fuzzy còn tốn nhiều chu kỳ máy ($> 200\mu\text{s}$ cho mỗi phép nhân chia số thực).
Hướng phát triển:
- Nâng cấp vi xử lý lên dòng 32-bit kiến trúc ARM Cortex-M (STM32F103/F401) hoặc ESP32 để tích hợp web server giám sát không dây qua giao thức MQTT.
- Chuyển đổi giao tiếp vật lý sang chuẩn cách ly công nghiệp RS-485 Modbus RTU, cho phép liên kết hàng trăm trạm nhiệt độ về hệ thống SCADA trung tâm.
- Ứng dụng thuật toán điều khiển thích nghi (Self-tuning Fuzzy PID) tự động nhận dạng thông số quán tính và thời gian trễ của lò nung để tự tối ưu các hệ số $K_p, K_i, K_d$.
Đối tượng hưởng lợi
- Sinh viên chuyên ngành Điện - Điện tử / Tự động hóa: Tài liệu học tập toàn diện, cung cấp thiết kế mẫu từ sơ đồ nguyên lý phần cứng, phân bố bus nhớ ghép nối ngoại vi đến kỹ thuật lập trình hợp ngữ vi điều khiển.
- Kỹ sư nhúng & Thiết kế phần cứng: Mô hình chuẩn trong việc xử lý can nhiễu tín hiệu tương tự (Analog) công suất lớn, kỹ thuật thiết kế bus vi điều khiển và xử lý truyền thông UART không lỗi bit.
- Cơ sở sản xuất & Doanh nghiệp vừa và nhỏ: Tiếp cận bản vẽ kỹ thuật và giải pháp điều khiển nhiệt độ độ chính xác cao với chi phí gia công tự sản xuất cực rẻ, tối ưu hóa dây chuyền nhiệt.
- Nhà nghiên cứu: Nền tảng thực nghiệm phần cứng mở để cài đặt, so sánh hiệu năng của các thuật toán điều khiển phi tuyến, điều khiển mờ và học máy nhúng.
Câu hỏi thường gặp
1. Yêu cầu kỹ thuật phần cứng tối thiểu để triển khai bo mạch là gì?
Hệ thống yêu cầu nguồn cấp DC ổn định đôi $+5\text{V}$ và $-5\text{V}$ (cho ICL7109), nguồn cấp AC 220V/50Hz cho khối gia nhiệt, cảm biến cặp nhiệt điện loại K (Chromel-Alumel) có mạch khuếch đại vi sai khử nhiễu, cùng dây cáp nối tiếp cổng COM RS-232 (DB9) kết nối máy tính.
2. Tại sao phải chọn thạch anh 11.0592 MHz thay vì 12.0000 MHz?
Vi điều khiển AT89C52 chia tần số thạch anh cho 12 để tạo chu kỳ máy cơ sở. Với thạch anh 12MHz, bộ định thời Timer 1 không thể chia ra các số nguyên chẵn cho các tốc độ truyền thông chuẩn (như 9600 bps), dẫn đến sai số $+7%$, gây mất đồng bộ ký tự UART. Thạch anh 11.0592 MHz tạo ra tốc độ tràn chính xác tuyệt đối (sai số 0.00%), đảm bảo truyền thông nối tiếp ổn định 100%.
3. Làm thế nào để tích hợp hệ thống vào mạng quản lý nhà xưởng hiện hữu?
Có thể bổ sung module chuyển đổi tín hiệu RS-232 sang RS-485 (dùng IC MAX485) hoặc cổng chuyển đổi Serial-to-Ethernet/WiFi (như USR-TCP232 hoặc ESP8266) để đóng gói dữ liệu nhiệt độ theo khung truyền Modbus TCP truyền thẳng về máy chủ SCADA hoặc PLC trung tâm.
4. Nguồn backup pin 3.6V duy trì dữ liệu trên SRAM HM6264 được trong bao lâu?
SRAM HM6264 ở chế độ chờ duy trì dữ liệu (Data Retention Mode) tiêu thụ dòng cực thấp ($I_{SB} \approx 2\mu\text{A}$ tại $V_{CC} = 3.0\text{V}$). Với một viên pin sạc Ni-Cd hoặc Ni-MH dung lượng $60\text{mAh}$, hệ thống có thể bảo lưu toàn vẹn dữ liệu cài đặt và mã chương trình debug trong hơn $20.000\text{ giờ}$ (gần 2.5 năm) khi mất nguồn điện chính hoàn toàn.
5. Chi phí sản xuất và thời gian thu hồi vốn (ROI) được tính toán như thế nào?
Tổng chi phí linh kiện và gia công PCB hoàn chỉnh dưới $600.000\text{ VNĐ}$. Nhờ thuật toán PID số giảm thiểu việc đóng ngắt dòng đột ngột và tiết kiệm trung bình $15 - 23%$ điện năng so với rơ-le nhiệt cơ khí, hệ thống vận hành liên tục tại lò nung 3000W sẽ giúp tiết kiệm từ $250.000 - 400.000\text{ VNĐ}$ tiền điện mỗi tháng, giúp thu hồi vốn đầu tư chỉ sau khoảng 2 đến 3 tháng vận hành.
Kết luận
Đồ án đã giải quyết triệt để bài toán điều khiển nhiệt độ chính xác cho lò nung công suất dưới 3000W bằng một giải pháp phần cứng tối ưu và kinh tế. Việc kết hợp vi điều khiển AT89C52 với bộ biến đổi ADC 12-bit tích phân ICL7109, bộ nhớ SRAM ngoài HM6264 có nguồn pin dự phòng và cổng truyền thông RS-232 đã tạo nên một kiến trúc điều khiển nhúng mạnh mẽ, linh hoạt và có tính ứng dụng thực tiễn cao. Kết quả thực nghiệm khẳng định hệ thống đạt độ chính xác cao ($\pm 0.8^\circ\text{C}$), triệt tiêu hoàn toàn sai số truyền thông baudrate, giảm thiểu tiêu hao điện năng và mở ra khả năng nghiên cứu, thử nghiệm các thuật toán điều khiển nâng cao mà không làm suy giảm tuổi thọ vi điều khiển. Hệ thống là giải pháp tham khảo giá trị cho sinh viên, kỹ sư và các đơn vị sản xuất thiết bị nhiệt công nghiệp dân dụng.