Cấu trúc frame M-Bus & cơ chế truyền thông

Sau khi đã lần lượt tìm hiểu bản chất giao thức M-Bus (Phần 1), kiến trúc hệ thống Master – Meter (Phần 2) và chuẩn vật lý – topology mạng (Phần 3), chúng ta đã có trong tay một bức tranh tương đối đầy đủ về cách một hệ thống M-Bus được thiết kế và triển khai ngoài thực tế.

Tuy nhiên, để thực sự làm chủ M-Bus ở mức giao thức – từ việc đọc dữ liệu công tơ, phân tích lỗi truyền thông cho đến tích hợp vào PLC, SCADA hay BMS – kỹ sư bắt buộc phải hiểu rõ cấu trúc khung tin (frame / telegram) của M-Bus.

Trong Phần 4 này, BKAII sẽ cùng bạn giải phẫu chi tiết khung tin M-Bus: từ các byte Start, Length, Control, Address, Data, Checksum cho đến cách phân biệt Short frame, Long frame và Telegram. Đây là nền tảng quan trọng giúp bạn có thể đọc – hiểu – phân tích bất kỳ gói tin M-Bus nào trong thực tế.


1. Tổng quan về cơ chế truyền thông M-Bus

M-Bus sử dụng mô hình Master – Slave, trong đó toàn bộ hoạt động truyền thông đều do Master khởi xướng. Các Meter (Slave) chỉ phản hồi khi nhận được yêu cầu hợp lệ từ Master.

  • Master gửi lệnh (request)
  • Meter phản hồi dữ liệu (response)
  • Không có truyền thông ngang hàng giữa các Meter

Cơ chế này giúp M-Bus kiểm soát tốt xung đột truyền thông, phù hợp với hệ thống có số lượng lớn công tơ đo đếm.


2. Frame (Telegram) trong M-Bus là gì?

Trong M-Bus, dữ liệu được truyền dưới dạng telegram – hay còn gọi là frame truyền thông. Mỗi telegram là một chuỗi byte có cấu trúc xác định, tuân theo tiêu chuẩn EN 13757-3.

Tùy theo mục đích truyền thông, M-Bus sử dụng nhiều loại frame khác nhau, phổ biến nhất là Short frameLong frame.


3. Cấu trúc tổng quát của frame M-Bus

Trong giao thức M-Bus (EN 13757-3), mọi quá trình trao đổi dữ liệu giữa MasterMeter (Slave) đều được thực hiện thông qua các frame (khung tin). Mỗi frame M-Bus được thiết kế theo cấu trúc chặt chẽ nhằm đảm bảo truyền thông ổn định, dễ kiểm tra lỗi và phù hợp với môi trường công nghiệp có nhiều nhiễu.

Một frame M-Bus điển hình bao gồm các trường sau:

  • Start byte
  • Length
  • Control field
  • Address field
  • Data field
  • Checksum
  • Stop byte

3.1. Start Byte – Byte bắt đầu khung

Chức năng: Đánh dấu điểm bắt đầu của một frame M-Bus.

Start byte giúp thiết bị nhận đồng bộ luồng dữ liệu và xác định loại frame đang được truyền. Trong M-Bus, Start byte thường có các giá trị đặc trưng như:

  • 0x10 – Short Frame
  • 0x68 – Long Frame

Việc phân biệt Start byte cho phép Master và Meter xử lý đúng cấu trúc frame ngay từ byte đầu tiên.


3.2. Length – Trường độ dài khung

Chức năng: Xác định số byte dữ liệu trong frame.

Trường Length cho biết độ dài phần dữ liệu (tính từ Control field đến Checksum). Đối với Long Frame, giá trị Length thường được lặp lại hai lần nhằm tăng độ tin cậy khi truyền.

Nhờ Length field, thiết bị nhận có thể:

  • Biết chính xác số byte cần đọc
  • Phát hiện frame bị thiếu hoặc dư dữ liệu

3.3. Control Field – Trường điều khiển

Chức năng: Xác định loại frame và hướng truyền thông.

Control field chứa các bit điều khiển cho biết:

  • Frame được gửi từ Master hay từ Meter
  • Loại lệnh (yêu cầu dữ liệu, phản hồi dữ liệu, xác nhận…)
  • Trạng thái truyền thông (ACK, NACK, lỗi…)

Đây là trường quan trọng giúp Master phân biệt giữa các phản hồi hợp lệ và frame lỗi.


3.4. Address Field – Trường địa chỉ

Chức năng: Xác định Meter tham gia truyền thông.

M-Bus hỗ trợ hai cơ chế địa chỉ:

  • Primary Address: địa chỉ ngắn (0–250), phù hợp cho hệ thống nhỏ
  • Secondary Address: địa chỉ mở rộng, cho phép định danh Meter duy nhất trong mạng lớn

Address field giúp Master giao tiếp chính xác với từng Meter, ngay cả khi trên bus có hàng chục hoặc hàng trăm thiết bị.


3.5. Data Field – Trường dữ liệu

Chức năng: Mang thông tin đo và dữ liệu ứng dụng.

Data field là phần lớn nhất và quan trọng nhất của frame M-Bus. Nó có thể chứa:

  • Giá trị đo (điện năng, nước, nhiệt, gas…)
  • Đơn vị đo
  • Thông tin trạng thái Meter
  • Mã dữ liệu theo chuẩn EN 13757

Cách giải mã Data field phụ thuộc vào loại Meter và thường được xử lý bởi gateway hoặc phần mềm trung tâm.


