Thứ Sáu, 30 tháng 6, 2017

[CANFD][Controller Area Network][Bài 3] CANFD - Sự khác nhau giữa CAN FD và CAN 2.0 - phần 3

Tham khảo: CAN with Flexible Data-Rate Specification Version 1.0 (released April 17th, 2012) by BOSCH

Nội dung phần này chỉ nói về điểm khác biệt của CAN FD so với CAN Specification 2.0 (CAN 2.0). Bạn đọc hãy tham khảo về CAN2.0 trước khi đọc bài này.

1. Luật chèn Bit (Stuffing)

Khác với CAN 2.0, luật chèn bit áp dụng cho các vùng từ SOF đến CRC Sequence. Định dạng khung truyền CAN FD có sự thay đổi về luật chèn bit cho vùng CRC Sequence. Các bit được chèn thêm ở vùng này chỉ nằm ở các vị trí cố định.

Một bit cố định được chèn ở trước bit đầu tiên của CRC Sequence cho dù các bit cuối cùng của vùng trước đó chưa đáp ứng đúng theo điều kiện của luật chèn bit, nghĩa là chưa xuất hiện 5 bit cùng mức logic liên tiếp nhau. Sau đó, mỗi bit chèn sẽ được thêm sau mỗi nhóm 4 bit của chuỗi CRC Sequence. Giá trị của bit chèn là đảo của giá trị bit đứng ngay trước nó.

Bộ nhận sẽ bỏ qua các bit chèn khi nhận CRC. Bộ nhận sẽ phát hiện ra lỗi chèn bit (Stuff Error) nếu phát hiện ra bit được chèn có giá trị giống giá trị bit ngay trước nó. Số bit chèn cố định trong CRC định dạng CAN FD bằng với số tối đa của các bit chèn khi áp dụng luật chèn bit của định dạng CAN (5 bit cùng mức thì chèn 1 bit đảo).

Hình 1. So sánh số bit chèn trên CRC15 giữa CAN FD và một trường hợp chèn tối đa theo luật chèn bit CAN 2.0

2. Các loại lỗi

Các loại lỗi được phát hiện trong CAN FD tương tự như CAN 2.0 nhưng lỗi định dạng (Form Error) bổ sung thêm lỗi khi phát hiện lỗi ở bit chèn cố định của vùng CRC Sequence.

3. Quy định về thời gian bit

Do các khung truyền định dạng CAN FD có thể hỗ trợ 2 tốc độ bit khác nhau, 1 cho pha phân xử (Arbitration phase) và 1 cho pha dữ liệu (Data phase), nên trong phần cứng CAN controller sẽ có 2 bộ thanh ghi cấu hình về thời gian bit cho 2 tốc độ này.

Tương tự CAN 2.0, thời gian của một bit vẫn luôn gồm 4 đoạn là Sync_seg, Prop_seg, Phase_seg1 và Phase_seg2. Điểm lấy mẫu (sample point) vẫn ở cuối Phase_seg1. Nhưng vì CAN FD hỗ trợ 2 tốc độ bit nên định nghĩa thêm thuật ngữ để phân biệt 2 tốc độ bit này.

Thời gian bit danh định (Nominal Bit Time) là khái niệm dành cho pha phân xử. Đối với pha dữ liệu thì thời gian lý tưởng của 1 bit gọi là thời gian bit dữ liệu (Data Bit Time).

TIME QUANTUM(N) = m(N) * MINIMUM TIME QUANTUM

TIME QUANTUM(D) = m(D) * MINIMUM TIME QUANTUM
  • MINIMUM TIME QUANTUM (TQ tối thiểu): là giá trị thời gian tối thiểu được chia từ xung clock cấp cho CAN controller
  • m: là giá trị của bộ đếm số TQ tối thiểu
  • TQ: Thời gian dùng để tính độ dài 1 bit

Như vậy, độ dài đơn vị thời gian TQ của pha phân xử TQ(N) và pha dữ liệu TQ(D) có thể khác hoặc bằng nhau.

Tương tự, tốc độ bit danh định (Norminal Bit Rate) dùng để nói về tốc độ bit của pha phân xử ở CAN FD còn đối với pha dữ liệu, tốc độ này được gọi là tốc độ bit dữ liệu (Data Bit Rate).

Đối với tốc độ bit danh định, độ dài các đoạn thời gian của một bit được quy định như sau:

  • Sync_seg:     1 TQ(N)
  • Prop_seg:     1 đến 32 TQ(N)
  • Phase_seg1: 1 đến 32 TQ(N)
  • Phase_seg2:  max(Phase_seg1, Thời gian lan truyền thông tin IPT)
Đối với tốc độ bit dữ liệu, độ dài các đoạn thời gian của 1 bit giống quy định của chuẩn CAN 2.0 như sau:
  • Sync_seg:     1 TQ(D)
  • Prop_seg:     1 đến 8 TQ(D)
  • Phase_seg1: 1 đến 8 TQ(D)
  • Phase_seg2:  max(Phase_seg1, Thời gian lan truyền thông tin IPT)


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