Giao thức truyền thông CAN

Đánh giá

Giao thức truyền thông CAN

1. Giao thức truyền thông CAN là gì?

  • CAN (Controller Area Network) là công nghệ mạng nối tiếp, tốc độ cao, bán song công, hai dây. Ban đầu CAN được thiết kế dành cho ngành công nghiệp ô tô, tuy nhiên hiện nay CAN cũng đã trở thành một tiêu chuẩn phổ biến trong tự động hóa công nghiệp và các ngành khác.

2. Nguyên lý hoạt động CAN (Giao thức truyền thông CAN)

  • CAN sử dụng CSMA / CD + AMP (Carrier Sense Multiple Access / Collision Detection with Arbitration on Message Priority). Trước khi gửi thông điệp, nút CAN sẽ kiểm tra xem bus có bận không. Nó cũng sử dụng để phát hiện khả năng trùng lặp. Những phương thức này cũng tương tự như Ethernet. Tuy nhiên, khi một mạng Ethernet phát hiện xung đột, cả hai nút gửi sẽ ngừng truyền. Sau đó, nó đợi một khoảng thời gian trễ ngẫu nhiên trước khi thử gửi lại. Điều này làm cho mạng Ethernet rất nhạy cảm với tải bus cao. Có thể giải quyết vấn đề này với nguyên tắc xác định quyền ưu tiên rất thông minh trong mạng CAN.

2.1. Nguyên lý hoạt động 

  • Thông điệp dữ liệu được truyền từ bất kỳ nút nào trên bus CAN không chứa địa chỉ của nút truyền hoặc của bất kỳ nút nhận dự kiến ​​nào.
  • Thay vào đó, nội dung của thông điệp được gắn nhãn bởi một số nhận dạng (ID) là duy nhất trên toàn mạng. Tất cả các nút khác trên mạng đều nhận được thông điệp và mỗi nút thực hiện kiểm tra sự chấp nhận trên mã ID để xác định xem thông điệp có liên quan đến nút đó hay không. Nếu thông điệp có liên quan, nó sẽ được xử lý; nếu không thì nó bị bỏ qua.

2.2. ID & Xác định quyền ưu tiên

  • ID là duy nhất và cũng để xác định mức độ ưu tiên của thông điệp. Giá trị số của mã ID càng thấp thì mức độ ưu tiên càng cao. Điều này cho phép phân xử nếu hai (hoặc nhiều) nút cạnh tranh để truy cập vào bus cùng một lúc.
  • Thông điệp có mức độ ưu tiên cao hơn được đảm bảo có được quyền truy cập bus như thể nó là thông điệp duy nhất được truyền đi. Các thông điệp có mức ưu tiên thấp hơn sẽ tự động được truyền lại trong chu kỳ bus tiếp theo hoặc trong một chu kỳ bus tiếp theo nếu vẫn còn các thông điệp khác mà có mức ưu tiên cao hơn đang chờ được gửi.
  • Mỗi thông điệp trong CAN có một mã ID là 11 bit (A) hoặc 29 bit (B). ID này là phần nguyên tắc của Arbitration Field trong CAN, trường này nằm ở đầu mỗi thông điệp CAN. ID xác định loại thông điệp, nhưng cũng là mức độ ưu tiên của thông điệp.

2.3. Thông điệp trong mạng CAN

  • Các bit trong thông điệp mạng CAN có thể được gửi ở dạng cao hoặc thấp. Các bit thấp luôn chiếm ưu thế, có nghĩa là nếu một nút cố gắng gửi mức thấp và nút khác cố gửi mức cao, kết quả trên các bus sẽ là mức thấp. Một nút truyền luôn lắng nghe trên bus trong khi truyền. Một nút gửi mức cao trong Arbitration Field và phát hiện mức thấp biết rằng nó đã mất quyền ưu tiên. Nó ngừng truyền, để cho nút khác, với một thông điệp có mức độ ưu tiên cao hơn, tiếp tục mà không bị gián đoạn.
  • Hai nút trên mạng không được phép gửi thông điệp có cùng ID. Nếu hai nút cố gắng gửi một thông điệp với cùng một ID tại cùng một thời điểm, trường xác định quyền ưu tiên sẽ không hoạt động. Thay vào đó, một trong các nút truyền sẽ phát hiện ra rằng thông điệp của nó bị bóp méo bên ngoài Arbitration Field. Sau đó, các nút sẽ sử dụng trường xử lý lỗi của CAN, trong trường hợp này, cuối cùng sẽ dẫn đến việc một trong các nút truyền bị tắt (chế độ tắt bus).

3. CAN Frame

