Lớp vật lý, CAN chuyển đổi giữa hai trạng thái:
- Trạng thái dominant, nghĩa là trạng thái trội hay còn gọi trạng thái chiếm ƣu thế, trạng thái logic 1.
- Trạng thái recessive, nghĩa là trạng thái lặn hay còn gọi trạng thái ẩn, trạng thái logic 0.
Vì tính chất vật lý của Bus, chúng ta cần phân biệt hai dạng truyền: Truyền tốc độ cao (CAN-HIGH), truyền tốc độ thấp (CAN-LOW). Bảng sau thể hiện sự khác nhau giữa hai dạng truyền:
Bảng 4.2: Sự khác nhau giữa CAN-L và CAN-H
Thông số CAN-LOW CAN-HIGH
Tốc độ 125Kb/s 125Kb/s đến 1 Mb/s
Số nút 10 24
Trạng thái Dominant CAN_H = 3.6V
CAN_L = 1.4V
CAN_H = 3.5V CAN_L = 1.5V
Trạng thái Receive CAN_H = 0.0V
CAN_L = 5.0V
CAN_H = 2.5V CAN_L = 2.5V
Tiêu chuẩn ISO 11898 ISO 11519
Ứng dụng Hệ thống điều khiển
điện thân xe
Hệ thống điều khiển động cơ, hệ thống điều khiển truyền lực, hệ thống phanh ABS, hệ thống cân bằng điện tử,…
39
Hình 4.6:Mức điện áp của CAN-H 4.1.4. Đƣờng truyền công suất trong CAN Bus
Hình 4.7: Hệ thống điện CAN Bus
Dòng điện chính đƣợc sinh ra từ nguồn trung tâm của Bus. Cuộn dây có nhiệm vụ ngăn chặn sự ngắt điện áp của tín hiệu. Hệ thống CAN truyền tín hiệu dữ liệu trên các đƣờng dây điện: Truyền theo từng dải cơ bản và điều biến (Modulation).
40
4.1.5. Sự truyền tần số cao (tần số vô tuyền) trong CAN Bus
Hình 4.8: Truyền tần số giữa các nút
Truyền tần số có rất nhiều ƣu điểm khi điều khiển một hệ thống không cần đến các dây dẫn. Trƣờng hợp điển hình khi hai hệ thống phụ di động giao tiếp với nhau. Ứng dụng đơn giản nhất cho một liên kết từ xa là liên kết điểm-điểm, ví dụ một hệ thống CAN Bus liên kết cổng CAN RF (Radio Frequency) để giao tiếp với một hệ thống khác di động.Sự kết nối tần số vô tuyến có thể đƣợc dùng để liên kết giữa hai hay nhiều hệ thống CAN. Ngoài ra, nó có thể thiết lập để truyền một tin nhắn.
4.1.6. Sự truyền hồng ngoại trong CAN Bus (Infrared Transmission)
Hình 4.9: Truyền hồng ngoài giữa các nút
Trong một vài ứng dụng, các mạng con trong hệ thống CAN Bus giao tiếp với nhau bằng hồng ngoại. Hồng ngoại có thể liên kết với các CAN Bus độc lập hoặc một số hệ thống mạng khác có liên kết mạng kiểu Bus (ARCnet là hệ thống có liên kết mạng kiểu
41 sao và Bus) để thực hiện tính một số t nh năng nhƣ truyền tải đƣờng dài hoặc kết nối để điều khiển thiết bị.
4.1.7. Các mức tín hiệu trong CAN Bus (ISO 11898-2)
Hình 4.10: Các mức tín hiệu
Một bộ điều khiển CAN đƣợc kết nối với một bộ thu phát theo tiêu chuẩn ISO 11898 th ng qua đƣờng truyền dữ liệu đầu ra Tx và đƣờng truyền dữ liệu đầu vào Rx. Bộ thu phát kết nối với đƣờng truyền Bus thông qua hai dây CAN-L và CAN-H. Mỗi dây quy định khả năng nhận và truyền dữ liệu khác nhau.Ngoài ra Tx và Rx còn là tín hiệu định hƣớng. Tuy nhiên tín hiệu sai giữa CAN-H và CAN-L thì kh ng đƣợc định hƣớng.
4.1.8. Sự nhiễm điện từ của CAN Bus (Electromagnetic Interference)
Sự truyền tín hiệu của hệ thống CAN không ảnh hƣởng nhiều bởi sự nhiễu điện từ. Bởi vì hai đƣờng truyền Bus đều bị ảnh hƣởng theo một giá trị nhất định nên sự chênh lệch điện áp vẫn kh ng đổi (Vdiff = constant).
42
4.1.9. Bộ lặp (Repeater)
Hình 4.12: Bộ lặp
Bộ lặp theo tiêu chuẩn ISO 11898 có thể đƣợc dùng để ngắt hay cô lặp các phần của CAN Bus hoặc điều khiển nhiều nút hơn hoặc tăng chiều dài Bus lên đến hơn 1km. Bộ lặp có thể sử dụng cho nhiều kiểu mạng khác nhau để đạt các chức năng nêu trên.
4.1.10. Cấu hình Can Bus
Hình 4.13: Cấu hình CAN Bus
Kết cấu hệ thống dây của hệ thống CAN có cấu trúc một đƣờng truyền duy nhất để tránh các sóng phản xạ trên dây cáp. Về cơ bản hệ thống CAN phải phụ thuộc vào nhiều yếu tố nhƣ hệ số thời gian Bit, chiều dài đƣờng truyền Bus, chiều dài kết nối từ nút đến Bus để đảm bảo dữ liệu không bị ảnh hƣởng bởi sóng phản xạ. Trong thực tế các đoạn dây kết nối từ nút đến đƣờng truyền Bus phải đáp ứng các yêu cầu để truyền dữ liệu tốc độ cao. Tốc độ 1Mbit/s thì chiều dài đoạn dây kh ng nên vƣợt quá 0.4m.
43
4.2. CƠ CHẾ GIAO TIẾP VÀ ĐẶC TÍNH CỦA BUS 4.2.1. Cơ chế giao tiếp 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