Controller Area Network (CAN)- Trong công nghệ mạng ô tô, Mạng khu vực điều khiển (CAN) đánh dấu một cột mốc quan trọng. Nó đã trở thành một trong những giao thức mạng được áp dụng nhiều nhất trong các phương tiện hiện đại được thiết kế với tính linh hoạt và mạnh mẽ. Phần này EnterKnow đi sâu vào các nguyên tắc cơ bản và xác định các tính năng của CAN, xem xét các ứng dụng và hạn chế thực tế của nó đồng thời đề cập ngắn gọn đến các lựa chọn thay thế hiện đại.
Khái niệm cơ bản và đặc điểm của CAN
Controller Area network (CAN bus) – Mạng khu vực điều khiển là một tiêu chuẩn bus xe được thiết kế để cho phép giao tiếp hiệu quả chủ yếu giữa các bộ điều khiển điện tử (ECU). Ban đầu được phát triển để giảm độ phức tạp và chi phí của hệ thống dây điện trong ô tô thông qua ghép kênh, giao thức bus CAN kể từ đó đã được áp dụng trong nhiều bối cảnh khác nhau. Giao thức hướng tin nhắn dựa trên phát sóng này đảm bảo tính toàn vẹn và ưu tiên của dữ liệu thông qua một quy trình gọi là trọng tài, cho phép thiết bị có mức ưu tiên cao nhất tiếp tục truyền nếu nhiều thiết bị cố gắng gửi dữ liệu cùng lúc, trong khi những thiết bị khác dừng lại. Độ tin cậy của nó được tăng cường bằng tín hiệu vi sai, giúp giảm nhiễu điện. Các phiên bản phổ biến của giao thức CAN bao gồm CAN 2.0, CAN FD và CAN XL, có khả năng tốc độ dữ liệu và kích thước tải trọng dữ liệu tối đa khác nhau.
Trong xe cộ, CAN là một bus truyền thông nối tiếp được thiết kế để truyền thông hiệu quả và mạnh mẽ giữa các thiết bị, thường được gọi là các nút (node). Bất kỳ thiết bị nào cũng có thể truyền dữ liệu cho các thiết bị khác trên mạng, nghĩa là CAN hoạt động trên một chuẩn bus truyền thông nối tiếp phát sóng đa chủ (multi-master).
Bộ vi điều khiển máy chủ, bộ thu phát CAN và bộ điều khiển CAN được bao gồm trong một nút CAN. Thiết bị ngoại vi bên trong của vi điều khiển thường là bộ điều khiển CAN. Điện trở kết thúc đóng vai trò thiết yếu trong việc hoàn thiện mạch giữa hai đường tín hiệu và giảm thiểu phản xạ tiềm tàng trên đường dây. Điện áp bus tiêu chuẩn thường hoạt động ở mức 5V và các tín hiệu được tổ chức thành các cặp xoắn có hoặc không có vỏ bọc.
- Tốc độ dữ liệu: Với tốc độ lên đến 1 Mbps, CAN chuẩn truyền dữ liệu. Các phiên bản mới hơn như CAN FD (Flexible Data-Rate – Tốc độ dữ liệu linh hoạt) giúp đạt được tốc độ dữ liệu cao hơn.
- Xử lý lỗi: Để đảm bảo liên lạc mạnh mẽ ngay cả trong môi trường nhiễu điện, CAN có các đặc tính phát hiện và sửa lỗi rộng rãi như CRC (Cyclic Redundancy Check – Kiểm tra dự phòng theo chu kỳ), nhận dạng thông điệp và nhồi bit.
- Quản lý ưu tiên: Thông điệp CAN được ưu tiên theo ID của chúng. Việc đạt được mức độ ưu tiên trong truyền thông điệp có thể thực hiện được thông qua quy trình trọng tài, trong đó thông điệp có số ID thấp hơn được ưu tiên cao hơn, đảm bảo truyền sớm các thông điệp quan trọng.
- Bảo mật: Mặc dù CAN không an toàn về bản chất, nhưng nó có thể được củng cố bằng các giao thức bảo mật để tăng cường mức độ bảo vệ của nó.
- Chuẩn hóa: Để đảm bảo triển khai nhất quán giữa các nhà sản xuất, CAN được chuẩn hóa trong ISO 11898.
Tổ chức vật lý CAN
CAN là một chuẩn bus nối tiếp đa chủ để kết nối các đơn vị điều khiển điện tử (ECU) còn được gọi là các nút (điện tử ô tô là một lĩnh vực ứng dụng chính). Cần có hai hoặc nhiều nút trên bus CAN để giao tiếp. Một nút có thể giao tiếp với các thiết bị từ logic kỹ thuật số đơn giản như PLD, thông qua FPGA cho đến máy tính nhúng chạy phần mềm mở rộng. Một máy tính như vậy cũng có thể là một cổng cho phép máy tính đa năng (như máy tính xách tay) giao tiếp qua cổng USB hoặc Ethernet với các thiết bị trên bus CAN.
CAN có một số lớp vật lý khác nhau mà bạn có thể sử dụng. Các lớp vật lý này phân loại các khía cạnh nhất định của mạng CAN, chẳng hạn như mức điện, sơ đồ tín hiệu, trở kháng cáp, tốc độ truyền tối đa, v.v. Các lớp vật lý phổ biến và được sử dụng rộng rãi nhất được mô tả dưới đây:
CAN tốc độ thấp có khả năng chịu lỗi (Low-speed fault-tolerant CAN)
CAN tốc độ thấp có khả năng chịu lỗi : LS-CAN (lên đến 125 kbit/giây) có khả năng chịu lỗi và được chuẩn hóa trong ISO 11898-3 và ISO-11992-1. Nó có thể được triển khai bằng cách sử dụng bus tuyến tính, bus sao hoặc nhiều bus sao được kết nối bằng bus tuyến tính. Điện trở kết thúc tổng thể được xác định ở mức không nhỏ hơn 100 Ω. LS-CAN có điện trở kết thúc trên bộ thu phát chứ không phải trên cáp.
Việc triển khai LS-CAN có thể chịu được tình trạng mở, đoản mạch và tải không chính xác trên một trong các dòng dữ liệu vì nó có khả năng chịu lỗi. Nếu xảy ra tình trạng lỗi, mạng vẫn tiếp tục hoạt động bằng cách sử dụng một đường dữ liệu duy nhất. Điện trở kết cuối tại mỗi nút (không chỉ ở các nút điểm cuối) cho phép duy trì chức năng mạng. Tốc độ dữ liệu bị giới hạn ở mức 125 kbit/s bởi các tính năng chịu lỗi tương tự.
CAN tốc độ cao – High-speed CAN
HS-CAN là triển khai CAN phổ biến nhất, hỗ trợ tốc độ truyền từ 40 kbit/giây đến 1 Mbit/giây. Trong các hệ thống ô tô, tốc độ phổ biến nhất là 500 kbit/giây. Một số tiêu chuẩn quản lý và yêu cầu sử dụng HS-CAN, bao gồm:
- ISO-11898-1, -2, -5
- ISO-11783-2
- SAE J1939
- SAE J2284-1, -2, -3 CANopen
- DeviceNet
- MilCAN
Chiều dài cáp liên quan đến tốc độ truyền, dao động từ khoảng 40 m ở tốc độ 1 Mbit/giây đến khoảng 1 km ở tốc độ 40 kbit/giây. Ngoài ra, khoảng cách từ mạng CAN trung tâm mà các nút có thể được đặt (chiều dài stub) cũng liên quan đến tốc độ truyền. Các stub mạng CAN trong mạng ô tô thường phải nhỏ hơn 1 m.
CAN với Tốc độ dữ liệu linh hoạt (CAN Flexible Data-Rate – CAN FD)
CAN FD là phần mở rộng của giao thức bus CAN được chỉ định trong ISO 11898-1. CAN FD cho phép ECU chuyển đổi động sang các tốc độ dữ liệu khác nhau với kích thước tin nhắn lớn hơn hoặc nhỏ hơn.
Nhìn chung, tốc độ dữ liệu chậm hơn có thể truyền nhiều dữ liệu hơn trong cùng một khung CAN và vận chuyển dữ liệu đó qua bus CAN ở tốc độ được tối ưu hóa. Bằng cách sử dụng CAN FD, dữ liệu cảm biến và dữ liệu điều khiển có thể được tối ưu hóa riêng lẻ. Dữ liệu cũng có thể được ECU gửi và nhận nhanh hơn. Các lệnh do ECU thực thi đưa ra cũng đến bộ điều khiển đầu ra nhanh hơn.
- Ít lỗi không được phát hiện hơn do hiệu suất thuật toán CRC được tăng lên.
- Khả năng tương thích với các mạng CAN 2.0 hiện có nghĩa là CAN FD có thể chạy trên cùng một mạng với CAN cổ điển.
- Tốc độ bit có thể lên tới 8MBit/giây với bộ thu phát có khả năng cải thiện tín hiệu CAN (SIC) phù hợp — truyền dữ liệu nhiều hơn tới tám lần so với CAN cổ điển.
Phần cứng CAN dây đơn
Giao diện CAN một dây có thể giao tiếp với các thiết bị ở tốc độ lên đến 33,3 kbit/giây (88,3 kbit/giây ở chế độ tốc độ cao). Các tên gọi khác của CAN một dây bao gồm SAE-J2411, CAN A và GMLAN. Các thiết bị một dây thông thường trong ô tô không yêu cầu hiệu suất cao. Các ứng dụng phổ biến bao gồm các thiết bị tiện nghi như bộ điều chỉnh ghế và gương.
Đặc tính điện
Với cả CAN tốc độ cao và tốc độ thấp, tốc độ chuyển đổi sẽ nhanh hơn khi xảy ra chuyển đổi từ trạng thái lặn sang trạng thái trội vì các dây CAN đang được điều khiển tích cực. Tốc độ chuyển đổi từ trạng thái trội sang trạng thái lặn chủ yếu phụ thuộc vào độ dài của mạng CAN và điện dung của dây được sử dụng.
CAN tốc độ cao thường được sử dụng trong các ứng dụng ô tô và công nghiệp, trong đó bus chạy từ đầu này của môi trường đến đầu kia. CAN chịu lỗi thường được sử dụng khi các nhóm nút cần được kết nối với nhau.
Các thông số kỹ thuật yêu cầu bus phải được giữ trong phạm vi điện áp bus chế độ chung tối thiểu và tối đa nhưng không xác định cách giữ bus trong phạm vi này.
Bus CAN phải được kết thúc. Cần có các điện trở kết thúc để ngăn chặn sự phản xạ cũng như đưa bus về trạng thái lặn hoặc không hoạt động.
CAN tốc độ cao sử dụng điện trở 120 Ω ở mỗi đầu của bus tuyến tính. CAN tốc độ thấp sử dụng điện trở ở mỗi nút. Có thể sử dụng các loại kết thúc khác như Mạch phân cực kết thúc được định nghĩa trong ISO11783.
Mạch phân cực kết thúc cung cấp nguồn và nối đất ngoài tín hiệu CAN trên cáp bốn dây. Mạch này cung cấp phân cực điện tự động và kết thúc ở mỗi đầu của mỗi phân đoạn bus. Mạng ISO11783 được thiết kế để trao đổi nóng (hot plug-in) và tháo các phân đoạn bus và ECU.
Nút (Node)
Mỗi nút cần có:
Bộ xử lý trung tâm, bộ vi xử lý hoặc bộ xử lý máy chủ
- Bộ xử lý máy chủ quyết định ý nghĩa của các thông điệp nhận được và những thông điệp mà nó muốn truyền tải.
- Cảm biến, bộ truyền động và thiết bị điều khiển có thể được kết nối với bộ xử lý máy chủ.
Bộ điều khiển CAN – thường là một phần không thể thiếu của bộ vi điều khiển
- Nhận: bộ điều khiển CAN lưu trữ các bit nối tiếp đã nhận từ bus cho đến khi có toàn bộ tin nhắn, sau đó bộ xử lý máy chủ có thể lấy tin nhắn này (thường là bằng cách bộ điều khiển CAN kích hoạt ngắt).
- Gửi: bộ xử lý máy chủ gửi tin nhắn truyền đến bộ điều khiển CAN, bộ điều khiển này sẽ truyền các bit tuần tự vào bus khi bus rảnh.
Bộ thu phát được xác định theo tiêu chuẩn ISO 11898-2/3 Medium Access Unit [MAU]
- Nhận: chuyển đổi luồng dữ liệu từ mức bus CAN sang mức mà bộ điều khiển CAN sử dụng. Nó thường có mạch bảo vệ để bảo vệ bộ điều khiển CAN.
- Truyền: chuyển đổi luồng dữ liệu từ bộ điều khiển CAN sang các mức bus CAN.
Mỗi nút có thể gửi và nhận tin nhắn, nhưng không phải đồng thời. Một tin nhắn hoặc Khung chủ yếu bao gồm ID (mã định danh), biểu thị mức độ ưu tiên của tin nhắn và tối đa tám byte dữ liệu. CRC, khe xác nhận [ACK] và các chi phí khác cũng là một phần của tin nhắn. CAN FD được cải tiến mở rộng độ dài của phần dữ liệu lên tới 64 byte cho mỗi khung. Tin nhắn được truyền tuần tự lên bus bằng định dạng không trả về số không (NRZ) và có thể được tất cả các nút nhận.
Các thiết bị được kết nối bởi mạng CAN thường là cảm biến, bộ truyền động và các thiết bị điều khiển khác. Các thiết bị này được kết nối với bus thông qua bộ xử lý máy chủ, bộ điều khiển CAN và bộ thu phát CAN.
Thuật ngữ giao thức CAN
Các thiết bị CAN gửi dữ liệu qua mạng CAN theo các gói được gọi là khung. Một khung CAN (CAN Frame) bao gồm các phần sau.
Khung CAN – toàn bộ quá trình truyền CAN: ID trọng tài, byte dữ liệu, bit xác nhận, v.v. Các khung còn được gọi là các thông điệp, tin nhắn.
- Bit SOF (start-of-frame) – biểu thị sự bắt đầu của một thông điệp bằng bit chủ đạo (logic 0).
- ID trọng tài – xác định thông điệp và chỉ ra mức độ ưu tiên của thông điệp. Khung có hai định dạng — chuẩn, sử dụng ID trọng tài 11 bit và mở rộng, sử dụng ID trọng tài 29 bit.
- Bit IDE (identifier extension – phần mở rộng định danh) – cho phép phân biệt giữa khung chuẩn và khung mở rộng.
- Bit RTR (remote transmission request – yêu cầu truyền từ xa) – dùng để phân biệt khung từ xa với khung dữ liệu. Bit RTR trội (logic 0) biểu thị khung dữ liệu. Bit RTR lặn (logic 1) biểu thị khung từ xa.
- DLC (data length code – mã độ dài dữ liệu) – biểu thị số byte mà trường dữ liệu chứa.
- Trường dữ liệu – chứa từ 0 đến 8 byte dữ liệu.
- CRC (cyclic redundancy check – kiểm tra dự phòng theo chu kỳ) – chứa mã kiểm tra dự phòng theo chu kỳ 15-bit và một bit phân cách lặn. Trường CRC được sử dụng để phát hiện lỗi.
- ACK (ACKknowledgement) slot – bất kỳ bộ điều khiển CAN nào nhận được tin nhắn chính xác sẽ gửi một bit ACK ở cuối tin nhắn. Nút truyền kiểm tra sự hiện diện của bit ACK trên bus và thử lại quá trình truyền nếu không phát hiện thấy xác nhận.
- Tín hiệu CAN – một phần dữ liệu riêng lẻ được chứa trong trường dữ liệu khung CAN. Bạn cũng có thể gọi tín hiệu CAN là kênh. Vì trường dữ liệu có thể chứa tới 8 byte dữ liệu, nên một khung CAN có thể chứa từ 0 đến 64 tín hiệu riêng lẻ (đối với 64 kênh, tất cả đều là nhị phân).
Các phiên bản
CAN 2.0 (CAN cổ điển)
Do tính kế thừa của nó, CAN 2.0 là giao thức được sử dụng rộng rãi nhất nhưng kích thước tải trọng tối đa là 8 byte và tốc độ truyền thông thường là 500 kbit/s khiến nó không phù hợp với các ứng dụng đòi hỏi nhiều băng thông. CAN cổ điển, bao gồm CAN 2.0A (CAN tiêu chuẩn) và CAN 2.0B (CAN mở rộng), khác nhau cơ bản về độ dài trường mã định danh: CAN 2.0A sử dụng mã định danh 11 bit, trong khi CAN 2.0B sử dụng mã định danh 29 bit. Định danh dài hơn trong CAN 2.0B cho phép nhiều định danh tin nhắn duy nhất hơn, có lợi trong các hệ thống phức tạp với nhiều nút và kiểu dữ liệu, nhưng nó cũng làm tăng độ dài khung, làm giảm tốc độ dữ liệu tối đa. Ngoài ra, định danh mở rộng cung cấp khả năng kiểm soát tốt hơn đối với việc ưu tiên tin nhắn do có nhiều giá trị định danh khả dụng hơn. Tuy nhiên, các vấn đề về khả năng tương thích có thể phát sinh, vì các thiết bị CAN 2.0B thường có thể giao tiếp với các thiết bị CAN 2.0A, nhưng không ngược lại, do có khả năng xảy ra lỗi khi xử lý các định danh dài hơn. CAN 2.0 tốc độ cao hỗ trợ tốc độ bit từ 40 kbit/giây đến 1 Mbit/giây và là cơ sở cho các giao thức lớp cao hơn. Ngược lại, CAN 2.0 tốc độ thấp hỗ trợ tốc độ bit từ 40 kbit/giây đến 125 kbit/giây và cung cấp khả năng chịu lỗi bằng cách cho phép giao tiếp tiếp tục bất chấp lỗi ở một trong hai dây, với mỗi nút duy trì kết thúc riêng của nó.
CAN FD (Flexible Data-Rate)
CAN FD (Flexible Data-Rate), được chuẩn hóa theo tiêu chuẩn ISO 11898-1, được Bosch phát triển và phát hành vào năm 2012 để đáp ứng nhu cầu truyền dữ liệu tăng lên trong các loại xe hiệu suất cao hiện đại. Nó cung cấp tốc độ dữ liệu thay đổi trong quá trình truyền một khung duy nhất, cho phép giai đoạn phân xử diễn ra ở tốc độ dữ liệu thấp hơn để truyền thông tin mạnh mẽ, trong khi tải trọng dữ liệu được truyền ở tốc độ dữ liệu cao hơn để cải thiện thông lượng, đặc biệt hữu ích trong môi trường nhiễu điện để có khả năng chống nhiễu tốt hơn. CAN FD cũng giới thiệu kích thước trường dữ liệu linh hoạt, tăng kích thước tối đa từ 8 byte lên 64 byte. Tính linh hoạt này cho phép truyền dữ liệu hiệu quả hơn bằng cách giảm số khung cần thiết cho các lần truyền dữ liệu lớn, có lợi cho các ứng dụng như dữ liệu cảm biến có độ phân giải cao hoặc cập nhật phần mềm.
CAN FD duy trì khả năng tương thích ngược với các thiết bị CAN 2.0 bằng cách sử dụng cùng định dạng khung như CAN 2.0B, với việc bổ sung một trường điều khiển mới để chỉ ra khung là khung CAN FD hay khung CAN 2.0 chuẩn. Điều này cho phép các thiết bị CAN FD cùng tồn tại với các thiết bị CAN 2.0 trên cùng một bus, trong khi tốc độ dữ liệu cao hơn và tải trọng dữ liệu lớn hơn chỉ khả dụng khi giao tiếp với các thiết bị CAN FD khác.
CAN XL
CAN XL, được chỉ định bởi CiA 610-1 và được chuẩn hóa như một phần của ISO11898-1, hỗ trợ tải trọng lên đến 2.048 byte và tốc độ dữ liệu lên đến 20 Mbit/giây. Nó thu hẹp khoảng cách giữa CAN FD và Ethernet (100BASE-T1) trong khi vẫn duy trì các lợi ích giải quyết va chạm của CAN. Bộ điều khiển CAN XL cũng có thể xử lý giao tiếp CAN cổ điển và CAN FD, đảm bảo khả năng tương thích trong các mạng hỗn hợp. Các trường dữ liệu lớn của nó cho phép các giao thức lớp cao hơn như IP (Giao thức Internet) và đường hầm của các khung Ethernet.
Ứng dụng của CAN trong xe cộ
CAN lý tưởng cho nhiều ứng dụng khác nhau do tính linh hoạt và đáng tin cậy của nó:
- Kiểm soát hệ thống truyền lực: Động cơ, hộp số và các yếu tố liên quan khác được phối hợp với nhau.
- Kiểm soát khung gầm: Các hệ thống như kiểm soát lực kéo, ABS và hệ thống túi khí được tích hợp.
- Hệ thống thông tin giải trí: Các thiết bị đa phương tiện, định vị và giải trí trong xe được quản lý.
- Công cụ chẩn đoán: Có thể dễ dàng chẩn đoán các vấn đề tiềm ẩn và hiệu suất của xe theo thời gian thực.
- Tin học viễn thông: Có thể giao tiếp giữa xe với cơ sở hạ tầng (V2I) và giữa xe với xe (V2V).
- Quản lý đội xe: Có thể giám sát và kiểm soát tập trung cho một đội xe.
Những hạn chế và các giải pháp thay thế hiện đại cho CAN
CAN có một số hạn chế, ngay cả khi được sử dụng rộng rãi:
Tốc độ dữ liệu hạn chế: Các ứng dụng hiện đại cần truyền dữ liệu tốc độ cao hơn 1 Mbit/giây. Do đó, tốc độ dữ liệu CAN truyền thống không đủ cho chúng.
Thiếu bảo mật: Để đảm bảo liên lạc an toàn, các tính năng bảo mật cần được bổ sung từ bên ngoài, điều này có thể dẫn đến các vấn đề phức tạp.
Độ phức tạp trong các mạng lớn: Việc quản lý liên lạc giữa nhiều nút có thể trở nên phức tạp khi mạng ngày càng phát triển. Tốc độ tải bus không được vượt quá mức trung bình 50%, cho thấy ràng buộc vật lý nghiêm ngặt về số lượng nút tối đa có thể được kết nối với bus trong khi vẫn đảm bảo hoạt động đáng tin cậy.
Giải pháp thay thế hiện đại:
- CAN FD (Flexible Data-Rate): CAN FD là phần mở rộng của CAN cho phép tốc độ dữ liệu cao hơn và trường dữ liệu lớn hơn. Trường điều khiển trong CAN FD có thể sử dụng các tốc độ dữ liệu khác nhau và độ dài tùy ý, cho phép linh hoạt hơn.
- Automotive Ethernet: Mặc dù Automotive Ethernet đắt tiền, nhưng nó nổi lên như một giải pháp thay thế cho các ứng dụng yêu cầu dữ liệu lớn hơn và bảo mật mạnh mẽ.
- FlexRay: FlexRay cung cấp khả năng giao tiếp xác định và băng thông lớn hơn, do đó được sử dụng trong các ứng dụng quan trọng về an toàn.
Trong mạng lưới ô tô, Mạng khu vực điều khiển (CAN) là một minh chứng. Từ việc xử lý hệ thống truyền động đến hệ thống thông tin giải trí, các tính năng của nó khiến nó trở nên lý tưởng cho nhiều ứng dụng trong xe. Mặc dù đặc biệt linh hoạt và đáng tin cậy, nhưng sự phát triển của công nghệ ô tô đã bộc lộ những hạn chế nhất định trong Mạng Khu vực Kiểm soát (CAN), dẫn đến sự xuất hiện của các giải pháp thay thế hiện đại. Hiểu CAN, bao gồm các ứng dụng thực tế, những hạn chế và động lực phát triển ảnh hưởng đến tương lai của nó, là điều cần thiết để có được cái nhìn sâu sắc về bối cảnh kết nối của các hệ thống ô tô hiện đại.