Controller Area Network (CAN) 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 thiết kế với tốc độ truyền từ 20kb/s tới 1Mb/s, với ứng dụng tốc độ cao (500kbit/s) được tiêu chuẩn hóa trong ISO/DIS 11898:1993, và ứng dụng ở tốc độ thấp hơn (125kbit/s) được tiêu chuẩn hóa trong ISO 11519-2:1994, với độ ổn định, bảo mật và đặc biệt chống nhiễu cực kỳ tốt. CAN là một công nghệ mạng ghép nối tiếp khởi nguồn được thiết kế dùng cho công nghiệp xe ô tô, đặc biệt các loại xe Châu Âu. CAN đầu tiên được phát triển bởi nhà cung cấp phụ tùng xe ôtô của Đức, Robert Bosch vào giữa những năm 80. Ngành công nghiệp ôtô trên thế giới đã phát triển rất nhiều hệ thống điện tử như hệ thống chống trượt bánh xe, bộ điều khiển động cơ, điều hòa nhiệt độ, bộ điều khiển cửa. v.v…Với mục đích chính là cải thiện hệ thống xe ô tô trở nên an toàn, ổn định và tiết kiệm nhiên liệu trong khi đó giảm thiểu việc đi dây chằng chịt, đơn giản hóa hệ thống và tiết kiệm chi phí sản xuất, thì mạng CAN đã được phát triển. Ngay từ khi mới ra đời, mạng 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ẻ. Cùng với sử dụng trong lĩnh vực ô tô không thể phủ nhận được thì các ứng dụng của CAN không chỉ bao gồm các nhiệm vụ tự động hóa công nghiệp mà còn bất kỳ ứng dụng nào khác mà điều khiển phân phối (distributed control) có lợi thế và một hệ thốngbus nối tiếp sẽ lược bớt đi dây nối thừa. Nó được sử dụng với việc truyền dữ liệu lớn, đáp ứng thời gian thực và trong môi trường khác nhau. Cuối cùng, truyền tốc độ cao rất ổn định. Đó là lý do tại sao chúng được sử dụng trong nhiều ngành công nghiệp khác ngoài xe hơi như các 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:
* Tầng vật lý.
* 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
Hình 1. Ví dụ về ứng dụng mạng CAN
Mạng CAN được tạo thành bởi 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, giảm tối thiểu hiện tượng sự đội tín hiệu. sự truyền dữ liệu thực hiện nhờ cặp dây truyền tín hiệu vi sai, có nghĩa là chúng ta đo sự khác nhau giữa 2 đường (CAN H và CAN L). Đường dây bus kết thúc bằng điện trở 120 ohm (thấp nhất là 108 ohm và tối đa là 132 ohm) ở mỗi đầu. Sơ đồ cấu trúc mạng CAN như hình 1.2.
Mạng CAN thuộc loại hệ thống giao tiếp gói dữ liệu (message base system), khác với hệ thống giao tiếp địa chỉ (address base system), mỗi gói dữ liệu được gán một ID. Những hệ thống địa chỉ thì 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. Có thể có vài node nhận cùng một dữ liệu và cùng thực hiện một nhiệm vụ. Hệ thống điều khiển phân bố dựa trên mạng 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.
Hình 2. Sơ đồ mạng CAN
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ố.
ID của message phụ thuộc vào mức độ ưu tiên của message. Điều này cho phép phân tích thời gian đáp ứng của từng message. Ý nghĩa quan trọng trong việc thiết kế hệ thống nhúng thời gian thực. Trước khi có mạng CAN, lựa chọn duy nhất cho mạng giao tiếp trong hệ thống thời gian thực là mạng token ring chậm chạp.
Cách thức giao tiếp mạng CAN như trên hình 1.3. Theo tiêu chuẩn ISO11898:2003 định nghĩa 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): định nghĩa cấu trúc dữ liệu truyền và những nguyên tắc phân xử dữ liệu để tránh trường hợp cả hai Master cùng truyền đồng thời.
Hình 3. Mô hình giao tiếp mạng CAN theo ISO11898
Ngoài ra, chuẩn CAN còn định nghĩa nhiều cơ chế khác để kiểm tra lỗi, xử lý lỗi… cơ chế kiểm tra và xử lý lỗi chia làm 5 loại lỗi: Bit error, Stuff error, CRC error, Form error, ACK error.