4.2.1. Cơ chế giao tiếp
Trong khi các hệ thống Bus khác giao tiếp dựa vào địa chỉ của mỗi nút thì hệ thống CAN dựa vào phƣơng pháp gán địa chỉ vào tin nhắnvà giao tiếp theo hƣớng đối tƣợng, nghĩa là một ECU (nút) sẽ yêu cầu dữ liệu và một ECU sẽ đáp ứng khung dữ liệu tƣơng ứng. Mỗi tin nhắn trao đổi trong hệ thống CAN coi nhƣ là một đối tƣợng và đƣợc gán một mã định danh (ID). Mỗi tin nhắn sẽ có mức độ ƣu tiên và độ dài khác nhau.
Các tin nhắn sẽ kh ng đƣợc gửi tới một nút nhất định mà bất cứ nút nào cũng có thể nhận dữ liệu. Nội dung của tin nhắn đƣợc phân loại dựa vào định danh (VD: tốc độ động cơ, vị tr bƣớm ga,…) Mã định danh kh ng nói lên địa chỉ địch thực của tin nhắn, nó chỉ biểu diễn ý nghĩa của dữ liệu. Vì vây mỗi nút có thể tự quyết định tiếp nhận hay không tiếp nhận tin nhắn th ng qua phƣơng thực lọc tin nhắn (message filtering). Do đó nhiều nút có thể cùng nhận một tin nhắn.
Ngoài ra một nút có thể yêu cầu một nút khác gửi dữ liệu bằng cách yêu cầu khung yêu cầu từ xa (Remote frame). Nút có khả năng cung cấp dữ liệu đó sẽ gửi một khung dữ liệu (Data Frame) cùng mã định danh với khung yêu cầu.
Bên cạnh các t nh năng đơn giản, phƣơng pháp giao tiếp theo hƣớng đối tƣợng mang lại tính linh hoạt và tính nhất quán dữ liệu của hệ thống. Một nút CAN không cần biết dữ liệu của hệ thống (VD: địa chỉ của nút) nên việc bổ sung hay bỏ đi một nút trong mạng không yêu cầu sự thay đổi về phần cứng hay phần mềm. Tính nhất quán của dữ liệu thể hiện qua việc phƣơng pháp gửi tin nhắn đồng loạt và xử lý lỗi.
4.2.1.1. Sự truyền thông giữa các trạm trên Bus
44 Khái niệm truyền th ng trên CAN Bus có nghĩa là mọi trạm trên mạng có thể tiếp nhận các khung dữ liệu của trạm truyền (trạm thứ hai). Sau khi nhận khung, mỗi trạm phải quyết định thông tin đó có nhận hay không? Vì vậy việc lọc và nhận phải đƣợc thực hiện ở tất cả các trạm.
Sự truyền thông trên CAN Bus có thể so sánh với trạm phát thanh truyền hình truyền tải thông tin về tình hình giao thông ở thành phố Hồ Chí Minh. Mỗi tài xế sẽ quyết định liệu thông tin đó có cần thiết hay không?
4.2.1.2. CAN Bus gửi yêu cầu từ xa (CAN Bus Remote Request)
Hình 4.15: CAN Bus gửi yêu cầu từ xa
Những yều cầu dữ liệu từ xa (Remote Transmission Request _RTR) đƣợc v nhƣ những câu hỏi. Nút có câu trả lời sẽ đƣa ra sự giao tiếp với các dữ liệu đƣợc yêu cầu. Khung dữ liệu có thể nhận bởi các nút khác đang cần dữ liệu này. Các khung yêu cầu (Remote) và khung dữ liệu (Data) đƣợc nhận biết bằng mã định danh (ID).
45
4.2.1.3. Nguyên tắc đa truy cập trong CAN Bus (Multimaster Principle)
Hình 4.16: Nguyên tắc đa truy cập trong CAN Bus
Giao thức CAN hỗ trợ truyền thông giữa các ECU (nút) với nhau mà không cần bộ điều khiển trung tâm. Mỗi nút có thể gửi tin nhắn bất kỳ mọi thời điểm. Tuy nhiên truyền tin nhắn thành công hoặc thất bại thì phụ thuộc vào hai yếu tố:
- Bus có rảnh trƣớc khi bắt đầu truyền dữ liệu hay không? - Giao đoạn phân xử có đƣợc thông qua hay không?
Mức độ ƣu tiên dựa vào phần định danh của tin nhắn. Khi Bus ở trạng thái rảnh, một vài nút có thể bắt đầu truyền một khung dữ liệu. Hệ thống CAN sẽ đƣa ra phân xử bằng cách ghi đề một bit trội lên một bit lặn để giành quyền tiếp tục truyền tin nhắn trên Bus. Nút mất quyền truy cập sẽ chuyển sang trạng thái nhận tin nhắn và chờ truyền tin nhắn trong thời gian tiếp theo.
46
4.2.1.4. Phƣơng pháp phân xử trong CAN Bus (Arbitration Method)
Hình 4.17: Sự phân xử trong CAN Bus
Nếu có hai nút hoặc nhiều nút bắt đầu truyền dữ liệu cùng một thời điểm khi nhận ra Bus đang ở trạng thái rảnh, thì sự xung đột của các tin nhắn đƣợc tránh bằng phƣơng pháp CSMA/CD + AMP. Mỗi nút gửi đi các bit định danh của tin nhắn và giám sát các mức làm việc trên Bus. Các bit từ tất cả các bộ phát đều giống nhau thì không có chuyện gì xảy ra.
Tại bit thứ năm, nút thứ nhất và nút thứ ba gửi đi một bit trội. Nút thứ hai gửi một bit lặn nên nó không còn nằm trong sự phân xử của Bus, chuyển sang chế độ chỉ nhận và truyền đi các bit lặn.
Tại bit thứ hai, nút thứ nhất không còn nằm trong sự phân xử của Bus. Điều nay có nghĩa là tin nhắn của nút thứ ba có giá trị nhị phân thấp hơn và do đó có mức ƣu tiên cao hơn các tin nhắn của nút thứ nhất và nút thứ hai. Tin nhắn của nút nào có mức ƣu tiên cao nhất sẽ thắng trong việc phân xử và tiếp tục truyền tin nhắn. Các nút thứ nhất và nút thứ hai sẽ gửi tin nhắn sau khi nút thứ ba hoàn thành.
47
4.2.1.5. Hỗ trợ giao tiếp trong CAN
Hình 4.18: Sự hỗ trợ giao tiếp
Giao thức CAN có hai sự hỗ trợ giao tiếp. Sự hỗ trợ giao tiếp thứ nhất là ghi nhớ nút (Write Object), nghĩa là một khung dữ liệu từ một nút truyền đến một hoặc nhiều bộ tiếp nhận. Nút nào yêu cầu dữ liệu này sẽ nhận tin nhắn, không phải một nút duy nhất nhận tin nhắn. Đây là sự hỗ trợ giao tiếp trong các CAN Bus truyền thống.
Sự hỗ trợ giao tiếp thứ hai là yêu cầu một dữ liệu (Read Object). Một nút sẽ truyền khung yêu cầu dữ liệu (Remote frame) thì nút chứa thông tin sẽ đáp lại khung dữ liệu tƣơng ứng.
4.2.2. Đặc tính của CAN Bus
CAN Bus đƣợc sử dụng trong nhiều lĩnh vực, đặc biệt là xe ô tô. Nó là một hệ thống điều khiển theo thời gian thực và có độ tin cậy cao. Các hệ thống điều khiển trên xe phải tuân thủ theo những yêu cầu thiết kế chuyên môn của hệ thống truyền dẫn Bus nhƣ: - Thời gian truyền tin nhắn phải ngắn.
48 - Các thông tin liên lạc phải đơn giản và rõ ràng.
- Thời gian phản hồi ngắn, hoạt động đƣợc ở tốc độ cao.
Hệ thống CAN Bus đảm bảo các yêu cầu trên thì nó phải bao gồm các t nh năng sau: 1. Khả năng cho phép các nút truy cập đƣờng truyền Bus.
2. Giải quyết các xung đột trên đƣờng truyền Bus th ng qua các địa chỉ định danh. 3. Truyền dẫn các dữ liệu có địa chỉ trống, nghĩa là phân phối tất cả các tin nhắn đến các nút, mỗi nút có sẽ nhận những tin nhắn chữa dữ liệu cần thiết, tin nhắn chƣa dữ liệu không cần thiết sẽ đƣợc bỏ qua.
4. Kiểm tra lỗi đƣợc thực hiện đồng bộ bởi tất cả các nút đang hoạt động.
5. Tính nhất quán về dữ liệu: Một tin nhắn đƣợc chấp nhận bởi tất cả các nút hoặc không nút nào.
6. Tự động điều chỉnh chức năng truyền dữ liệu thông qua hệ thống quản lý truyền dữ liệu nhƣ:
- Giải quyết xung đột trên Bus.
- Xác định lỗi trong quá trình truyền dữ liệu. - Tự động truyền lại các tin nhắn bị lỗi. - Xác nhận các th ng tin đã gửi.
- Tự động ngừng các nút đã bị hỏng.
Các t nh năng trên cho phép CAN Bus giải quyết đƣợc nhiều vấn đề:
Hệ thống CAN cho phép mỗi nút bắt đầu truyền dữ liệu bất cứ lúc nào đƣợc yêu cầu
Tất cả các nút đều có thể nhận tất cả các tin nhắn trên đƣờng truyền Bus.
Mỗi tin nhắn sẽ đƣợc gán một mã định danh (ID) có mức độ ƣu tiên khác nhau. Hệ thống CAN phát hiện và khoanh vùng nút bị lỗi và duy trì đƣợc sự giao tiếp
49
4.3. BỘ ĐIỀU KHIỂN CAN (CAN Controller) 4.3.1. Bộ điều khiển CAN độc lập 4.3.1. Bộ điều khiển CAN độc lập
Hình 4.19: Cấu trúc tổng thể bộ điều khiển CAN
Những bộ phận chính trong bộ điều khiển: 1. Giao thức quản lý:
- Gói dữ liệu
- Mã hóa khung dữ liệu - Giải mã bit
- Phát hiện lỗi - Đồng bộ dữ liệu
- Thông báo nhận dữ liệu
2. Bộ lọc là bộ phận có chức năng lọc thông tin từ giao thức quản lý 3. Bộ đệm của dữ liệu nhận, số bộ đệm phụ thuộc vào ứng dụng
4. Bộ đệm của dữ liệu truyền,số bộ đệm này cũng phụ thuộc vào ứng dụng. 5. Giao diện CPU
50
4.3.2. Bộ điều khiển CAN tích hợp (Integrated CAN Controller)
Hình 4.20: Bộ điều khiển CAN tích hợp
51 Cấu trúc bộ điều khiển CAN tích hợp bao gồm: Bộ thu phát CAN, vi điều khiên. Cấu trúc bộ điều khiển CAN độc lập gần giống nhƣ bộ điều khiển CAN tích hợp. Bộ điều khiển CAN tích hợp sẽ có thêm một bộ vi điều khiển. Ngày nay bộ điều khiển CAN đƣợc trang bị thêm một số t nh năng:
- Ngắt việc truyền tin yêu cầu trong những trƣờng hợp đặc biệt nhƣ cảnh báo, nhận một thông tin mới, truyền thành công một th ng tin,…
- Giới hạn cảnh báo với những kiểu lỗi khác nhau.
4.4. HỆ THỐNG XỬ LÝ (IMPLEMENTATION) 4.4.1. Module cơ bản (Basic CAN) 4.4.1. Module cơ bản (Basic CAN)
Trong các module, hệ thống xử lý CAN cơ bản có chức năng tạo ra dãy bit đƣợc thực hiện bằng phần cứng. Ngoài ra hệ thống còn có bộ đệm để tạm thời lƣu trữ tin nhắn gửi hoặc nhận. Khi bộ đệm bị quá tải, bộ xử lý trung tâm phải đọc dữ liệu đã nhận trƣớc khi nhận dữ liệu mới. Ngoài ra bộ xử lý trung tâm sẽ chịu trách nhiệm cho việc lọc tin nhắn. Do đó, một phần bộ nhớ của module đƣợc sử dụng cho việc quản lý CAN. Module có hệ thống xử lý CAN cơ bản chỉ thích hợp với tốc độ bit thấp, truyền tải ít tin nhắn với tốc độ bit cao. Ƣu điểm của module so với module CAN đầy đủ là chip nhỏ và giá thành sản xuất thấp.
Hình 4.22: Module CAN cơ bản
52
4.4.2. Module CAN mới (Full CAN)
Module CAN mới là giao thức ƣu tiên trong trƣờng hợp hệ thống phải điều khiển một lƣợng lớn tin nhắn với tốc độ cao và bộ xử lý trung tâm kh ng có dung lƣợng dƣ cho việc truyền thông. Nó chứa thông tin của một số nút, thông tin đó là mã định danh và dữ liệu cụ thể của tin nhắn. Ngoài ra module có nhiệm vụ quyết định các tin nhắn đƣợc gửi bởi bộ điều khiển CAN. Nếu tin nhắn chƣa hoàn chỉnh sẽ đƣợc xử lý thêm. Nếu các tin nhắn có định danh khớp với thông tin của một số nút đã lƣu thì tin nhắn mới đƣợc chấp nhận (lọc tin nhắn).
Bộ điều khiển có module CAN mới rất hữu ích trong việc giao tiếp thông tin. Bởi vì bộ xử lý trung tâm có thể lọc tin nhắn của bộ điều khiển. Ngoài ra bộ điều khiển CAN có thể ghép nối tiếp với bộ vi điều khiển trong hệ thống xử lý dƣới dạng các module độc lập bằng bus địa chỉ/dữ liệu. Một bộ vi điều khiển mạnh sẽ có bộ điều khiển CAN tích hợp trên chip. Đây là kiểu ghép đ i bus có nhiều hiểu quả, vì vậy mọi ngƣời sử dụng rất phổ biến. Một dạng khác của module CAN là module không có bộ xử lý trung tâm. Nó có thể nhập hoặc xuất dữ liệu qua các cổng kết nối. Chúng thích hợp cho việc làm cảm biến hoặc cơ cấu chấp hành tích hợp trên Bus với chi phí thấp và module sẽ cần một thiết bị chủ để điều khiển.
Hình 4.23: Module CAN mới (Full CAN)
53
4.4.2.1. Bộ thu phát (Transceiver)
Bộ điều khiển CAN tạo ra các dãy bit từ tín hiệu nhị phân. Các dãy bit chƣa tƣơng ứng với mức điện áp yêu cầu của CAN Bus. Do đó module Can Bus hoặc bộ thu phát phải tạo ra tín hiệu khác nhau giữa CAN-L, CAN-H và điện áp tham chiếu Uref từ dãy tín hiệu nhị phận.
4.4.2.2. Chế độ ngủ (Sleep mode)
Hệ thống CAN Bus có thể sẵn sàng hoạt động ngay cả khi hệ thống đánh lửa tắt (động cơ tắt), các chức năng khác nhƣ radio, cửa xe, đèn xe vẫn có thể tiếp tục hoạt động. Do đó hệ thống CAN có ít nhất 30 nút hoạt động thƣờng trực. Sau khi động cơ tắt máy, một số nút CAN có thể chuyển sang chế độ nghỉ (Standby) để giảm tải các hệ thống điều khiển không cần thiết. Trong chế độ này, bộ phát của module thu phát đƣợc tắt nhằm giảm tiêu thu điện. Tuy nhiên bộ nhận vẫn hoạt động và kiểm tra các tin nhắn đang đƣợc gửi trên Bus. Nhƣ vậy bộ điều khiển CAN cũng chuyển sang chế độ nghỉ, chờ tin nhắn đánh thức và kích hoạt lại nút CAN.
4.5. QUY TRÌNH TRUYỀN DỮ LIỆU
Chúng ta sử dụng dữ liệu tốc độ động cơ làm v dụ minh họa cho quy trình truyền dữ liệu trên CAN. Hệ thống CAN dùng module CAN mới (Full-CAN).
Hình 4.24: Quá trình truyền và nhận dữ liệu
54
4.5.1. Truyền tải dữ liệu
Hệ thống điều khiển động cơ t nh toán tốc độ động cơ từ tín hiệu cảm biến tốc độ động cơ. Giá trị đƣợc tính một lần trong mỗi chu kỳ đốt. Giá trị đo đƣợc gửi vào bộ đệm nhận và bộ đệm truyền của bộ vi điều khiển (Hình 4.25a). Bộ vi điều khiển và bộ điều khiển CAN đƣợc ghép song song với nhau. Dữ liệu tốc độ động cơ sẽ đƣợc truyền từ bộ đệm truyền đến bộ đệm truyền của bộ điều khiển CAN theo chu ky (VD: 10ms một lần). Một cờ thông báo sẽ đƣợc truyền đến bộ điều khiển CAN thông báo tin nhắn sẵn sàng để gửi. Lúc này, hệ thống điều khiển động cơ đã hoàn thành một phần nhiệm vụ.
Khi dữ liệu tốc độ động cơ đƣợc lƣu trữ trong bộ đệm truyền thì bộ điều khiển CAN bắt đầu mã hóa khung CAN. Trên đƣờng dây RxD, bộ điều khiền CAN sẽ giám sát tình trạng của Bus. Nếu Bus rảnh thì nó sẽ tạo ra dãy bit để hƣớng đến bộ thu phát trên đƣờng dây TxD. Nếu Bus đang truyền dữ liệu thì bộ điều khiển CAN chờ để truy cập.
Từ dãy bit, bộ thu phát sẽ tạo ra tín hiệu với mức điện áp cần thiết cho hệ thống.
4.5.2. Nhận dữ liệu
Hệ thống điều khiển động cơ truyền tin nhắn chứa dữ liệu tốc độ động cơ đến các bộ thu phát của các hệ thống điều khiển khác trên Bus (Hình 4.25b). Tin nhắn đƣợc mã hóa dạng dãy bit truyền đến bộ điều khiển CAN trên đƣờng dây RxD.
Giai đoạn đầu tiên, bộ điều khiển CAN kiểm tra tin nhắn lỗi bằng phƣơng pháp tổng kiểm tra chuỗi CRC. Nếu tin nhắn không có lỗi thì mỗi nút sẽ phản hồi bằng sự xác nhận tin nhắn hợp lệ (ACK Check). Giai đoạn thứ hai, tin nhắn sẽ đi qua bộ lọc. Mỗi nút kiểm tra dịnh danh tin nhắn nhận có gửi đến một nút cụ thể hay không và dữ liệu tin nhắn có cần thiết hay không? Nếu tin nhắn không cần thiết thì tin nhắn sẽ bị loại bỏ. Mặt khác, tin nhắn cần thiết cho hệ thống điều khiển thì một là cờ th ng báo đƣợc truyền thông báo cho bộ vi xử lý tin nhắn đã sẵn sàng để mã hóa.
Ví dụ: Bảng táp lô tiếp nhận tin nhắn chứa dữ liệu tốc độ động cơ trên đƣờng truyền Bus, xử lý dữ liệu tốc độ động cơ và t n toán t n hiệu để kích hoạt cơ cấu chấp hành của đồng đồ hiển thị số vòng quay động cơ.
4.6. ĐẶC ĐIỂM CAN BUS
Tuân theo tiêu chuẩn ISO 11898
Giao tiếp theo mức độ ƣu tiên của dữ liệu Tốc độ truyền dữ liệu tối đa 1Mbit/s
Dung lƣợng dữ liệu: Mỗi tin nhắn có tối đa 8 byte
Phản hồi theo thời gian thực: Giao thực CAN đáp ứng các yêu cầu về thời gian thực trong ô tô.
Phƣơng pháp truy cập Bus không ảnh hƣởng đến dữ liệu Hệ thống CAN tiêu thụ điện năng t
55 Thiết kế đơn giản và tiết kiệm với đ i dây xoắn