Thứ Bảy, 24 tháng 6, 2017

[CAN2.0][Controller Area Network][Bài 10] Quy định về đồng bộ trong bus CAN

1. Đồng bộ cứng - Hard Synchronization

Đồng bộ cứng làm cho thời gian bit đang được giám sát tại một Node CAN khởi động lại vị trí Sync_seg.

Đồng bộ cứng xảy ra khi có cạnh bit, cạnh lên hoặc cạnh xuống. Như vậy, một cạnh bit xuất hiện sẽ làm việc tính toán thời gian bit của một Node khởi động lại về Sync_seg.

Khi Node phát hiện cạnh xuống của SOF trên đường truyền, Node bắt đầu tính toán thời gian bit bắt đầu từ Sync_seg.
Hình 1. Các phân đoạn của 1 bit
2. Độ rộng bước tái đồng bộ - Resynchronization Jump Width

Như đã trình bày về định thời bit, độ dài đoạn Phase_seg1 và Phase_seg2 không cố định mà Phase_seg1 có thể bị kéo dài và Phase_seg2 có thể bị rút ngắn trong quá trình một Node hoạt động.

Độ rộng bước tái đông bộ (RJW hoặc SJW) sẽ quy định đố lớn của đoạn được kéo dài hoặc rút ngắn. RJW có thể được lập trình trong khoảng từ 1 đến Min(4, Phase_seg1).

3. Lỗi pha của một cạnh bit - Phase Error

Lỗi pha của một cạnh, cạnh lên hoặc cạnh xuống, được xác định bởi vị trí của cạnh bit so với đoạn Sync_seg. Lỗi pha được đo bằng đơn vị TQ. Ký hiệu lỗi pha được quy định như sau:

  • e = 0: cạnh bit xuất hiện trong vùng Sync_seg và không xảy ra lỗi pha
  • e > 0: cạnh bit xuất hiện sau Sync_seg và trước điểm lấy mẫu (Sample point) gọi là lỗi pha dương
  • e < 0: cạnh bit xuất hiện sau điểm lấy mẫu và trước Sync_seg của bit tiếp theo gọi là lỗi pha âm


Hình 2. Vị trí xác định lỗi pha của cạnh bit
Như vậy việc xác định lỗi pha chỉ khi có sự xuất hiện cạnh bit. Việc truyền liên tiếp nhiều bit cùng mức logic sẽ không xác định được lỗi pha. Mỗi Node đều giám sát thời gian từng bit được truyền trên bus. Khi một cạnh bit xuất hiện. Một Node sẽ kiểm tra xem cạnh này rơi vào đoạn thời gian nào của bit mà nó đang giám sát. Từ đó, nó xác định có lỗi pha hay không.

CAN truyền theo dạng NRZ nên việc truyền nhiều bit cùng mức logic liên tiếp sẽ có thể gây ra mất đồng bộ dẫn đến việc nhận dữ liệu bị sai. Vì vậy, chuẩn CAN đã quy định về việc chèn bit để giải quyết vấn đề này. Việc chèn một bit trái dấu sẽ làm các Node đang nhận đồng bộ lại việc tính toán thời gian bit của chúng.

4. Tái đồng bộ - Resynchronization

Sự tái đồng bộ chỉ có thể xảy ra khi xuất hiện cạnh bit. Sự tái đồng bộ xảy ra như đồng bộ cứng (hard synchronization) nếu lớn lỗi pha có xảy ra nhưng độ lớn lỗi pha nhỏ hơn hoặc bằng độ rộng bước tái đồng bộ RJW.
Nếu độ lớn lỗi pha lớn hơn RJW thì việc tái đồng bộ được thực hiện như sau:

  • Nếu lỗi pha dương thì Phase_seg1 được kéo dài thêm một đoạn đúng bằng RJW.
  • Nếu lỗi pha âm thì Phase_seg2 được rút ngắn một đoạn đúng bằng RJW
5. Quy luật đồng bộ - Synchronization rules

Đồng bộ cứng và Tái đồng bộ là hai dạng của sự đồng bộ. Chúng tuân theo quy luật sau đây:
  1. Chỉ một quy luật đồng bộ được áp dụng cho một bit. Một bit nếu đã áp dụng đồng bộ cứng thì không áp dụng tái đồng bộ.
  2. Sự đồng bộ chỉ áp dụng cho một cạnh nếu giá trị được phát hiện tại điểm lấy mẫu trước đó (giá trị bus được đọc trước đó) khác giá trị bus ngay sau cạnh bit.
  3. Đồng bộ cứng xảy ra khi xuất hiện cạnh chuyển từ bit recessive sang bit dominant khi bus IDLE. Như vậy, việc xuất hiện cạnh của một SOF sẽ làm tất cả các Node trong mạng CAN được đồng bộ.
  4. Tất cả các cạnh chuyển từ recessive thành dominant khác theo luật 1 và luật 2 sẽ sử dụng Tái đồng bộ. Ngoại trừ, một Node truyền một bit dominant sẽ không thực hiện Tái đồng bộ khi cạnh chuyển từ recessive sang dominant với lỗi pha dương, nếu chỉ có các cạnh recessive-dominant được sử dụng cho việc Tái đồng bộ.
6. Giải thích về các yêu cầu và quy luật đồng bộ

Kết hợp quy tắc Đồng bộ cứng và Quy luật đồng bộ thì Đồng bộ cứng chỉ xảy ra khi bắt đầu bit SOF khi xét trong một thông điệp.

Sự tái đồng bộ có hai cơ chế thực hiện tùy vào độ lớn của lỗi pha:
  • Lỗi pha nhờ hơn hoặc bằng RJW thì Tái đồng bộ khởi động lại việc tính thời gian bit vào đoạn Sync_seg như đồng bộ cứng
  • Lỗi pha lớn hơn RJW thì Tái đồng bộ kéo dài đoạn Phase_seg1 hoặc rút ngắn đoạn Phase_seg2 theo giá trị cấu hình RJW

Hình 3. Sự tái đồng bộ khi xuất hiện lỗi pha dương nhỏ hơn RJW (trên) và lớn hơn RJW (dưới)
Hình 4. Sự tái đồng bộ khi xuất hiện lỗi pha âm nhỏ hơn RJW (trên) và lớn hơn RJW (dưới)







0 bình luận:

Đăng nhận xét