Giao tiếp CAN là gì? Mạng giao tiếp CAN là mạng giao tiếp được sử dụng phổ biến nhất tren xe ô tô hiện nay, ngoài ra chúng còn có thể ứng dụng trong công nghiệp, đời sống,… mà có thể các bạn chưa biết đến. Vậy qua bài viết này hãy cùng tìm hiểu nhé.
1. Giao tiếp CAN là gì?
CAN (Controller Area Network) là giao thức truyền thông nối tiếp hỗ trợ những hệ thống điều khiển thời gian thực; là đường bus truyền tải số (broadcast digital bus) với nhiều Master. Có thể liên kết tới 2032 thiết bị trên một mạng duy nhất với tốc độ truyền thông tốc độ cao lên đến 1 Mbits / giây.
CAN được phát triển lần đầu tiên bởi Robert Bosch GmbH, Đức vào năm 1986 khi họ được Mercedes yêu cầu phát triển một hệ thống liên lạc giữa ba ECU (bộ điều khiển điện tử) trên xe.
Họ nhận thấy rằng UART không còn phù hợp trong tình huống này vì nó được sử dụng trong giao tiếp điểm – điểm. Nhu cầu về một hệ thống liên lạc đa chủ trở nên cấp thiết. Bởi vậy, mạng CAN đầu tiên đã xuất hiện vào năm 1987 bởi Intel chế tạo.
Ngay từ khi mới ra đời, giao tiếp CAN đã được chấp nhận và ứng dụng một cách rộng rãi trong các lĩnh vực công nghiệp, chế tạo ô tô. Với thời gian, CAN càng trở nên thông dụng hơn vì tính hiệu quả, ổn định, đơn giản, mở và đặc biệt là chi phí rẻ.
Ngoài ra giao thức CAN còn được ứng dụng trong các hoạt động tự động hóa công nghiệp và các hoạt động điều khiển phân phối, truyền tốc độ cao cho các ngành công nghiệp như xe hơi, máy nông nghiệp, tàu ngầm, các dụng cụ y khoa, máy dệt, v.v…
2. Cấu trúc chuẩn giao tiếp CAN theo tiêu chuẩn CAN 2.0b
Chuẩn CAN bao gồm:
a. Tầng vật lý
b. Tầng liên kết dữ liệu
- Các thông điệp
- Các chuẩn phân xử cho truy cập bus.
- Các phương pháp dò lỗi và xử lý lỗi
Mạng CAN được tạo thành từ một nhóm các nodes, mỗi node có thể giao tiếp với bất kỳ nodes nào khác trong mạng. Việc giao tiếp được thực hiện bằng việc truyền đi và nhận các gói dữ liệu – gọi là message. Mỗi loại message trong mạng CAN được gán cho một ID – số định danh – tùy theo mức độ ưu tiên của message đó.
Công nghệ cáp của mạng CAN có đường dây dẫn đơn giản, sự truyền dữ liệu thực hiện nhờ cặp dây truyền tín hiệu vi sai. Đường dây bus kết thúc bằng điện trở 120 ohm ở mỗi đầu. Và có sơ đồ cấu trúc như sau:
Giao tiếp CAN thuộc loại hệ thống giao tiếp gói dữ liệu (message base system), mỗi node được gán cho một ID. Hệ thống giao tiếp gói dữ liệu có tính mở hơn vì khi thêm, bớt một node hay thay một nhóm node bằng một node phức tạp hơn không làm ảnh hưởng đến cả hệ thống.
Hệ thống điều khiển phân bố dựa trên mạng giao tiếp CAN có tính mở, dễ dàng thay đổi mà không cần phải thiết kế lại toàn bộ hệ thống. Mỗi node có thể nhận nhiều loại message khác nhau, ngược lại một message có thể được nhận bởi nhiều node và công việc được thực hiện một cách đồng bộ trong hệ thống phân bố.
Mỗi node có thể nhận nhiều loại message khác nhau, ngược lại một message có thể được nhận bởi nhiều node và công việc được thực hiện một cách đồng bộ trong hệ thống phân bố.
Cách thức giao tiếp mạng CAN dựa theo tiêu chuẩn ISO11898:2003 gồm hai lớp: Physical layer và Data link layer.
- Lớp Physical layer định nghĩa cách biểu diễn/thu nhận bit 0 bit 1, cách định thời và đồng bộ hóa
- Lớp Data link layer được chia làm 2 lớp nhỏ là logical link control (LLC) và Medium Access Control (MAC)
3. Ưu điểm của giao tiếp 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, 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ấ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 và đều có thể thấy thông điệp đang truyền trên bus.
- Nhiều master (multimaster)
- Phát hiện và báo hiệu lỗi: Mỗi thông điệp có kèm theo mã CRC để 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 lên bus CAN. Mỗi node 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ó. Khi lỗi xuất hiện quá nhiều, một node có thể tự động ngắt khỏi bus.
- 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.
4. Các loại CAN frame
Dữ liệu CAN được truyền dưới dạng các Frame có 4 loại, đó 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
5. Ứng dụng giao tiếp CAN
Giao tiếp CAN được ứng dụng trong rất nhiều lĩnh vực khác nhau như: Xe ôtô, tàu khách và tàu hàng, hệ thống điện tử hàng hải, điện tử máy bay và hàng không, tự động hóa nhà máy, điều khiển máy công nghiệp, tự động hóa tòa nhà, thang máy (thang nâng và thang trượt), thiết bị phụ tùng y tế,….với tốc độ bit có thể lên đến 1 Mbit/s.
- Ứng dụng mạng trong công ty: giao tiếp CAN được sử dụng để xây dựng mạng phụ để thực thi khởi động hệ thống và hỗ trợ tháo lắp “nóng” thiết bị trên các bo PC lớn dùng để định tuyến.
- Trong bệnh viện, mạng giao tiếp CAN có thể sử dụng để điều khiển các thiết bị trong phòng như đèn, bảng điện tử, máy nội soi, máy X-quang, camera, máy in, …. (giao thức có thể sử dụng là CANOpen)
- Tự động hóa trong nhà máy: việc điều khiển tự động hóa các thiết bị có thể sử dụng giao thức DeviceNet, một giao thức xay dựng trên chuẩn CAN
- Hệ thống thang máy: Các bo điều khiển thông tin với nhau qua bus CAN ở các tầng và bo mạch chính
>>> Xem thêm: Mạng cảm biến không dây và ứng dụng