Thông tin xe, hộp điều khiển

Một phần của tài liệu Nghiên cứu và thử nghiệm máy chẩn đoán cơ bản (Trang 34)

Cho biết thông tin về số VIN của xe và thông tin hộp điều khiển. VIN là số khung xe, ngày nay thông tin VIN được nạp vào bộ điều khiển của xe luôn. Thông tin CALID (Calibration Identification) và CVN (Calibration Verification Numbers) là version của bộ điều khiển.

Chương 4. LÝ THUYẾT VỀ MẠNG CAN 4.1. Nguyên nhân và lịch sử phát triển

4.1.1. Định nghĩa CAN Bus

Controller Area Network (CAN), là giao thức truyền thông nối tiếp hỗ trợ mạnh cho những hệ thống điều khiển thời gian thực phân bố (Distributed Realtime Control System) với độ ổn định, bảo mật và đặc biệt chống nhiễu cực kỳ tốt.

Ý 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.

4.1.2. Nguyên nhân ra đời của CAN Bus

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 bộ điều khiển (Controller) trên 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 4.1. Minh họa kết nối các ECU trên ô tô khi chưa sử dụng CAN Bus

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 4.2 Minh họa kết nối các ECU trên ô tô sử dụng CAN Bus

4.1.3. Lịch sử về mạng CAN

Năm 1983, công ty Robert Bosch GmbH đã bắt đầu phát triển mạng CAN

Năm 1986, giao thức được chính thức công bố ở đại hội của hội Kĩ sư ô tô

(Society of Automotive Engineers - SAE) ở Detroit, Michigan, Mỹ.

Năm 1987, những chip điều khiển CAN (CAN controller chip) đầu tiên được Intel

và Phillips sản xuất và xuất hiện trên thị trường.

Năm 1991, Bosch đã xuất bản một số phiên bản kỹ thuật của mạng CAN và phiên

bản mới nhất là CAN 2.0.

Năm 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 (CAN in Automation, 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 tiếp theo xuất hiện, Mercedes-Benz W140.

Năm 1993, Tổ chức Tiêu chuẩn hóa Quốc tế (ISO) đã phát hành tiêu chuẩn CAN

ISO 11898.

Năm 1994, CiA tổ chức Hội nghị CAN quốc tế lần thứ nhất. Allen-Bradley giới

thiệu giao thức DeviceNet. Hiệp hội Kỹ sư ô tô – SAE phát hành SAE J1939.

Từ năm 1994, một số giao thức cấp cao hơn đã được chuẩn hóa trên CAN, chẳng hạn như CANopen và DeviceNet. Các thị trường khác đã áp dụng rộng rãi các giao thức bổ sung này, hiện là tiêu chuẩn cho truyền thông công nghiệp.

Năm 2012, Bosch đã phát hành CAN FD 1.0 hoặc CAN với Tốc độ Dữ liệu linh hoạt. Kỹ thuật này sử dụng một định dạng khung khác nhau cho phép một chiều dài dữ liệu khác nhau cũng như các tùy chọn chuyển đổi để tốc độ bit nhanh hơn. CAN FD tương thích với mạng CAN 2.0 hiện có để các thiết bị của chúng có thể cùng hoạt động trên cùng một mạng với nhau.

CAN bus là một trong năm giao thức được sử dụng trong việc chẩn đoán trên xe (OBD-II). Tiêu chuẩn OBD-II bắt buộc phải có đối với tất cả các xe ô tô và xe tải nhẹ bán tại Hoa Kỳ từ năm 1996. Và sau này đã được áp dụng cho tất cả các xe trên thế giới.

4.2. Thuộc tính, ưu điểm và ứng dụng của CAN Bus

4.2.1. Thuộc tính và ưu điểm của CAN Bus

CAN Bus có cấu tạo đơn giản, chỉ có 2 dây kết nối các module điều khiển với nhau dễ dàng hơn cách làm truyền thống, chi phí thấp, dễ lắp đặt và dễ sửa chữa, bảo trì khi có sự cố.

CAN Bus là 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.

CAN Bus truyền thông điệp theo mức độ ưu tiên, đảm bảo hiệu quả cao theo thời gian thực. Mỗi thông điệp được truyền đều có một mức ưu tiên. Khi nhiều thông điệp được truyền ra từ một nút (Node) hay trạm (Station) trên mạng CAN cùng lúc thì thông điệp có mức ưu tiên cao nhất sẽ được truyền. Cá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 cổng CAN rảnh. Việc xác định mức ưu tiên dựa trên cấu trúc thông điệp và cơ chế phân xử quy định trong chuẩn CAN.

CAN Bus cho phép người dùng thiết lập các thông số kỹ thuật của thông điệp một cách linh hoạt: cấu hình thời gian bit, đồng bộ, độ dài dữ liệu truyền - nhận,…

CAN Bus cho phép 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 trên mạng cùng lúc. Tất cả các node trên mạng đều có thể thấy thông điệp đang truyền, 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.

CAN Bus cho phép nhiều bộ điều khiển (Multimaster) cùng kết nối đồng thời vào mạng và nhận thông điệp từ các bộ phận đầu vào (Slaver) như cảm biến tốc độ, cảm biến nhiệt độ,…

CAN Bus có khả năng 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) để kiểm tra lỗi. Nếu lỗi xuất hiện, Node nhận sẽ bỏ qua thông điệp và truyền khung báo lỗi (Error frame) lên mạng CAN. Mỗi Node có thể tự xác định trạng thái lỗi và ngắt khỏi mạng nếu lỗi xuất hiện quá nhiều.

