• Integrated Circuit Design - Chia sẻ kiến thức về vi mạch

    Vi mạch và Ứng dụng

  • Integrated Circuit Design - Chia sẻ kiến thức về vi mạch

    Vi mạch và Ứng dụng

  • Integrated Circuit Design - Chia sẻ kiến thức về vi mạch

    Vi mạch và Ứng dụng

Thứ Hai, 10 tháng 7, 2017

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

1. Vấn đề đồng bộ trong CAN FD

CAN FD có các quy định về đồng bộ cứng (hard synchronization), tái đồng bộ (Resynchronous), lỗi pha (Phase error) tương tự như CAN 2.0. Bên cạnh đó CAN FD cũng quy định thêm một số điểm khác biệt về vấn đề này.

Ở độ rộng bước tái đồng bộ RJW (Resynchronous Jump Width), nó còn được ký hiệu là SJW, RJW quy định cho pha phân xử và pha dữ liệu là khác nhau:
  • Pha phân xử, RJW được lập trình trong khoảng từ 1 đến min (16, Phase_seg1(N)).
  • Pha phân xử, RJW được lập trình trong khoảng từ 1 đến min(4, Phase_seg1(D)) -> như chuẩn CAN 2.0
Các quy định về sự đồng bộ (Synchronization Rules) cũng có những khác biệt như sau:
  1. Giống CAN 2.0
  2. Giống CAN 2.0
  3. Cả CAN FD và CAN 2.0 đều quy định đồng bộ cứng được áp dụng khi xuất hiện cạnh chuyển từ recessive sang dominant ở vùng Bus Idle. Nhưng CAN FD quy định thêm, điều này còn áp dụng ở vùng Suspend Transmission (xem khoảng liên khung), ở bit thứ 2 hoặc bit thứ 3 của vùng Intermission. Đồng bộ cứng còn được áp dụng tại cạnh chuyển từ recessive sang dominant khi chuyển từ bit EDL thành bit r0 trong khung truyền định dạng CAN FD
  4. Giống CAN 2.0
  5. Một bộ truyền sẽ không thực thi tái đồng bộ trong khi truyền pha dữ liệu trong khung truyền CAN FD (Quy đình này thêm vào và dành riêng cho CAN FD)
2. Dung sai của bộ dao động

Bộ dao động ở đây là nguồn xung clock được cấp cho CAN controller sử dụng tính toán thời gian bit cho các khung truyền. Dung sai là độ sai số cho phép của bộ dao động để đảm bảo mỗi Node có thể hoạt động chính xác nhất.

CAN FD quy định rõ ràng vấn đề này hơn so với CAN 2.0. Cụ thể, dung sai df cho một bộ dao động tần số fosc sẽ quanh tần số danh định fnom như sau:

 (1-df).fnom <= fosc <= (1+df).fnom

nhưng phụ thuộc vào tỷ lệ của Phase_seg1, Phase_seg2, SJW và thời gian bit. Dung sai df tối đa được định nghĩa bởi 5 điều kiện trong đó điều kiện I và II đã được áp dụng cho chuẩn CAN 2.0. Đối với CAN FD, tất cả 5 điều kiện đều phải được áp dụng.
Hình 1. Những điều kiện ràng buộc giá trị dung sai bộ dao động

Ở đây, N là ký hiệu chỉ thông số thuộc cấu hình tốc độ bit danh định và D là ký hiệu chỉ thông số thuộc cấu hình tốc độ bit dữ liệu. Nguyên tắc rất đơn giản, tất cae các thông số cấu hình thời gian bit cần được tính toán bằng các điều kiện ràng buộc trên để chọn bộ dao động có dung sai phù hợp cấu hình. Hoặc khi đã có nguồn dao động và dung sai cụ thể của nó thì việc cấu hình thời gian bit và các thông số khác phải đáp ứng theo dung sai đó.

Cần lưu ý, SJW không được lớn hơn giá trị của Phase_seg1 và Phase_seg2. Đoạn Prop_seg có thể được sử dụng cho các đoạn Phase_seg1 và Phase_seg2. Tổ hợp cấu hình Prop_seg(N)=1 và Phase_seg1(N)=Phase_seg2(N)=SJW(N) cho phép dung sai lớn nhất lên đến 1.58%. Đây cũng là dung sai cho phép trong xử lý của CAN 2.0. Việc tổ hợp Prop_seg khi nó chỉ chiếm 10% thời gian 1 bit là không thích hợp cho các thời gian bit ngắn. Nó có thể được sử dụng cho tốc độ tối đa là 125 kbit/s, tương ứng với thời gian bit là 8 us, với độ dài bus 40 m. Thời gian bit danh định này có thể tổ hợp với một thời gian dữ liệu ngắn hơn.

3. Bù trễ Transceiver

Bù trễ cho CAN transceiver là một khái niệm không có trong CAN 2.0.

Ở CAN FD, nếu không có cơ chế bù trễ, khi một Node là bộ truyền, nó có thể không giám sát được (không nhận được) giá trị bit do chính nó truyền ra tại điểm lấy mẫu (Sample point) như hình 2. Điều này sẽ giới hạn tốc độ của pha dữ liệu, thời gian bit của pha này không được phép quá ngắn dẫn đến tốc độ bit không được phép quá cao.
Hình 2. Trễ trên Transceiver làm giới hạn tốc độ truyền dữ liệu