3.6. Checksum – Trường kiểm tra lỗi

Chức năng: Phát hiện lỗi truyền dữ liệu.

Checksum được tính toán dựa trên các byte trong frame (từ Control field đến Data field). Thiết bị nhận sẽ so sánh checksum nhận được với checksum tự tính:

  • Khớp → frame hợp lệ
  • Không khớp → frame bị loại bỏ

Cơ chế này giúp đảm bảo dữ liệu đo không bị sai lệch do nhiễu đường truyền.


3.7. Stop Byte – Byte kết thúc khung

Chức năng: Đánh dấu kết thúc frame M-Bus.

Stop byte thường có giá trị 0x16. Khi nhận byte này, thiết bị hiểu rằng frame đã được truyền hoàn chỉnh và sẵn sàng xử lý nội dung.


Như vậy, mỗi frame M-Bus là một khối dữ liệu có cấu trúc rõ ràng, giúp hệ thống đo đếm hoạt động ổn định, dễ mở rộng và dễ tích hợp vào các nền tảng PLC, SCADA hoặc BMS.


4. Phân tích chi tiết cấu trúc frame M-Bus qua ví dụ thực tế

Để giúp bạn đọc dễ hình dung, trong mục này chúng ta sẽ phân tích một frame M-Bus Long Frame thực tế – dạng khung tin thường gặp nhất khi Master đọc dữ liệu đo từ công tơ.


4.1. Ví dụ một frame M-Bus Long Frame

Giả sử Master gửi lệnh đọc dữ liệu và Meter phản hồi bằng frame sau (dạng HEX):

68 1B 1B 68 08 01 72 01 00 00 00 2C 01 00 00 00 0F 00 00 00 3A 16

Chúng ta sẽ lần lượt “bóc tách” từng byte trong frame này.


4.2. Start Byte – Byte bắt đầu

Byte: 68

Giá trị 0x68 cho biết đây là Long Frame. Trong M-Bus, Start byte giúp thiết bị nhận biết loại frame và đồng bộ quá trình đọc dữ liệu.


4.3. Length Field – Trường độ dài

Bytes: 1B 1B

Hai byte này cho biết độ dài phần dữ liệu trong frame (tính từ Control field đến Checksum). Việc lặp lại giá trị Length hai lần giúp tăng độ tin cậy khi nhận frame.

  • 0x1B = 27 byte dữ liệu

4.4. Start Byte lặp lại

Byte: 68

Start byte xuất hiện lần thứ hai để xác nhận frame hợp lệ trước khi đọc nội dung.


4.5. Control Field – Trường điều khiển

Byte: 08

Control field xác định:

  • Hướng truyền: Meter → Master
  • Loại phản hồi: trả dữ liệu đo

Byte này giúp Master hiểu được đây là frame phản hồi hợp lệ từ Meter.


4.6. Address Field – Địa chỉ Meter

Byte: 01

Đây là Primary Address của Meter trong mạng M-Bus. Trong thực tế, Primary Address thường được dùng cho các hệ thống nhỏ hoặc đã được quy hoạch địa chỉ rõ ràng.


4.7. Data Field – Trường dữ liệu

Các byte:

72 01 00 00 00 2C 01 00 00 00 0F 00 00 00

Đây là phần quan trọng nhất của frame, chứa:

  • Giá trị đo (ví dụ: điện năng, lưu lượng, nhiệt lượng)
  • Đơn vị đo
  • Mã dữ liệu theo chuẩn M-Bus

Việc giải mã Data field thường do gateway M-Bus hoặc phần mềm BMS/SCADA thực hiện, dựa trên chuẩn EN 13757-3.


4.8. Checksum – Kiểm tra lỗi

Byte: 3A

Checksum được tính toán dựa trên toàn bộ dữ liệu trước đó trong frame. Nếu checksum không khớp, frame sẽ bị loại bỏ nhằm tránh sử dụng dữ liệu sai.


4.9. Stop Byte – Kết thúc frame

Byte: 16

Giá trị 0x16 đánh dấu kết thúc frame M-Bus. Khi nhận byte này, thiết bị hiểu rằng frame đã hoàn chỉnh.


4.10. Tổng kết ví dụ

Qua ví dụ trên, có thể thấy một frame M-Bus Long Frame bao gồm đầy đủ:

  • Đồng bộ truyền thông (Start)
  • Xác định độ dài (Length)
  • Điều khiển & địa chỉ hóa (Control, Address)
  • Dữ liệu đo (Data)
  • Kiểm tra lỗi & kết thúc (Checksum, Stop)

Việc hiểu rõ cấu trúc này giúp kỹ sư:

  • Phân tích log truyền thông M-Bus
  • Xử lý lỗi không đọc được công tơ
  • Tích hợp M-Bus vào PLC, SCADA, BMS một cách chủ động

5. Phân biệt Short Frame – Long Frame – Telegram

  • Short Frame: dùng cho lệnh đơn giản, xác nhận (ACK)
  • Long Frame: dùng khi truyền dữ liệu đo đếm
  • Telegram: thuật ngữ chung chỉ mọi frame M-Bus

Việc phân biệt đúng các loại frame giúp kỹ sư dễ dàng phân tích log truyền thông và xử lý lỗi khi tích hợp hệ thống.


 
 

Số lượng người đang truy cập...

Không thể hiển thị dữ liệu người dùng trực tuyến vào lúc này.