CAN Bus tự động truyền lại các thông điệp bị lỗi khi mạng rảnh giúp đảm bảo tính toàn vẹn dữ liệu trên mạng CAN. Một thông điệp được truyền ra mang nếu bị lỗi thì Node truyền thông điệp này sẽ giữ lại và tự động phát lại thông điệp này khi cổng CAN rảnh cho đến khi thành công.

Tốc độ bit của CAN có thể khác nhau trong các hệ thống khác nhau nhưng trong một hệ thống cho trước thì tốc độ bit đồng nhất và cố định. Tốc độ bit còn tùy thuộc vào chiều dài đường truyền. Tốc độ tối đa có thể lên đến 1 Mbit/s. Đảm bảo cho mức độ phản hồi nhanh chóng của mạng CAN trong phạm vi nhỏ.

Bus Length Bit rate Bit time

25 meters 1000 kbit/s 1 µs 50 meters 800 kbit/s 1.25 µs 100 meters 500 kbit/s 2 µs 250 meters 250 kbit/s 4 µs 500 meters 125 kbit/s 8 µs 1000 meters 50 kbit/s 20 µs 2500 meters 25 kbit/s 50 µs

Bảng 4.1. Liên hệ giữa tốc độ truyền dữ liệu và chiều dài mạng

4.2.2. Phạm vi ứng dụng của CAN Bus

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ử 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.

Hình 4.3. Mạng lưới đường truyền tín hiệu trên ô tô

4.3. Cấu trúc của CAN Bus

4.3.1. Cấu trúc phân lớp của giao thức CAN

Giao thức CAN, giống như nhiều giao thức mạng khác, có thể được phân tách thành các lớp tượng trưng sau đây: Ứng dụng (Application Layer), Đối tượng (Object Layer), Truyền tải (Transfer Layer) và Vật lý (Physical Layer).

Hình 4.4b. Cấu trúc phân lớp của mạng CAN theo mô hình OSI

4.3.2. Các thành phần cơ bản của mạng CAN

CAN là một chuỗi mạng đa chủ thế để kết nối các thiết điều khiển điện tử (ECU) đến các bộ chấp hành và các cảm biến đầu vào, còn được gọi là các nút mạng (Nodes).

Các nút mạng này có thể giao tiếp với nhau. Tất cả các nút mạng được kết nối với nhau thông qua hai dây là CANH (CAN High) và CANL (CAN Low). Hai dây này là một cặp xoắn trong quá trình truyển tải. Ở đầu cuối là một điện trở 120 Ω nối giữa hai dây.

Hình 4.5. Các thành phần cơ bản của mạng CAN

4.3.3. Trạng thái tín hiệu và các chuẩn truyền trên mạng CAN

4.3.3.1. Trạng thái tín hiệu trên mạng CAN

Trang thái tín hiệu truyền tải trên mạng CAN có 2 dạng:

• Trạng thái "Recessive - Lặn" mã hóa bit dữ liệu 1 (CANH ≤ CANL).

4.3.3.2. Các chuẩn truyền phổ biến trên mạng CAN

Tiêu chuẩn ISO 11898-2, còn được gọi là CAN tốc độ cao (tốc độ 1Mbit/s trên

CAN, 5Mbit/s trên CAN-FD), sử dụng một cổng tuyến tính và kết thúc với điện trở 120Ω.

Hình 4.6. Minh họa mạng CAN tốc độ cao ISO 11898-2

Tín hiệu CAN tốc độ cao điều khiển dây CANH về phía 5V và dây CANL về 0V khi truyền trạng thái trội (0) với mức điện áp chênh lệch có giá trị danh định là 2V; trong khi đó nếu không có thiết bị nào truyền tín hiệu, thì các điện trở đầu cuối sẽ trả lại dây dẫn trạng thái lặn (1) có điện áp chênh lệch danh nghĩa là 0V (hoặc nhỏ hơn 0,5V).

