Thứ Tư, 21 tháng 6, 2017

[CAN2.0][Controller Area Network][Bài 8] Luật truyền chuỗi bit của CAN - Bit Stream Coding

1. Loại mã hóa chuỗi bit

Phương pháp mã hóa được sử dụng trong giao thức CAN là phương pháp NRZ mà cụ thể hơn là NRZ-L (Non-Return-to-Zero Level). Đây là dạng mã hóa theo mức, tức là mỗi trạng thái dominant và recesive sẽ được quy định mang một mức áp khác nhau. Cụ thể, dominant là mức thấp tương ứng với logic 0, recessive là mức cao tương ứng với logic 1. Trong suốt thời gian phát một bit, không xảy ra sự chuyển mức.
Hình 1. Mã hóa NRZ

2. Luật chèn bit - Bit stuffing

Vấn đề của loại mã hóa NRZ là có thể dẫn đến mất đồng bộ và nhận sai giá trị bit khi truyền một chuỗi bit cùng mức logic quá dài. Vì vậy, CAN quy định cứ sau 5 bit liên tiếp cùng mức logic thì bộ truyền phải tự động chèn một bit trái mức logic, gọi là bit chèn (STUFF BIT).

Luật chèn bit này áp dụng cho vùng SOF, vùng phân xử, vùng điều khiển, vùng dữ liệu và cùng CRC SEQUENCE. Các cùng còn lại là CRC DELIMITER, ACK FIELD và EOF không áp dụng luật này.
Bộ nhận tự động giám sát để loại bỏ bit chèn khi nhận dữ liệu.

Ví dụ:
  • Chuỗi bit gốc:            0100000  00000  1111  10001
  • Chuỗi bit được chèn: 010000010000011111010001
Hình 2. (a) chuỗi bit gốc (b) chuỗi bit sau khi áp dụng luật chèn bit với S là vị trị bit được chèn thêm

Vai trò của các bit chèn là tạo ra sự chuyển mức (cạnh lên hoặc cạnh xuống) để bộ nhận có thể sử dụng tái đồng bộ. Việc đồng bộ khi truyền nhận dữ liệu sẽ được trình bày sau.

Khung báo lỗi và khung báo quá tải có định dạng cố định và không áp dụng luật chèn bit.

3. Luật phân xử

Như đã trình bày trong các phần trước, luật phân xử bit giải quyết vấn đề xung đột khi nhiều Node cùng truyền dữ liệu. Đồng thời, luật phân xử cũng đảm bảo việc truyền thông điệp không bị bất cứ gián đoạn nào khi có xung đột xảy ra.

Sử phân xử này xảy ra trong vùng IDENTIFIER của thông điệp với bit dominant luôn chiếm ưu thế.

Hình 3. Luật phân xử của CAN bus

Sự phân xử và chèn bit được thực hiện tự động bởi chip (vi mạch) thực hiện giao thức CAN.


Lịch sử cập nhật:
1) 2019.10.18 - Chỉnh sửa link hình minh họa

0 bình luận:

Đăng nhận xét