Lợi ích và một số ứng dụng của CAN
CAN là viết tắt của từ Controller Area Network, là một mạng điều khiển vùng cho phép các thiết bị trong cùng Bus có thể giao tiếp nối tiếp với nhau chỉ thông qua 2 dây nối (CAN-High và CAN-Low). Các thiết bị trong cùng Bus được gọi là các Node (trong xe hơi ta có thể coi chúng là các ECU), chúng có thể lên tới vài chục Node trong phạm vi từ vài trăm mét đến vài kilomet mà vẫn đảm bảo được tốc độ truyền tín hiệu. Điều đó tạo nên sự khác biệt của CAN so với các giao thức khác.
Peritec đã cho ra mắt chuỗi bài viết giới thiệu cụ thể về CAN. Mời quý vị và các bạn đón xem.
- Phần 1: Giới thiệu về giao thức CAN
- Phần 2: Phương thức truyền dữ liệu CAN
- Phần 3: Cách thức hoạt động của CAN bên trong thiết bị phần cứng
- Phần 4: Phân tích dữ liệu CAN và các vấn đề thường gặp với dữ liệu CAN
Lợi ích của CAN
CAN là mạng chi phí thấp, nhẹ
CAN cung cấp một mạng bền bỉ, rẻ tiền giúp nhiều thiết bị CAN giao tiếp với nhau. Ưu điểm của điều này là các bộ điều khiển điện tử (ECU) có thể có một giao tiếp CAN duy nhất thay vì ngõ vào analog và kỹ thuật số cho mọi thiết bị trong hệ thống. Điều này làm giảm chi phí và trọng lượng tổng thể của ô tô.
Truyền thông Broadcast
Mỗi thiết bị trên mạng CAN đều có chip điều khiển CAN và do đó rất thông minh. Tất cả các thiết bị trên mạng đều nhìn thấy tất cả các tin tức được truyền đi. Mỗi thiết bị có thể quyết định xem một tin tức có liên quan hay không hoặc nó có nên được lọc hay không. Cấu trúc này cho phép sửa đổi mạng CAN với tác động tối thiểu. Các node "không truyền" bổ sung có thể được thêm vào mà không cần sửa đổi mạng.
Ưu tiên
Mọi tin tức đều có mức độ ưu tiên, vì vậy nếu hai node cố gắng gửi tin tức đồng thời thì node có mức độ ưu tiên cao hơn sẽ được truyền đi và node có mức độ ưu tiên thấp hơn sẽ bị hoãn lại. Việc phân xử này không mang tính phá hủy và dẫn đến việc truyền tải tin tức có mức ưu tiên cao nhất không bị gián đoạn. Điều này cũng cho phép các mạng đáp ứng các ràng buộc về thời gian được xác định.
Khả năng lỗi
Thông số CAN bao gồm Cyclic Redundancy Code (CRC) để thực hiện kiểm tra lỗi trên nội dung của từng khung. Các khung có lỗi sẽ bị tất cả các node bỏ qua và khung lỗi có thể được truyền đi để báo hiệu lỗi tới mạng. Các lỗi Global và Local được bộ điều khiển phân biệt và nếu phát hiện quá nhiều lỗi, các node riêng lẻ có thể ngừng truyền lỗi hoặc tự ngắt kết nối hoàn toàn khỏi mạng.
Hình 1: Mạng CAN giảm đáng kể việc nối dây
Các ứng dụng CAN và ví dụ
CAN lần đầu tiên được tạo ra để sử dụng trong ô tô, vì vậy ứng dụng phổ biến nhất của nó là mạng điện tử trên ô tô. Tuy nhiên, do các ngành công nghiệp khác đã nhận ra độ tin cậy và lợi thế của CAN trong hơn 20 năm qua, họ đã áp dụng bus cho nhiều ứng dụng khác nhau. Các ứng dụng như xe điện, xe điện, tàu điện ngầm, đường sắt nhẹ và tàu đường dài đều kết hợp CAN. Bạn có thể tìm thấy các ví dụ về thiết bị CAN liên kết các bộ phận cửa, bộ điều khiển phanh, bộ đếm hành khách, v.v. ở các cấp độ khác nhau của nhiều mạng trong các phương tiện này. CAN cũng có các ứng dụng trên máy bay với cảm biến tình trạng chuyến bay, hệ thống định vị và máy tính nghiên cứu trong buồng lái. Ngoài ra, bạn có thể tìm thấy bus CAN trong nhiều ứng dụng hàng không vũ trụ, từ phân tích dữ liệu trên chuyến bay đến hệ thống điều khiển động cơ máy bay như hệ thống nhiên liệu, máy bơm và bộ truyền động tuyến tính.
Các nhà sản xuất thiết bị y tế sử dụng CAN làm mạng nhúng trong các thiết bị y tế. Trên thực tế, một số bệnh viện sử dụng CAN để quản lý toàn bộ phòng mổ. Các bệnh viện điều khiển các bộ phận trong phòng mổ như đèn, bàn, camera, máy X-quang và giường bệnh bằng hệ thống dựa trên CAN. Thang máy và thang cuốn sử dụng mạng CAN nhúng và bệnh viện sử dụng giao thức CANopen để liên kết các thiết bị của thang máy như bảng điều khiển, bộ điều khiển, cửa và rào chắn ánh sáng với nhau và điều khiển chúng. CANopen cũng được sử dụng trong các ứng dụng phi công nghiệp như thiết bị thí nghiệm, máy ảnh thể thao, kính thiên văn, cửa tự động và thậm chí cả máy pha cà phê.
Lập trình CAN trong LabVIEW và các ngôn ngữ lập trình khác
Driver phần mềm NI-XNET
Phần mềm NI-XNET được đính kèm trong các thiết bị PCI/PXI-851x và NI 986x và có sẵn dưới dạng tải xuống miễn phí trên ni.com. Driver mới này được sử dụng để phát triển các ứng dụng CAN, mạng kết nối cục bộ (LIN) và FlexRay trong NI LabVIEW, NI LabWindows/CVI và C/C++ trên Windows và LabVIEW Real-Time OS. Là một phần của nền tảng NI-XNET, các thiết bị NI 851x và NI 986x hoạt động tốt cho các ứng dụng yêu cầu thao tác tốc độ cao, thời gian thực với hàng trăm khung hình và tín hiệu, chẳng hạn như mô phỏng Hardware-In-The-Loop, tạo nguyên mẫu điều khiển nhanh, giám sát bus, điều khiển tự động hóa, v.v.
NI-XNET: Một API, Nhiều Mạng Nhúng
Nền tảng NI-XNET kết hợp một loạt giao tiếp CAN, LIN và FlexRay hiệu suất cao với API NI-XNET, một tập hợp phổ biến các chức năng dễ sử dụng để đọc và ghi các khung, tín hiệu CAN, LIN và FlexRay.
Hiệu suất cao nhất với ít lập trình hơn
Giao tiếp NI-XNET tập hợp hiệu suất liên quan đến lập trình vi điều khiển cấp thấp cũng như tốc độ và sức mạnh của việc phát triển Windows và LabVIEW Real-Time OS. Công cụ DMA điều khiển bằng thiết bị NI-XNET đang chờ cấp bằng sáng chế giúp giảm độ trễ hệ thống, điểm yếu thường gặp đối với giao tiếp CAN dựa trên nền tảng PC, từ mili giây đến micro giây. Công cụ này cho phép bộ xử lý tích hợp di chuyển các khung và tín hiệu CAN giữa giao diện và chương trình người dùng mà không làm gián đoạn CPU, giải phóng thời gian của bộ xử lý chủ để xử lý các mô hình và ứng dụng phức tạp.
Driver phần mềm NI-CAN
NI đưa phần mềm driver NI-CAN vào tất cả các giao tiếp CAN của National Instruments Legacy và cung cấp phần mềm này dưới dạng phần mềm tải xuống miễn phí trên ni.com. Với các giao tiếp CAN khác, bạn chỉ có thể tận dụng một tỷ lệ nhỏ chức năng của bo mạch nếu bạn không trang bị công cụ phần mềm chìa khóa trao tay. Tuy nhiên, tất cả chức năng của bo mạch CAN của NI đều được đưa ra đầy đủ, do đó bạn có thể phát triển các ứng dụng được xác định, tùy chỉnh của riêng mình bằng ngôn ngữ lập trình mà bạn chọn. Driver NI-CAN cung cấp các chức năng cấp cao, dễ sử dụng để giúp bạn phát triển toàn bộ ứng dụng CAN một cách nhanh chóng, qua đó tiết kiệm cả thời gian và tiền bạc.
Có hai API được hiển thị cùng với phần mềm driver NI-CAN. Frame API là API gốc cho lập trình CAN. Trong Frame API, bạn có thể truyền và nhận các khung CAN chứa byte dữ liệu thô. Chương trình của bạn phải phân tích cú pháp và chia tỷ lệ các byte này để đưa ra các khối kỹ thuật có tỷ lệ. Để biết thêm thông tin về lập trình với Frame API, hãy xem phần "Using the Frame API" trong NI CAN Hardware and Software Manual.
NI lần đầu tiên giới thiệu Channel API trong phần mềm driver NI-CAN 2.0. Bạn có thể đọc và ghi vào các kênh CAN bằng cách sử dụng tên kênh được định nghĩa trong các file cơ sở dữ liệu (.dbc hoặc .ncd). Channel API cung cấp các lợi ích sau:
- Lập trình cấp cao
- Các khối vật lý dễ sử dụng
- Sử dụng chính để đồng bộ hóa thu thập dữ liệu/ CAN dễ dàng
- Khả năng kết hợp các file cơ sở dữ liệu Vector
Các công cụ CAN của NI và Ixxat
NI cung cấp nhiều công cụ phần cứng và phần mềm để phát triển ứng dụng CAN. NI cung cấp giao tiếp CAN ở các nền tảng khác nhau bao gồm PCI, PXI, USB, CompactRIO và CompactDAQ (Dòng C). Đối với PCI, PXI và C Series, bạn có thể chọn từ các lớp vật lý tốc độ cao/FD, tốc độ thấp/có khả năng chịu lỗi và một dây. Đối với PCI và PXI, NI cung cấp giao tiếp CAN có thể lựa chọn bằng phần mềm đầu tiên trong ngành, có chứa bộ thu phát tốc độ cao/FD, tốc độ thấp/có khả năng chịu lỗi và một dây trên mỗi bo mạch, cho mỗi cổng, trên một thiết bị duy nhất . Điều này có nghĩa là bạn có thể chỉ cần chọn trong phần mềm chế độ bạn muốn sử dụng.
Hình 2. Thiết bị CAN có thể lựa chọn bằng phần mềm (XS) NI PCI-8513
Bộ công cụ ECU Measurement and Calibration Toolkit của NI mở rộng các môi trường phát triển NI LabVIEW, NI LabWindows™/CVI và C/C++ để hỗ trợ các ứng dụng đo lường và hiệu chuẩn nhằm thiết kế và đánh giá các bộ điều khiển điện tử (ECU). ECU Measurement and Calibration Toolkit cung cấp các chức năng cấp cao, dễ sử dụng dựa trên CAN Calibration Protocol (CCP) mà các nhà thiết kế, người kiểm tra và kỹ sư ECU có thể sử dụng để xây dựng các ứng dụng đo lường và hiệu chuẩn tùy chỉnh của riêng họ.
Hình 3. Thiết bị CAN có thể lựa chọn bằng phần mềm (XS) NI PCI-8513
Giao tiếp CAN của Ixxat được sử dụng trong nhiều ứng dụng, trong test-bench để kết nối các thiết bị cần thử nghiệm với máy tính hoặc làm bộ giao tiếp điều khiển trong hệ thống sản xuất hoặc xử lý.
Driver dành cho Windows (VCI), Linux và Hệ điều hành Real-Time (ECI), được đưa vào trong phạm vi cung cấp, tất cả giao diện lập trình giống hệt nhau, cho phép chuyển đổi nhanh chóng và dễ dàng giữa các thẻ mà không cần thích ứng với ứng dụng của khách hàng.
-
1.01.0281.12001 Ixxat USB-to-CAN V2 Compact D-SUB 9 Isolated
-
NI USB-8506
-
CanEasy
-
NI PXIe-8510
-
NI PCIe-8510
-
NI USB-8502
-
CANnector
-
CANbridge NT 200/420
-
CAN@net NT 100/200/420
-
Bộ lặp CAN
-
NI PXI-8512
-
USB-to-CAN FD