Controller Area Network (CAN hay CAN Bus) là một giao thức truyền thông nối tiếp rất hiệu quả cho các ứng dụng điều khiển thời gian thực với mức độ an toàn cao.
Ý tưởng của mạng CAN được nhóm kỹ sư tại GmbH Robert Bosch (https://www.bosch.com/), Đức, nghiên cứu từ đầu thập niên 1980. Họ đã nghiên cứu một công nghệ bus mới dùng trong xe ô tô mà có thể cho phép đưa thêm nhiều chức năng vào nữa mà số lượng dây nối không quá lớn.
Chuẩn CAN ra đời với mục đích ban đầu là phục vụ cho ngành công nghiệp xe ô tô. Trước khi sử dụng chuẩn CAN, việc kết nối giữa các khối (module) điều khiển trong xe hơi rất phức tạp và yêu cầu nhiều dây nối. Khi ngành công nghiệp xe ô tô phát triển, các khối điều khiển điện tử với nhiều chức năng phức tạp (điều khiển thân xe, điều khiển cửa, điều khiển động cơ, thu thập dữ liệu các cảm biến, định vị xe, ...) trong xe ngày càng nhiều làm việc bố trí kết nối càng trở nên phức tạp, tốn kém và bảo trì khó khăn.
Hình 1. Minh họa kết nối các thành phần điều khiển trong xe ô tô khi chưa sử dụng chuẩn CAN |
CAN ra đời đã giải quyết các vấn đề tồn tại. Các module chỉ cần 2 dây để kết nối với nhau. Việc thêm hay bớt module trong bus CAN dễ dàng. Việc truyền dữ liệu có độ tin cậy cao, tốc độ nhanh.
Hình 2. Minh họa việc kết nối các thành phần điều khiển trong xe ô tô sử dụng bus CAN |
2. TÓM LƯỢC LỊCH SỬ PHÁT TRIỂN
Lịch sử phát triển của CAN được tóm lược như sau:
· 1983: Bắt đầu dự án phát triển mạng trên xe hơi trong nội bộ hãng Bosch.
· 1986: Chính thức giới thiệu giao thức CAN.
· 1987: Những chíp điều khiển CAN đầu tiên xuất hiện ở nhà sản xuất linh kiện bán dẫn Intel và Philips.
· 1991: Bosch xuất bản thông số kỹ thuật CAN 2.0.
· 1992: Thành lập nhóm các nhà sử dụng và sản xuất CAN quốc tế: Hội CAN tự động hóa (CiA). Hội CiA xuất bản giao thức Lớp ứng dụng CAN (CAN Application Layer, CAL). Những chiếc xe Mercedes-Benz đầu tiên được trang bị CAN xuất hiện.
· 1993: Xuất bản tiêu chuẩn ISO 11898.
· 1994: CiA tổ chức Hội nghị CAN quốc tế lần thứ nhất (iCC). Allen-Bradley giới thiệu giao thức DeviceNet.
· 1995: Xuất bản Tiêu chuẩn ISO 11898 sửa đổi (định dạng khung mở rộng). CiA xuất bản giao thức CANopen.
Giải thích:
· CiA (CAN in Automation): Là nhóm các nhà sản xuất và sử dụng trên thế giới phát triển và hỗ trợ CANopen và các giao thức CAN cơ bản lớp cao hơn khác. Đây là tổ chức phi lợi nhuận được thành lập từ năm 1992 để cung cấp thông tin về công nghệ CAN cơ bản, sản xuất và tiếp thị. Có khoảng 500 công ty là thành viên của tổ chức phi lợi nhuận này và có trụ sở chính đặt tại Nuremberg, Đức.
· DeviceNet và CANopen: là hai chuẩn quy định hoạt động của CAN ở lớp cao hơn (Application Layer) dựa trên chuẩn CAN (Chuẩn CAN quy định việc thực thi giao thức ở lớp Liên kết dữ liệu (Data Link Layer) và lớp vật lý (Physical Layer))
3. THUỘC TÍNH & ƯU ĐIỂM CỦA BUS CAN
3. THUỘC TÍNH & ƯU ĐIỂM CỦA BUS CAN
- Đơn giản, chi phí thấp: Như đã trình bày ở trên, 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 bú 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, ... (tham khảo thêm datasheet của một ngoại vi CAN trong vi điều khiển bất kỳ để có thông tin cụ thể)
- 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)
- 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
Những đặc điểm trên, bạn đọc có thể thấy rõ khi đi sâu vào nghiên cứu chuẩn này.
4. PHẠM VI ỨNG DỤNG
Hiện nay CAN được ứng dụng trong rất nhề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: các hệ thống có thể sử dụng chuẩn CAN để 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" (hot-swapping) thiết bị trên các bo PC lớn dùng để định tuyến.
- Trong bệnh viện, mạng 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
Hình 3. Minh họa kết nối các bo điều khiển trong hệ thống thang máy |
Lịch sử cập nhật:
1) 2019.10.18 - Chỉnh sửa link hình minh họa
very good , thank you.
Trả lờiXóaEm chào anh,
Trả lờiXóaEm đang nghiên cứu về thang máy ứng dụng mạng CAN. Anh có thể cho em xin tư liệu hoặc source của hình ảnh cuối bài được không ạ! Em cảm ơn anh !
Hi Hoàng, hình này anh chỉ lấy làm minh họa bài viết, không nhớ dựa trên tài liệu cụ thể nào. Em có thể tham khảo một số link sau:
Xóahttps://www.researchgate.net/publication/224087807_Design_and_implementation_of_the_CAN_based_elevator_control_system
https://www.google.com/search?biw=1280&bih=532&ei=hvU6XNnSDdOj-Qav35_ICw&q=elevator+controller+system+use+CAN+protocol&oq=elevator+controller+system+use+CAN+protocol&gs_l=psy-ab.3..35i39.2060.2534..3062...0.0..0.114.206.1j1......0....1..gws-wiz.......35i304i39.iu7nU6h-0G4