Đồ án Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ

Tài liệu Đồ án Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ: MỤC LỤC LỜI NÓI ĐẦU Hệ thống phun xăng điện tử ngày càng được sử dụng rộng rãi nhằm mục đích tiết kiệm nhiên liệu và giảm ô nhiễm môi trường. Trong quá trình học và thực tập em được tìm hiểu về động cơ phun xăng điện tử, biết được nguyên lý phát hiện lỗi động cơ. Trên một số xe, việc ECU phát hiện lỗi được thông báo cho người sử dụng thông qua đèn báo. Việc này gây bất tiện cho người sử dụng và người kỹ thuật viên khi muốn biết lỗi động cơ phải tra bảng mã lỗi của từng loại động cơ. Thiết kế một thiết bị hiển thị lỗi của động cơ thay cho việc đọc lỗi bằng đèn báo, hoặc thay thế cho thiết bị sẵn có trên thị trường nhưng giá quá cao, mà vẫn chính xác. Em chọn đề tài: ‘‘Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ” Qua đây em xin chân thành cám ơn đến thầy Phạm Quốc Thái và các thầy phụ trách phòng thí nghiệm AVL đã tạo điều kiện cho em được tiếp xúc các mô hình thực tế, tham khảo nhiều tài liệu quí trong thời gian thực tập và làm đồ án tốt nghiệp. Mon...

