Chủ Nhật, 11 tháng 6, 2017

[CAN2.0][Controller Area Network][Bài 2] Cấu trúc và các thành phần trong bus CAN

1. Cấu trúc mạng CAN

Mạng CAN gồm các thành phần cơ bản sau:
Hình 1. Cấu trúc bus và Node của mạng CAN
  • Bus CAN là bus vi sai gồm:
    • Dây cáp gồm hai dây riêng biệt được gọi là CAN_H (CAN High) và CAN_L (CAN Low). Tùy vào mỗi ứng dụng mà hai dây này có thể là dây xoắn kép hay cáp quang. Ngoài ra, dây cáp còn có vỏ bọc chống nhiễu, vỏ này được nối đến một điện áp tham khảo hoặc GND. CAN_H có điện áp cao, thường là 0V khi bus không truyền, nhận dữ liệu. CAN_L có điện áp thấp, thường là +5V khi bus không truyền, nhận dữ liệu. Như đã nói, bus CAN là bus vi sai, khi dữ liệu được truyền trên bus, điện áp trên CAN_H và CAN_L sẽ thay đổi, mức logic 0/1 sẽ được xác định căn cứ trên sự chênh lệch (sai lệch) điện áp giữa CAN_H và CAN_L.
    • Điện trở đầu cuối của đường dây là 120Ω.
Hình 2. Dây cáp bus CAN
  • Node (Statation): là một thành phần kết nối đến bus CAN thông quan 2 dây CAN_H và CAN_L. Node này là cá bo mạch hoặc module điều khiển.
Hình 3.1. Minh họa một mạng CAN
Hình 3.2. Minh họa một mạng CAN trong xe hơi sử dụng các chip Motorola (nguồn: www.mi.fu-berlin.de)

2. Cấu trúc Node hay Station

Mỗi một nút CAN yêu cầu phải có một ‘vi điều khiển’ (microcontroller - MCU) kết nối với một ‘bộ điều khiển CAN’ (CAN – Controller). Bộ điều khiển CAN sẽ được kết nối với ‘bộ chuyển đổi CAN’, hay bộ truyền-nhận hoặc bộ thu-phát, (CAN – Transceiver) thông qua một đường ra dữ liệu nối tiếp (Tx) và một đường vào dữ liệu nối tiếp (Rx). Đường Vref là điện áp ra tham khảo cung cấp một mức điện áp danh định bằng 0.5×Vcc = 0.5×5 = 2.5V.
Hình 4. Minh họa một Node gồm bo mạch thực thị giao thức CAN, bo MCU, bo nút nhấn và bo LED
  • Microcontroller - MCU thực thi các chức năng chính, điều khiển chính của một Node. Thực hiện cấu hình hoạt động cho CAN controller, phân phối dữ liệu cần truyền đến CAN controller, lấy dữ liệu nhận từ CAN controller để sử dụng cho hoạt động của Node.
  • CAN controller thực thi các xử lý về truyền nhận dữ liệu, báo lỗi, tính toán thời gian bit, ... theo chuẩn CAN quy định; phát dữ liệu cần truyền dạng số (theo mức logic 0/1) ra chân TX; nhận dữ liện dạng số qua chân RX. CAN controller có thể là một chip (vi mạch) độc lập, ví dụ như MCP2515 của Microchip, hoặc là một ngoại vi được tích hợp bên trong vi điều khiển, ví dụ như LPC2290 của NXP Semiconductors
  • CAN transceiver hoạt động như bộ chuyển đổi từ tín hiệu số (mức logic 0/1) trên đường TX thành tín hiệu tương tự trên bus CAN và ngược lại, chuyển đổi từ tín hiệu tương tự trên bus CAN (CAN_H và CAN_L) thành tín hiệu số trên đường RX

3. Tín hiệu trên bus CAN

Như đã trình bày, CAN transceiver chuyển đổi qua lại giữa tín hiệu số (giao tiếp với CAN controller) và tương tự (giao tiếp với bus CAN). Trong giao thức CAN,
  • Mức dominant, nghĩa là "mức trội" hay "mức chiếm ưu thế", là mức logic 0
  • Mức recessive, nghĩa là "mức lặn" hay "mức ẩn", là mức 1
Điều này vì bus CAN hoạt động theo cơ chế AND-wire, khi một logic 0 và một logic cùng được truyền từ CAN controller qua CAN transceiver đến bus CAN thì trên bus CAN sẽ thể hiện mức điện áp biểu diễn cho bit 0 (bit trội).

Mức áp trên bus CAN trong tầm từ -2V trên CAN_L, đến +7V trên CAN_H nhưng được sử dụng phổ biến là 0V trên CAN_L và +5V trên CAN_H khi dùng ở tốc tộ cao 1Mbit/s. Đường CAN_H có mức áp +5V khi ở trạng thái nghỉ và sẽ sụt áp còn +3.5V khi đang hoạt động. Lúc này, mức +3.5V được quy định là mức ‘dominant’ và +2.5V được quy định là mức ‘recessive’.

Đường CAN_L có mức áp 0V khi ở trạng thái nghỉ và sẽ tăng lên +1.5V khi hoạt động. Lúc này, mức +1.5V được quy định là mức ‘dominant’ và +2.5V được quy định là mức ‘recessive’.
Hình 5. Mức điện áp trên đường CAN_H và CAN_L khi truyền dữ liệu
Trạng thái bus dựa vào sự sai lệch áp giữa CAN_H và CAN_L. Cụ thể, nếu sai lệch điện áp thấp hơn điệp áp ngưỡng tối thiểu thì đó là mức recessive (mức 1), thường dưới +0.5V. Nếu sai lệch điện áp cao hơn điện áp ngưỡng tối thiểu thì đó là mức dominant (mức 0), thường trên +0.9V. Nếu sai lệch áp rơi vào khoảng từ 0.5V đến ).9V thì không thể phân biệt được mức logic và gây sai dữ liệu.
Hình 6. Xác định mức logic thông qua sai lệch áp giữa CAN_H và CAN_L
Hình 7. Một phần cấu trúc của chip CAN transceiver gồm bộ lái bus Driver và bộ nhận từ bus Receiver
Hình 8. Minh họa một dạng sóng đo đạc thực tế trên ngõ vào Driver, ngõ ra Receiver và CAN bus
Lịch sử cập nhật:
1) 2019.10.18 - Chỉnh sửa link hình minh họa

2 bình luận: