Timing Modbus RTU: 3.5 Char – Silent Interval – Collision Detection
Trong Modbus RTU, dữ liệu không được đóng gói bằng ký tự bắt đầu hoặc kết thúc cố định như Modbus ASCII. Thay vào đó, khoảng thời gian im lặng (silent interval) giữa các Frame đóng vai trò then chốt trong việc phân định ranh giới dữ liệu.
Chính vì vậy, cơ chế Timing là yếu tố sống còn để Modbus RTU hoạt động ổn định trên nền truyền thông nối tiếp như RS-485.
1. Vì sao Timing quan trọng trong Modbus RTU?
Modbus RTU truyền dữ liệu dạng nhị phân liên tục, không có ký tự Start/End Frame rõ ràng. Thiết bị nhận chỉ có thể dựa vào khoảng thời gian im lặng giữa các byte để xác định:
- Kết thúc một Frame
- Bắt đầu Frame mới
- Phát hiện lỗi truyền hoặc nhiễu
2. Quy tắc 3.5 Character Time là gì?
3.5 Character Time (3.5T) là khoảng thời gian im lặng tối thiểu để xác định kết thúc một Frame.
Cách tính thời gian của 1 ký tự (Character Time):
Character Time = (Start bit + Data bits + Parity + Stop bits) / Baud rate
Ví dụ với cấu hình phổ biến:
- Baud rate: 9600 bps
- Khung truyền: 8 data bit, even parity, 1 stop bit (11 bit)
⇒ Thời gian 1 ký tự ≈ 11 / 9600 ≈ 1.146 ms
⇒ 3.5 Char Time ≈ 4.01 ms
Nếu bus im lặng ít nhất 3.5T, thiết bị sẽ hiểu là Frame đã kết thúc.
3. Quy tắc 1.5 Character Time trong nội bộ Frame
Ngoài 3.5T, Modbus RTU còn quy định:
- Khoảng im lặng giữa các byte trong cùng một Frame không được vượt quá 1.5 Character Time
Nếu vượt quá 1.5T giữa 2 byte:
- Frame đang nhận sẽ bị coi là lỗi
- Thiết bị Reset bộ đệm (Buffer)
4. Silent Interval – Khoảng cách giữa hai Frame
Silent Interval là khoảng thời gian bus phải ở trạng thái rảnh trước khi Master gửi Frame mới.
| Loại khoảng thời gian | Giá trị tiêu chuẩn |
|---|---|
| Giữa các byte | ≤ 1.5 Character Time |
| Giữa các Frame | ≥ 3.5 Character Time |
5. Collision – Va chạm dữ liệu trên RS485
RS-485 hoạt động theo mô hình half-duplex, nghĩa là tại một thời điểm chỉ có một thiết bị được phép phát dữ liệu.
Collision (va chạm) xảy ra khi:
- Master chưa kết thúc Frame nhưng Slave đã bắt đầu trả lời
- Hai Slave cùng phản hồi (do lỗi cấu hình địa chỉ)
- Thiết bị chuyển hướng TX/RX quá chậm
6. Cách hạn chế Collision trong thực tế
- Thiết lập đúng Timing 3.5T và 1.5T trong phần mềm PLC/HMI
- Chỉ cho phép Master điều khiển truyền thông
- Đảm bảo mỗi Slave có Address duy nhất
- Sử dụng điện trở kết thúc (Termination Resistor) 120Ω đúng chuẩn RS-485
7. Ví dụ thực tế trong hệ thống công nghiệp
Trong hệ thống SCADA giám sát trạm bơm, nếu cấu hình Silent Interval quá ngắn, PLC Master có thể gửi lệnh mới khi biến tần chưa kịp phản hồi, dẫn đến:
- Mất Frame dữ liệu
- Lỗi CRC liên tục
- Hệ thống hiểu sai trạng thái thiết bị
8. Kết luận
Timing trong Modbus RTU là yếu tố “vô hình” nhưng quyết định toàn bộ độ tin cậy hệ thống. Việc hiểu rõ 3.5 Character Time, Silent Interval và cơ chế tránh Collision giúp bạn thiết kế mạng RS-485 ổn định, chống nhiễu tốt và tăng tuổi thọ thiết bị.