Hình 4.7. Tín hiệu CAN tốc độ cao ISO 11898-2

Tiêu chuẩn ISO 11898-3, được gọi là CAN có tốc độ thấp hoặc CAN chịu lỗi, sử dụng mạng tuyến tính, mạng sao hoặc mạng nhiều sao kết nối với mạng tuyến tính và được kết thúc tại mỗi nút mạng bằng một phần nhỏ của điện trở đầu cuối tổng thể. Điện trở đầu cuối tổng thể có giá trị lớn hơn hoặc gần bằng 100 Ω.

Hình 4.8. Minh họa mạng CAN tốc độ thấp ISO 11898-3

Tín hiệu CAN tốc độ thấp hoạt động tương tự như CAN tốc độ cao, nhưng có điện áp lớn hơn. Trạng thái trội (0) được truyền bằng cách điều khiển CANH về phía điện áp nguồn của thiết bị (5V hoặc 3,3V) và CANL về 0V, trong khi các điện trở đầu cuối sẽ làm giảm điện áp ở trạng thái lặn trong mạng với CANH về 0V và CANL về 5V. Điều này cho phép thiết bị nhận đơn giản hơn khi chỉ việc xem xét tín hiệu của CANH − CANL.

Hình 4.9. Tín hiệu CAN tốc độ thấp ISO 11898-3

4.4. Các loại khung truyền của giao thức CAN

Có bốn loại khung cơ bản trong tin nhắn (Frame) truyền trên CAN Bus là: - Khung dữ liệu (Data Frame): chứa dữ liệu từ một nút để truyền.

- Khung lỗi (Error Frame): khung được truyền bởi bất kỳ nút nào phát hiện lỗi. - Khung quá tải (Overload Frame): tạo độ trễ giữa các khung truyền.

4.4.1. Khung dữ liệu (Data Frame)

Khung dữ liệu là khung duy nhất để truyền dữ liệu. Mạng CAN hỗ trợ hai đinh dạng khung khác nhau: Định dạng khung tiêu chuẩn - Standard Frame Format (được sử dụng trong cả CAN 2.0A và 2.0B) và Định dạng khung mở rộng - Extended Frame Format (chỉ sử dụng trong CAN 2.0B). Sự khác biệt quan trọng của hai dạng khung là phần định danh - Identifier. Phần định danh của khung tiêu chuẩn có 11 bit và khung mở rộng là 29 bit.

Hình 4.10. Định dạng khung tiêu chuẩn

Hình 4.11. Định dạng của khung mở rộng

