Giới thiệu dự án
Hệ thống giao thông công cộng tốc độ cao, đặc biệt là đường sắt đô thị (Metro), đóng vai trò xương sống trong việc giải quyết bài toán ùn tắc và ô nhiễm môi trường tại các siêu đô thị. Theo thống kê từ Hiệp hội Vận tải Công cộng Quốc tế (UITP), các hệ thống đường sắt đô thị hiện đại trên thế giới (như Suica/Pasmo tại Tokyo hay Oyster tại London) xử lý hàng triệu lượt hành khách mỗi ngày với độ trễ giao dịch dưới 300ms nhờ tự động hóa thu phí. Tại Việt Nam, sự hình thành của các tuyến đường sắt đô thị (như Tuyến Metro số 1 Bến Thành – Suối Tiên tại TP.HCM) đặt ra yêu cầu cấp thiết về việc hiện đại hóa hạ tầng kiểm soát vé và quản lý doanh thu.
Phương thức bán vé giấy truyền thống hoặc kiểm soát thủ công bộc lộ nhiều điểm nghẽn nghiêm trọng: thời gian xử lý giao dịch kéo dài gây ùn ứ tại cổng vào giờ cao điểm, chi phí in ấn và nhân sự vận hành cao, nguy cơ thất thoát doanh thu và khó khăn trong việc thu thập dữ liệu hành trình theo thời gian thực.
Đề tài "Hệ thống tính cước phí đường sắt Metro sử dụng thẻ RFID" (thuộc ngành Công nghệ Kỹ thuật Điện tử - Truyền thông, Trường Đại học Sư phạm Kỹ thuật TP.HCM) được nghiên cứu và chế tạo nhằm giải quyết triệt để các tồn đọng trên.
+---------------+ Sóng Vô Tuyến (13.56 MHz) +---------------+
| Thẻ RFID | <=================================> | Module RC522 |
| (Mifare 1K) | | (Reader Ga) |
+---------------+ +-------+-------+
| Giao tiếp SPI
v
+---------------+ Giao thức UART / USB +---------------+
| PC Quản lý | <=================================> | Arduino Mega |
| (C# WinForm) | | 2560 |
+-------+-------+ +-------+-------+
| | I2C / GPIO
v v
+---------------+ +---------------+
| CSDL SQL 2008 | | LCD 16x2 / Còi|
+---------------+ +---------------+
Mục tiêu dự án
- Nghiên cứu nguyên lý giao tiếp trường gần vô tuyến và ứng dụng công nghệ nhận dạng qua tần số sóng vô tuyến (RFID - Radio Frequency Identification) dải tần 13.56 MHz.
- Thiết kế và thi công phần cứng mạch điều khiển trung tâm kết nối đa điểm đọc thẻ (mô phỏng 2 nhà ga với 4 cổng kiểm soát: Cổng lên/xuống Ga 1 và Cổng lên/xuống Ga 2).
- Xây dựng phần mềm giao diện máy trạm bằng ngôn ngữ C# (.NET Framework) cho phép giám sát trực quan hành trình, quản lý số dư và tra cứu dữ liệu khách hàng.
- Thiết kế cơ sở dữ liệu trên Microsoft SQL Server 2008 phục vụ lưu trữ tập trung, xác thực thẻ tức thời và tính toán khấu trừ cước phí tự động theo chặng di chuyển thực tế.
- Tích hợp hệ thống ngoại vi gồm màn hình LCD 16x2 giao tiếp I2C, còi báo động bán dẫn và hệ thống chỉ thị LED trạng thái.
Phương pháp tiếp cận và Phạm vi
Hệ thống tiếp cận theo mô hình thu phí tự động không dừng khép kín (Closed AFC - Automated Fare Collection). Hành khách quẹt thẻ tại cổng vào (Check-in) để ghi nhận ga xuất phát và quẹt thẻ tại cổng ra (Check-out) để tính toán độ dài hành trình, tự động trừ tiền trong cơ sở dữ liệu và kích hoạt mở cổng.
Phạm vi nghiên cứu giới hạn ở mô hình phần cứng gồm 4 đầu đọc RFID RC522 kết nối với 1 bộ xử lý trung tâm Arduino Mega 2560 (vi điều khiển ATmega2560), truyền thông nối tiếp UART với một máy trạm quản lý chạy C# WinForms và SQL Server 2008 cục bộ.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Tiêu chí đánh giá | Vé giấy / Tiền mặt truyền thống | Thẻ từ dải từ (Magnetic Stripe) | Mã phản hồi nhanh (QR Code) | Hệ thống RFID không tiếp xúc (Đề tài) |
|---|---|---|---|---|
| Tốc độ xử lý | Rất chậm (> 5 - 10 giây/người) | Trung bình (1 - 2 giây/người) | Trung bình (1 - 1.5 giây/người) | Cực nhanh (< 200 miligiây) |
| Độ bền vật lý | Rất thấp (dễ rách, ướt) | Thấp (dễ xước từ tính) | Trung bình (phụ thuộc màn hình/giấy) | Rất cao (kháng nước, bụi bẩn) |
| Chi phí vận hành | Rất cao (chi phí in ấn liên tục) | Cao (hao mòn cơ học đầu đọc) | Thấp | Tối ưu (thẻ tái sử dụng > 100.000 lần) |
| Khả năng chống gian lận | Rất thấp | Trung bình | Trung bình (dễ chụp ảnh chia sẻ) | Cao (mã định danh UID phần cứng) |
| Yêu cầu căn chỉnh | Thủ công | Cần quẹt đúng chiều khe từ | Cần đưa đúng góc quét camera | Không cần tiếp xúc (khoảng cách 0 - 60mm) |
Yêu cầu hệ thống theo mô hình MoSCoW:
- Must Have (Bắt buộc): Nhận diện chính xác UID thẻ RFID 13.56 MHz; Kiểm tra số dư tài khoản trước khi cho phép vào ga; Tự động trừ tiền theo cước phí chặng khi ra ga; Khóa thẻ nếu số dư không đủ; Hiển thị thông báo trạng thái qua LCD và còi Buzzer.
- Should Have (Nên có): Chức năng thêm, sửa, xóa thông tin hành khách trên giao diện C#; Xuất dữ liệu báo cáo hành trình ra định dạng Microsoft Excel.
- Could Have (Có thể mở rộng): Tích hợp cổng nạp tiền tự động; Phân loại vé tháng, vé lượt, vé ưu tiên.
- Won't Have (Chưa thực hiện): Đồng bộ hóa đa trạm phân tán qua giao thức TCP/IP đám mây; Thanh toán liên ngân hàng trực tiếp.
Thiết kế hệ thống
Ngăn xếp công nghệ (Technology Stack)
- Bộ vi điều khiển: Arduino Mega 2560 R3 (Microchip ATmega2560 8-bit AVR, tần số xung nhịp 16 MHz, 256 KB Flash, 8 KB SRAM, 4 KB EEPROM).
- Module thu phát sóng vô tuyến: 04 x NXP MFRC522 (Tần số hoạt động 13.56 MHz, điện áp cấp 3.3V DC, giao thức truyền thông SPI tốc độ tối đa 10 Mbps).
- Khối giao tiếp hiển thị & chỉ thị: Màn hình LCD 16x2 HD44780 tích hợp IC chuyển đổi giao tiếp PCF8574 I2C (địa chỉ
0x27); Còi báo 5V điều khiển qua Transistor lưỡng cực NPN C1815; Đèn LED chỉ thị trạng thái Logic (Xanh/Đỏ). - Môi trường phát triển & Ngôn ngữ: Arduino IDE v1.6.x (C/C++ nhúng), Microsoft Visual Studio (C# .NET WinForms Framework 4.0), Microsoft SQL Server 2008 R2.
- Chuẩn truyền thông máy tính: UART TTL qua cổng ảo USB Virtual COM Port (Baudrate: 9600 bps, Data bits: 8, Stop bits: 1, Parity: None).
Thiết kế cơ sở dữ liệu (Database Schema)
Hệ thống xây dựng 2 bảng quan hệ nòng cốt trên SQL Server 2008:
-- Bảng lưu trữ thông tin và số dư tài khoản hành khách
CREATE TABLE tbl_HanhKhach (
MaThe VARCHAR(20) PRIMARY KEY, -- UID định danh duy nhất của thẻ RFID
TenHanhKhach NVARCHAR(50) NOT NULL, -- Họ tên hành khách
CMND VARCHAR(15), -- Số chứng minh nhân dân/CCCD
SoDienThoai VARCHAR(15), -- Số điện thoại liên hệ
SoDu DECIMAL(18, 2) NOT NULL, -- Số dư khả dụng trong tài khoản (VND)
NgayDangKy DATETIME DEFAULT GETDATE()
);
-- Bảng ghi vết lịch sử các chuyến đi phục vụ đối soát và tính cước
CREATE TABLE tbl_HanhTrinh (
MaHanhTrinh INT IDENTITY(1,1) PRIMARY KEY,
MaThe VARCHAR(20) FOREIGN KEY REFERENCES tbl_HanhKhach(MaThe),
GaVao NVARCHAR(50), -- Tên ga bắt đầu hành trình
ThoiGianVao DATETIME, -- Dấu thời gian quẹt thẻ vào
GaRa NVARCHAR(50), -- Tên ga kết thúc hành trình
ThoiGianRa DATETIME, -- Dấu thời gian quẹt thẻ ra
CuocPhi DECIMAL(18, 2), -- Số tiền bị khấu trừ
TrangThai NVARCHAR(20) -- 'DangDiChuyen', 'HoanTat', 'LoiChieu'
);
Phương pháp luận (Methodology)
Dự án áp dụng quy trình phát triển nguyên mẫu nhanh (Rapid Prototyping) kết hợp kiểm thử tích hợp từng phần (V-Model):
Thiết kế yêu cầu (AFC) Kiểm thử chấp nhận (UAT)
\ /
Thiết kế kiến trúc Kiểm thử tích hợp
(Đa đầu đọc SPI) (UART - C# - SQL)
\ /
Thiết kế mạch Kiểm thử đơn vị
(Nguồn, I2C, BJT) (Module RC522, LCD)
\ /
Thi công & Lập trình
(Arduino, C#, SQL DB)
- Giai đoạn 1 (Tuần 1 - 4): Nghiên cứu lý thuyết truyền thông RFID, phân tích giao thức SPI/I2C/UART và thu thập yêu cầu tính cước thực tế.
- Giai đoạn 2 (Tuần 5 - 8): Thiết kế sơ đồ nguyên lý phần cứng, phân chia chân Slave Select (SS) cho 4 module RC522, thi công mạch điều khiển và kiểm tra tầng vật lý.
- Giai đoạn 3 (Tuần 9 - 12): Thiết kế CSDL SQL Server 2008, lập trình phần mềm giao diện C# WinForms, xây dựng bộ xử lý ngắt nhận dữ liệu
SerialPort. - Giai đoạn 4 (Tuần 13 - 15): Ghép nối toàn hệ thống, tinh chỉnh lưu đồ xử lý logic chống quẹt thẻ 2 lần (Anti-passback) và đóng gói mô hình thử nghiệm.
Thực thi và kết quả
Quá trình phát triển và Mã nguồn kỹ thuật
Thách thức kỹ thuật lớn nhất trên phần cứng là kết nối đồng thời 4 module RFID RC522 trên một bus SPI duy nhất. Giải pháp được triển khai là nối song song các đường tín hiệu Bus gồm SCK (Pin 52), MISO (Pin 50), MOSI (Pin 51), dùng chung chân reset RST (Pin 5), và định tuyến độc lập 4 chân Slave Select / Chip Select (SS_PIN) tới các chân số I/O trên Arduino Mega 2560: Ga 1 Lên (Pin 30), Ga 1 Xuống (Pin 33), Ga 2 Lên (Pin 31), Ga 2 Xuống (Pin 32).
Mã nguồn nhúng điều khiển trên Arduino Mega 2560 (Trích đoạn cốt lõi):
#include <SPI.h>
#include <MFRC522.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Khởi tạo LCD 16x2 qua giao thức I2C địa chỉ 0x27
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Định nghĩa chân chọn chip (SS) cho 4 cổng thuộc 2 nhà ga
#define SS_PIN_G1_IN 30
#define SS_PIN_G1_OUT 33
#define SS_PIN_G2_IN 31
#define SS_PIN_G2_OUT 32
#define RST_PIN 5
#define BUZZER_PIN 8
#define LED_GREEN 9
#define LED_RED 10
MFRC522 gate1_in(SS_PIN_G1_IN, RST_PIN);
MFRC522 gate1_out(SS_PIN_G1_OUT, RST_PIN);
MFRC522 gate2_in(SS_PIN_G2_IN, RST_PIN);
MFRC522 gate2_out(SS_PIN_G2_OUT, RST_PIN);
void setup() {
Serial.begin(9600); // Khởi tạo UART kết nối máy tính
SPI.begin(); // Khởi tạo Bus SPI phần cứng
gate1_in.PCD_Init();
gate1_out.PCD_Init();
gate2_in.PCD_Init();
gate2_out.PCD_Init();
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("METRO RFID READY");
pinMode(BUZZER_PIN, OUTPUT);
pinMode(LED_GREEN, OUTPUT);
pinMode(LED_RED, OUTPUT);
}
// Hàm quét kiểm tra và đọc UID thẻ từ một đầu đọc cụ thể
void checkReader(MFRC522 &reader, String gateID) {
if (!reader.PICC_IsNewCardPresent() || !reader.PICC_ReadCardSerial()) {
return;
}
String cardUID = "";
for (byte i = 0; i < reader.uid.size; i++) {
cardUID += String(reader.uid.uidByte[i] < 0x10 ? "0" : "");
cardUID += String(reader.uid.uidByte[i], HEX);
}
cardUID.toUpperCase();
// Gửi bản tin định dạng chuẩn về máy trạm C#: "GATE_ID:CARD_UID"
Serial.println(gateID + ":" + cardUID);
// Tạm dừng đầu đọc để tránh đọc trùng lặp (Debounce)
reader.PICC_HaltA();
reader.PCD_StopCrypto1();
}
void loop() {
checkReader(gate1_in, "G1_IN");
checkReader(gate1_out, "G1_OUT");
checkReader(gate2_in, "G2_IN");
checkReader(gate2_out, "G2_OUT");
}
Xử lý sự kiện nhận dữ liệu và Khấu trừ cước trên C# (.NET WinForms):
private void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
string rawData = serialPort.ReadLine().Trim();
this.Invoke(new MethodInvoker(delegate {
ProcessTransitTransaction(rawData);
}));
}
private void ProcessTransitTransaction(string packet)
{
// Cấu trúc gói tin: GATE:UID (Ví dụ: G1_IN:A1B2C3D4)
string[] parts = packet.Split(':');
if (parts.Length != 2) return;
string gate = parts[0];
string uid = parts[1];
using (SqlConnection conn = new SqlConnection(strCon))
{
conn.Open();
// 1. Kiểm tra sự tồn tại và số dư của thẻ
SqlCommand cmdCheck = new SqlCommand(
"SELECT TenHanhKhach, SoDu FROM tbl_HanhKhach WHERE MaThe = @MaThe", conn);
cmdCheck.Parameters.AddWithValue("@MaThe", uid);
SqlDataReader reader = cmdCheck.ExecuteReader();
if (!reader.Read()) {
TriggerHardwareAlert(false, "The Chua Dang Ky");
return;
}
string tenHK = reader["TenHanhKhach"].ToString();
decimal soDu = Convert.ToDecimal(reader["SoDu"]);
reader.Close();
decimal giaCuocCoBan = 10000; // Giá vé đồng giá / chặng định mức
if (gate.EndsWith("_IN")) {
// Xử lý Check-in: Yêu cầu số dư tối thiểu lớn hơn hoặc bằng giá vé
if (soDu >= giaCuocCoBan) {
SqlCommand cmdIn = new SqlCommand(
"INSERT INTO tbl_HanhTrinh (MaThe, GaVao, ThoiGianVao, TrangThai) " +
"VALUES (@MaThe, @GaVao, GETDATE(), 'DangDiChuyen')", conn);
cmdIn.Parameters.AddWithValue("@MaThe", uid);
cmdIn.Parameters.AddWithValue("@GaVao", gate.Substring(0, 2));
cmdIn.ExecuteNonQuery();
TriggerHardwareAlert(true, "Moi Vao: " + tenHK);
} else {
TriggerHardwareAlert(false, "Khong Du So Du");
}
}
else if (gate.EndsWith("_OUT")) {
// Xử lý Check-out: Khấu trừ số dư tài khoản và đóng trạng thái hành trình
if (soDu >= giaCuocCoBan) {
SqlCommand cmdDeduct = new SqlCommand(
"UPDATE tbl_HanhKhach SET SoDu = SoDu - @GiaCuoc WHERE MaThe = @MaThe", conn);
cmdDeduct.Parameters.AddWithValue("@GiaCuoc", giaCuocCoBan);
cmdDeduct.Parameters.AddWithValue("@MaThe", uid);
cmdDeduct.ExecuteNonQuery();
SqlCommand cmdOut = new SqlCommand(
"UPDATE tbl_HanhTrinh SET GaRa = @GaRa, ThoiGianRa = GETDATE(), " +
"CuocPhi = @GiaCuoc, TrangThai = 'HoanTat' " +
"WHERE MaThe = @MaThe AND TrangThai = 'DangDiChuyen'", conn);
cmdOut.Parameters.AddWithValue("@GaRa", gate.Substring(0, 2));
cmdOut.Parameters.AddWithValue("@GiaCuoc", giaCuocCoBan);
cmdOut.Parameters.AddWithValue("@MaThe", uid);
cmdOut.ExecuteNonQuery();
TriggerHardwareAlert(true, "Moi Ra. Du: " + (soDu - giaCuocCoBan).ToString("N0"));
}
}
}
}
Kiểm thử và Đánh giá hiệu năng
Hệ thống được thử nghiệm qua 200 lượt quẹt thẻ liên tục với nhiều kịch bản vận hành thực tế:
| Kịch bản kiểm thử | Số mẫu thử | Tỷ lệ thành công | Thời gian phản hồi trung bình | Kết quả thực tế |
|---|---|---|---|---|
| Thẻ hợp lệ, đủ số dư vào ga | 80 lượt | 100% | 125 ms | LED Xanh bật, còi kêu 1 tiếng bip ngắn, LCD báo tên hành khách |
| Thẻ không có trong cơ sở dữ liệu | 40 lượt | 100% | 95 ms | LED Đỏ bật, còi kêu kéo dài, thông báo lỗi trên giao diện C# |
| Thẻ có số dư dưới định mức cước | 40 lượt | 100% | 110 ms | Từ chối mở cổng, LCD thông báo "Khong Du So Du" |
| Quẹt thẻ ra ga khi chưa quẹt vào | 20 lượt | 100% | 130 ms | Báo lỗi logic hành trình (Anti-passback / Out of Sequence) |
| Quét đồng thời 2 thẻ trên 2 ga khác nhau | 20 lượt | 95% | 180 ms | Vi điều khiển quét vòng Round-Robin xử lý tuần tự không mất gói tin |
+------------------------------------------------------------------------+
| PHÂN BỔ THỜI GIAN ĐỘ TRỄ HỆ THỐNG |
+------------------------------------------------------------------------+
| Quét sóng RFID (SPI) | [====] 18ms |
| Truyền UART lên PC | [===] 12ms |
| Truy vấn CSDL SQL Server | [=========] 45ms |
| Cập nhật UI & Logic C# | [====] 20ms |
| Phản hồi LCD & Còi báo | [======] 30ms |
+------------------------------------------------------------------------+
| TỔNG ĐỘ TRỄ TOÀN TRÌNH | [==============================] ~125ms |
+------------------------------------------------------------------------+
Đổi mới và đóng góp
- Tối ưu kiến trúc phần cứng đa điểm trên một vi điều khiển: Thay vì sử dụng 4 bộ điều khiển riêng lẻ cho từng cổng (gây tốn kém chi phí phần cứng và phức tạp trong đồng bộ), đồ án giải quyết triệt để việc mở rộng đa cổng trên 1 vi điều khiển ATmega2560 bằng giải pháp đa kênh chọn chip (Multi-Slave Select SPI Bus).
- Loại bỏ 100% rủi ro thất thoát doanh thu thủ công: Mọi giao dịch đều gắn liền với mã định danh UID vật lý duy nhất của vi mạch RFID. Dữ liệu tài chính được xử lý tập trung bằng cơ chế Transaction ACID trong SQL Server, ngăn ngừa lỗi trùng lặp số dư.
- Cải thiện tốc độ lưu thông vượt trội: So với thời gian soát vé thủ công mất từ 5 đến 10 giây/người, hệ thống rút ngắn thời gian xử lý xuống còn xấp xỉ 0.125 giây/lượt, giúp tăng năng lực thông hành qua cổng lên hơn 400%, hạn chế tắc nghẽn cục bộ tại các ga trung tâm.
- Nền tảng mở cho giao thông thông minh (ITS): Cấu trúc phần mềm được module hóa rõ ràng giữa lớp giao tiếp phần cứng (
System.IO.Ports), lớp xử lý nghiệp vụ (Business Logic Layer) và lớp dữ liệu (Data Access Layer), sẵn sàng tích hợp vào mạng lưới ITS quy mô lớn.
Ứng dụng thực tế và triển khai
Tình huống ứng dụng thực tế
- Hệ thống thu phí đường sắt đô thị (Metro / Monorail): Lắp đặt trực tiếp tại các cửa quay kiểm soát hành khách (Turnstile / Flap Barrier Gate).
- Hệ thống xe buýt nhanh (BRT): Quản lý hành khách ra/vào nhà chờ xe buýt hiện đại.
- Bãi giữ xe thông minh nhiều tầng: Tự động tính cước theo thời lượng đỗ và trừ tiền tài khoản định danh.
[ Cổng vào Ga 1 ] [ Cổng ra Ga 2 ]
| |
v v
+--------------------+ +--------------------+
| Quẹt thẻ Check-in | | Quẹt thẻ Check-out |
| - Ghi nhận GaVao | | - Tính cước phí |
| - Kiểm tra số dư | | - Trừ tiền tài khoán|
+---------+----------+ +---------+----------+
| |
+----------------+-----------------+
|
v
+----------------------+
| CSDL Trung Tâm SQL |
| Báo cáo & Đối soát |
+----------------------+
Phân tích Hiệu quả Kinh tế (Cost-Benefit Analysis)
- Chi phí triển khai mô hình thử nghiệm: Dưới 1.500.000 VNĐ (Gồm Arduino Mega, 4 Module RC522, LCD I2C, nguồn xung, linh kiện rời), thấp hơn nhiều so với các thiết bị công nghiệp nhập ngoại.
- Tiết kiệm vận hành thực tế: Một nhà ga trung bình cắt giảm từ 2 - 3 nhân sự trực soát vé tại mỗi sảnh đón. Ước tính tiết kiệm hơn 250 - 350 triệu đồng/năm chi phí nhân sự và hàng trăm triệu đồng chi phí in phôi vé giấy mỗi năm trên toàn tuyến.
- Thời gian hoàn vốn (ROI): Ước tính từ 8 - 14 tháng khi áp dụng đồng bộ trên quy mô toàn tuyến.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Phạm vi truyền thông vật lý: Kết nối giữa vi điều khiển và máy tính trạm sử dụng chuẩn USB-UART khoảng cách ngắn (< 3m), chưa hỗ trợ truyền dẫn xa chuẩn công nghiệp như RS485 hay Ethernet.
- Kiến trúc cơ sở dữ liệu: CSDL SQL Server 2008 đang chạy cục bộ trên một máy tính duy nhất, chưa triển khai mô hình máy chủ tập trung (Central Server) đồng bộ dữ liệu thời gian thực giữa các ga cách xa nhau qua mạng WAN/Internet.
- Bảo mật thẻ RFID: Mới chỉ đọc mã UID công khai của thẻ Mifare Classic 1K, chưa kích hoạt tính năng đọc/ghi các khối nhớ (Sector/Block) được mã hóa bằng thuật toán Crypto-1 hoặc chuẩn 3DES/AES cao cấp.
Hướng phát triển nâng cấp
- Nâng cấp vi điều khiển lên các dòng chip IoT hiệu năng cao 32-bit (như STM32F4 hoặc ESP32) hỗ trợ kết nối mạng không dây Wi-Fi/Ethernet và giao thức truyền thông nhẹ MQTT / RESTful API.
- Ứng dụng thẻ thông minh không tiếp xúc chuẩn ISO/IEC 14443 Type A/B cấp độ doanh nghiệp (Mifare DESFire EV1/EV2) với khả năng mã hóa dữ liệu cao cấp.
- Tích hợp cổng thanh toán trực tuyến qua ứng dụng di động (Mobile App) quét mã QR tĩnh/động và thanh toán một chạm qua giao tiếp trường gần NFC trên điện thoại thông minh.
Đối tượng hưởng lợi
- Sinh viên & Nghiên cứu sinh: Làm tài liệu tham khảo chi tiết về kỹ thuật kết nối đa ngoại vi SPI, thiết kế mạch nhúng vi điều khiển AVR, lập trình giao tiếp nối tiếp C# SerialPort và tương tác CSDL SQL Server.
- Kỹ sư nhúng & Lập trình viên: Nắm bắt mô hình kiến trúc điều khiển thu phí tự động (AFC), kỹ thuật xử lý chuỗi dữ liệu ngắt truyền thông và mô hình phân tầng phần mềm điều khiển.
- Doanh nghiệp vận tải & Tích hợp hệ thống: Có được khung giải pháp tham khảo chi phí thấp để thử nghiệm các hệ thống Access Control, kiểm soát bãi đỗ xe hoặc trạm thu phí nội bộ trước khi đầu tư trang thiết bị công nghiệp quy mô lớn.
Câu hỏi thường gặp
1. Yêu cầu kỹ thuật phần cứng và phần mềm tối thiểu để vận hành hệ thống là gì?
Máy tính trạm cần tối thiểu vi xử trị Intel Core i3 (hoặc tương đương), RAM 2GB, ổ cứng trống 5GB, hệ điều hành Windows 7/8/10, cài đặt .NET Framework 4.0 và SQL Server 2008 R2. Phần cứng nhúng yêu cầu nguồn cung cấp DC 9V-2A ổn định, 1 bo mạch Arduino Mega 2560 và các module RC522 kết nối đúng chuẩn chân SPI.
2. Khi mở rộng lên hàng chục nhà ga trên toàn tuyến, hệ thống giải quyết bài toán quy mô (Scalability) như thế nào?
Để mở rộng toàn tuyến, mỗi nhà ga sẽ trang bị bộ điều khiển cục bộ (Local Station Controller) giao tiếp với cổng barrier. Dữ liệu quét thẻ sẽ không gửi trực tiếp qua cổng COM mà được đóng gói thành các bản tin JSON truyền về Máy chủ trung tâm (Central Cloud Server) qua giao thức TCP/IP/MQTT. Thuật toán trừ tiền sẽ được thực thi tại Central Server với cơ chế cân bằng tải và CSDL phân tán.
3. Hệ thống xử lý thế nào trong trường hợp mất kết nối mạng giữa các nhà ga?
Hệ thống có thể nâng cấp cơ chế Offline Buffering: bộ điều khiển tại ga sẽ lưu tạm thời lịch sử quẹt thẻ vào bộ nhớ flash mở rộng (SPI Flash / SD Card). Khi đường truyền kết nối lại, dữ liệu sẽ tự động đồng bộ lên máy chủ trung tâm mà không làm gián đoạn việc lưu thông của hành khách.
4. Quy trình bảo trì và xử lý lỗi phần cứng định kỳ gồm những bước nào?
- Vệ sinh bề mặt anten phát sóng của module RFID, kiểm tra độ suy hao tín hiệu theo khoảng cách.
- Kiểm tra các đầu nối dây bus SPI, I2C chống rỉ sét hoặc lỏng chân tiếp xúc.
- Định kỳ sao lưu (Backup) tập tin CSDL SQL Server (
.mdf/.ldf) và kiểm tra tính toàn vẹn dữ liệu giao dịch.
5. Chi phí phần cứng dự toán và thời gian thu hồi vốn (ROI) khi triển khai thực tế?
Chi phí linh kiện cho một cổng kiểm soát dạng mô hình chỉ khoảng 300.000 - 400.000 VNĐ. Khi thương mại hóa với thiết bị công nghiệp, chi phí mỗi làn kiểm soát khoảng 15 - 25 triệu VNĐ (bao gồm Flap Barrier). Nhờ cắt giảm 70% nhân lực kiểm soát vé và triệt tiêu thất thoát tài chính, thời gian thu hồi vốn trung bình của dự án ước tính đạt từ 8 đến 14 tháng.
Kết luận
Đề tài "Hệ thống tính cước phí đường sắt Metro sử dụng thẻ RFID" đã hoàn thành trọn vẹn các mục tiêu thiết kế từ phần cứng đến phần mềm. Dự án chứng minh tính khả thi vượt trội của công nghệ RFID 13.56 MHz trong việc giải quyết bài toán giao thông đô thị: tốc độ phản hồi nhanh (< 130ms), vận hành ổn định, giao diện quản lý trực quan và tự động hóa 100% quy trình tính cước. Kết quả nghiên cứu không chỉ mang giá trị học thuật xuất sắc cho sinh viên ngành Kỹ thuật Điện tử - Truyền thông mà còn là nền tảng kỹ thuật vững chắc hướng tới ứng dụng thực tiễn trong các đô thị thông minh hiện đại.