doc84 trang | Chia sẻ: hunglv | Lượt xem: 1337 | Lượt tải: 1download
Bạn đang xem trước 20 trang mẫu tài liệu Đồ án Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
MỤC LỤC LỜI NÓI ĐẦU Hệ thống phun xăng điện tử ngày càng được sử dụng rộng rãi nhằm mục đích tiết kiệm nhiên liệu và giảm ô nhiễm môi trường. Trong quá trình học và thực tập em được tìm hiểu về động cơ phun xăng điện tử, biết được nguyên lý phát hiện lỗi động cơ. Trên một số xe, việc ECU phát hiện lỗi được thông báo cho người sử dụng thông qua đèn báo. Việc này gây bất tiện cho người sử dụng và người kỹ thuật viên khi muốn biết lỗi động cơ phải tra bảng mã lỗi của từng loại động cơ. Thiết kế một thiết bị hiển thị lỗi của động cơ thay cho việc đọc lỗi bằng đèn báo, hoặc thay thế cho thiết bị sẵn có trên thị trường nhưng giá quá cao, mà vẫn chính xác. Em chọn đề tài: ‘‘Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ” Qua đây em xin chân thành cám ơn đến thầy Phạm Quốc Thái và các thầy phụ trách phòng thí nghiệm AVL đã tạo điều kiện cho em được tiếp xúc các mô hình thực tế, tham khảo nhiều tài liệu quí trong thời gian thực tập và làm đồ án tốt nghiệp. Mong muốn thiết kế một thiết bị đơn giản với nhiều chức năng nhưng do thời gian làm đề tài khá ngắn, nội dung đề tài có nhiều vấn đề phức tạp, sự thiếu thốn các thiết bị đo, thiết bị kiểm tra, ngoài ra hạn chế trong việc thiết kế mạch điện tử cũng tạo ra không ít khó khăn nên đề tài mới chỉ được kiểm tra trên động cơ TYOTA 4A-FE. Trong quá trình thực hiện không thể tránh khỏi những sai sót mong các thầy thông cảm và chỉ dẫn tạo điều kiện để em được hoàn thiện đề tài. Em xin chân thành cảm ơn! Đà nẵng, ngày 01 tháng 06 năm 2007 Sinh viên thực hiện Lê Anh Nhật 1. MỤC ĐÍCH ĐỀ TÀI 1.1. Đặt vấn đề Từ khi chiếc ô tô đầu tiên trên thế giới ra đời cho đến nay, ô tô đã trở thành một phương tiện vận chuyển cần thiết khó có gì thay thế được trong cuộc sống. Hiện nay, so với các phương tiện giao thông khác ô tô có vị trí vô cùng quan trọng và tỷ lệ hành khách tham gia giao thông đường bộ cao hơn so với các loại phương tiện giao thông khác. Cùng với xu hướng phát triển về khoa học kỹ thuật công nghệ thì nền công nghiệp ô tô cũng phát triển không ngừng. Từ những năm 80 của thế kỷ XX, công nghệ điện tử đã được ứng dụng trên ô tô dần dần thay thế các cơ cấu điều khiển bằng cơ khí. Qua nhiều thập niên điện tử trở thành một trong những nhân tố quan trọng không thể thiếu được trên ô tô. Nó không những giúp động cơ ô tô điều khiển chính xác hơn và còn làm giảm ô nhiểm môi trường, tiết kiệm nhiên liệu, tăng công suất động cơ. Song song với việc hiện đại hoá chiếc ô tô ngày càng hoàn hảo hơn thì vấn đề bảo trì, chẩn đoán, sửa chữa ngày càng phức tạp hơn. Với những chiếc ô tô hiện đại hiện nay lượng dữ liệu điều khiển xe ngày càng nhiều. Vì vậy chẩn đoán sửa chữa theo phương pháp thủ công đã trở nên hết sức khó khăn. Do đó, để giúp cho người kỹ thuật viên thực hiện tốt công việc chẩn đoán và sửa chữa các ô tô đời mới đã trang bị hệ thống tự chuẩn đoán. Cùng với xu thế của thế giới, ô tô ở Việt Nam đã ngày càng được sử dụng nhiều hơn. Do đó điều kiện về kinh tế người sử dụng ở Việt Nam thường sử dụng những xe cũ nhập từ nước ngoài về, mặc dù trên các xe có trang bị hệ thống tự chẩn đoán nhưng ở bộ phận hiển thị lỗi lại sử dụng đèn tín hiệu để báo lỗi. Với cách báo lỗi như vậy gây khó khăn cho người kỹ thuật viên trong việc kiểm tra lỗi, và có khi là không chính xác. Để đơn giản hơn cho người kỹ thuật viên trong việc đọc lỗi động cơ ta sử dụng thiết bị hiển thị lỗi động cơ. Hiện nay đã có thiết bị này nhưng giá cả khá đắt. Trong khi đó chỉ với những thiết bị sẵn có trên thị trường có thể tạo ra thiết bị có tính năng tương tự nhưng với giá cả lại rẻ hơn rất nhiều. 1.2. Mục tiêu và nhiệm vụ Đề tài: “Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiển thị lỗi động cơ “ nhằm chế tạo một thiết bị hiển thị lỗi của động cơ bằng vi điều khiển đơn giản với giá thành thấp nhưng đảm bảo độ tin cậy. Các bước thực hiện: - Tìm hiểu cấu trúc vi điều khiển - Tìm hiểu ngôn ngữ lập trình - Khảo sát hệ thống điều khiển động cơ - Tìm hiểu về hệ thống tự chẩn đoán - Thiết kế phần cứng bộ giao tiếp - Lập trình vi điều khiển 2. CƠ SỞ LÝ THUYẾT VỀ LINH KIỆN THIẾT KẾ BỘ GIAO TIẾP 2.1. Giới thiệu khái quát về họ vi điều khiển 8051 MCS-51 là một họ IC vi điều khiển do Intel phát triển và sản xuất. Các nhà sản xuất IC khác như Siemens, Advanced Micro Devices,Fujitsu và Phillip được cấp phép làm các nhà cuung cấp thứ hai cho các chip của họ MCS-51. Chip 8051 là bộ vi điều khiển đầu tiên của họ vi điều khiển MCS-51, là một trong những bộ vi điều khiển mạnh và linh hoạt nhất, đã trở thành bộ vi diều khiển hàng đầu trong những năm gần đây Đặc điểm và chức năng hoạt động của các IC họ MSC-51 hoàn toàn tương tự như nhau. Ở đây giới thiệu IC P89V51RD2 là một họ IC vi điều khiển do hãng Philips Semiconductor sản xuất. Các đặc điểm của P89V51RD2 được tóm tắt như sau : Khối xử lý trung tâm 80C51 chuẩn Hoạt động ở điện áp nguồn 5V từ tần số 0 MHz đến 40 MHz 64 KB EPROM bên trong với khả năng lập trình ngay trên hệ thống (ISP). 1024 Byte RAM nội. 4 Port xuất /nhập I/O 8 bit. Giao tiếp nối tiếp SPI và UART Dải đếm khả trình PCA với chức năng PWM, thu giữ và so sánh 3 bộ TIMER/COUNTER 16 bit 8 nguồn ngắt với 4 mức ưu tiên 2 thanh ghi con trỏ dữ liệu DPTR Tương thích mức logic TTL và CMOS 1 bộ WATCHDOG TIMER khả trình. 2.1.1. Cấu trúc vi điều khiển P89V51RD2 Sơ đồ khối Hình 2.1: Sơ đồ khối kiến trúc bên trong P89V51RD2 Đơn vị xử lí trung tâm nhận trực tiếp xung từ bộ dao động, ngoài ra còn có khả năng đưa một tín hiệu giữ nhịp từ bên ngoài. Chương trình đang chạy có thể cho dừng lại nhờ một khối điều khiển ngắt ở bên trong. Các nguồn ngắt có thể là: các biến cố ở bên ngoài, sự tràn bộ đếm định thời hoặc cũng có thể là giao diện nối tiếp. Ba bộ định thời 16 bit hoạt động như một bộ đếm. Các cổng (port0, port1, port2, port3), sử dụng vào mục đích điều khiển. Ở cổng 3 có thêm các đường dẫn điều khiển dùng để trao đổi với một bộ nhớ bên ngoài, hoặc để đầu nối giao diện nối tiếp, cũng như các đường ngắt dẫn bên ngoài. Giao diện nối tiếp có chứa một bộ truyền và một bộ nhận không đồng bộ, làm việc độc lập với nhau. Tốc độ truyền qua cổng nối tiếp có thể đặt trong dãy rộng và được ấn định bằng một bộ định thời. Trong vi điều khiển 8951 có hai thành phần quan trọng khác đó là bộ nhớ và các thanh ghi : + Bộ nhớ gồm có bộ nhớ RAM và bộ nhớ ROM dùng để lưu trữ dữ liệu và mã lệnh. + Các thanh ghi sử dụng để lưu trữ thông tin trong quá trình xử lí. Khi CPU làm việc nó làm thay đổi nội dung của các thanh ghi. 2.1.2. Chức năng các chân        Mặc dù các thành viên của họ MSC-51 có nhiều kiểu đóng vỏ khác nhau, chẳng hạn như hai hàng chân DIP (Dual In-Line Pakage) dạng vỏ dẹt vuông QFP (Quad Flat Pakage) và dạng chíp không có chân đỡ LLC (Leadless Chip Carrier) và đều có 40 chân cho các chức năng khác nhau như vào ra I/0, đọc , ghi , địa chỉ, dữ liệu và ngắt. Tuy nhiên, vì hầu hết các nhà phát triển chính dụng chíp đóng vỏ 40 chân với hai hàng chân DIP, nên chúng ta cùng khảo sát Vi điều khiển với 40 chân dạng DIP. Hình 2.2: Sơ đồ chân P89V51RD2 Vi điều khiển 8951 có 32 trong 40 chân có chức năng như là các cổng I/O, trong đó 24 chân được sử dụng với hai mục đích. Nghĩa là ngoài chức năng cổng I/O, mỗi chân có công dụng kép này có thể là một đường điều khiển của Bus địa chỉ hay Bus dữ liệu hoặc là mỗi chân hoạt động mọt cách độc lập để giao tiếp với các thiết đơn bit như là công tắc, LED, transistor… a.Port0: là port có 2 chức năng, ở trên chân từ 32 đến 39 của MC 8951. Trong các thiết kế cỡ nhỏ không dùng bộ nhớ ngoài, P0 được sử dụng như là những cổng I/O. Còn trong các thiết kế lớn có yêu cầu một số lượng đáng kể bộ nhớ ngoài thì P0 trở thành các đường truyền dữ liệu và 8 bit thấp của bus địa chỉ. b. Port1: là một port I/O chuyên dụng, trên các chân 1-8 của MC8951. Chúng được sử dụng với một múc đích duy nhất là giao tiếp với các thiết bị ngoài khi cần thiết. c. Port2: là một cổng có công dụng kép trên các chân 21 – 28 của MC 8951. Ngoài chức năng I/O, các chân này dùng làm 8 bit cao của bus địa chỉ cho những mô hình thiết kế có bộ nhớ chương trình ROM ngoài hoặc bộ nhớ dữ liệu RAM có dung lượng lớn hơn 256 byte. d. Port3: là một cổng có công dụng kép trên các chân 10 – 17 của MC 8951. Ngoài chức năng là cổng I/O, những chân này kiêm luôn nhiều chức năng khác nữa liên quan đến nhiều tính năng đặc biệt của MC 8951, được mô tả trong bảng sau: Bit Tên Chức năng chuyển đổi P3.0 RXT Ngõ vào dữ liệu nối tiếp. P3.1 TXD Ngõ xuất dữ liệu nối tiếp. P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 INT0\ INT1\ T0 T1 WR\ RD\ Ngõ vào ngắt cứng thứ 0. Ngõ vào ngắt cứng thứ 1. Ngõ vào của TIMER/COUNTER thứ 0. Ngõ vào của TIMER/COUNTER thứ 1. Tín hiệu ghi dữ liệu lên bộ nhớ ngoài. Tín hiệu đọc bộ nhớ dữ liệu ngoài. e. PSEN (Program Store Enable): 8951 có 4 tín hiệu điều khiển, PSEN là tín hiệu ra trên chân 29. Nó là tín hiệu điều khiển để cho phép truy xuất bộ nhớ chương trình mở rộng và thường được nối đến chân OE (Output Enable) của một EPROM để cho phép đọc các byte mã lệnh của chương trình. Tín hiệu PSEN ở mức thấp trong suốt phạm vi quá trình của một lệnh. Các mã nhị phân của chương trình được đọc từ EPROM qua bus và được chốt vào thanh ghi lệnh của 8951 để giải mã lệnh. Khi thi hành chương trình trong ROM nội PSEN sẽ ở mức cao. f. ALE (Address Latch Enable ): Tín hiệu ra ALE trên chân 30 tương hợp với các thiết bị làm việc với các xử lý 8585, 8088. 8951 dùng ALE để giải đa hợp bus địa chỉ và dữ liệu, khi port 0 được dùng làm bus địa chỉ/dữ liệu đa hợp: vừa là bus dữ liệu vừa là byte thấp của địa chỉ 16 bit . ALE là tín hiệu để chốt địa chỉ vào một thanh ghi bên ngoài trong nữa đầu của chu kỳ bộ nhớ. Sau đó, các đường Port 0 dùng để xuất hoặc nhập dữ liệu trong nữa sau chu kỳ của chu kỳ bộ nhớ. Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên chip và có thể được dùng là nguồn xung nhịp cho các hệ thống. Nếu xung trên 8951 là 12MHz thì ALE có tần số 2MHz. Chân này cũng được làm ngõ vào cho xung lập trình cho EPROM trong 8951. g. EA (External Access): Tín hiệu vào EA trên chân 31 thường được nối lên mức cao (+5V) hoặc mức thấp (GND). Nếu ở mức cao, 8951 thi hành chương trình từ ROM nội trong khoảng địa chỉ thấp (4K). Nếu ở mức thấp, chương trình chỉ được thi hành từ bộ nhớ mở rộng. Người ta còn dùng chân EA làm chân cấp điện áp 21V khi lập trình cho EPROM trong 8951. h. RST (Reset): Ngõ vào RST trên chân 9 là ngõ reset của 8951. Khi tín hiệu này được đưa lên mức cao (trong ít nhất 2 chu kỳ máy), các thanh ghi trong 8951 được đưa vào những giá trị thích hợp để khởi động hệ thống. i.OSC: 8951 có một bộ dao động trên chip, nó thường được nối với thạch anh giữa hai chân 18 và 19. Tần số thạch anh thông thường là 12MHz. j. POWER: 8951 vận hành với nguồn đơn +5V. Vcc được nối vào chân 40 và Vss (GND) được nối vào chân 20. 2.1.3. Tổ chức bộ nhớ của bộ vi điều khiển 8951 8951 có bộ nhớ theo cấu trúc Harvard: có những vùng bộ nhớ riêng biệt cho chương trình và dữ liệu. Như đã nói ở trên, cả chương trình và dữ liệu có thể ở bên trong 8951, dù vậy chúng có thể được mở rộng bằng các thành phần ngoài lên đến tối đa 64 Kbytes bộ nhớ chương trình và 64 Kbytes bộ nhớ dữ liệu. Bộ nhớ bên trong bao gồm ROM và RAM trên chip. RAM trên chip bao gồm nhiều phần: phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, các bank thanh ghi và các thanh ghi chức năng đặc biệt. RAM bên trong chip 8951 được phân chia như sau: • Bank thanh ghi (00H – 1FH). • RAM địa chỉ hóa từng bit (20H – 2FH). • RAM đa dụng (30H – 7FH). • Các thanh ghi chức năng đặc biệt (80H – FFH). a. RAM đa dụng Mọi địa chỉ trong vùng RAM đa dụng đều có thể được truy xuất tự do dùng cách đánh địa chỉ trực tiếp hoặc gián tiếp. Ví dụ, để đọc nội dung ở địa chỉ 5FH của RAM nội vào thanh ghi tích lũy lệnh sau sẽ được dùng : MOV A, 5FH Lệnh này di chuyển một byte dữ liệu dùng cách đánh địa chỉ trực tiếp để xác định “địa chỉ nguồn” (5FH). Đích nhận dữ liệu được ngầm xác định trong mã lệnh là thanh ghi tích lũy A. RAM bên trong cũng có thể được truy xuất dùng cách đánh địa chỉ gián tiếp qua R0 hay R1. Ví dụ, sau khi thi hành cùng nhiệm vụ như lệnh đơn ở trên : MOV R0, #5FH MOV A, @R0 Lệnh đầu dùng địa chỉ tức thời để di chuyển giá trị 5FH vào thanh ghi R0 và lệnh thứ hai dùng địa gián tiếp để di chuyển dữ liệu “được trỏ bởi R0” vào thanh ghi tích lũy. b. RAM địa chỉ hóa từng bit 8951 chứa 210 bit được địa chỉ hóa, trong đó 128 bit là ở các địa chỉ byte 20H đến 2FH, và phần còn lại trong các thanh ghi chức năng đặc biệt . Ý tưởng truy xuất từng bit riêng rẽ bằng phần mềm là một đặc tính tiện lợi của vi điều khiển nói chung. Các bit có thể được đặt, xóa, AND, OR …với một lệnh đơn. Đa số các vi xử lý khác đòi hỏi một chuổi lệnh để đạt được hiệu quả tương tự. Hơn nữa, các port I/0 cũng được địa chỉ từng bit làm đợn giản phần mềm xuất nhập từng bit. Có 128 bit được địa chỉ hóa đa dụng ở các byte 20H đến 2FH. Các địa chỉ này được truy xuất như các byte hoặc các bit phụ thuộc vào lệnh được dùng. Ví dụ, để đặt bit 67H, ta dùng lệnh sau : SETB 67H Ở đây địa chỉ bit 67H là bit có trọng số lớn nhất (MSB) ở địa chỉ byte 2CH, lệnh trên sẽ không tác động đến các bit khác của byte này. c. Các bank thanh ghi MCU 8951 cung cấp 32 byte thấp nhất của bộ nhớ dữ liệu nội là dành cho các bank thanh ghi, 8 thanh ghi (RO đến R7) ở vị trí cuối cùng của RAM và theo mặc định (sau khi Reset hệ thống) các thanh ghi này ở các địa chỉ 00H-07H, tiếp đó là bank 1, bank 2 và bank 3. Lệnh sau đây sẽ đọc nội dung ở địa chỉ 05H vào thanh ghi tích lũy: MOV A, R5 Đây là lệnh một byte dùng địa chỉ thanh ghi. Tất nhiên, thao tác tương tự có thể được thi hành bằng lệnh 2 byte dùng địa chỉ trực tiếp nằm trong byte thứ hai: MOV A, 05H Các lệnh dùng các thanh ghi R0 đến R7 thì sẽ ngắn hơn và nhanh hơn các lệnh tương ứng dùng địa chỉ trực tiếp. Các giá trị dữ liệu được dùng thường xuyên nên dùng một trong các thanh ghi này. Bank thanh ghi tích cực có thể chuyển đổi bằng cách thay đổi các bit chọn bank thanh ghi trong từ trạng thái chương trình (PSW). Giả sử rằng bank thanh ghi 3 được tích cực, lệnh sau sẽ ghi nội dung của thanh ghi tích lũy vào địa chỉ 18H: MOV R0, A Ý tưởng dùng các bank thanh ghi cho phép chuyển hướng chương trình nhanh và hiệu quả, từng phần riêng rẽ của phần mềm sẽ có một bộ thanh ghi riêng không phụ thuộc vào các phần khác. 2.1.4. Các thanh ghi chức năng đặc biệt ( SFR ) Các thanh ghi nội của 8951 được truy xuất ngầm định bởi tập lệnh. Ví dụ lệnh “INC A” sẽ tăng nội dung của thanh ghi tích lũy A lên 1. Tác động này được ngầm định trong mã lệnh. Các thanh ghi trong 8951 được định dạng như một phần của RAM trên chip. Vì vậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi trực tiếp, sẽ không có lợi khi đặt chúng vào trong RAM trên chip). Đó là lý do để 8951 có nhiều thanh ghi. Cũng như R0 đến R7, có 21 thanh ghi chức năng đặc biệt (SFR: Special Function Register) ở vùng trên của RAM nội, từ địa chỉ 80H đến FFH. Chú ý rằng hầu hết 128 địa chỉ từ 80H đến FFH không được định nghĩa, chỉ có 21 địa chỉ SFR là được định nghĩa. Ngoại trừ thanh ghi tích lũy (A) có thể được truy xuất ngầm như đã nói, đa số các SFR được truy xuất dùng địa chỉ trực tiếp. Chú ý rằng một vài SFR có thể được địa chỉ hóa bit hoặc byte. Trongi thiết kế phải thận trọng khi truy xuất bit và byte. Ví dụ lệnh sau: SETB 0E0H Sẽ set bit 0 trong thanh ghi tích lũy, các bit khác không thay đổi. Ta thấy rằng E0H đồng thời là địa chỉ byte của thanh ghi tích lũy và là địa chỉ bit có trọng số nhỏ nhất trong thanh ghi tích lũy. Vì lệnh SETB chỉ tác động trên bit, nên chỉ có địa chỉ bit là có hiệu quả. ¨Từ trạng thái chương trình (PWS) + Cờ nhớ (CY) có công dụng kép. Thông thường nó được dùng cho các lệnh toán học: nó sẽ được set nếu có một số nhớ sinh ra bởi phép cộng hoặc có một số mượn phép trừ . Ví dụ, nếu thanh ghi tích lũy chứa FFH, thì lệnh sau: ADD A, #1 Sẽ trả về thanh ghi tích lũy kết qủa 00H và set cờ nhớ trong PSW. Cờ nhớ cũng có thể xem như một thanh ghi 1 bit cho các lệnh luận lý thi hành trên bit. Ví dụ, lệnh sẽ AND bit 25H với cờ nhớ và đặt kết qủa trở vào cờ nhớ: ANL C, 25H + Cờ nhớ phụ AC : Khi cộng các số BCD, cờ nhớ phụ (AC) được set nếu kết qủa của 4 bit thấp trong khoảng 0AH đến 0FH. Nếu các giá trị cộng được là số BCD, thì sau lệnh cộng cần có DA A ( hiệu chỉnh thập phân thanh ghi tích lũy) để mang kết qủa lớn hơn 9 trở về giá trị đúng . + Cờ zero F0: Cờ F0 là một bit cờ đa dụng dành các ứng dụng của người dùng. + Các bit chọn bank thanh ghi Các bit chọn bank thanh ghi (RS0 và RS1) xác định bank thanh ghi được tích cực. Chúng được xóa sau khi reset hệ thống và được thay đổi bằng phần mềm nếu cần. Ví dụ, ba lệnh sau cho phép bank thanh ghi 3 và di chuyển nội dung của thanh ghi R7 (địa chỉ byte 1FH) đến thanh ghi tích lũy: SETB RS1 SETB RS0 MOV A, R7 Khi chương trình được hợp dịch các địa chỉ bit đúng được thay thế cho các ký hiệu “RS1” và “RS0”. Vậy lệnh SETB RS1 sẽ giống như lệnh SETB 0D4H. + Cờ Tràn Cờ tràn (0V) được set một lệnh cộng hoặc trừ nếu có một phép toán bị tràn. Khi các số có dấu được cộng hoặc trừ với nhau, phần mềm có thể kiểm tra bit này để xác định xem kết qủa của nó có nằm trong tầm xác định không. Khi các số không dấu được cộng, bit 0V có thể được bỏ qua. Các kết qủa lớn hơn +127 hoặc nhỏ hơn –128 sẽ set bit 0V. b.Thanh ghi B Thanh ghi B ở địa chỉ F0H được dùng cùng với thanh ghi tích lũy A cho các phép toán nhân và chia. Lệnh MUL AB sẽ nhân các giá trị không dấu 8 bit trong A và B rồi trả về kết qủa 16 bit trong A (byte thấp) và B (byte cao). Lệnh DIV AB sẽ chia A cho B rồi trả về kết qủa nguyên trong A và phần dư trong B. Thanh ghi B cũng có thể được xem như thanh ghi đệm đa dụng. Nó được địa chỉ hóa từng bit bằng các địa chỉ bit F0H đến F7H. c. Con trỏ ngăn xếp Con trỏ ngăn xếp (SP) là một thanh ghi 8 bit ở địa chỉ 81H. Nó chứa địa chỉ của byte dữ liệu hiện hành trên đỉnh của ngăn xếp. Các lệnh trên ngăn xếp bao gồm các thao tác cất dữ liệu vào ngăn xếp và lấy dữ liệu ra khỏi ngăn xếp. Lệnh cất dữ liệu vào ngăn xếp sẽ làm tăng SP trước khi ghi dữ liệu, và lệnh lấy dữ liệu ra khỏi ngăn xếp sẽ đọc dữ liệu và làm giảm SP. Ngăn xếp của 8951 được giữ trong RAM nội và được giới hạn các địa chỉ có thể truy xuất bằng địa chỉ gián tiếp. chúng là 128 byte đầu của 8951. Để khởi động lại SP với ngăn xếp bắt đầu tại 60H, các lệnh sau đây được dùng: MOV SP, #5FH Trên 8951ngăn xếp bị giới hạn 32 byte vì địa chỉ cao nhất của RAM trên chip là 7FH. Sở dĩ dùng giá trị 5FH vì SP sẽ tăng lên 60H trước khi cất byte dữ lệu đầu tiên. Người thiết kế có thể chọn không phải khởi động lại con trỏ ngăn xếp mà để nó lấy giá trị mặc định khi reset hệ thống. Giá trị măc định đó là 07H và kết qủa là ngăn đầu tiên để cất dữ liệu có địa chỉ 08H. Nếu phần mềm ứng dụng không khởi động lại SP, bank thanh ghi 1 (có thể cả 2 và 3) sẽ không dùng được vì vùng RAM này đã được dùng làm ngăn xếp. Ngăn xếp được truy xuất trực tiếp bằng các lệnh PUSH và POP để lưu giữ tạm thời và lấy lại dữ liệu hoặc được truy xuất ngầm bằng các lệnh gọi chương trình con (ACALL, LCALL) và các lệnh trở về (RET, RETI) để cất và lấy lại bộ đếm chương trình. d. Con trỏ dữ liệu Con trỏ dữ liệu (DPTR) được dùng để truy xuất bộ nhớ ngoài, đây là một thanh ghi 16 bit ở địa chỉ 82H (byte thấp) và 83H (byte cao). Ba lệnh sau sẽ ghi 55H vào RAM ngoài ở địa chỉ 1000H: MOV A, #55H MOV DPTR, #1000H MOVX @DPTR, A Lệnh đầu tiên dùng địa chỉ tức thời để tải dữ liệu 55H vào thanh ghi tích lũy, lệnh thứ hai cũng dùng địa chỉ tức thời, lần này để tải dữ liệu 16 bit 1000H vào con trỏ dữ liệu. Lệnh thứ ba dùng địa chỉ gián tiếp để di chuyển dữ liệu trong A (55H) đến RAM ngoài ở địa chỉ được chứa trong DPTR (1000H). e. Các thanh ghi port xuất nhập Các port của 8951 bao gồm Port 0 ở địa chỉ 80H, Port 1 ở địa chỉ 90H, Port 2 ở địa chỉ A0H và Port 3 ở địa chỉ B0H. Tất cả các Port đều được địa chỉ hóa từng bit. Điều đó cung cấp một khả năng giao tiếp thuận lợi. f. Các thanh ghi timer 8951 chứa 2 bộ định thời đếm 16 bit được dùng trong việc định thời hoặc đếm sự kiện. Timer 0 ở địa chỉ 8AH (TL0: byte thấp) và 8CH (TH0: byte cao). Timer 1 ở địa chỉ 8BH (TL1:byte thấp) và 8DH (TH1: byte cao). Việc vận hành timer được set bởi thanh ghi Timer Mode (TMOD) ở địa chỉ 89H và thanh ghi điều khiển timer (TCON) ở địa chỉ 88H. Chỉ có TCON được địa chỉ hóa từng bit. g. Các thanh ghi port nối tiếp 8951 chứa một port nối tiếp trên chip dành cho việc trao đổi thông tin với các thiết bị nối tiếp như máy tính, modem hoặc cho việc giao tiếp với các IC khác có giao tiếp nối tiếp (có bộ chuyển đổi A/D, các thanh ghi dịch..). Một thanh ghi gọi là bộ đệm dữ liệu nối tiếp (SBUF) ở địa chỉ 99H sẽ giữ cả hai dữ liệu truyền và nhận. Khi truyền dữ liệu thì ghi lên SBUF, khi nhận dữ liệu thì đọc từ SBUF. Các mode vận hành khác nhau được lập trình qua thanh ghi điều khiển port nối tiếp (SCON) được địa chỉ hóa từng bit ở địa chỉ 98H. h. Các thanh ghi ngắt 8951 có cấu trúc 5 nguồn ngắt, 2 mức ưu tiên. Các ngắt bị cấm sau khi reset hệ thống và sẽ được cho phép bằng việc ghi vào thanh ghi cho phép ngắt (IE) ở địa chỉ 8AH một giá trị phù hợp. Cả hai thanh ghi được địa chỉ hóa từng bit. ¨ Lệnh reset 8951 được reset bằng cách giữ chân RST ở mức cao ít nhất trong 2 chu kỳ máy và sau đó trả về mức thấp. RST có thể được kích khi cấp điện dùng một mạch R-C. Hình 2.3: Mạch reset hệ thống 2.1.5. Hoạt động của bộ định thời và các ngắt 2.1.5.1. Hoạt động của định thời Bộ định thời được sử dụng trong hầu hết các ứng dụng hướng điều khiển và 8051 với các bộ định thời trên chip không phải là trường hợp ngoại lệ. 8051 có hai bộ dịnh thời 16-bit, mỗi bộ có bốn chế độ hoạt động. Các bộ định thời dung để: - Định thời gian trong một khoảng thời gian - Đếm sự kiện - Tạo tốc độ baud cho port nối tiếp của chip 8051 Hoạt động của một bộ định thời đơn giản được minh họa trong hình 2.1 Hình 2.4: Bộ định thời 3-bit Bộ định thời 3-bit, mỗi tầng là một D.FF kích khởi cạnh âm hoạt động giống như một mạch chia cho hai, do ta nối ngõ ra Q với ngõ vào D. Flipflop cờ đơn giản là một mạch chốt D được SET bằng 1 bởi tầng cuối của bộ định thời. Giản đồ thời gian ở hình 2.4 cho thấy tang thứ nhất (Q0) chia hai tần số xung clock, tầng thứ hai chia 4 tần số xung clock và v.v… Số đếm (count) được ghi ở dạng thập phân và được kiểm tra dễ dàng bằng cách khảo sát trạng thái của 3 flipflop. Thí dụ số đếm là 4 xuất hiện khi Q2=1, Q1=0, Q0=0 (410=1002 ). Các flipflop ở hình 2.4 là các llipflop tác động cạnh âm (nghĩa là ngõ ra Q của các flipflop đổi trạng thái theo cạnh âm của xung clock). Khi số đếm tràn từ 1112 xuống 0002 có cạnh âm(1à 0) làm cho trạng thái của flipflop cờ đổi từ 0 lên 1 (ngõ vào D của flipflop này luôn ở logic 1) 2.1.5.2. Hoạt động ngắt Một ngắt là sự xảy ra một điều kiện, một sự kiện nó gây ra treo tạm thời thời chương trình chính trong khi điều kiện đó được phục vụ bởi một chương trình khác. Các ngắt đóng một vai trò quan trọng trong thiết kế và cài đặt các ứng dụng vi điều khiển. Chúng cho phép hệ thống đáp ứng bất đồng bộ với một sự kiện và giải quyết sự kiện đó trong khi một chương trình khác đang thực thi. Tổ chức ngắt 89S52: Có các nguyên nhân sau: ngắt do bên ngoài, ngắt do bộ định thời, ngắt do port nối tiếp và ngắt do bộ định thời thứ 3. Cho phép và cấm ngắt: Mỗi nguồn ngắt được cho phép hoặc cấm ngắt qua một thanh ghi chức năng đặc biệt có định địa chỉ IE (Interrupt Enable:cho phép ngắt) ở địa chỉ A8H. Bảng: Thanh ghi IE Bit Ký hiệu Địa chỉ bit Mô tả IE.7 EA AFH Cho phép / Cấm toàn bộ IE.6 - AEH Không được mô tả IE.5 ET2 ADH Cho phép ngắt từ Timer 2 (8052) IE.4 ES ACH Cho phép ngắt port nối tiếp IE.3 ET1 ABH Cho phép ngắt từ Timer1 IE.3 EX1 AAH Cho phép ngắt ngoài 1 IE.1 ET0 A9H Cho phép ngắt từ Timer 0 IE.0 EX0 A8H Cho phép ngắt ngoài 0 Các loại cờ ngắt Các cờ ngắt: Khi điều kiện ngắt xảy ra thì ứng với từng loại ngắt mà loại cờ đó được đặt lên một để xác nhận ngắt. Bảng : Các loại cờ ngắt. Ngắt Cờ Thanh ghi SFR và vị trí bit Bên ngoài 0 IE0 TCON.1 Bên ngoài 1 IE1 TCON.3 Timer 1 TF1 TCON.7 Timer 2 TF0 TCON.5 Port nối tiếp TI SCON.1 Port nối tiếp RI SCON.0 Do bộ định thời 2 TF2 T2CON.7 Do bộ định thời 2 EXF2 T2CON.6 Các loại cờ ngắt Ưu tiên ngắt: Mỗi một nguyên nhân ngắt được lập trình riêng rẽ để có một trong hai mức ưu tiên thông qua thanh ghi chức năng đặc biệt được định địa chỉ từng bit, thanh ghi này có địa chỉ byte là 08BH. Nếu có hai ngắt với mức ưu tiên ngắt khác nhau xuất hiện đồng thời, ngắt có mức ưu tiên cao hơn sẽ được ngắt trước. Chỗi vòng: Nếu có hai ngắt có cùng ngắt ưu tiên xuất hiện đồng thời, chuỗi vòng sẽ xác định ngắt nào sẽ được phục vụ trước. Chuỗi vòng này có thứ tự như sau: ngắt ngoài 0, ngắt do bộ định thời 0. ngắt ngoài 1, ngắt do port nối tiếp, ngắt do bộ định thời 2. 2.2. Bộ chuyển đổi ADC Giới thiệu vi mạch ADC0809 Bộ ADC 0809 là một linh kiện CMOS tích hợp với một bộ chuyển đổi từ tương tự sang số 8 bit, bộ chọn 8 kênh và một bộ logic điều khiển tương thích. Bộ chuyển đổi AD 8 bit này dùng phương pháp chuyển đổi xấp xỉ liên tiếp. Bộ chọn kênh có thể truy xuất bất kỳ kênh nào trong các ngõ vào tương tự một cách độc lập. Hình 2.5: Sơ đồ chân vi mạch ADC 0809 Ý nghĩa các chân: + IN0 đến IN7 : 8 ngõ vào tương tự. + A0, A1, A2 : giải mã chọn một trong 8 ngõ vào + D0 đến D7 : ngõ ra song song 8 bit + ALE : cho phép chốt địa chỉ + START : xung bắt đầu chuyển đổi + CLK : xung đồng hồ + VREF+ : điện thế tham chiếu (+) + VREF - : điện thế tham chiếu (-) + VCC : nguồn cung cấp Các đặc điểm của ADC 0809: + Độ phân giải 8 bit + Tổng sai số chưa chỉnh định ½ LSB; 1 LSB + Thời gian chuyển đổi: 100 s ở tần số 640 KHz + Nguồn cung cấp + 5V + Điện áp ngõ vào 0 - 5V + Tần số xung clock 10kHz - 1280 kHz + Nhiệt độ hoạt động - 40oC đến 85oC + Dễ dàng giao tiếp với vi xử lý hoặc dùng riêng + Không cần điều chỉnh zero hoặc đầy thang Nguyên lý hoạt động: ADC 0809 có 8 ngõ vào tương tự, ngõ ra 8 bit, có thể chọn 1 trong 8 ngõ vào tương tự để chuyển đổi sang số 8 bit. Các ngõ vào được chọn bằng cách giải mã. Chọn 1 trong 8 ngõ vào tương tự được thực hiện nhờ 3 chân A0, A1, A2 như bảng trạng thái sau: A0 A1 A2 Ngõ vào được chọn 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 Sau khi kích xung start thì bộ chuyển đổi bắt đầu hoạt động ở cạnh xuống của xung start, ngõ ra EOC sẽ xuống mức thấp sau khoảng 8 xung clock (tính từ cạnh xuống của xung start). Lúc này bit có trọng số lớn nhất (MSB) được đặt lên mức 1, tất cả các bit còn lại ở mức 0, đồng thời tạo ra điện thế có giá trị Vref/2, điện thế này được so sánh với điện thế vào in. + Nếu Vin > Vref/2 thì bit MSB ở mức 1. + Nếu Vin < Vref/2 thì bit MSB vẫn ở mức 0. Tương tự như vậy bit kế tiếp MSB được đặt lên 1 và tạo ra điện thế có giá trị Vref/4 và cũng so sánh với điện áp ngõ vào Vin. Quá trình cứ tiếp tục như vậy cho đến khi xác định được bit cuối cùng. Khi đó chân EOC lên mức 1 báo cho biết đã kết thúc chuyển đổi. Trong suốt quá trình chuyển đổi chân OE được đặt ở mức 1, muốn đọc dữ liệu ra chân OE xuống mức 0. Trong suốt quá trình chuyển đổi nếu có 1 xung start tác động thì ADC sẽ ngưng chuyển đổi.. Mã ra N cho một ngõ vào tùy ý là một số nguyên: Trong đó: Vin: điện áp ngõ vào bộ so sánh. Vref(+): điện áp tại chân VREF + Vref(-): điện áp tại chân VREF - Nếu chọn Vref(-) = 0 thì, N = 256.Vref(+) = Vcc = 5V thì đầy thang là 256. Giá trị bước nhỏ nhất: 1 LSB == 0,0196 V/byte Áp vào lớn nhất của ADC 0809 là 5V. ● Thiết kê mạch dao động tạo xung Clock cho ADC 0809 Sử dụng mạch dao động dùng các cổng Not để tạo xung Clock cho ADC . Hình 2.6 Mạch dao động cho ADC 0809 Tần số dao động của mạch là f = 1/(3.R.C) Tần số dao động chuẩn là 600 KHz => 640 =1/(3.R.C) Với R từ 100W đến vài KW, ta chọn R = 330 W => C = 1500 pF 2.3. Giao tiếp LCD 16 x 2 và vi điều khiển P89V51RD2 2.3.1. Giới thiệu LCD 16 x 2 LCD có 14 chân và 2 chân AK - Trong 14 chân của LCD thi có: 8 chân dữ liệu D0D7 - 3 chân điều khiển E, RS, R/W - 3 chân nguồn Vss, Vdd< Vo Chân E (enable): chân này cho IC 44780 biết là vi điều khiển dang liên lạc với nó, mức tích cực la mức 1. Chân này dùng để điều khiển trạng thái đường truyền dữ liệu Chân RS : báo cho LCD biết bước sắp tới là hiển thị dữ liệu hay thực thi các lệnh điều khiển( mức 0: lệnh , mức 1 : hiển thị dữ liệu) Chân R/W : có tác dụng báo cho LCD biết là VDK muốn đọc hay ghi( 1: read, 0: write) Chắc các bạn sẽ thắc mắc là LCD dùng để ghi dữ liệu, tại sao lại cần đến đọc nữa. Đọc dữ liệu cần thiết vì khi đọc dữ liệu từ LCD thì VDK mới biết lúc nào LCD thực thi xong lênh mà nó gửi truớc đó để còn thực thi lệnh tiếp theo Chân Vss, Vdd là chân nguồn ( Vss nối đất).Còn chân Vo là điều chỉnh độ tương phản , tức là độ sáng của LCD, để điều chỉnh độ tương phản thì nối chân này với biến trở 10k, một đầu nối dất một đầu nối với dương nguôn 2.3.2. Phương thức giao tiếp giữa LCD 16 x 2 và vi điều khiển P89V51RD2 Trước khi làm việc với LCD chúng ta phải khởi tạo ban đầu cho nó Các bước khởi tạo giá trị ban đầu cho LCD (có 5 bước) +)Wait 100ms ( thời gian cấp nguồn cho LCD - the internal reset circuit)) +)Gừi mã lệnh 28h để thông báo cho LCD biết dùng 4 chân +)Gửi tiếp mã lệnh 28h để khởi tạo ban đầu cho LCD chế độ dùng 4bit, 2 line,dot 5*8 +)Gửi mã lệnh 0EH để bật chế độ con , đây là mã lệnh Display on/off control +)Gửi mã lệnh 06h đây là mã lệnh Entry mode set thiết lập chế độ dịch chuyển con trỏ 3. HỆ THỐNG ĐIỀU KHIỂN ĐỘNG CƠ 3.1. Sơ đồ cấu trúc và các khối chức năng của hệ thống điều khiển động cơ Sơ đồ cấu trúc và các khối chức năng Hình 3.1: Sơ đồ các khối chức năng Sơ đồ các khối chức năng của hệ thống điều khiển động cơ theo chương trình được mô tả trên hình 3.1. Hệ thống điều khiển bao gồm : ngõ vào (inputs) với chủ yếu các cảm biến , hộp ECU là bộ não của hệ thống có thể có hoặc không có bộ vi xử lý; ngõ ra (outputs) là các cơ cấu chấp hành (actuator) như kim phun, Hình 3.2: Sơ đồ cấu trúc của hệ thống điều khiển 3.2. Các tín hiệu đầu vào 3.2.1.Cảm biến vị trí bướm ga Cảm biến vị trí cánh bướm ga được lắp ở trên trục cánh bướm ga. Cảm biến này đóng vai trò chuyển vị trí góc mở cánh bướm ga thành tín hiệu điện thế giở đến ECU. Một điện áp không đổi 5V từ ECU cung cấp đến cực VC. Khi cánh bướm ga mở, con trượt trượt dọc theo điện trở và tảoa điện áp tăng dần ở cực VTA tương ứng với góc mở cánh bướm ga. Khi cánh bướm ga đóng hoàn toàn, tiếp điểm cầm chừng nối cực IDL với cực E2. Trên đa số các xe hiện nay cảm biến bướm ga loại biến trở chỉ có 3 dây VC, VTA và E2 mà không có dây IDL. Hình 3.3: Cảm biến vị trí bướm ga 1-Con trượt; 2-Điện trở; 3-Nối đất(E2); a-Tiếp điểm không tải (IDL); 5-Điện áp góc mở bướm ga(VTA); 6- Điện áp không đổi (VC) Cầm chừng đầy tải 12 5 4 3 2 1 0 VTA Điện áp ra (V) IDL Hình 3.4: Đường đặc tuyến của cảm biến bướm ga loại tuyến tính Sơ đồ mạch điện Hình 3.5: Sơ đồ mạch điện cảm biến vị trí bướm ga 3.2.2. Cảm biến nhệt độ nước làm mát Cảm biến này nhận biết nhiệt độ của nước làm mát bằng một nhiệt điện trở bên trong. Hình 3.6: Cảm biến nhiệt độ nước làm mát 1: Giắc cắm; 2: Chất cách điện; 3: Thân cảm biến; 4: Điện trở Nhiên liệu sẽ bay hơi kém khi nhiệt độ thấp, vì vậy cần có một hỗn hợp đậm hơi. Vì lý do này, khi nhiệt độ nước làm mát, điện trở của nhiệt điện trở tăng lên và tín hiệu điện áp THW cao được đưa đến ECU, dựa trên tín hiệu này ECU sẽ tăng lượng nhiên liệu phun vào làm cải thiện khả năng tải trong quá trình hoạt động của động cơ lạnh. Ngược lại, khi nhiệt độ nước làm mát cao, một tín hiệu điện áp THW thấp được gởi đến ECU làm giảm lượng phun nhiên liệu. Điện áp 5V qua điện trở chuẩn (điện trở này có giá trị không đổi theo nhiệt độ) tới cảm biến rồi trở về ECU về mass. Như vậy điện trở chuẩn và nhiệt điện trở trong cảm biến tạo thành một cầu phân áp. Điện áp điểm giữa cầu được đưa đến bộ chuyển tín hiệu tương tự - số (bộ chuyển đổi ADC – anlog to digital converter). Khi nhiệt độ động cơ thấp, giá trị điện trở cảm biến cao và điện áp gửi đến bộc biến đởi ADC lớn. Tín hiệu điện áp được chuyển đổi thành một dãy xung vuông và được giải mã nhờ bộ vi xử lý để thông báo cho ECU biết động cơ đang lạnh. Khi động cơ nóng, giá trị điện trở cảm biến giảm kéo theo điện áp đặt giảm, báo cho ECU biết là động cơ đang nóng. Cảm biến nhiệt độ nước làm mát THW E2 ECU +B +B1 E2 E1 ADC 5V Vcc Đến relay chính CPU Hình3.7: Mạch điện cảm biến nước làm mát -20 0 20 40 60 80 100 120 Nhiệt độ Điện trở 40 20 10 8 6 4 2 1 0.8 0.6 0.4 0.2 Hình3.8: Đường đặc tính của cảm biến nước làm mát 3.2.3. Cảm biến nhiệt độ khí nạp Cảm biến nhiệt độ không khí nạp dùng để xác định nhiệt độ của không khí nạp vào động cơ. Cũng giống như cảm biến nhiệt độ nước, nó gồm một biến trở nhiệt được gắn trong bộ đo gió. Mật độ không khí sẽ thay đổi theo nhiệt độ. Nếu nhiệt độ không khí cao thì hàm lượng ô xy trong không khí giảm, khi nhiệt độ không khí lạnh thì hàm lượng ô xy trong không khí tăng. Vì thế dù lượng không khí được đo bởi bộ đo gió như nhau nhưng tùy vào nhiệt độ của không khí mà lượng phun sẽ khác nhau. ECU xem nhiệt độ 20oC là mức chuẩn, nếu nhiệt độ khí nạp lớn hơn 20oC thì ECU sẽ điều khiển giảm lượng xăng phun, nếu nhiệt độ khí nạp nhỏ hơn 20oC ECU điều khiển tăng lượng xăng phun. Với phương pháp này tỷ lệ hỗn hợp sẽ được đảm bảo theo nhiệt độ môi trường. - Mạch điện cảm biến nhiệt độ khí nạp. Đặc tính và sơ đồ đấu dây với ECU của vảm biến nhiệt độ khí nạp về cơ bản là giống nhau như cảm biến nhiệt độ nước. Hình 3.9: Cảm biến nhiệt độ khí nạp Cảm biến nhiệt độ khí nạp THW E2 ECU +B +B1 E2 E1 ADC 5V Vcc Đến relay chính ECU 1: Giắc cắm; 2: Chất cách điện; 3: Thân cảm biến; 4: Điện trở Hình 3.10: Mạch điện cảm biến nhiệt độ khí nạp 3.2.4. Cảm biến ôxy Hình 3.11: Cấu tạo cảm biến ôxy 1: Lớp bảo vệ; 2: Rãnh không khí; 3:Điện cực Platin bên ngoài; 4: Vỏ bảo vệ; 5: Lớp cách điện; 6:Phân tử Ziricon; 7:Điện cực Platin bên trong; 8: Cực dương;9: Cực âm Để nhằm mục đích giúp cho động cơ có lắp đặt bộ TWC (bộ lọc khí xả 3 thành phần) đạt được hiệu quả lọc khí xả tốt nhất cần phải duy trì tỷ lệ không khí - nhiên liệu nằm trong khoảng gần với tỷ lệ lý thuyết. Cảm biến nồng độ ô xy nhận biết tỷ lệ không khí - nhiên liệu đậm hoặc nhạt hơn tỷ lệ lý thuyết. Cảm biến ôxy được đặt trong đường ống xả và bao gồm một phần tử chế tạo bằng ZrO2 (đioxit zicrinum - một loại vật liệu gốm). Cả mặt trong và mặt ngoài của phần tử này được phủ một lớp mỏng platin. Không khí bên ngoài được dấu vào bên trong của cảm biến còn phần bên ngoài của nó tiếp xúc với xả. Nếu nồng độ ôxy trên bề mặt trong của phần tử ZrO2 chênh lệch lớn so với trên bề mặt ngoài tại nhiệt độ cao (400oC), phần tử ZrO2 sẽ sinh ra một điện áp khi hỗn hợp không khí - nhiên liệu nhạt, có rất nhiều ôxy trong khí xả do vậy có sự chênh lệch nhỏ giữa nồng độ ôxy ở bên trong và bên ngoài của biến. Do đó điện áp của ZrO2 tạo ra là thấp (gần băng 0V) ngược lại, nếu hỗn hợp không khí - nhiên liệu đậm, ôxy trong khí xả gần như không còn. Điều đó tạo ra sự chênh lệch lớn về ôxy ở bên trong và bên ngoài cảm biến và điện áp do phần tử ZrO2 tạo ra là lớn ( xấp xỉ 1V). Lớp platin (phủ lên phần tử gốm) có tác dụng như một chất xúc tác và làm cho ôxy trong khí xả phản ứng tạo thành CO, điều đó làm giảm độ ôxy và làm tăng độ nhạy của cảm biến. Dựa trên tín hiệu phát ra từ cảm biến này, ECU động cơ tăng hay giảm lượng phun để duy trì tỷ lệ không khí - nhiên liệu luôn gần với giá trị lý thuyết. Một vài loại cảm biến ôxy zicônia được chế tạo với bộ sấy dùng để sấy nóng phần tử zicônia. Bộ sấy cũng được điều khiển bằng ECU. Khi lượng khí nạp thấp (có nghĩa, nhiệt độ của khí xả thấp). Dòng điện sẽ chạy qua bộ sấy đển sấy cảm biến. Chú ý: nếu cảm biến ôxy bình thường, nhưng bề mặt ngoài của cảm biến có dính bụi… nó sẽ ngăn không cho không khí bên ngoài tiếp xúc với cảm biến. Sự chênh lệch giửa nồng độ ôxy trong không khí và trong khí xả sẽ giảm xuống, nên cảm biến luôn gởi một tín hiệu hỗn hợp nhạt đến ECU. Sơ đồ mạch điện: Hình 3.12: Mạch điện cảm biến ôxy 3.2.5. Cảm biến kích nổ Cảm biến kích nổ này được lặp trên thân máy và nhận biết tiếng gõ trong động cơ. Hình 3.13: Cấu tạo cảm biến kích nổ 1: Cọc nối từ giắc; 2: Đệm kín; 3: Thanh dẫn tín hiệu; 4: Thân cảm biến; 5: Phớt kín; 6: Màng nhận tiếng gõ; 7: Phần tử điện áp Khi xảy ra tiếng gõ động cơ, ECU động cơ dùng tín hiệu KNK để làm muộn thời điểm đánh lửa sớm nhằm ngăn chặn tiếng gõ. Cảm biến này bao gồm một phần tử áp điện, nó sẽ tạo ra điện áp khi bị biến dạng do rung động của thân máy khi có tiếng gõ. Do tiếng gõ của động cơ có tần số xấp xỉ 7KHz, nên điện áp do cảm biến tiếng gõ phát ra sẽ đạt mức cao nhất tại tần số này. Có hai loại cảm biến tiếng gõ. Một loại tảoa điện áp cao trong dải tần số hẹp của rung động, còn loại kia tạo ra điện áp cao trong dải tần số rộng. ECU động cơ nhận biết có tiếng gõ hay không bằng cách đo điện áp của tín hiệu KNK cao hay thấp so với mức điện áp chuẩn. Khi ECU động cơ nhận thấy có tiếng gõ, nó làm chậm thời điểm đánh lửa sớm. Khi tiếng gõ kết thúc thời điểm đánh lửa được làm sớm trở lại sau một khoảng thời gian nhất định. Sơ đồ mạch điện: Hình 3.14: Sơ đồ mạch điện cảm biến kích nổ 3.2.6. Cảm biến áp suất đường ống nạp Cảm biến áp suất ống nạp được sử dụng trong loại D-EFI để cảm nhận áp suất đường ống nạp. Đây là một trong những cảm biến quan trọng nhất của EFI loại D. Hình 3.15: Cấu tạo cảm biến chân không 1: Ống nối đường ống nạp; 2: Lọc; 3: Cực âm; 4: Buồng chân không; 5: Chip Silicon; 6: Cực dương Cảm biến áp suất đường ống nạp cảm nhận áp suất đường ống nạp bằng một IC lắp trong cảm biến phát ra tín hiệu PIM. ECU động cơ quyết định khoảng thời gian phun cơ bản và góc đánh lửa sớm cơ bản dựa vào tín hiệu PIM này. Sơ đồ mạch điện: Hình 3.16: Sơ đồ mạch điện cảm biến áp suất đường ống nạp 3.2.7. Bộ tạo tín hiệu G và NE Tín hiệu G và NE được tạo ra bằng rôto hay các đĩa tạo tín hiệu và cuộn nhận tín hiệu ECU động cơ sử dụng các tín hiệu này để nhận biết góc của trục khuỷu và tốc độ động cơ. Các tín hiệu này rất quan trọng cho không khí EFI mà còn cho cả hệ thống ESA. Loại đặt trong bộ chia điện: Cơ cấu đánh lửa sớm ly tâm và chân không thông thường đã không sử dụng nữa trong hệ thống điều khiển động cơ TCCS, do việc đánh lửa sớm được điều khiển điện tử bằng ECU động cơ. Bộ chia điện trong hệ thống điều khiển bao gồm các rôto và các cuộn nhận tín hiệu cho các tín hiệu G và NE. Số lượng răng của rôto và số cuộn nhận tín hiệu khác nhau tuỳ theo động cơ, dưới đây sẽ mô tả kết cấu và hoạt động của bộ tạo tín hiệu G và NE mà sử dụng một cuộn nhận tín hiệu và rôto 4 răng cho tín hiệu G và một cuộn nhận tín hiệu và rôto 24 răng cho tín hiệu NE. Tín hiệu hỗn hợp báo cho ECU biết góc trục khuỷu chuẩn, để xác định thời điểm đánh lửa và phun nhiên liệu so với điểm chết (TDC) của mỗi xilanh Các bộ phận của bộ chia điện sử dụng để tạo tín hiệu này bao gồm: - Rôto của tín hiệu G được bắt vào trục bộ chia điện và quay một vòng trong trong hai vòng quay của trục khuỷu. - Cuộn nhận tín hiệu G được lắp vào bên trong vỏ của bộ chia điện. Rôto của tín hiệu G có 4 răng và kích hoạt cuộn nhận tín hiệu 4 lần trong mỗi vòng quay trục bộ chia điện tạo ra tín hiệu dạng song như hình. Từ tín hiệu này, ECU động cơ nhận biết được piston nào ở gần điểm chết trên (TDC) (ví dụ 10o trước điểm chết trên). Tín hiệu NE được ECU động cơ sử dụng để nhận biết tốc độ động cơ. Tín hiệu NE được sinh ra trong cuộn dây nhận tín hiệu nhờ rôto giống như tạo ra tín hiệu G. Chỉ có sự khách biệt duy nhất là rôto tín hiệu NE có 24 răng. Nó kích hoạt cuộn nhận tín hiệu NE 24 lẩn trong một vòng quay của trục bộ chia điện tạo ra dạng sóng như hình vẽ. Từ các tín hiệu này, ECU động cơ nhận biết tốc độ động cơ cũng như từng thay đổi 300 một của góc quay trục khuỷu. 3.2.8. Tín hiệu STAR (máy khởi động) Tín hiệu này dùng để phát hiện động cơ đang quay khởi động. Chức năng chính của nó là cho phép ECU động cơ tăng lượng phun nhiên liệu trong khi đang khởi động. Có thể nhận thấy từ sơ đồ sau. Tín hiệu STAR là một điện áp giống như điện áp cấp đến máy khởi động. ECU động cơ nhận biết động cơ có đang khởi động hay không dựa trên tín hiệu STRA. Cũng như có một vài động cơ sử dụng tín hiệu NE để nhận biết chế độ hoạt động của động cơ trong khi hoạt động. Trong một số loại động cơ, nếu tín hiệu STRA phát ra khi động cơ đang chạy. Nó có thể làm cho động cơ chết máy. 3.3. Bộ điều khiển điện tử 3.3.1. Tổng quan Hệ thống điều khiển động cơ theo chương trình bao gồm các cảm biến kiểm soát liên tục tình trạng hoạt động của động cơ, một bộ ECU tiếp nhận tín hiệu từ cảm biến, xử lý tín hiệu và đưa ra tín hiệu điều khiển đến cơ cấu chấp hành. Cơ cấu chấp hành luôn bảo đảm thừa lệnh ECU và đáp ứng các tính hiệu phản hồi từ các cảm biến. Hoạt động của hệ thống điều khiển động cơ đem lại sự chính xác và thích ứng cần thiết để giảm tối đa chất độc hại trong khí thải cũng như lượng tiêu hao nhiên liệu. ECU cũng đảm bảo công suất tối ưu ở các chế độ hoạt động của động cơ, giúp chẩn đoán động cơ một cách hệ thống khi có sự cố xảy ra. Điều khiển động cơ bao gồm hệ thống điều khiển xăng, lửa, ga tự động (cruise control). Ngoài ra, trên các động cơ diesel ngày nay đã sử dụng hệ thống nhiên liệu bằng điện tử. 3.3.2. Cấu trúc ECU Bộ nhớ: Bộ nhớ trong ECU chia ra làm 4 loại: ROM (Read Only Memory) Dùng trữ thông tin thường trực. Bộ nhớ này chỉ đọc thông tin từ đó ra chứ không thể ghi vào được. Thông tin của nó đã được cài sẵn, ROM cung cấp thông tin cho bộ vi xử lý và được lắp cố định trên mạch in. Ram (Random Access Memory) Bộ nhớ truy xuất ngẫu nhiên dùng để lưu trữ thong tin mới được ghi trong bộ nhớ và xác định bởi vi xử lý. RAM có thể đọc và ghi các số liệu theo địa chỉ bất kỳ. Ram có hai loại: Loại RAM xóa được: bộ nhớ sẽ mất khi mất dòng điện cung cấp. Loại RAM không xóa được: vẫn giữ duy trì bộ nhớ cho dù khi tháo nguồn cung cấp ôtô RAM lưu trữ những thông tin về hoạt động của các cảm biến dùng cho hệ thống tự chuẩn đoán. PROM (Programmable Read Only Memory) Cấu trúc cơ bản giống như ROM nhưng nó cho phép lập trình (nạp dữ liệu) ở nơi sử dụng chứ không phải ở nới sản xuất như ROM. PROM cho phép sửa đổi chương trình điều khiển theo những đòi hỏi khác nhau. KAM (Keep Alive Memory) KAM dùng để lưu trữ những thông tin mới ( những thông tin tam thời) cung cấp đến bộ vi xử lý. KAM vẫn duy trì bộ nhớ cho dù động cơ ngưng hoạt động hoặc tắt công tắc máy. Tuy nhiên nếu tháo nguồn cung cấp từ ắc qui đến máy tính thì bộ nhớ KAM sẻ bị mất. Bộ vi xử lý (Microprocessor) Bộ vi xử lý có chức năng tính toán và ra quyết đinh. Nó là “Bộ não” của ECU. MICROPROCESSOR ROM PROM RAM Hình 3.17 : Sơ đồ khối của các hệ thống trong máy tính với microprocessor Đường truyền - BUS: Chuyển các lệnh và số liệu trong máy tính theo 2 chiều. ECU với những thành phần nêu trên có thể tồn tại dưới dạng một IC hoặc trên nhiều IC. Ngoài ra người ta thường phân loại máy tính theo độ dài từ các RAM (tính theo bit). Ở những thế hệ đầu tiên, máy tính điều khiển động cơ dùng loại 4,8 hoặc 16 bit phổ biến nhất là loại 4 bit và 8 bit. Máy tính 4 bit chứa rất nhiều lệnh vì nó thực hiện các lệnh logic tốt hơn. Tuy nhiên, máy tính 8 bit làm việc tốt hơn với các phép đại số và chính xác hơn 16 lần so với lại 4 bit. Vì vậy, hiện nay để điều khiển các hệ thống khác nhâu trên ô tô với tốc độ thực hiện nhanh và chính các cao, người ta sử dụng máy 8 bit, 16 bit hoặc 32 bit. Ngày nay trên ô tô hiện đại có thể trang bị nhiều ECU điều khiển các hệ thốngkhác nhau. Bộ phận chủ yếu của nó là bộ vi xử lý (microprocessor) hay còn gọi là CPU (Control Processing Unit), CPU lựa chọn các lệnh và xử lý số liệu từ bộ nhớ ROM và RAM chứa các chương trình và dử liệu và ngõ vào ra (I/O) điều khiển nhanh số liệu từ các cảm biến và chuyển dữ liệu đã xử lý đến các cơ cấu thực hiện. Nó bao gồm cơ cấu đại số logic để tính toán dữ liệu, các bộ ghi nhận lưu trữ tạm thời dữ liệu và bộ điều khiển các chức năng khác nhau. Ở các CPU thế hệ mới, người ta thường chế tạo CPU, ROM, RAM trong một IC. Bộ điều khiển ECU hoạt động trên cơ sở tín hiệu số nhị phân với điện áp cao biểu hiện cho số 1, điện áp thấp biểu hiện cho số 0. Mỗi một số hạng 0 hoặc 1 gọi là bit. Mỗi dãy 8 bit sẽ tương đương 1 byte hoặc 1 từ (word). Byte này được dùng để biểu hiện cho một lệnh hoặc 1 mẫu thông tin. 3.3.3. Mạch giao tiếp ngõ vào Bộ đếm (Counter) SENSOR Số ECU BỘ ĐẾM Bộ Vi Xử Lý Dùng để đếm xung ví dụ như từ cảm biến vị trí piston rồi gởi lượng đếm về bộ vi xử lý. Hình 3.18: Bộ đếm Bộ nhớ trung gian (Buffer) Chuyển tín hiệu xoay chiều thành tín hiệu song vuông dạng số, nó không giữ lượng đếm như trong bộ đếm. Bộ phận chính là một Transistor sẽ đóng mở theo cực tính của tín hiệu xoay chiều. PM ECU Bộ nhớ trung gian Bộ Vi Xử Lý Hình 3.19: Bộ nhớ trung gian Bộ khuếch đại (Amplifier) Một số cảm biến có tín hiệu rất nhỏ nên trong ECU thường có các bộ khuếch đại. Bộ tín hiệu mạnh khuyếch đại ECU Bộ Vi Xử Lý Tín hiệu yếu Hình 3.20: Bộ khuếch đại Bộ ổn áp (Voltage regulator) ` ECU Bộ Vi Xử Lý Bộ ổn áp B+ (12V) Thông thường trong ECU có 2 bộ ổn áp: 12V và 5V. Hình 3.21: Bộ ổn áp Giao tiếp ngõ ra: TRANSISTOR ECU Bộ Vi Xử Lý Tín hiệu điều khiển từ bộ vi xử lý sẽ đưa đến các transistor công suất điều khiển relay, solenoid, motor. Các transistor này có thể được bố trí bên trong hoặc bên ngoài ECU. B+ Hình 3.22: Giao tiếp ngõ ra 3.4. Các tín hiệu điều khiển 3.4.1. Điều khiển đánh lửa 3.4.1.1. Cơ bản về đánh lửa theo chương trình Trên các ô tô hiện đại, kỹ thuật số được áp dụng vào trong HTĐL từ nhiều năm nay. Việc điều khiển góc đánh lữa sớm và góc ngậm điện (dwell angle) sẽ được máy tính đảm nhận. Các thông số như tốc độ động cơ, tải, nhiệt độ, cảm biến tốc độ xe, cảm biến oxy được các cảm biến mã hóa tín hiệu đưa và ECU (Electronic Contol Unit) xử lý và tính toán để đưa ra góc đánh lửa sớm tối ưu theo từng chế độ hoạt động của động cơ, bằng cách gởi tín hiệu điều khiển đến igniter để điều khiển đánh lửa. Một chức năng khác của ECU trong việc điều khiển đánh lửa là sự điều chỉnh góc ngậm điện (dwell angle control). Góc ngậm điện phụ thuộc vào hai thông số là hiệu điện thế ắc qui và tốc độ động cơ. Khic khởi động chẳng hạn, hiệu điện thế ắcqui bị giảm do sụt áp, vì vậy ECU sẽ điều khiển tăng thời gian ngậm điện nhằm mục đích tăng dòng điện trong cuộn sơ cấp. Ở tốc độ thấp, do thời gian tích lũy năng lượng quá dài(góc ngậm điện lớn) gây lãng phí năng lượng nên ECU sẽ điều khiển xén bớt xung điện áp điều khiển để giảm thời gian ngậm điện nhằm mục đích tiết kiệm năng lượng và tránh nóng bobin. Trong trường hợp dòng sơ cấp vẫn tăng cao hơn giá trị ấn định, bộ phận hạn chế dòng sẽ làm việc và giữ cho dòng điện sơ cấp không thay đổi cho đến thời điểm đánh lữa. Một điểm cần lưu ý là việc điều chỉnh góc ngậm điện có thể thực hiện trong ECU hay ở igniter. Vì vậy, igniter của hai loại có và không có bộ phận điều chỉnh góc ngậm điện không thể lắp lẫn. Góc đánh lửa sớm thực tế khi động cơ hoạt động được xác định bằng công thức sau: Trong đó: - Góc đánh lửa sớm thực tế - Góc đánh lửa sớm ban đầu - Góc đánh lửa sớm cơ bản - Góc đánh lửa sớm hiệu chỉnh Hình 3.23: Góc đánh lửa sớm thực tế Góc đánh lửa sơm ban đầu () phụ thuộc vào vị trí của delco hoặc cảm biến vị trí cót máy (tín hiệu G). Thông thường trên các loại xe góc đánh lửa sớm ban đầu được điều chỉnh trong khoảng từ 5o đến 15o trước tử điểm thượng ở tốc độ cầm chừng. Đối với HTĐL với cơ cấu điều khiển góc đánh lửa sớm bằng điện tử, khi điều chỉnh góc đánh lửa sớm, ta chỉ chỉnh được góc đánh lửa sớm ban đầu. Đến Igniter IGT ECU 5V G NE Điểm chết trên IGT IGT Góc đánh lửa sớm hiệu chỉnh () là góc đánh lửa sớm được cộng thêm hoặc giảm bớt khi ECU nhận được các tín hiệu khác như nhiệt độ động cơ, nhiệt độ khí nạp, tín hiệu kích nổ, tín hiệu tốc độ xe. Vì vậy góc đánh lửa sớm thực tế được tính bằng góc đánh lửa sớm ban đầu cộng với góc đánh lửa sớm cơ bản và góc đánh lủa sớm hiệu chỉnh để đạt được góc đánh lửa sớm lý tưởng theo từng chế độ hoạt động của động cơ. a) b) Hình 3.24: Dạng xung IGT điều khiển đánh lửa Sau khi xác định được góc đánh lửa sớm, bộ xử lý trung tâm (CPU- Central Processing Unit) sẽ đưa ra xung điện áp để điều khiển đánh lửa (IGT) (hình 3.11a). Hình 3.11b mô tả quá trình dịch chuyển xung IGT trong CPU về phía trước so với tử điểm thượng khi có sự hiệu chỉnh về góc đánh lửa cơ bản () và góc đánh lửa sớm hiệu chỉnh () ngoài ra, xung IGT có thể được xén trước khi gởi qua igniter (hình 3.11b). G G2 NE B+ Accu IG/SW Đến bộ chia điện ECU Igniter Bobine ECU IGF Tín hiệu phản hồi Kiểm soát góc ngậm T2 5V T1 IGT IGF Hình 3.25: Sơ đồ hệ thống đánh lửa với cơ cấu điều khiển góc đánh lửa sớm bằng điện tử có sử dụng delco trên xe TOYOTA 3.4.1.2. Điều khiển chống kích nổ Khi sử dụng xăng có chỉ số octane quá thấp hoặc vì nguyên nhân nào đó động cơ quá nóng, sẽ xảy ra hiện tượng kích nổ trong xylanh. Hiện tượng kích nổ xảy ra thường xuyên sẽ rất nguy hiểm, gây hư hỏng và làm giảm tuổi thọ động cơ. Khi có hiện tượng kích nổ xảy ra, ECU sẽ điều khiển giảm góc đánh lửa sớm để tránh hiện tượng kích nổ. Mạch nhận biết kích nổ Mạch điều khiển Động cơ Mạch đánh lửa Cảm biến kích nổ Hình 3.26: Sơ đồ điều khiển kích nổ kiểu hồi tiếp 0 3.4 2 1 b a Hình 3.27: Phương pháp điều khiển kích nổ Kích nổ ở xilanh số 1 và số 2. Xilanh 3, 4 không bị kích nổ. a.Giảm góc đánh lửa sớm. b. Tăng góc đánh lửa sớm. Việc giảm góc đánh lửa sớm được thực hiện từng góc nhỏ theo từng chu kỳ của từng xylanh cho đến khi hiện tượng kích nổ chấm dứt. Khi hiện tượng kích nổ chấm dứt, ECU sẽ từng bước tăng dần góc đánh lửa sớm. Nếu không có hiện tượng kích nổ xảy ra nữa, góc đánh lửa sớm sẽ trở về góc đánh lửa sớm tối ưu (hình 3.35). Ngoài ra, góc đánh lửa sớm còn được hiệu chỉnh theo các điều kiện làm việc khác như kết hợp với hệ thống điều khiển ga tự động (cruise control), hệ thống cắt nhiên liệu khi vượt tốc, hệ thống kiểm soát lực kéo, hiệu chỉnh theo chế độ lưu hồi khí thải. 3.4.1.3. Hiệu chỉnh góc đánh lửa theo các chế độ làm việc của động cơ Động cơ trên ô tô có khả năng thích ứng rất cao. Từ lúc khởi động và trong suốt quá trình làm việc, chế độ làm việc của động cơ liên tục thay đổi. Tùy từng chế độ làm việc của động cơ mà ECU thực hiện việc điều chỉnh góc đánh lửa sơmgs đúng với bản đồ góc đánh lửa sớm lý tưởng theo từng chế độ hoạt động của động cơ nhằm đảm bảo hiệu suất động cơ cao nhất. Chế độ khởi động: Góc đánh lửa sớm được đặt ở một giá trị nhất đinh, không thayddooir trong suốt quá trình khởi đông, giá trị của góc đánh lửa sớm phụ thuộc vào Back-up IC trong ECU đã lưu trữ các số liệu về góc đánh lửa (hình 3.36). ECU NE IGT G Bach-up IC ST AfterST CPU Hình 3.28: Điều khiển góc đánh lửa sớm ở chế độ khởi động Thông thường, góc đánh lửa sớm được chọn nhỏ hơn 10o. Với góc đánh lửa này, động cơ được khởi động dễ dàng ngay cả khi nguội, đồng thời tránh sự nổ dội. Việc hiệu chỉnh theo nhiệt độ góc đánh lửa sớm khi khởi động không cần thiết vì thời gian khởi động rất ngắn. Khi có tín hiệu khởi động, mạch chuyển đổi trạng thái (có thể nằm trong hoặc ngoài ECU) sẽ nối đường IGT sang vị trí ST. Khi đó, xung IGT được điều khiển bởi Back-up IC thông qua hai tín hiệu G và NE. Nếu động cơ đã nổ, đường IGT sẽ được nối sang vị trí After ST (sau khởi động) và việc hiệu chỉnh góc đánh lửa sớm sẽ được thực hiện bởi ECU. Chế độ sau khởi động: Khi động cơ đã khởi động xong, góc đánh lửa sớm sẻ được hiệu chỉnh theo công thức: Trong đó, góc đánh lửa hiệu chỉnh () là tổng của tất cả các góc đánh lửa theo các điều kiện làm việc của động cơ: - Hiệu chỉnh theo nhiệt đọ nước làm mát của động cơ. - Hiệu chỉnh theo sự ổn định của động cơ trong chế độ cầm chừng. - Hiệu chỉnh theo sự kích nổ. - Hiệu chỉnh theo nhiệt độ của khí nạp. - Hiệu chỉnh theo các điều kiện khác (như điều kiện khí thải, chế đọ ga tự động, chế độ vượt tốc, quá trình thay đổi lực kéo của động cơ khi xe có hiện tượng trượt). Tùy loại động cơ mà một số chức năng hiệu chỉnh của ECU có hoặc không. Ví dụ chức năng hiệu chỉnh góc đánh lửa theo sự kích nổ, theo sự trượt của xe cũng chỉ có ở các loại xe sang. Để ngăn ngừa các trường hợp xấu ảnh hưởng đến hoạt động và tuổi thọ của động cơ do đánh lửa quá sớm hoặc quá trể, ECU chỉ thực hiện việc chỉnh góc đánh lửa sớm (bao gồm +) trong giới hạn từ 10o đến 45o trước tử điểm thượng. Hiệu chỉnh góc đánh lửa sớm theo nhiệt độ của động cơ: Tùy thuộc vào nhiệt độ của động cơ được nhận biết từ cảm biến nhiệt độ nước làm mát mà góc đánh lửa sớm được hiệu chỉnh tăng hoặc giảm cho thích hợp với điều kiện cháy của hòa khí trong buồng đốt. Khi nhiệt độ của động cơ nằm trong khoảng -20o đến 60o thì góc đánh lửa sớm được thực hiệu chỉnh sớm hơn từ 0o đến 15o (hình 4.44). Sở dĩ phải tăng góc đánh lửa sớm khi động cơ nguội là vì ở nhiệt độ thấp tốc độ cháy chậm, nên phai kéo dài thời gian để nhiên liệu cháy hết nhằm tăng hiệu suất động cơ. Khi nhiệt độ động cơ nằm trong khoảng từ 60o đến 110oC, ECU không thực hiện sự hiệu chỉnh góc đánh lửa sớm theo nhiệt độ. 0 5o 15o giảm tăng -20 60 110 to dc( oC) Hình 3.29: Hiệu chỉnh góc đánh lửa sớm theo nhiệt độ động cơ Trong tường hợp động cơ quá nóng (over temperature) (>110o) sẽ dễ gây ra hiện tượng kích nổ và tăng hàm lượng NOx trong khí thải, vì vậy ECU sẽ điều khiển giảm góc đánh lửa xuống một góc tối đa là 5o. Hiệu chỉnh góc đánh lửa sớm theo sự ổn định của động cơ ở chế độ cầm chừng: Ở chế độ cầm chừng tốc động cơ bị dao động do tải của động cơ thay đổi, việc hiệu chỉnh góc đánh lửa sớm có tác dụng làm ổn định tốc độ động cơ. n(min-1) Giảm 0 Tăng Hình 3.30: Hiệu chỉnh góc đánh lửa sớm theo sự ổn định của động cơ ở chế độ cầm chừng Khi cánh bướm ga đóng hoàn toàn, tín hiệu từ công tắc cánh bướm ga (hoặc cảm biến vị trí bướm ga) báo về ECU cho biết động cơ đang làm việc ở chế cầm chừng, kết hợp với tín hiệu tốc độ động cơ (NE) và tốc đọ xe, ECU sẽ điều khiển giảm góc đánh lửa sớm và ngược lại. Góc hiệu chỉnh tối đa trong trường hợp này là ± 5o. Khi tốc độ tăng cao, ECU sẽ không hiệu chỉnh. Trên một số loại động cơ việc hiệu chỉnh góc đánh lửa sớm này phụ thuộc vào điều kiện sử dụng máy lạnh hoặc chỉ hiệu chỉnh góc đánh lửa sớm khi tốc độ cầm chừng bị giảm xuống dưới mức quy định. 3.4.2. Điều khiển kim phun 3.4.2.1. Hoạt động của kim phun Trong quá trình hoạt động của động cơ, ECU liên tục nhận được những tín hiệu đầu vào từ các cảm biến. Qua đó, ECU sẻ tính ra thời gian mở kim phun. Quá trình mở và đóng của kim phun diễn ra ngắt quảng. ECU gởi tín hiệu đến kim phun trong bao lâu phụ thuộc vào độ rộng xung. Hình 3.39, cho thấy độ rộng xung thay đổi tùy theo chế độ làm việc của động cơ. Giả sử cánh bướm ga mở lớn khi tăng tốc thì cần nhiều nhiên liệu hơn. Do đó ECU sẻ tăng chiều dài xung. Điều này có nghĩa là ti kim sẻ giữ lâu hơn trong mỗi lần phun để cung cấp một lượng nhiên liệu. Khởi động lạnh Chạy với điều kiện lạnh Chạy với điều kiện ấm Chạy sau hành trình dài Tăng tốc Cánh bướm ga đóng kín Cầm chừng nóng Hình 3.31: Xung điều khiển kim phun ứng với từng chế độ làm việc của động cơ Nếu ta gọi: Q: Lượng nhiên liệu phu ra khỏi kim. T T: Chu kỳ xung. : Độ dài xung. Thì Q sẽ được tính bởi công thức 3.4.2.2. Sơ đồ mạch điện điều khiển kim phun Kim phun được xem là cơ cấu chấp hành và được ECU động cơ trực tiếp điều khiển. Sau khi nhận các tín hiệu đầu vào ECU sẻ tính toán lượng nhiên liệu cần thiết cho động cơ và điều khiển lưu lượng nhiên liệu phun vào động cơ bằng cách điều khiển thời gian mở kim phun. Có hai phương pháp điều khiển kim phun: Phương pháp điều khiển bằng dòng điện và phương pháp điều khiển bằng điện áp. Hiện nay, hầu hết các xe trên thị trường đều sử dụng phương pháp điều khiển bằng điện áp. Hình 3.19 thể hiện mạch điện điều khiển kim phun nhiên liệu trên động cơ theo phương pháp điều khiển bằng điện áp. No.10 No.20 E01 E02 Kim phun Engine ECU Tr Điện trở phụ Công tắc máy Hình 3.32: Mạch điện điều khiển kim phun theo phương pháp điện áp Khi kim phun điều khiển bằng điện áp thì xung kim phun có dạng như hình 4.47 với t là thời gian nhất kim ( thời gian phun nhiên liệu). V 80 70 60 50 40 30 20 10 0 -10 -20 -15 -10 -5 0 5 10 15 20 25 30 ms X=980mV,0=66.17V,x0=65.19V Hình 3.33 : Dạng xung của kim phun 3.4.2.3. Chức năng của ECU trong việc điều khiển kim phun Điều khiển thời gian phun nhiên liệu: Thời gian phun nhiên liệu thực tế được xác định bởi hai đại lượng: tb: Thời gian phun cơ bản (dựa chủ yếu vào lượng khí nạp và tốc độ động cơ). tc: Thời gian điều chỉnh ( dựa vào các cảm biến còn lại) tc+ tb=ti Tuy nhiên, trong quá trình khởi động động cơ thời gian phun nhiên liệu được xác định theo cách khác, bởi vì lượng khí nạp không ổn định. TW Cắt nhiên liệu Làm giàu khi tăng tốc lúc hâm nóng Làm giàu khởi động Làm giàu sau khởi động Làm giàu khi hâm nóng Làm giàu lúc tải lớn tc tb ti Kim phun NE TA Điện áp Cảm biến lưu lượng gió IDL ST PSW Hình 3.34: Điều khiển thời gian phun nhiên liệu Lượng nhiên liệu phun vào một xy lanh: Với là tỷ lệ hòa khí mong muốn. khối lượng không khí đi vào mỗi xylanh Thời gian mởi kim phun căn bản sẽ phụ thuộc vào lưu lượng của kim phun : Nếu bộ điều áp (pressure regulator) được sử dụng, sẽ gần như là một hằng số nhờ sự chênh lệch áp suất nên trên ống dẫn xăng đến đầu kim phun và đuôi kim phun (áp suất trên đường ống nạp) không đổi. Trên một số xe không suer dụng điều áp, bản đồ sư phụ thuộc của lưu lượng kim phun vào áp suất tuyệt đối trên đường ống nạp phải được ghi vào EPROM. Như vậy, để xác định thời gian phun cơ bản, EPROM trong ECU dùng với cảm biến MAP, ngoài giá trị còn phải nhớ các biểu thức để tính toán dựa trên các cảm biến đã nêu. Sau 2 vòng quay của trục khuỷu động cơ, ECU sẽ lặp lại các phép tính nêu trên. Điều khiển kim phun khi khởi động Trong quá trình khởi động, rất khó xác định chính xác lượng khí nạp vào do có sự thay đổi lớn về tốc độ động cơ. Vì lí do này, ECU lấy từ trong bộ nhớ thời gian phun cơ bản cho phù hợp với nhiệt độ động cơ không tính đến lượng khí nạp vào. Sau đó cộng them thời gian hiệu chỉnh theo nhiệt độ khí nạp và điện áp ắc qui để tạo ra thời gian phun thực tế ti. tc1 tc2 tc1 tb tb tb Lượng phun cơ bản theo nhiệt độ nước Lượng phun hiệu chỉnh theo nhiệt độ khí nạp Lượng phun hiệu chỉnh theo điện áp accu Hình 3.35: Điều khiển kim phun khi khởi động Điều khiển sau khởi động: Sau thời gian khởi động động cơ, ECU sẽ xác định thời gian phu bằng cách: Trong đó chịu ảnh hưởng bởi: Nhiệt độ nước làm mát, nhiệt độ khí nạp, cảm biến bướm ga. : Chịu ảnh hưởng bởi tín hiệu lưu lượng gió và tốc độ của động cơ. Thời gian phun cơ bản: Loại D-jetronic dùng MAP sensor. Thời gian phun cơ bản được xác định bởi áp suất đường ống nạp và tốc độ động cơ. Bộ nhớ bên trong của ECU chứa dữ liệu về thời gian phun cơ bản khác nhau. Loại này dùng cảm biến đo lưu lượng gió (ari flow meter): thời gian phun cơ bản được xác định bởi thể tích của lượng khí đi vào và tốc độ động cơ: Trong đó: : lượng khí nạp, : Tốc độ động cơ, : hệ số điều chỉnh. 3.4.2.4. Sự hiệu chỉnh thời gian phun. ECU luôn được thông báo về điều kiện vận hành của động cơ mọi lúc bằng những tín hiệu từ cảm biến và hình thành xung hiệu chỉnh khác nhau trong thời gian phun thực tế của động cơ. Sự hiệu chỉnh theo nhiệt độ khí nạp. K 1.0 Low 20o Hight to nước làm mát Hệ số hiệu chỉnh Hình 3.36: Đặc tính hiệu chỉnh bởi nhiệt độ khí nạp Một số khí nạp thay đổi theo nhiệt độ. Vì lý do này, ECU phải biết thật chính xác về nhiệt độ khí nạp để có thể điều chỉnh thời gian phun nhằm duy trì tỉ lệ hòa khí mà động cơ yêu cầu. ECU xem 20oC là nhiệt độ chuẩn và tăng giảm lượng nhiên liệu phụ thuộc vào thay đổi nhiệt độ khí nạp so với nhiệt độ này. Sự hiệu chỉnh dẫn đến sự tăng hoặc giảm lượng phun nhiên liệu tối đa vào khoảng 10% ( Đối với loại đo gió kiểu Karman có thể tới 20%). Sự làm giàu nhiên liệu khi khởi động: K 1.0 Low 60o Hight to nước làm mát Hệ số hiệu chỉnh Hình 3.37: Sự hiệu chỉnh làm giàu sau khi khởi động Ngày nay khi khởi đông, ECU điều khiển phun them một lượng nhiên liệu phu trong một giai đoạn xác đinh trước, để hỗ trợ việc ổn định sự vận hành của động cơ. Sự hiệu chỉnh làm giàu sau khởi động ban đầu này được xác định bởi nhiệt độ nước làm mát. Khi nhiệt độ thấp sự làm giàu về cơ bản sẽ tăng gấp đôi số lượng nhiên liệu phun vào. K 1.0 Thấp 60o Cao to nước làm mát Sự làm giàu hâm nóng: Hình 3.38: Sự làm giàu hâm nóng Khi sự bốc hơi nhiên liệu không tốt lúc trời lạnh, động cơ sẽ hoạt động không ổn định nếu không được cung cấp một hỗn hợp giàu xăng. Vì lý do này, khi nhiệt độ làm mát thấp, cảm biến nhiệt độ gởi tín hiệu đến ECU để hiệu chỉnh tăng lượng nhiên liệu phun, cho đến khi nhiệt độ đạt đến nhiệt độ đã được xác định trước (60o). Sự làm giàu đầy tải: Khi động cơ hoạt động ở chế độ đầy tải, lượng nhiên liệu phun vào tăng lên tùy theo tải để đảm bảo sự vận hành của động cơ. Tùy theo loại động cơ mà tín hiệu đầy tải được láy từ góc mở của bướm ga (loại tuyến tính) hay thể tích khí nạp. Sự làm giàu này có thể tăng 10-30% tổng lượng nhiên lieu. Sự hiệu chỉnh tỉ lệ hòa khí trong quá trình thay đổi tốc độ: Quá trình này thay đổi tốc độ ở đây có nghĩa là lúc động cơ tăng hoặc giảm tốc. Trong suốt quá trình thay đổi, lượng nhiên liệu phun vào phải được tăng hay giảm đểm đảm bảo sự vận hành chính xác của động cơ. Sự hiệu chỉnh khi tăng tốc: Khi ECU nhận ra sự tăng tốc của động cơ dựa tín hiệu từ cảm biến bướm ga, lượng nhiên liệu phun được tăng lên để cải thiện sự hoạt động tăng tốc của động cơ. Sự hiệu chỉnh khi giảm tốc: Khi ECU nhận ra sự giảm tốc, nó giảm lượng nhiên liệu phun vào khi cần thiết để ngăn ngừa hỗn hợp quá đậm trong suốt quá trình giảm tốc. Sự cắt nhiên liệu: Cắt nhiên liệu khi giảm tốc: Trong suốt quá trình giảm tốc độ nếu bướm ga đóng hoàn toàn, ECU ngắt kim phun để cải thiện tính kinh tế nhiên liệu và giảm đáng kể lượng khí thải. Khi tốc độ động cơ giảm xuống dưới một tốc độ ấn định hoặc cánh bướm ga mở, nhiên liệu được phun trở lại. Tốc độ động cơ ngắt nhiên liệu và tốc độ động cơ khi phun nhiên liệu trở lại sẽ cao hơn khi nhiệt độ nước làm mát thấp như trên đồ thị: Phun trở lại n 2000 Thấp to nước làm mát Cao Cắt nhiên liệu Hình 3.39: Đồ thị biểu diễn sự cắt nhiên liệu Cắt nhiên liệu tại tốc độ động cơ cao: Để ngăn ngừa động cơ vượt tốc, kim phun sẽ ngừng phun nếu tốc độ động cơ tăng lên trên mức giới hạn. Sụ phun nhiên liệu được phục hồi khi tốc độ động cơ giảm xuống dưới giới hạn. Sự hiệu chỉnh theo điện áp ắc qui: K 1.0 Low 14V Hight Điện áp ECU Hình 3.40: Hiệu chỉnh lượng phun theo điện áp Có một sự trì hoãn giữa thời gian mà ECU gởi tín hiệu đến kim phun và thời gian phu thực tê. Sự trì hoãn càng dài thì thời gian mở của kim phun càng ngắn so với lượng đã tính toán trong ECU và lượng nhiên liệu phu bị giảm đi một ít, không đủ đáp ứng chế độ tỉa củ động cơ. Do đó, cần phải có sự hiệu chỉnh thời gian nhấc kim theo điện áp. Trong khi hiệu chỉnh theo điện áp, ECU bù trừ cho sự trì hoãn này bằng cách kéo dài thời gian tín hiệu mở kim phun thêm một đoạn tùy theo độ dài của đoạn trì hoãn. 3.4.3. Điều khiển chế độ không tỉa (cầm chừng) và kiểm soát khí thải Để điều chỉnh tốc độ cầm chừng, người ta cho thêm một lượng gió đi tắt qua cánh bướm ga vào động cơ nhằm tăng lượng hỗn hợp để giữ tốc độ cầm chừng khi động cơ hoạt động ở các chế độ tải khác nhau. Lượng gió đi tắt này được kiểm soát bởi một van điện gọi là van điều khiển cầm chừng. Đôi khi biện pháp mở them cánh bướm ga cũng được sử dụng. Chế độ khởi động Khi động cơ ngừng hoạt động, tức không có tín hiệu tốc độ động cơ gởi đến ECU thì van điều khiển mở hoàn toàn, giúp động cơ khởi động lại dể dàng. Nhờ thiết lập trạng thái khởi động ban đầu, việc khởi động dễ dàng và lượng gió phụ vào nhiều hơn. Tuy nhiên khi động cơ đã nổ (tốc độ tăng) nếu van vẫn mở lớn hoàn toàn thì tốc độ động cơ sẻ tăng quá cao. Vì vậy, khi động cơ đạt được một tốc độ nhất đinh (phụ thuộc vào nhiệt độ nước làm mát), ECU gởi tín hiệu đến van điều khiển cầm chừng để đóng từ vị trí mở hoàn toàn đến vị trí được ấn định theo nhiệt độ nước làm mát. B A 20o to nước %độ mở 100% Hình 3.41: Điều khiển cầm chừng ở chế độ sau khởi động Ví dụ động cơ khởi động khi nhiệt độ nước là mát ở 20oC thì van điều khiển sẽ đóng dần từ vị trí mở hoàn toàn A đến điểm B để đạt tốc độ ấn định: Chế độ hâm nóng Khi nhiệt độ động cơ tăng lên van điều khiển tiếp tục đóng từ B →C cho đến khi nhiệt độ nước làm mát đạt ở 80oC. C 80o B A 20o to nước %độ mở 100% Hình 3.42: Điều khiển cầm chừng ở chế độ hâm nóng Chế độ máy lạnh Khi động cơ đang hoạt động, nếu ta bật điều hòa nhiệt độ, do tải của máy nén lớn sẽ làm tốc độ cầm chừng động cơ tụt xuống. Nếu sự chênh lệch tốc độ thật sự của động cơ và tốc độ ổn định của bộ nhớ lớn hơn 20v/p thì ECU sẽ gởi tín hiệu đến van điều khiển để tăng lượng khí thêm vào qua đường bypass nhằm mục đích tăng tốc độ động cơ khoảng 100v/p. Ở những xe có trang bị ly hợp máy lạnh điều khiển bằng ECU , khi bật công tắc máy lanh ECU sẽ gởi tín hiệu tới van điều khiển trước để tăng tốc độ cầm chừng sau đó đến ly hợp máy nén để tránh tình trạng động cơ đang chạy bị khựng đột ngột. Theo tải máy phát Khi bật các phụ tải điện công suất lớn trên xe, tải động cơ sẽ tăng do lực cản của máy phát lớn. Để tốc độ cầm chừng ổn định trong trường hợp này, ECU sẽ bù thêm nếu thấy tải của máy phát tăng. Tín hiệu từ hộp số tự động Khi tay số ở vị trí “R”, “P” hoặc “D”, một tín hiệu điện áp được gửi về ECU để điều khiển mở van cho một lượng khí phụ vào làm tăng tốc độ cầm chừng. 3.5. Hệ thống tự chuẩn đoán 3.5.1. Tổng quan về hệ thống tự chuẩn đoán Những ECU trên tất cả các loại động cơ ngày nay đều có hệ thống tự chuẩn đoán để kiểm tra hầu hết các mạch tín hiệu vào vủa hệ thống điều khiển động cơ. Khi ECU phát hiện lỗi, nó điều khiển đèn kiểm tra sang để cảnh báo lái xe biết được hệ thống đang bị lỗi. Đồng thời ECU sẽ lưu mã lỗi đó vào trong bộ nhớ để người sửa chữa có thể xác định được mã lỗi để tiến hành sửa chữa. Nếu các lỗi mạch điện khác xảy ra thì đèn sẽ tắt. Tuy nhiên mã lỗi sẽ được lưu lại trong bộ nhớ của ECU ngay cả khi công tắt máy OFF. Đối với hầu hết các loại động cơ, để đọc lỗi từ bộ nhớ có thể thực hiện bằng cách nối cực T (hoặc TE1) và E1 với nhau và có thể đếm số lần chớp của đèn kiểm tra. Sauk hi sửa chữa chúng ta phải xóa các mã lỗi trong bộ nhớ của ECU bằng cách ngắt điện đến cực BATT của ECU . 3.5.2. Nguyên lý phát hiện lỗi Hệ thống phát hiện lỗi ECU là chương trình nhận những giá trị tín hiệu cảm biến so sánh với giới hạn cho phép, nếu nằm trong giới hạn này thì hệ thống bình thường, ngược lại nếu nằm ngoài giới hạn này thì hệ thống bị lỗi. Giới hạn tín hiệu bình thường dùng đễ xác định lỗi hầu hết các cảm biến theo giới hạn hoạt động của tín hiệu cảm biến. Ngay khi tín hiệu cảm biến nằm trong giới hạn này thì ECU cho biết hệ thống bình thường. Với nguyên lý trên, khi cảm biến phát ra một tín hiệu này không đúng với điều kiện hoạt động thực tế thì ECU cũng không thể phát hiện được. -60o F Khoảng hoạt động bất thường Khoảng hoạt động bất thường B Khoảng hoạt động bình thường Nhiệt độ (oF) 5 4.8 4 3 2 1 0.1 0 A 280o F Điện áp THW(V) Hình 3.43: Nguyên lý phát hiện lỗi của cảm biến nhiệt độ động cơ Hình trên biểu diễn giới hạn phát hiện lỗi thông số của tín hiệu THW. Điểm A là nhiệt độ hoạt động bình thường và nằm trong vùng giới hạn bình thường. Điểm B hiển thị điểm đông đặc của nước và cũng là giới hạn bình thường. Nếu động cơ đang hoạt động ở nhiệt độ bình thường nhưng tín hiệu THW gởi đến ECU là nhiệt độ đông đặc (tại điểm B), động cơ sẻ hoạt động với hỗn hợp rất giàu và có thể không khởi động được khi động cơ nóng. Bởi điểm B nằm trong vùng hoạt động bình thường ECU sẽ không phát hiện được lỗi này. Vì vậy, không có mã lỗi được phát hiện trong trường hợp này. 3.5.3. Phương pháp truy xuất mã lỗi Tùy theo loại xe mà giắc chuẩn đoán được bố trí khác nhau. Ví dụ, đối với hầu hết các xe Toyota chúng ta có thể thực hiện hai quy trình sau: - Normal mode: cố sẽ chớp theo những chuỗi khác nhau, mỗi chuỗi chớp ứng với một mã số hư hỏng. -Test mode: Dùng để phát hiện các lỗi mạch điện chập chờn mà chế độ normal mode rất khó phát hiện được. Trong chế độ chẩn đoán này động cơ không báo mã lỗi mà chỉ báo có lỗi xảy ra trong hệ thống. Nếu muốn xác định mã lỗi ta quay lại chế độ Normal mode. Đối với Toyota có hai cách hiển thị mã lỗi qua đèn check Để xác định hư hỏng ở các bộ phận xe. Nếu xe có sự cố ở bộ phận nào của hệ thống điều khiển động cơ thì đèn báo sự engine lamp. Kiểu hiện thị 1-digit và kiểu 2-digit. Kiểu 1-digit Nếu hệ thống bình thường đèn check engine chớp liên tục với tần số khoảng 2 lần/giây. Còn nếu có sự cố trong hệ thống đèn chớp theo nguyên tắc sau: - Thời gian đèn sang trong khoảng 0.5s - Thời gian nghỉ giữa 2 lần chớp khoảng 0.5s - Thời gian nghỉ giữa 2 mã lỗi là 2.5s - Thời gian nghỉ giữa 2 chu kỳ là 4.5s Code 3 Code 4 0,5s 0,5s 2,5s 4,5s Hình 3.44: Biểu diễn mã lỗi kiểu 1 digit Kiểu 2-digit Nếu hệ thống bình thường đèn check engine chớp liên tục với tần số khoảng 2 lần/giây. Còn nếu có sự cố trong hệ thống đèn chớp theo nguyên tắc sau: - Thời gian đèn sang trong khoảng 0.5s - Thời gian nghỉ giữa 2 lần chớp khoảng 0.5s - Thời gian nghỉ giữa lần chớp hang chục và hàng đơn vị khoảng 1.5s - Thời gian nghỉ giữa 2 mã lỗi 2.5s - Thời gian nghỉ giữa 2 chu kỳ 4.5s 0,5s 0,5s Code 12 Code 22 1,5s 2,5s 4,5s Hình 3.45: Biểu diễn mã lỗi kiểu 2 digit Nếu hệ thống chỉ có một sự cố thì các mã này sẽ lặp lại sau khoảng nghỉ 4.5s. Nếu có nhiều sự cố thì hệ thống chẩn đoán sẽ phát lần lượt các mã số sự cố thấp đến cao. Khoảng nghỉ giữa sự cố này với sự cố kia là 2,5s. Sau khi phát hết lần lượt các mã sự cố đèn sẽ tắt 4.5s và lại lần lượt phát lại các mã số cho đến khi nào ta rút giây nối tắt lỗ E1 và TE1 ở giắc kiểm tra. Ngày nay, việc chẩn đoán có thể không bóa bằng đèn check engine mà được hiển thị bằng máy quét mã lỗi (scanner). Khi thực hiện thao tác chẩn đoán thì trên màn hình máy quét sẽ báo cả tên các mã sự cố. Ngoài ra, máy quét còn có thể chẩn đoán qua các dữ liệu của động cơ. 4. THIẾT KẾ MẠCH GIAO TIẾP VI ĐIỀU KHIỂN P89V51RD2 VÀ ECU ĐỘNG CƠ 4.1. Cơ sở giao tiếp Như phần trên đã trình bày, trong một số động cơ EFI có báo mã lỗi theo phương pháp nháy đèn báo, nếu vi điều khiển đọc được tín hiệu điều khiển đèn báo của ECU, ta hoàn toàn có thể xác định được mã lỗi báo về dựa vào cách thức báo lỗi. Lúc này, tín hiệu điều khiển ra (output) của ECU (điều khiển đèn báo) sẽ trở thành tín hiệu vào (input) đối với vi điều khiển. Thông thường, mức điện áp để đèn báo sang là mức 12V, vì vậy muốn đọc tín hiệu này phải qua một mạch chuyển mức logic 5V để tương thích với chuẩn TTL của VĐK. Thông thường, các tín hiệu báo bằng số lần nhấp nháy đèn và khoảng thời gian giữa các lần nháy tuân theo 1 chuẩn cố định. Tuỳ theo kiểu báo 1 Digit hoặc 2 Digit mà sẽ có khoảng thời gian trống giữa các digit là xác định. Dựa vào cơ sở này ta có thể đọc lại các digit và tăng các biến đếm lên để có thể lưu digit đọc được vào trong RAM, sau đó dựa vào kết quả để viết chương trình xuất ký tự ra màn hình LCD. Ví dụ sau đây mô tả một đoạn chương trình con đơn giản đọc 1 digit và xuất ra LCD: ;--------------------------------- CHECK_ENGINE BIT P1.3 ; tín hiệu check_engin đọc vào chân P1.3 START_KIEMTRA: JB CHECK_ENGINE, START_KIEMTRA INC DIGIT ; Tăng biến đếm lên CALL DELAY1,2s ; DELAY 1,2 S KIEM_TRA_DEN: JB CHECK_ENGINE, THOAT_KIEMTRA INC DIGIT CALL DELAY1S JMP KIEM_TRA_DEN THOAT_KIEMTRA: CALL HIEN_THI_LCD Giải thích: Giả sử các tín hiệu đèn báo cách nhau 0,5s . Trước tiên ta kiểm tra bắt đầu quá trình báo đèn check_engine : - Nếu đèn Check Engine không báo , tức là không có sự chuyển mức từ 1 về 0 thì tiếp tục kiểm tra. - Nếu đèn Check Engine báo, tức là bắt đầu kiểm tra. Delay 1 khoảng thời gian 1,2s để kiểm tra. - Nếu đèn Check Engine không báo ( đang còn ở mức 1) thì thoát khỏi chương trình kiểm tra. - Nếu đèn Check Engine báo ( mức 0 ) thì tăng biến đếm sau đó delay 1 khoảng thời gian 1s và tiếp tuc trở lại kiểm tra cho đến khi đèn check engine không báo nữa thì thoát ra ngoài vòng kiểm tra và hiển thị kết quả ra LCD. 4.2. Phương án thiết kế P89V51RD2 là bộ vi điều khiển mạnh trong họ 8051 do hãng Philips sản xuất. Với dung lượng bộ nhớ lớn (64Kbyte Flash và 1Kbyte RAM), tích hợp dãi đếm lập trình được PCA, chức năng Watchdog chống treo vi điều khiển,độ ổn định cao, tin cậy.. P89V51RD2 là chip khá thông dụng ở Việt Nam, có thể mua dễ dàng. ADC0809 là một thiết bị CMOS tích hợp với một bộ chuyển đổi từ tương tự sang số 8 bit, bộ chọn 8 kênh và một bộ logic điều khiển tương thích. Bộ chuyển đổi AD này dùng phương pháp chuyển đổi xấp xỉ liên tiếp. Bộ chọn kênh có thể truy xuất bất cứ kênh nào trong các ngõ vào tương tự một cách độc lập. Sử dụng LCD 16x2 để làm thiết bị hiển thị. Vì vậy sử dụng P89V51RD2 kết hợp với ADC0809 và LCD là giải pháp thuận lợi và tiết kiệm nhất trong phạm vi đề tài mà vẫn đảm bảo được các yêu cầu đặt ra của đề tài. 4.4. Sơ đồ mạch tổng thể của thiết bị hiển thị mã lỗi Hình 4.1: Sơ đồ nguyên lý mạch hiển thị 4.5. Giới thiệu động cơ thử nghiệm Động cơ đang khảo sát là động cơ 4A - FE được lắp trên xe TOYOTA Đây là loại động cơ thuộc thế hệ mới, có: - Bốn xy lanh thẳng hàng - Có hệ thống phun xăng điện tử EFI - Thứ tự làm việc các xilanh 1-3-4-2 - Các thông số kỹ thật của động cơ: + Công suất cực đại: Memax(n=6000v/p)=69[KW] + Mômen xoắn cực đại: Mxmax(n=4000v/p)=127[Nm/v.p] + Tỷ số nén: + Dung tích động cơ: 1587[cm3] + Hành trình piston: S=77[mm] + Tiêu hao nhiên liệu: 5.8/7,4/8,6lít/100[Km] Sơ đồ mạch điện Hình 4.2: Sơ đồ mạch điện tổng quát trên xe TOYOTA 4A-FE 5. CHƯƠNG TRÌNH GIAO TIẾP ECU VÀ HIỂN THỊ MÃ LỖI LÊN LCD 5.1. Lưu đồ thuật toán Hình 5.1: Lưu đồ thuật toán chương trình chính Hình 5.2: Lưu đồ thuật toán chương trình con 5.2. Chương trình ;---------------------------------------------------------------------------- ;---Chuong trinh dieu khien he thong quet ma loi---------------- ;-----------------dong co TOYOTA----------------------------------- ;-----------------KHAI BAO CAC I/O------------------------------------ ;--INPUT------------------------------ CT_START BIT P3.7 ; công tắc để bắt đầu việc giao tiếp CT_IDL BIT P3.6 ; công tắc không tải SPEED BIT P1.3 ; đầu vào cảm biến tốc độ KT BIT P3.5 ; đầu vào để nhận biết tín hiệu đèn CHECK_ENGINE ;---------------------------------------- ;---DIEU KHIEN ADC--------------- ; khai báo các chân điều khiển ADC ALE BIT P1.4 OE BIT P1.5 START_ADC BIT P1.6 EOC BIT P3.3 ADC_DATA EQU P2 ;---------------------------------------- ;--DIEU KHIEN LCD---------------- RS BIT P1.0 RW_LCD BIT P1.1 EN_LCD BIT P1.2 DATA_LCD EQU P0 ;----------------------------------------- TIME EQU 30H CODE_NUMBER EQU 31H DIGIT1 EQU 32H DIGIT2 EQU 33H NUM_DIS EQU 34H NUM_CHAR EQU 35H ;***************************** ;** BAT DAU CHUONG TRINH **** ;***************************** ORG 0000H ; điểm nhập của chương trình khi reset LJMP MAIN ; nhảy đến chương trình chính ;------------------------------------------------------------------ ORG 0030H MAIN: MOV P2,#0FFH MOV P3,#0FFH MOV TMOD,#11H MOV IE,#8AH CLR IE.7 ;CAM NGAT LCALL CHECK_ERROR ; gọi chương trình kiểm tra lỗi SJMP $ ;------------------------------------------------------- INIT_LCD: ; chương trình con để khởi động LCD CLR RS CLR RW CLR EN_LCD SETB EN_LCD MOV DATA_LCD,#28h CLR EN_LCD LCALL WAIT_LCD MOV A,#28H LCALL WRITE_TO_LCD LCALL WAIT_LCD MOV A,#0EH LCALL WRITE_TO_LCD LCALL WAIT_LCD MOV A,#06H LCALL WRITE_TO_LCD LCALL WAIT_LCD RET ;---------------------------------- CHECK_ERROR: ; chương trình con kiểm tra lỗi MOV CODE_NUMBER,#1 ; Đọc code 1 JB NUT_START,$ ; chờ nút Start thì bắt đầu JB KT,$ ; chờ tín hiệu đèn CHECK_ENGINE STEP0: ; nếu đèn báo được tác động, KT = 0 MOV DIGIT1,#0 ; ban đầu giá trị digit 1 và digit 2 là 0 MOV DIGIT2,#0 LCALL READ_CODE ; gọi chương trình con đọc 2 digit trong mỗi code MOV TIME,#20 LCALL DELAY100MS ; DELAY 2S ; delay 2s để đọc code khác STEP1: JB KT,FINISH ; nếu không có đèn báo thì đã hoàn thành INC CODE_NUMER ; nếu có đèn báo thì tiếp tục đọc code tiếp theo LJMP STEP0 ;-- FINISH: LCALL DISPLAY_THONGBAO ; hiển thị thông báo có lỗi hay không LCALL DISPLAY_KETQUA ; hiển thị lỗi nếu có RET ; quay về chương trình chính ;-------------------------------------------- READ_CODE: INC DIGIT1 MOV TIME,#5 ; delay 0,5s để đếm số lần chớp đèn của một code LCALL DELAY100MS JNB KT,READ_CODE ; nếu có đèn báo thì tiếp tục đếm MOV TIME,#10 ; nếu không có đèn báo thì delay1s để chuyển digit thứ 2 LCALL DELAY100MS JB KT,EXIT_READCODE ; nếu không có đèn báo có nghĩa là hết 1 code READ_DIGIT2: INC DIGIT2 MOV TIME,#5 LCALL DELAY100MS; DELAY 0,5S JNB KT,READ_DIGIT2 EXIT_READCODE: MOV A,DIGIT1 SWAP A ANL A,#11110000B ORL A,DIGIT2 MOV R7,CODE_NUMBER MOV @R1+50H,A ;LUU CODE RET ;--------------------------------------------------- DISPLAY_THONGBAO: PUSH ACC MOV A,51H CJNE A,#80H,BAO_LOI MOV DPTR,#TEXT_OK LCALL DISPLAY_TEXT LJMP THOAT_THONGBAO BAO_LOI: MOV A,CODE_NUMBER LCALL CONVERT_BCD8BIT_TO_DECIMAL MOV DPTR,#THONG_BAO1 LCALL DISPLAY_TEXT LCALL DISLAY_CODE_NUMBER MOV DPTR,#THONG_BAO2 LCALL DISPLAY_TEXT THOAT_THONGBAO: RET ;---------------------------------------------- CONVERT_BCD8BIT_TO_DECIMAL: ;chuyển số BCD 8 bit về thập phân MOV B,#100 DIV A,B MOV SO_HANG_TRAM,A MOV A,B MOV B,#10 DIV A,B MOV SO_HANG_CHUC,A MOV SO_HANG_DONVI,B RET ;---------------------------------------------- DISPLAY_TEXT: MOV NUM_CHAR,#0 LOOP_DISPLAY: MOV A,NUM_CHAR MOV A,@A+DPTR CJNE A,#00H,TIEP_TUC LJMP THOAT_DISPLAY_TEXT INC NUM_CHAR SETB RS LCALL WRITE_TO_LCD LJMP LOOP_DISPLAY THOAT_DISPLAY_TEXT: RET ;---------------------------------------------- DISLAY_CODE_NUMBER: ; hiển thị số lỗi (số code) xuất hiện MOV A,SO_HANG_TRAM ADD A,#30H SETB RS LCALL WRITE_TO_LCD MOV A,SO_HANG_CHUC ADD A,#30H SETB RS LCALL WRITE_TO_LCD MOV A,SO_HANG_DONVI ADD A,#30H SETB RS LCALL WRITE_TO_LCD RET ;---------------------------------------------- DISPLAY_KETQUA: ; hiển thị lỗi từ mỗi code MOV R1,#0 DIS_KQ0: MOV A,@R1+50H LCALL GIAI_MA_HIEN_THI ; giải mã xem mỗi code tương ứng lỗi gì INC R1 CJNE R1,CODE_NUMBER,DIS_KQ0 THOAT: MOV DPTR,#TEXT_FINISH ; hiển thị việc hoàn thành kiểm tra LCALL DISPLAY_TEXT RET ;----------------------------------------------- GIAI_MA_HIEN_THI: CJNE A,#12H,MA2 MOV DPTR,#ERROR1 LCALL DISPLAY_TEXT LJMP THOAT_GMHT MA2: CJNE A,#13H,MA3 MOV DPTR,#ERROR2 LCALL DISPLAY_TEXT LJMP THOAT_GMHT MA3: CJNE A,#14H,MA4 MOV DPTR,#ERROR3 LCALL DISPLAY_TEXT LJMP THOAT_GMHT MA4: CJNE A,#21H,MA5 MOV DPTR,#ERROR4 LCALL DISPLAY_TEXT LJMP THOAT_GMHT MA5: CJNE A,#22H,MA6 MOV DPTR,#ERROR5 LCALL DISPLAY_TEXT LJMP THOAT_GMHT MA6: CJNE A,#24H,MA7 MOV DPTR,#ERROR6 LCALL DISPLAY_TEXT LJMP THOAT_GMHT MA7: CJNE A,#31H,MA8 MOV DPTR,#ERROR7 LCALL DISPLAY_TEXT LJMP THOAT_GMHT MA8: CJNE A,#41H,MA9 MOV DPTR,#ERROR8 LCALL DISPLAY_TEXT LJMP THOAT_GMHT MA9: CJNE A,#42H,MA10 MOV DPTR,#ERROR9 LCALL DISPLAY_TEXT LJMP THOAT_GMHT MA10: CJNE A,#43H,MA11 MOV DPTR,#ERROR10 LCALL DISPLAY_TEXT LJMP THOAT_GMHT MA11: CJNE A,#52H,MA12 MOV DPTR,#ERROR11 LCALL DISPLAY_TEXT LJMP THOAT_GMHT MA12: THOAT_GMHT: RET ;----------------------------------------------- WRITE_TO_LCD: MOV DATA_LCD,A SETB EN_LCD CLR EN_LCD LCALL WAIT_LCD RET ;---------------------------------------------- WAIT_LCD: CLR RS SETB RW LCALL READ_LCD ORL A,#01111111B CJNE A,#01111111B,WAIT_LCD CLR RW RET ;---------------------------------------------- DELAY100MS: MOV TH0,#HIGH(-50000) MOV TL0,#LOW(-50000) CLR TF0 SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 MOV TH0,#HIGH(-50000) MOV TL0,#LOW(-50000) CLR TF0 SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ TIME,DELAY100MS RET ;---------------------------------------------- DELAYMS: MOV TH0,#HIGH(-1000) MOV TL0,#LOW(-1000) CLR TF0 SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ TIME,DELAYMS RET ;---------------------------------------------- TEXT_OK: DB 'NO PROBLEM',00H THONG_BAO1: DB 'CO',00H THONG_BAO2: DB 'LOI XUAT HIEN',00H ERROR1: DB 'TIN HIEU G HOAC NE KHONG VAO ECU SAU 2S HOAC LAU HON SAU KHI KHOI DONG',00H ERROR2: DB 'TIN HIEU G HOAC NE KHONG VAO ECU SAU 0,1 S HOAC LAU HON SAU DONG CO DAT TOC DO 1000 V/P HOAC CAO HON',00H ERROR3: DB 'TIN HIEU IGF TU HOP DIEU KHIEN DANH LUA KHONG HOI TIEP VE ECU SAU 4, 5 XUNG DANHS LUA',00H ERROR4: DB 'HO HAY NGAN MACH DAY BO SAY CAM BIEN OXY TRONG 0,5 S HOAC LAU HON',00H ERROR5: DB 'HO HAY NGAN MACH TIN HIEU CAM BIEN NHIET DO NUOC LAM MAT (THW)',00H ERROR6: DB 'HO HAY NGAN MACH TIN HIEU CAM BIEN NHIET DO KHI NAP (THA)',00H ERROR7: DB 'HO HAY NGAN MACH TIN HIEU CAM BIEN AP SUAT DUONG ONG NAP (PIM)',00H ERROR8: DB 'HO HAY NAGN MACH TIN HIEU CAM BIEN VI TRI BUOM GA (VTA)',00H ERROR9: DB 'KHONG CO TIN HIEU SPD DEN ECU TRONG8 S HOAC LAU HON SAU KHI XE CHAY',00H ERROR10: DB 'KHONG CO TIN HIEU STA DEN ECU SAU KHI BAT KHOA DIEN',00H ERROR11: DB 'KHI TOC DO DONG CO GIUA 1200 VA 6000 V/P, TIN HIEU TU CAM BIEN TIENG GO KHONG DEN ECU TRONG MOT KHOANG THOI GIAN NHAT DINH (KNK)',00H ;******************* END 6. QUY TRÌNH CHẨN ĐOÁN Việc kiểm tra và phát hiện hư hỏng của mỗi hệ thống trong động cơ EFI phải được thực hiện theo các yếu tố sau: đó là “áp suất nén cao”, “ Thời điểm đánh lửa tích hợp và tia lửa mạnh” và “ hỗn hợp khí – nhiên liệu tốt”. Cần phải xác định xem trục trặc có thực sự xảy ra trong hệ thống EFI hay không. Do vậy việc đầu tiên khi tiến hành kiểm tra là xác định xem trục trặc xảy ra ở hệ thống khởi động hay là chính động cơ, nó ảnh hưởng đến áp suất nén , hay hệ thống đánh lửa, nó nảh hưởng đến thời điểm đánh lửa thích hợp hay tia lửa. Sau đó mới kiểm tra hệ thống EFI, nó điều khiển hỗn hợp khí – nhiên liệu. Một yếu tố rất quan trọng trong việc chẩn đoán là trước tiên phải hiểu biết chính xác về các điều kiện xảy ra hư hỏng. Do đó đầu tiên phải lắng nghe các phản ánh của khách hàng và phân tích các thông tin theo trình tự. Hình 6.1. Quy trình chẩn đoán 7. KẾT LUẬN Sau thời gian tìm hiểu,tính toán thiết kế với sự hướng dẫn tận tình của thầy Phạm Quốc Thái cùng các quý thầy cô trong khoa Cơ khí giao thong, em đã hoàn thành đề tài tốt nghiệp: “ Thiết kế mạch giao tiếp giữa ECU và vi điều khiển để hiện lỗi động cơ ” . Cụ thể các vấn đề đã thực hiện: Mục đích đề tài Cơ sở lý thuyết về linh kiện thiết kế bộ giao tiếp Khảo sát hệ thống điều khiển động cơ Thiết kế mạch giao tiếp giữa P89V51RD2 và ECU động cơ Chương trình giao tiếp và hiển thị mã lỗi lên LCD Quy trình chẩn đoán Với thời gian khá ngắn nên thiết bị thiết kế mới chỉ được kiểm tra trên động cơ TOYOTA 4A-FE và chỉ với chức năng hiển thị lỗi . Với thiết bị này có thể phát triển lên để có thể đọc được lỗi của các động cơ khác cùng thông số của các cảm biến để thuận lợi hơn cho người kỹ thuật viên. Trong quá trình làm khó tránh khỏi những sai sót mong quý thầy cô thong cảm, góp ý và giúp đỡ chỉ bảo để em có thể hoàn thiện đề tài của mình hơn. TÀI LIỆU THAM KHẢO TS. Trần Thanh Hải Tùng, KS. Nguyễn Lê Châu Thành Chẩn đoán trạng thái kỹ thuật ô tô TS. Trần Thanh Hải Tùng Chuyên đề động cơ phun xăng Nguyễn Tất Tiến Nguyên lý động cơ đốt trong – NXB Giáo dục, 2000 PGS.TS Đỗ Văn Dũng Trang bị điện và điện tử trên ô tô hiện đại – NXB Thống kê Tp Hồ Chí Minh, 2004 Tống Văn Ôn, Hoàng Đức Hải Họ vi điều khiển 8051 – NXB Lao động – Xã hội, 2001 Nguyễn Tăng Cường, Phan Quốc Thắng Cấu trúc và lập trình họ vi điều khiển 8051 – NXB Khoa học và Kỹ thuật, 2004

Các file đính kèm theo tài liệu này:

  • docthuyet_minhmoisua_1105.doc