Là bộ chuyển đổi tín hiệu giữa bộ điều khiển CAN và đường truyền vật lý, để giao tiếp với bus CAN và lấy dữ liệu từ nó.
Cách thức hoạt động là dây CAN_H và CAN_L được kết nối với các đầu vào của bộ so bên trong của chip. Các bộ so này đo các đầu vào và có thể cho chúng ta đầu ra điện áp khác nhau của 2 tín hiệu. Nếu đầu ra điện áp là 0V, thì được cho là trạng thái trội. Nếu điện áp lớn hơn 1V, thì gọi là trạng thái lặn.
Nhiều hệ thống con có thể kết nối với mạng CAN và mỗi hệ thống có thể giao tiếp với vi điều khiển hoặc chip CAN qua kết nối, mặc dù không phải cùng một lúc. Điều này cho phép vi điều khiển phân tích dữ liệu từ tất cả các đơn vị này và phản hồi phù hợp với dữ liệu và hệ thống con nào được ưu tiên. Đây là một hệ thống liên lạc dựa trên thông báo giữa vi điều khiển và tất cả các hệ thống con trên bus CAN.
Bảng 3. 1 Các dòng truyền nhận phổ biến
MCP2551 SN65HVD230(1,2) TJA1050
Tương thích với tiêu chuẩn ISO-11898. Hoạt động với tốc độ lên đến 1Mbit/s. Điện áp hoạt động từ 4.5 đến 5.5V. Lên đến 120 nút có thể kết nối vào mạng. Thích hợp cho các giao diện xe điện áp 12V hoặc 24V.
Khả năng chống nhiễu cao.
Tương thích với tiêu chuẩn ISO-11898.
Tốc độ cao lên đến 1Mbit/s.
Tương thích với thiết bị 3.3V và 5V. Ít nhất 110 nút được kết nối vào mạng. Phát xạ điện từ thấp. 1 nút không cấp nguồn không làm ảnh hướng đến các tuyến bus. Cách nhiệt tốt.
Tương thích với tiêu chuẩn ISO-11898-2.
Thiết kế với tốc độ dữ liệu lên đến 1Mbit/s.
Hoạt động với điện áp chỉ 3.3V.
Cho phép 120 nút kết nối đến mạng.
Cách nhiệt.
Thiết kế an toàn khi hở mạch xảy ra.
74
3.1. 4. Tìm hiểu về vi điều khiển CAN MCP2515 và Module MCP2515
Vi điều khiển MCP2515 trong bộ điều khiển CAN 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,..Hổ trợ CPU quản lí tin nhắn, tương thích với các đặc điểm kỹ thuật của CAN 2.0B.
Hình 3. 4 Module MCP2515 CAN
Module CAN dùng chip CAN Controller MCP2515 và bộ truyền nhận CAN TJA1050 là module mở rộng ngoại vi CAN.
Module còn tích hợp các Jump J1 J2, trong đó:
-J1 là jump chọn chế độ tốc độ giao tiếp, nếu Jump 1 được nối thì chip TJA1050 cho phép giao tiếp trên mạng CAN- B S với tốc độ cao nhất có thể, lên tới 1M. Nếu Jump 1 không được kết nối thì TJA1040 giao tiếp với B S CAN tốc độ thấp, < 10 kbps, ở chế độ này cho phép khoảng cách truyền xa hơn và nối được nhiều node mạng CAN trên bus vật lý hơn.
-J2 là jump nối điện trở liên kết. Mỗi B S CAN có 2 điện trở 120 Ohm ở hai đầu bus. Nếu J2 nối thì module sẽ là nốt mạng đầu hoặc node mạng cuối. J2 không nối khi sử dụng ở module giao tiếp với mạng CAN B S đã có sẵn điện trở ở 2 đầu. Thiết kế CMOS tiết
kiệm năng lượng.
Chống ngắn mạch đến ắc quy và GND.
75 Thông số kỹ thuật:
-Chuẩn giao tiếp SPI, có chân ngắt khi nhận được gói tin hợp lệ.
-Điện áp hoạt động: 4.75 5.25V. Tương thích đầy đủ với chuẩn ISO 11898 cho hệ thống hoạt động ổn định, chính xác.
3.1.5. ECU của xe
3.1.5.1. Tổng quan về ECU
Hình 3. 5 ECU trên xe
ECU là một thuật ngữ được viết tắt từ Electronic Control nit , nghĩa là Bộ phận điều khiển điện tử . Nhưng đôi khi EC còn được hiểu là Engine Control nit , tức chỉ nghĩa hẹp hơn so với nghĩa ban đầu nhưng trong khuôn khổ bài này thì ta sẽ hiểu theo nghĩa rộng, tức là Electronic Control nit .
EC được hiểu một cách đơn giản là bộ não điều khiển của một hệ thống nào đó trên ô tô. Và một chiếc ô tô hiện đại ngày nay có khoảng vài chục cái EC như vậy để điều khiển vận hành các hệ thống điện – điện tử trên xe.
Về phương diện nguyên lý hoạt động, ECU sẽ nhận các thông tin dữ liệu từ các input (các cảm biến, công tắc, tín hiệu điều khiển,..) để đưa vào bộ vi xử lý theo một chương trình đã được lập trình sẵn để cho ra tín hiệu output đến các bộ phận chấp hành.
Nhìn chung ECU có cấu tạo cơ bản gồm bộ vi xử lý, bộ nhớ và đường truyền dữ liệu vào/ra.
3.1.5.2. Kiến trúc ECU
76
Hình 3.6 Cấu tạo hệ thống ECU
Được cấu tạo từ 3 bộ phận chính đó là: Bộ nhớ trong của ECU, bộ vi xử lý và đường truyền – BUS.
3.1.5.2.2. Bộ nhớ trong ECU
Bao gồm 4 chi tiết đảm nhiệm 4 chức năng riêng biệt bao gồm: RAM, ROM, PROM, KAM.
RAM là viết tắt của cụm từ Random Access Memory, có nhiệm vụ truy xuất ngẫu nhiên và dùng để lưu trữ thông tin mới ghi trong bộ nhớ và được xác định bởi bộ vi xử lý. RAM sẽ đọc và ghi lại các số liệu theo từng địa chỉ bất kỳ.
ROM là viết tắt của cụm từ Read Only Memory, có nhiệm vụ lưu trữ các thông tin thường trực. ROM chỉ sử dụng để đọc những thông tin được lập trình có sẵn, mà không thể ghi vào được. Bởi vậy, ROM là nơi cung cấp những thông tin cho bộ vi xử lý.
KAM là viết tắt của cụm từ Keep Alive Memory, dùng để lưu trữ những thông tin mới tạm thời để cung cấp các thông tin này đến cho bộ vi xử lý. KAM vẫn sẽ duy trì bộ nhớ cho dù các chi tiết không hoạt động hoặc tắt công tắc máy. Tuy nhiên, nếu bị mất nguồn cung cấp từ acquy đến máy tính thì bộ nhớ KAM sẽ bị mất dữ liệu.
PROM là viết tắt của cụm từ Programmable Read Only Memory. PROM có cấu trúc cơ bản giống như ROM nhưng cho phép nạp dữ liệu nơi sử dụng chứ không phải nơi sản xuất giống ROM. Ở những đòi hỏi khác nhau, PROM sẽ cho phép sửa đổi chương trình điều khiển.
3.1.5.2.3. Bộ vi xử lý
Là bộ phận quan trọng nhất trong ECU, khi tiếp nhận các tín hiệu của cảm biến thông qua các bộ nhớ trong của ECU, những tín hiệu này ngay lập tức được gửi đến Bộ vi xử
77 lý. Lúc này, bộ vi xử lý sẽ tính toán và đưa ra mệnh lệnh cho bộ phận chấp hành để điều chỉnh thích hợp.
3.1.5.2.4. Đường truyền Bus trên ECU
Được dùng để truyền các lệnh và dữ liệu trong EC , để thông tin có thể truyền từ bộ vi xử lý đến các cơ cấu chấp hành chính xác và nhanh chóng thì đường truyền đóng vai trò lớn.
78
3.1.5.2.5. Nguyên lý hoạt động của ECU
Hình 3. 7 Sơ đề thể hiện nguyên lý làm việc chung ECU
Nhờ vào sự thay đổi tín hiệu từ các cảm biến trên các cơ cấu chấp hành, ECU sẽ xác định thời điểm để hiệu chỉnh các chế độ và chức năng một cách hợp lý.
Ví dụ: trên hệ thống ECU của động cơ, nhờ vào cảm biến tốc độ và vị trí của piston giúp EC xác định được thời điểm đánh lửa và thời điểm phun xăng tối ưu. Những cảm biến như vị trí bướm ga dùng để xác định lưu lượng không khí nạp, nhằm tính toán lượng phun nhiên liệu thích hợp cho từng chế độ tải.
Với các dữ liệu tốc độ động cơ, tải hay nhiệt độ động cơ… EC sẽ xử lý và tính toán để đưa ra góc đánh lửa sớm chính xác nhất theo từng chế độ.
Các hệ thống ECU trên ô tô can thiệp sâu vào các hệ thống an toàn trên ô tô như: hệ thống cân bằng ESP, hỗ trợ phanh khẩn cấp BA, hệ thống phân bổ lực phanh EBD… và rất nhiều hệ thống điều khiển thông minh khác.
Việc cảm biến nhận nhiệm vụ liên tục ghi lại và truyền tín hiệu để gửi về ECU, thì nhiệm vụ của ECU là so sánh dữ liệu mới với những chương trình đã tính toán trước.
79 Người lái có khuynh hướng phản xạ đột ngột như đánh lái gấp, lực phanh tăng nhanh, hiện tượng trượt bánh khi phanh…Khi gặp phải sự cố nguy hiểm. Lúc này, ngay lập tức ECU sẽ nhận tín hiệu và đưa ra hiệu chỉnh buộc xe phải hoạt động theo chương trình đã được lập trình sẵn như: Điều chỉnh góc xoay, kiểm soát tốc độ từng bánh xe, lực phanh mỗi bánh …
3.1.6. OBD-II trên CAN
OBD là tên viết tắt của On-Board Diagnostic , là một chuẩn giao tiếp nhằm hỗ trợ chẩn đoán trên ô tô. OBD định nghĩa các dạng lỗi trong quá trình hoạt động của ô tô dưới dạng các DTC cùng với các dịch vụ đi kèm để thực hiện quá trình chẩn đoán trên ô tô.
Các dịch vụ của OBD có ưu điểm là rất dễ dàng truy cập, thậm chí là từ các thiết bị từ bên thứ ba Tính phổ biến cao, người dùng có thể dễ dàng chẩn đoán được tình trạng của xe dựa trên các thông số và DTC mà hệ thống OBD trả về.
Trong suốt quá trình phát triển, OBD đã phát hành khá nhiều phiên bản, trong đó OBD-II là bản OBD phổ biến nhất đến tận ngày nay.
OBD-II có thể được sử dụng như là một công cụ chẩn đoán thời gian thực.
OBD-II hỗ trợ nhiều tính năng với nhiều thông số khác nhau thông qua các thông số (OBD-II PID).
OBD-II hỗ trợ 5 chuẩn giao thức khác nhau: giao thức CAN, KWP, ISO 9141, J- 1850 PWM và J-1850 VPW.
Trước khi có sự ra đời của OBD, các hãng ô tô sử dụng MIL để hiển thị các mã lỗi người dùng phải đếm nhịp chớp tắt của đèn MIL để xác định mã, sau đó tra thông tin trong tài liệu của hãng ô tô đó.
Trong khi đó, nếu có thiết bị OBD-II, người dùng chỉ cần cắm thiết bị OBD-II vào cổng OBD trên xe, kết quả chẩn đoán trả về sẽ chứa toàn bộ các thông tin liên quan, bao gồm cả các DTC và dữ liệu hiên thời để theo dõi sự hoạt động của xe.
OBD có lịch sử phát triển từ năm 1991, bắt đầu từ hiệp hội bảo vệ môi trường California.
Vào năm 1994, các hãng xe ô tô ở Mĩ cam kết sẽ trang bị OBD-II trên toàn bộ danh mục sản phẩm của họ bắt đầu từ năm 1996 trở về sau. OBD-II cũng được chính thức giao cho hiệp hội các kỹ sư quản lý Chuẩn SAE J 1962 định nghĩa các chuẩn về DTC cùng với các cơ chế liên quan, bao gồm cả bộ kết nối OBD-II.
80 Ngày nay, OBD-II đã trở thành một tiêu chuẩn toàn cầu, vượt ra khỏi biên giới nước Mĩ, bắt buộc phải được trang bị trên tất cả các xe được bán ra (trừ một số nước đang phát triển, trong đó có Việt Nam).
Mối liên hệ giữa CAN và OBD II
Hình 3. 8 Minh họa mối liên hệ giữa CAN và OBD II
OBD-II thực chất là một giao thức có lớp cao hơn so với CAN (cũng như 4 giao thức còn lại mà OBD-II hoạt động) Là một dạng lớp giao thức cao hơn HLP. Điều này có nghĩa rằng khi sử dụng OBD-II trên CAN, ta hoàn toàn có được toàn bộ các cơ chế đã được định nghĩa bởi CAN.
ISO 15765 là một tiêu chuẩn được phát hành vào năm 2008 nhằm qui định các thiết lập về lớp vật lý nhằm hỗ trợ cho OBD-II mà sau này đã được phổ biến rộng rãi.
81 OBD-II trên CAN theo lý thuyết sẽ hoạt động như một yếu tố kí sinh theo khung CAN Khi ta kết nối một thiết bị đọc OBD-II vào mạng CAN và các dữ liệu lấy được giao tiếp, ta chỉ thấy dữ liệu thô CAN chứ hoàn toàn không phải dữ liệu OBD-II cho đến khi ta gửi một đúng yêu cầu để bắt đầu đọc OBD-II.
Một OBD-II trên tin nhắn CAN sẽ bao gồm 1 ID (11 bit – ID lấy từ khung CAN) và 8 byte dữ liệu (64 bit).
Các ID có dạng 7xx cho phần chẩn đoán.
OBD-II Data (8 byte) được chia thành các vùng khác nhau: [chế độ] [PID] [dữ liệu]. Sẽ có sự phân biệt giữa ID yều cầu và ID phản hồi.
Hình 3. 10 Khung chứa tin nhắn nhận được qua OBD II
Hình 3. 11 Phân tích ý nghĩa dữ liệu
OBD-II Chế độ yêu cầu _ [Hex]: [khai báo] -01: Hiển thị dữ liệu hiện thời
-02: Hiển thị dữ liệu Freezed-Frame -03: Hiển thị các DTC đã lưu trữ
-04: Xóa các DTC và các giá trị lưu trữ -05: Kiểm tra các kết quả không dùng CAN -06: Kiểm tra kết quả/ Quản lý hệ thống
82 -07: Pending DTC đang chạy
-08: Điểu khiển sự hoạt động của các bộ phận trên ON – BOARD -09: Thông tin xe
-0A: Permanent DTC
OBD-II Chế độ phản hội = [chế độ yêu cầu] + (hex) 40 Mang ý nghĩa xác nhận Các dữ liệu lấy từ OBD luôn ở định dạng Hex
Như vậy, OBD-II là một dạng HLP có nhiệm vụ gửi/nhận dữ liệu dựa trên cấu trúc của định dạng trao đổi thông tin mà nó hỗ trợ (được đề cập đến trong phần này là giao thức CAN).
Nhìn chung cấu trúc cũng như các chế độ của OBD-II là hoàn toàn giống nhau đối với tất cả các giao thức mà nó hỗ trợ. Nhưng ta cần chú ý đến ID khi gửi dữ liệu vì nó phụ thuộc vào giao thức mang dữ liệu OBD-II.
Cần lưu ý rằng vùng hoạt động của OBD-II chỉ liên hệ đến EC động cơ cùng với các thông số của nó mà thôi.
3.2. Giới thiệu về phần mềm
3.2.1. Giới thiệu Keil c uVersion 5 cho ARM
Hình 3. 12 Giao diện KeilC V5
Keil C uVision là phần mềm hỗ trợ cho người dùng trong việc lập trình vi điều khiển các dòng khác nhau, Keil C uVision 5 giúp bạn soạn thảo và biên dịch chương trình C, ASM thành ngôn ngữ máy tính để nạp vào vi điều khiển tạo sự tương tác giữa vi điều khiển và người lập trình. Phần mềm Keil C uVision 5 cho kiến trúc vi điều khiển hỗ trợ mọi cấp độ của nhà phát triển phần mềm từ kỹ sư ứng dụng chuyên nghiệp đến sinh viên
83 chỉ học về phát triển phần mềm nhúng. Tiện ích được thiết kế để giải quyết các vấn đề phực tạp mà các nhà phát triển phần mềm nhúng phải đối mặt
Keil C uVision mô phỏng chính xác các thiết bị ngoại vi trên chip của thiết bị. Nó giúp người dùng hiểu cấu hình phần cứng và tránh lãng phí thời gian cho các vấn đề thiết lập. Ngoài ra, với mô phỏng, bạn có thể viết và kiểm tra các ứng dụng phần cứng đã có sẵn.
Keil C uVision có thể được thêm bất cứ lúc nào vào MDK-Core để hỗ trợ thiết bị mới và cập nhật phần mềm trung gian độc lập với chuỗi công cụ. Chúng hỗ trợ nhiều thiết bị, thư viện, phần mềm trung gian, mẫu mã và các dự án cụ thể.
3.2.2. Thiết kế CATIA V5 R26
Thuật ngữ CATIA được viết tắc của cụm từ Computer Aided Three Dimensional Interactive Application , nghĩa là xử lý tương tác trong không gian ba chiều có sự hỗ trợ của máy tính, là một bộ phần mềm thương mại phức hợp CAD/CAM/CAE được Dassault Systemes (một công ty của Pháp) phát triển và IBM phân phối trên toàn thế giới. Catia V5 phổ biến nhất được viết bằng ngôn ngữ lập trình C++. Catia là viên đá nền tảng đầu tiên của bộ phần mềm quản lý toàn bộ chu trình sản phẩm của Dassault Systems (PLM).
84 Phần mềm thiết kế CATIA cho phép các kĩ sư thiết kế dự trữ không gian, tối ưu hóa bố cục 3D chung; phân tích và phân bổ, của các nhà máy và thiết bị hoặc dụng cụ đặt trong đó. CATIA tạo điều kiện cho kỹ thuật hợp tác trên nhiều lĩnh vực xung quanh nền tảng 3DEXPERIENCE của mình, bao gồm thiết kế bề mặt và hình dạng, thiết kế hệ thống điện tử & chất lỏng, cơ khí và kỹ thuật hệ thống.