Bo thu tín hiệu trên xe phục vụ chấm 11 bài sát hạch trong hình. Nguyên tắc: 1 bo cho mọi xe, khác biệt chỉ ở file config. Điểm chốt sau rà soát: kiến trúc hybrid — tap dây (IO) cho body-signals; RPM lấy từ OBD-II, tốc độ từ RTK (không tap CKP/ABS); số đang gài tính từ RPM ÷ tốc độ (bỏ cảm biến cơ khí). Phần tín hiệu sân + tọa độ RTK bàn ở trang khác. Liên quan: RTK/GNSS & nhà cung cấp · Kiến trúc quản lý thiết bị · module dat.
Trong sa hình, phần lớn điểm là VỊ TRÍ (RTK). Vai trò bo tín hiệu xe hẹp, tập trung vào nhóm sau (~9 kênh digital + OBD + RTK). Vẫn thiết kế 16 kênh để dư cho module đường trường.
| Tín hiệu | Nguồn | Loại | Ghi chú |
|---|---|---|---|
| Chân phanh | 🚗 tap dây | Digital | Công tắc chân phanh (phía tải) |
| Chân côn (ly hợp) | 🚗 tap dây | Digital | Bài đề-pa; công tắc côn hoặc lắp thêm |
| Phanh tay | 🚗 tap dây | Digital | Bài 1, 3 |
| Xi-nhan trái / phải | 🚗 tap dây | Digital (xung) | ~1.5Hz → đo thời gian bật; hazard = cả hai cùng bật |
| Dây an toàn | 🚗 tap dây | Digital | Lỗi xuyên suốt |
| Cửa | 🚗 tap dây | Digital | ⚠️ tiếp mass (low-side) — xem §4 |
| Số lùi (reverse) | 🚗 tap dây | Digital | MỚI — công tắc đèn lùi. Bài 7, 10 |
| Khởi động (ignition) | 🚗 tap dây | Digital | MỚI — bài 1 |
| RPM (chết máy) | 🚗 OBD/tacho | (không tap CKP) | Chết máy = RPM 0 khi đang chạy bài |
| Tốc độ | 🛰️ RTK/GPS | (không tap ABS) | Suy từ vị trí 20Hz |
| Số đang gài (gear) | tính toán | RPM ÷ tốc độ | Bỏ cảm biến cơ khí — xem §6 |
🚗 tín hiệu xe · 🛰️ RTK/GPS · 🏁 hạ tầng sân · ⏱️ thời gian (firmware).
| # | Bài trong hình | Chấm cái gì | Nguồn |
|---|---|---|---|
| 1 | Xuất phát | Thắt dây an toàn · xi-nhan trái · nhả phanh tay · vào số · ≤20–30s | 🚗 seatbelt, left_ind, handbrake, gear, RPM · ⏱️ |
| 2 | Dừng nhường người đi bộ | Dừng hẳn, đúng vạch | 🛰️ vị trí + 🚗 speed=0/brake |
| 3 | Đề-pa lên dốc | Đúng vạch · không tụt >50cm · không chết máy · khởi hành ≤30s | 🛰️ vị trí + 🚗 RPM, handbrake, clutch, brake · ⏱️ |
| 4 | Vệt bánh xe + vuông góc | Bánh đúng vệt · không đè vạch · xi-nhan khi rẽ | 🛰️ vị trí bánh + 🚗 indicators |
| 5 | Ngã tư đèn tín hiệu | Dừng khi đỏ · không đè vạch dừng · đi khi xanh | 🏁 đèn + 🛰️ vị trí + 🚗 brake/speed |
| 6 | Đường vòng quanh co (chữ S) | Không đè vạch | 🛰️ hầu như chỉ vị trí |
| 7 | Ghép xe dọc (lùi chuồng) | Vào chuồng, không đè vạch · số lùi · ≤2 phút · không chết máy | 🛰️ vị trí + 🚗 reverse, RPM · ⏱️ |
| 8 | Tạm dừng đường sắt | Dừng hẳn đúng vạch | 🛰️ vị trí + 🚗 speed=0/brake |
| 9 | Thay đổi số đường bằng | Lên đủ số / đạt số-tốc-độ trong đoạn | 🚗 gear + RPM + speed + 🛰️ đoạn đường |
| 10 | Ghép xe ngang (đỗ song song) | Vào ô đỗ, không đè vạch · số lùi | 🛰️ vị trí + 🚗 reverse |
| 11 | Kết thúc | Xi-nhan phải · về đúng vạch | 🚗 right_ind + 🛰️ vị trí |
| + | Tình huống nguy hiểm | Kích hoạt ngẫu nhiên → thời gian phản ứng phanh + đèn khẩn (hazard) | 🏁 kích hoạt + 🚗 brake, hazard + ⏱️ |
| ↺ | Lỗi xuyên suốt | Chết máy · quá tốc độ · cửa mở · tháo dây an toàn · quá thời gian · đè vạch | 🚗 RPM, door, seatbelt · 🛰️ speed, đè vạch · ⏱️ |
Thiết kế 1 kênh chuẩn, nhân 16 kênh. Sửa so với bản gốc: phải nhận cả tín hiệu high-side (có 12/24V khi tác động: phanh, xi-nhan…) lẫn low-side/tiếp mass (cửa: mở = mass). Topology cố định của bản gốc khiến tín hiệu tiếp mass không có đường dòng thắp LED opto và bị đảo cực.
| Ký hiệu | Giá trị | Ghi chú |
|---|---|---|
| R1 | 3.9kΩ 0.25W | ~2.8mA@12V, ~5.8mA@24V, ~9mA@36V — an toàn |
| D2 | 1N4148 | Chặn áp ngược LED (bỏ nếu dùng opto AC-input) |
| C1 | 100nF/50V | Lọc nhiễu, chống rung |
| U | PC817C / PC814 (AC-input) | PC814 nhận lưỡng cực → 1 kênh nhận cả 2 kiểu |
| R3 / C2 | 10kΩ pull-up / 10nF | Pull-up collector → 3.3V; debounce (tùy chọn) |
| TVS | SMBJ24A | Bảo vệ dây dài ngoài xe |
Vì sao bỏ cảm biến cơ khí: cần số sàn H-pattern có 2 bậc tự do (chọn rãnh trái–phải + gài trước–sau). Một kênh analog + ngưỡng ADC ánh xạ 1 giá trị → số là bất khả thi (không phân biệt 1/3/5). Cảm biến 2 trục thì đắt, lắp xâm nhập, khác nhau từng xe.
| Chức năng | Linh kiện | Ghi chú |
|---|---|---|
| MCU | STM32F401 (thay F103C8T6) | Dư RAM/tốc độ cho: 16 GPIO + OBD + ghi SD + đóng gói/ký sự kiện. F103C8 nhiều hàng clone/EOL, ghi SD song song đếm xung dễ rớt |
| RTC + đồng bộ giờ | DS3231 + CR2032 · chân PPS | Kỷ luật bằng PPS từ GNSS → chung trục thời gian với RTK (bắt buộc) |
| Đường dữ liệu real-time | UART / CAN / Ethernet | Sự kiện thời gian thực ra máy chấm — không chỉ ghi SD |
| Lưu trữ + config | microSD (SPI) · EEPROM 24LC256 | Log thô 10–50Hz (lưới an toàn) · config từng xe |
| Log ký số | HMAC/chữ ký theo phiên | Giá trị pháp lý — QCVN cấm tự ý đổi sau kiểm chuẩn |
| Tamper · Watchdog | Reed switch · IWDG + TPS3823 | Mở hộp → gắn cờ; auto-restart khi treo |
Phần mạnh của thiết kế — giữ nguyên.
Cùng 1 firmware, đổi file config là đổi loại xe. So với bản gốc: bỏ gear_sensor analog, thêm reverse/ignition, side high/low, gear tính từ tỉ số.
{
"vehicle": "HYUNDAI-ACCENT-2023-B2",
"supply_voltage": 12,
"time_source": "gnss_pps",
"speed_source": "rtk", // không tap ABS
"rpm_source": "obd", // PID 0x0C, không tap CKP
"digital": {
"brake": { "pin":"PA0", "side":"high", "active":"low" },
"clutch": { "pin":"PA1", "side":"high", "active":"low" },
"handbrake": { "pin":"PA2", "side":"high", "active":"low" },
"left_ind": { "pin":"PA3", "side":"high", "active":"low", "pulse":true },
"right_ind": { "pin":"PA4", "side":"high", "active":"low", "pulse":true },
"seatbelt": { "pin":"PA5", "side":"high", "active":"low" },
"door": { "pin":"PA6", "side":"low", "active":"low" },
"reverse": { "pin":"PA7", "side":"high", "active":"low" },
"ignition": { "pin":"PB0", "side":"high", "active":"low" }
},
"derived": {
"hazard": "left_ind && right_ind",
"stall": "rpm < 300 && !clutch && speed_kmh < 3",
"gear": { "method":"rpm_over_speed",
"ratios":{ "1":135, "2":78, "3":52, "4":39, "5":31 },
"reverse_from":"reverse" }
},
"obd": { "protocol":"auto", "rpm_pid":"0x0C", "poll_hz":15 }
}
side = kiểu đấu phần cứng (high/low), active = cực tính logic. pulse:true cho xi-nhan → đo thời gian bật. Xe số tự động: bỏ clutch, gear lấy từ OBD nếu có PID số, hoặc null.
| Việc | Mức | Ghi chú |
|---|---|---|
| Danh sách lỗi trừ điểm + ngưỡng theo QCVN/TT 108/2026 | 🔴 Chặn | Neo mọi ngưỡng (tụt dốc, thời gian, đè vạch) |
| Danh sách 11 bài có đổi theo TT 108/2026 không | 🔴 Chặn | Ảnh hưởng bộ tín hiệu |
| Format sự kiện chuẩn nội bộ (bo thu ↔ RTK ↔ máy chấm) | 🔴 Chốt sớm | Hợp đồng phần cứng–phần mềm; sửa muộn = OTA firmware |
| OBD-II có trả RPM trên xe sát hạch VN (i10, Morning, Vios, Accent…)? | ⚠️ | Nếu không → dây tacho + 6N137 |
| Tap dây phía nào (bulb vs BCM) cho xi-nhan/đèn xe đời mới (CAN/PWM) | ⚠️ | Tap tại bóng đèn, lọc PWM |
| Quy trình lắp không phá đăng kiểm + được trung tâm chấp nhận | ⚠️ | Đấu song song, reversible, có tài liệu |
| Hiệu chuẩn ratios gear + offset từng dòng xe | ⚠️ | Quy trình chuẩn 1 lần/dòng xe |
| Load dump 24V — chọn TVS + verify clamp < 60V | 🟢 | Bench test ISO 7637-2 |