Khung dữ liệu của CAN 2.0A và CAN 2.0B có trình tự truyền tin nhắn tương tự nhau. Cấu trúc khung dữ liệu gồm các vùng: Vùng khởi đầu (Start of frame - SOF), Vùng phân xử (Arbitration field), Vùng điều khiển (Control field), Vùng dữ liệu (Data field), Vùng kiểm tra (CRC field), Vùng báo nhận (ACK field), Vùng kết thúc khung (End of

4.4.1.1. Vùng khởi đầu (Start Of Frame)

Khi cổng CAN thể hiện trạng thái Lặn - Recessive thì hệ thống CAN ở chế độ chờ. Khi ở trạng thái Trội - Dominant thì hệ thống bắt đầu quá trình truyền tin, nhồi bit (bit

stuffing) và đồng bộ hóa tất cả các nút. CAN 2.0A và CAN 2.0B có vùng khởi đầu giống nhau.

4.4.1.2. Vùng phân xử (Arbitration Field)

Định dạng vùng phân xử là khác nhau đối với dạng khung chuẩn và dạng khung mở rộng.

Đối với khung tiêu chuẩn, vùng phân xử gồm có 12 bit: • 11 bit Định danh chuẩn.

• 1 bit Yêu cầu truyền từ xa (RTR - Remote Transmission Request). Đối với khung mở rộng, vùng phân xử gồm có 32 bit:

• 11 bit Định danh chuẩn.

• 1 bit Yêu cầu thay thế từ xa (SRR - Substitute Remote Request). • 1 bit Mở rộng mã định danh (IDE – Identifier Extension Bit). • 18 bit Định danh mở rộng.

• 1 bit Yêu cầu truyền từ xa (RTR - Remote Transmission Request).

Bit RTR (Remote Transmission Request) là bit dùng để phân biệt Data Frame và Remove Frame. Bit này luôn bằng 0 (bit Dominant) đối với Data Frame và bằng 1 (bit

Recessive) đối với Remove Frame, luôn ngay sau ID của khung.

Bit SRR (Substitute Remote Request) chỉ có ở Khung mở rộng. Đây là bit

Recessive (1). So sánh với Khung chuẩn, vị trí của bit này trùng với vị trí của bit RTR

nên có tên gọi là bit thay thế (Subsitute) cho bit RTR ở khung chuẩn. Giả sử có hai Node cùng truyền, một Node truyền khung dữ liệu chuẩn, một Node truyền khung dữ liệu mở rộng có ID giống nhau thì Node truyền khung chuẩn sẽ thắng phân xử vì đến vị trí sau Base ID, ở Khung chuẩn là bit RTR = 0, còn Khung mở rộng là bit SRR = 1. Như vậy, khung chuẩn chiếm ưu thế hơn so với khung mở rộng khi có Base ID như nhau.

Bit IDE (IDentifier Extension) là bit phân biệt giữa loại Base Frame và Extended Frame. Bit IDE = 0 (Dominant) thì là Base Frame, IDE = 1 (Recessive) thì là Extended

Frame. Bit này thuộc: Vùng phân xử với Extended Frame và Vùng điều khiển với Base Frame.

Hình 4.12. Các phân lớp bit của vùng phân xử 4.4.1.3. Vùng điều khiển (Arbitration Field)

Vùng điều khiển có 6 bit, có cấu trúc khác nhau giữa Base Frame (CAN 2.0A) và

Extended Frame (CAN 2.0B). Base Frame gồm IDE, r0 (Reserved Bit) và DLC . Extended Frame gồm r1, r0 và DLC.

Hình 4.13. Giá trị của các bit DLC

Bit r1 và r0 là hai bit dự trữ. Tuy hai bit này phải được truyền là bit Recessive (1)

nhưng bộ nhận không quan tâm đến giá trị 2 bit này. Bộ nhận không coi đó là lỗi mà bỏ qua và nhận thông điệp bình thường.

Mã độ dài dữ liệu DLC (Data Length Code) có độ dài 4 bit quy định số byte Data Field của Data Frame. Chỉ được mang giá trị từ 0 đến 8 tương ứng Data Field có từ 0

4.4.1.4. Vùng dữ liệu (Data Field)

Vùng dữ liệu chứa các dữ liệu chính của tin nhắn (0-8 byte) với độ dài dữ liệu được thể hiện ở vùng DLC. Một khung dữ liệu có thể được dùng để đồng bộ hóa các dữ liệu riêng lẻ, bằng một tin nhắn riêng biệt, ví dụ: nhiệt độ, tốc độ động cơ,…

Hình 4.14. Độ dài tối thiểu và tối đa của vùng dữ liệu 4.4.1.5. Vùng kiểm tra (CRC – Cyclic Redundanct Check)

Vùng kiểm tra gồm 16 bit và được chia làm hai phần là chuỗi CRC (CRC

Sequence) và phần phân cách CRC (CRC Delimiter) để phân cách vùng CRC và vùng

ACK. CRC Sequence gồm 15bit CRC tuần tự. Mọi tính toán cho CRC Sequence là phép chia đa thức (hay chia bằng các bit nhi phân) và đều dùng Modulo-2 (phép toán tìm số dư của phép chia cho 2).

Hình 4.15. Các phần của vùng CRC

Mã kiểm tra CRC phù hợp nhất cho các khung mà chuỗi bit có chiều dài dưới 127

bit, mã này thích hợp cho việc phát hiện các trường hợp sai nhóm (Burst Error). Ở đây, tổng bit từ vùng SOF đến vùng dữ liệu tối đa là 83 bit (Base Frame) và 103 bit (Extended

Frame). Bộ nhận cũng sẽ tính toán CRC như bộ truyền khi đã nhận dữ liệu và so sánh kết

quả đó với CRC Sequence mà nó đã nhận được, nếu khác nhau tức là đã có lỗi, nếu giống nhau tức là đã nhận đúng từ vùng SOF đến vùng dữ liệu.

CRC Delimiter theo ngay sau CRC Sequence, nó là một bit Recessive làm nhiệm

vụ phân cách vùng CRC với vùng ACK.

4.4.1.6. Vùng báo nhận (ACK – Acknowledge)

Vùng báo nhận có độ dài 2 bit và bao gồm hai phần là khe ACK (ACK Slot) và phần phân cách ACK (ACK delimiter).

Hình 4.16. Các phần của vùng ACK

ACK slot có độ dài 1 bit, một Node truyền dữ liệu sẽ thiết lập bit này là Recessive.

Một phần của tài liệu Nghiên cứu và thử nghiệm máy chẩn đoán cơ bản (Trang 34)

Tải bản đầy đủ (PDF)

(74 trang)