(Giao thức truyền thông CAN)

  • Dữ liệu CAN được truyền dưới dạng các Frame (khung). Có 4 loại Frame khác nhau, đó là :
    • Data Frame (khung dữ liệu): là khung mang dữ liệu từ một bộ truyền dữ liệu đến các bộ nhận dữ liệu. Khung này có vùng để mang các byte dữ liệu.
    • Remote Frame (khung yêu cầu hay điều khiển): là khung được truyền từ một Node bất kỳ để yêu cầu dữ liệu từ Node khác. Khi Node khác đó nhận được yêu cầu sẽ  truyền lại dữ liệu có ID (Identifier) trùng với ID được gửi trong Remote Frame.
    • Error Frame (khung lỗi): là khung được truyền bởi bất kỳ Node nào khi Node đó phát hiện lỗi từ Bus.
    • Overflow Frame (khung báo tràn): mỗi Node trong CAN Bus có thể truyền bất kỳ khi nào nếu phát hiện Bus rảnh. Hoặc nếu một Node nhận quá nhiều dữ liệu và không xử lý kịp, nó sẽ gửi Frame này để các Node khác không gửi thêm dữ liệu cho nó.
  • Data Frame và Remote Frame làm việc theo cơ chế phân xử quyền ưu tiên của tín hiệu vì thế cấu trúc của chúng có vùng phân xử quyền ưu tiên, nơi chứa ID của khung. Và chúng có hai định dạng khác nhau là định dạng chuẩn (Standard) và định dạng mở rộng (Extended):
    • Định dạng khung chuẩn sử dụng ID có độ dài 11 bit
    • Định dạng khung mở rộng sử dụng ID có độ dài 29 bit

4. Ưu điểm CAN

(Giao thức truyền thông CAN)

  • Đơn giản, chi phí thấp: bus CAN chỉ có 2 dây giúp kết nối các module điều khiển với nhau dễ dàng hơn khi so sánh với cách làm truyền thống.Kèm theo đó là nhiều lợi ích về việc dễ lắp đặt và dễ sửa chữa, bảo trì khi có sự cố.
  • Tạo ra một giao thức chung để nhiều nhà cung cấp khác nhau có thể phát triển các module điều khiển tương thích với nhau
  • Tính ưu tiên của thông điệp (Prioritization of messages): mỗi thông điệp được truyền ra từ một nút (node) hay trạm (station) trên bus CAN đều có mức ưu tiên. Khi nhiều thông điệp được truyền ra bus cùng lúc thì thông điệp có mức ưu tiên cao nhất sẽ được truyền. Cá thông điệp có mức ưu tiên thấp hơn sẽ tạm dừng và được truyền lại khi bus rảnh. Việc xác định mức ưu tiên của thông điệp dựa trên cấu tạo (cấu trúc) thông điệp và cơ chế phân xử quy định trong chuẩn chuẩn CAN.
  • Cấu hình linh hoạt: cho phép thiết lập cấu hình thời gian bit, thời gian đồng bộ, độ dài dữ liệu truyền, dữ liệu nhận.
  • Nhận dữ liệu đa điểm với sự đồng bộ thời gian: một thông điệp có thể được nhận bởi nhiều node khác nhau trong bus cùng lúc. Tất cả các node trên bus đều có thể thấy thông điệp đang truyền trên bus, tùy vào cấu hình ở mỗi node mà node sẽ quyết định có chấp nhận thông điệp này hay không.
  • Nhiều master (multimaster)

4.1. Ưu điểm phát hiện vào báo hiệu lỗi

  • Phát hiện và báo hiệu lỗi: Mỗi thông điệp có kèm theo mã CRC (Cyclic Redundancy Code) để thực hiện kiểm tra lỗi. Nếu lỗi xuất hiện, node nhận sẽ bỏ qua thông điệp lỗi và truyền khung báo lỗi (error frame) lên bus CAN. Mỗi node trong bus có bộ đếm quản lý lỗi truyền nhận riêng để xác định trạng thái lỗi của chính nó. Nếu lỗi xuất hiện quá nhiều, một node có thể tự động ngắt khỏi bus. Ngoài ra còn một số dạng lỗi khác có thể được phát hiện với chuẩn CAN.
  • Tự động truyền lại các thông điệp bị lỗi khi bus rảnh: Một thông điệp được truyền ra bus nếu bị lỗi thì sẽ không mất đi mà node truyền thông điệp này sẽ giữ nó lại và tự động phát lại thông điệp này khi bus CAN rảnh cho đến khi thành công. Điều này giúp đảm bảo tính toàn vẹn dữ liệu trong bus

5. Các loại giao thức CAN

Giao thức CAN hiện có: CAN 2.0, CAN FD. Sự khác biệt giữa các loại giao thức CAN nằm trong cấu trúc của các loại khung (Frame). Chúng ta sẽ tìm hiểu về cấu trúc các loại khung của các chuẩn giao thức trên.

6. Liên hệ

Nếu bạn đang có nhu cầu cần mua hay báo giá thiết bị tự động hóa hoặc cần tư vấn thêm thì hãy liên hệ ngay với chúng tôi để được hỗ trợ một cách tận tâm, nhanh chóng và hiệu quả nhé!