Các Node CAN FD sẽ hỗ trợ tùy chọn thực thi cơ chế bù trễ cho Transceiver để sử dụng cho các ứng dụng cần thời gian bit trong pha dữ liệu ngắn hơn giới hạn thời gian được quy định trong thời gian trễ của Transceiver.

Cơ chế bù trễ sẽ định nghĩa một điểm lấy mẫu thứ 2 (Secondary Sample Point). Điểm lấy mẫu này được sử dụng để so sánh giá trị bit được truyền ra so với bit được nhận vào theo thứ tự để kiểm tra lỗi bit. Cơ chế này chỉ sử dụng cho bộ truyền và trong pha dữ liệu của khung định dạng CAN FD. Khi sử dụng cơ chế này, bộ truyền sẽ không quan tâm đến giá trị bit ở vị trí lấy mẫu thông thường (Sample point).

Độ trễ bù được ký hiệu là TRV_DELAY. Nó được đo trong từng khung truyền tại cạnh chuyển từ bit EDL sang bit r0 bằng cách đo khoảng cách giữa cạnh bit truyền ra trên TX và cạnh bit nhận được trên RX của CAN controller. Giá trị đo được tính theo đơn vị TQ và sẽ được làm tròn xuống đến số nguyên gần nhất.

Vị trí của điểm lấy mẫu thứ hai sẽ được tính từ điểm lấy mẫu thông thường cộng bù thêm TRV_DELAY, ví dụ như nửa thời gian của 1 bit. Và nó có thể nằm sau điểm cuối của bit truyền.
Hình 3. Bù trễ transceiver trong CAN FD

Nếu một lỗi bit (BIT ERROR) được phát hiện tại điểm lấy mẫu thứ 2, bộ truyền sẽ đáp ứng lại lỗi bit này này ở điểm lấy mẫu (sample point) tiếp theo.


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

Chủ Nhật, 9 tháng 7, 2017

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

CAN FD hỗ trợ hai tốc độ bit trong một khung truyền là tốc độ bit danh định (Nominal Bit Rate) dùng cho pha phân xử và tốc độ bit dữ liệu (Data Bit Rate) dùng cho pha dữ liệu. Phần này sẽ phân tích rõ hiện tượng chuyển đổi giữa hai tốc độ bit này trong giao thức CAN FD.
Hình 1. Pha phân xử và pha dữ liệu trong khung yêu cầu (trên) và khung dữ liệu (dưới)

Việc tốc độ bit có bị chuyển đổi hay không phụ thuộc vào giá trị bit BRS (Bit Rate Switch).
  • BRS = 1 là có chuyển đổi
  • BRS = 0 là không chuyển đổi

Có hai điểm chuyển tốc độ bit là tại vị trí bit BRS và vị trí bit CRC delimiter. Tốc độ bit sẽ được chuyển đổi ngay sau điểm lấy mẫu (sample point) của 2 bit này. Điều này làm cho 2 bit này mang cùng lúc 2 cấu hình tốc độ bit khác nhau. Tổng độ dài của 2 bit này sẽ bằng độ dài 1 bit thuộc cấu hình thời gian bit danh định (Nominal Bit Time) và một bit thuộc cấu hình thời gian bit dữ liệu (Data Bit Time).

Trong trường hợp phát hiện lỗi, Node phải truyền khung báo lỗi nhưng khung này theo tốc độ bit danh định (Nominal Bit Rate). Nếu Node đang truyền trong pha dữ liệu thì nó phải chuyển đổi từ tốc độ bit dữ liệu sang tốc độ bit danh định để phát khung báo lỗi nhưng thời điểm chuyển đổi là sau điểm lấy mẫu của bit hiện tại một khoảng thời gian bằng thời gian xử lý thông tin (Information Processing Time - IPT).

Ví dụ, thời gian bit danh định được cấu hình dựa trên m(N) = 2, đây là hệ số tính độ dài TQ(N). Thời gian các đoạn trong 1 bit gồm:
  • Prop_seg(N)     = 6 TQ
  • Phase_seg1(N)  = 4 TQ
  • Phase_seg2(N)  = 4 TQ
Thời gian dữ liệu được cấu hình dựa trên hệ số m(D) = 1 và có độ dài các đoạn trong 1 bit như sau:
  • Prop_seg(D)     = 1 TQ
  • Phase_seg1(D)  = 4 TQ
  • Phase_seg2(D)  = 4 TQ
Hình 2. Ví dụ về thời gian bit danh định và thời gian bit dữ liệu
Với cấu hình trên, thời gian của bit BRS và CRC Delimiter được thể hiện như sau:
  • Bit BRS: trước điểm lấy mẫu theo cấu hình tốc độ bit danh định, sau điểm lấy mẫu theo tốc độ bit dữ liệu
  • Bit CRC Delimiter: trước điểm lấy mẫu theo cấu hình tốc độ bit dữ liệu, sau điểm lấy mẫu theo tốc độ bit danh định

Hình 3. Độ dài bit BRS và CRC Delimiter

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