Chiếc ô tô của bạn cũng giống như một cơ thể người: CAN bus (Mạng vùng điều khiển) là hệ thống thần kinh, cho phép giao tiếp.
Đổi lại, ‘nút’ hoặc ‘đơn vị điều khiển điện tử’ (ECU) giống như các bộ phận của cơ thể, được kết nối với nhau thông qua CAN bus. Thông tin được cảm nhận bởi một bộ phận có thể được chia sẻ với bộ phận khác.
Chiếc ô tô của bạn cũng giống như một cơ thể người: CAN bus (Mạng vùng điều khiển) là hệ thống thần kinh, cho phép giao tiếp.
Đổi lại, ‘nút’ hoặc ‘đơn vị điều khiển điện tử’ (ECU) giống như các bộ phận của cơ thể, được kết nối với nhau thông qua CAN bus. Thông tin được cảm nhận bởi một bộ phận có thể được chia sẻ với bộ phận khác.
Trong hệ thống CAN bus trên ô tô, các ECU ví dụ: bộ phận điều khiển động cơ, túi khí, hệ thống âm thanh, v.v. Một chiếc ô tô hiện đại có thể có tới 70 ECU – và mỗi ECU có thể có thông tin cần được chia sẻ với các bộ phận khác của mạng.
Mạng vùng điều khiển (CAN bus) là một tiêu chuẩn bus mạnh mẽ được thiết kế để cho phép các bộ vi điều khiển và thiết bị giao tiếp với các ứng dụng của nhau mà không cần máy chủ. Nó là một giao thức dựa trên gói tin, được thiết kế ban đầu để ghép nối dây điện trong ô tô nhằm tiết kiệm đồng, nhưng nó cũng có thể được sử dụng trong nhiều bối cảnh khác. Đối với mỗi thiết bị, dữ liệu trong khung được truyền tuần tự nhưng theo cách sao cho nếu nhiều thiết bị truyền cùng lúc, thiết bị có mức ưu tiên cao nhất có thể tiếp tục trong khi các thiết bị khác lùi lại. Khung được nhận bởi tất cả các thiết bị, bao gồm cả thiết bị truyền.
Hệ thống CAN bus cho phép mỗi ECU giao tiếp với tất cả các ECU khác – mà không cần đi dây chuyên dụng phức tạp.
Cụ thể, một ECU có thể chuẩn bị và phát thông tin (ví dụ: dữ liệu cảm biến) thông qua CAN bus (bao gồm hai dây, CAN low và CAN high). Dữ liệu đã phát được chấp nhận bởi tất cả các ECU khác trên mạng CAN – và mỗi ECU sau đó có thể kiểm tra dữ liệu và quyết định nhận hay bỏ qua nó.
Theo thuật ngữ kỹ thuật hơn, mạng vùng bộ điều khiển được mô tả bằng lớp liên kết dữ liệu và lớp vật lý. Trong trường hợp CAN tốc độ cao, ISO 11898-1 mô tả lớp liên kết dữ liệu, trong khi ISO 11898-2 mô tả lớp vật lý.
Lớp vật lý bus CAN xác định những thứ như loại cáp, mức tín hiệu điện, yêu cầu nút, trở kháng của cáp, v.v. Ví dụ, ISO 11898-2 quy định một số điều, bao gồm dưới đây:
Tiêu chuẩn CAN bus được sử dụng trên thực tế trên tất cả các phương tiện và nhiều loại máy do những lợi ích chính dưới đây:
Đơn giản và chi phí thấp
ECU giao tiếp thông qua một hệ thống CAN duy nhất thay vì thông qua các đường tín hiệu tương tự phức tạp trực tiếp – giảm lỗi, trọng lượng, hệ thống dây điện và chi phí.
Hoàn toàn tập trung
CAN bus cung cấp ‘một điểm vào’ để giao tiếp với tất cả các ECU mạng – cho phép chẩn đoán trung tâm, ghi dữ liệu và cấu hình.
Cực kỳ mạnh mẽ
Hệ thống mạnh mẽ đối với nhiễu điện và nhiễu điện từ – lý tưởng cho các ứng dụng quan trọng về an toàn (ví dụ: xe cộ).
Hiệu quả
Các khung CAN được ưu tiên theo ID để dữ liệu ưu tiên hàng đầu nhận được quyền truy cập bus ngay lập tức, mà không gây gián đoạn các khung khác
Ngày nay, CAN là tiêu chuẩn trong ô tô (ô tô, xe tải, xe buýt, máy kéo, …), tàu thủy, máy bay, pin EV, máy móc và hơn thế nữa.
Trong tương lai, giao thức CAN bus sẽ vẫn phù hợp – mặc dù nó sẽ bị ảnh hưởng bởi các xu hướng chính:
Đặc biệt, sự gia tăng của các phương tiện được kết nối (V2X) và đám mây sẽ dẫn đến sự phát triển nhanh chóng trong lĩnh vực viễn thông trên xe và các thiết bị ghi IoT CAN.
Đổi lại, việc đưa mạng CAN bus ‘trực tuyến’ cũng khiến các phương tiện gặp rủi ro về bảo mật – và có thể yêu cầu chuyển sang các giao thức CAN mới như CAN FD.
Khi chức năng của xe được mở rộng, tải trên CAN bus cũng vậy. Để hỗ trợ điều này, CAN FD (Tốc độ dữ liệu linh hoạt) đã được thiết kế làm CAN bus ‘thế hệ tiếp theo’.
Cụ thể, CAN FD cung cấp ba lợi ích (so với Classical CAN):
Tóm lại, CAN FD tăng tốc độ và hiệu quả – và do đó nó đang được triển khai trên các phương tiện mới hơn. Điều này cũng sẽ thúc đẩy nhu cầu ngày càng tăng đối với bộ ghi dữ liệu IoT CAN FD.
Giao tiếp qua CAN bus được thực hiện thông qua khung CAN (frame).
Dưới đây là khung CAN tiêu chuẩn với định danh 11 bit (CAN 2.0A), đây là loại được sử dụng trong hầu hết các xe ô tô. Khung nhận dạng 29-bit mở rộng (CAN 2.0B) giống hệt nhau ngoại trừ ID dài hơn. Nó được sử dụng trong giao thức J1939 cho xe hạng nặng.
Lưu ý rằng ID CAN và Dữ liệu được đánh dấu – đây là những điều quan trọng khi ghi dữ liệu CAN bus, như chúng ta sẽ thấy bên dưới.
Có một số trường hợp sử dụng phổ biến để ghi các khung dữ liệu CAN bus:
Ghi nhật ký / truyền dữ liệu từ ô tô: Dữ liệu OBD2 từ ô tô có thể được sử dụng để giảm chi phí nhiên liệu, cải thiện khả năng lái xe, thử nghiệm các bộ phận nguyên mẫu và bảo hiểm
Viễn tin đội xe hạng nặng: Dữ liệu J1939 từ xe tải, xe buýt, máy kéo, v.v. có thể được sử dụng trong quản lý đội xe để giảm chi phí hoặc cải thiện độ an toàn
Bảo dưỡng dự đoán: Phương tiện và máy móc có thể được giám sát thông qua trình ghi IoT CAN trên đám mây để dự đoán và tránh sự cố
Hộp đen xe / máy: Bộ ghi CAN có thể đóng vai trò như một ‘hộp đen’ cho các phương tiện hoặc thiết bị, cung cấp dữ liệu cho xung đột hoặc chẩn đoán
Như đã đề cập, hai trường CAN rất quan trọng đối với ghi nhật ký CAN: CAN ID và Data (Dữ liệu).
Để ghi lại dữ liệu CAN, bạn cần có bộ ghi CAN. Điều này cho phép bạn ghi dữ liệu CAN có dấu thời gian vào thẻ SD. Trong một số trường hợp, bạn cần giao diện CAN để truyền dữ liệu tới PC.
Bước đầu tiên này là kết nối bộ ghi CAN của bạn với CAN bus của bạn. Thông thường, điều này liên quan đến việc sử dụng cáp bộ điều hợp:
Khi bạn đã xác định đúng đầu nối và xác minh đầu ra, bạn có thể kết nối bộ ghi CAN của mình để bắt đầu ghi dữ liệu. Đối với CANedge/CLX000, tốc độ truyền CAN được tự động phát hiện và thiết bị sẽ bắt đầu ghi dữ liệu CAN thô ngay lập tức.
Dưới đây là ví dụ CSV về khung CAN thô được ghi lại từ một xe tải hạng nặng bằng giao thức J1939. Lưu ý rằng ID CAN và byte dữ liệu ở định dạng thập lục phân:
Mở xem tệp dữ liệu J1939-CAN
Nếu bạn xem lại mẫu dữ liệu bus CAN thô ở trên, bạn có thể sẽ nhận thấy điều gì đó: Dữ liệu bus CAN thô không thể đọc được.
Để diễn giải nó, bạn cần giải mã các khung CAN thành các giá trị kỹ thuật được chia tỷ lệ hay còn gọi là giá trị vật lý (km/h, degC, …).
Dưới đây, trình bày từng bước cách hoạt động của điều này:
Mỗi khung CAN trên bus chứa một số tín hiệu CAN (tham số) bên trong các gói dữ liệu CAN. Ví dụ: khung CAN có CAN ID cụ thể có thể mang dữ liệu cho ví dụ: 2 tín hiệu CAN .
Để trích xuất giá trị vật lý của tín hiệu CAN, thông tin sau là bắt buộc:
Để trích xuất tín hiệu CAN, bạn ‘khắc ra’ các bit có liên quan, lấy giá trị thập phân và thực hiện chia tỷ lệ tuyến tính: physical_value = offset + scale * raw_value_decimal
Thông thường, “quy tắc giải mã” CAN bus là độc quyền và không dễ dàng có sẵn (ngoại trừ OEM, tức là Nhà sản xuất thiết bị gốc). Có một số giải pháp cho vấn đề này khi bạn không phải là OEM: