6. Ý nghĩa khoa học và thực tiễn của đề tài:
4.3.3. Thiết kế, chế tạo mạch điều khiển trung tâm:
Mạch điều khiển trung tâm có nhiệm vụ nhận tín hiệu hồi về từ cảm biến mô men xoắn, cảm biến tốc độ xe; chuyển đổi, tính toán, phân tích và xuất các tín hiệu điều khiển cho động cơ trợ lực. Để đảm bảo khả năng điều khiển mềm dẻo của hệ thống, ta lựa chọn phương án xây dựng bộ xử lí trung tâm bằng vi điều khiển. Các vi điều khiển thích hợp cho các thiết kế nhỏ gọn, với các thành phần thêm vào tối thiểu nhằm thực hiện các hoạt động hướng điều khiển. Một vi điều khiển là một mạch đơn chứa bên trong một CPU và các mạch khác để tạo nên một hệ máy tính đầy đủ. Ngoài CPU, các bộ vi điều khiển còn chứa bên trong chúng các RAM, ROM, mạch giao tiếp nối tiếp, mạch giao tiếp song song, bộ định thời và các mạch điều khiển ngắt. Tất cả đều hiện diện bên trong một vi mạch. Một đặc trưng quan trọng của bộ vi điều khiển là hệ thống ngắt được thiết kế bên trong chip. Vì vậy, trong các thiết kế hướng điều khiển các bộ vi điều khiển đáp ứng với các tác động bên ngoài (các ngắt) theo thời gian thực. Với tính năng điều khiển được thiết lập bằng lập trình trên phần mềm, cho phép dễ dàng sửa đổi giải thuật cũng như khả năng thay đổi chương trình, nhằm thích ứng với các đối tượng đầu vào là các động cơ có công suất cũng như chủng loại khác nhau. Điều này thật sự thuận tiện cho quá trình chuyển giao công nghệ sau này.
Hiện nay, trên thị trường có rất nhiều loại vi điều khiển khác nhau, có thể kể ra một số các vi điều khiển thông dụng như: họ 8051, họ vi điều khiển AVR của hãng Atmel, họ PIC của hãng Microchip… Căn cứ vào các yêu cầu của hệ thống điều khiển, chúng tôi quyết định chọn vi điều khiển ATMEGA16 để xây dựng mạch xử lí trung tâm cho bộ điều khiển.
Vi điều khiển ATMEGA16, một trong những vi điều khiển thuộc họ AVR. Đây là một loại vi điều khiển có cấu trúc khá phức tạp, có đầy đủ chức năng của họ AVR. ATMEGA16 là một vi điều khiển CMOS 8 bit, công suất thấp trên nền kiến trúc AVR kiểu RISC với nhiều tính năng được xem là nổi bật so với nhiều vi điều khiển khác. Trên ATMEGA16 tích hợp nhiều bộ phận ngoại vi, với 32 đường dẫn I/O lập trình được, 2 bộ truyền nhận UART, một bộ giao diện SPI đồng bộ, một giao diện TWI đồng bộ tương thích I2C, 3 bộ Timer/Counter 8 bit, 1 bộ Timer/Counter 16 bit với chức năng so sánh và bắt mẫu, 4 lối ra điều biến độ rộng xung, một đồng hồ thời gian thực (RTC-Timer), một bộ biến đổi ADC 10 bit 8 kênh lối vào, một bộ phát hiện trạng thái sụt nguồn nuôi, một bộ so sánh Analog, một bộ định thời Watchdog.
So với các vi điều khiển khác, ATMEGA16 có tốc độ xung nhịp tương đối cao, xung nhịp bộ tạo dao động cũng là xung nhịp của hệ thống nên tốc độ xử lí là tương đối cao. Kết hợp với khả năng thực hiện lệnh trong 1 chu kì xung nhịp, ATMEGA16 có thể đạt đến tốc độ xử lí 1 triệu lệnh/giây ở tần số 1 Mhz.
Bộ nhớ chương trình và dữ liệu được tích hợp ngay trên chip với 3 công nghệ nhớ khác nhau: bộ nhớ EPROM xóa được kiểu flash dùng cho mã chương trình; bộ nhớ EEPROM xóa được bằng điện, nội dung vẫn giữ nguyên sau khi mất điện nguồn được sử dụng trong thời gian thực thi hệ thống; cuối cùng là bộ nhớ RAM dùng cho các biến, nội dung của bộ nhớ này sẽ tự mất đi khi tắt điện áp nguồn.
Hỗ trợ cho việc lập trình bằng ngôn ngữ cấp cao với nhiều phần mềm hỗ trợ như: Win AVR, CodeVisionAVR C, ICCAVR. C - CMPPILER của GNU… tạo nhiều thuận lợi cho người viết chương trình thông qua việc sử dụng các thư viện có sẵn của các chương trình này.
Hình 4.24. Sơ đồ cấu trúc của vi điều khiển Atmega16 [11]
Đặc điểm của vi điều khiển ATMEGA 16:
- Hiệu năng cao, tiêu thụ năng lượng ít, hoạt động tích cực: 1.1mA, chế độ nghỉ ở 0.35 mA, chế độ năng lượng thấp: <1 μA khi điện áp 2.7V.
- Kiến trúc RISC - Reduce Instruction Set Computer (có nghĩa là máy tính dùng tập lệnh rút gọn, bộ vi xử lý kiểu này thực hiện ít lệnh hơn những bộ vi xử lý khác)
- 131 lệnh mạnh, hầu hết các lệnh thực hiện trong một chu kỳ. - 32 Thanh ghi 8-bit đa năng.
- Tốc độ thực hiện lên tới 16 triệu lệnh trong 1 giây với tần số 16MHz - Có 2 bộ nhân, mỗi bộ thực hiện trong thời gián 2 chu kỳ.
- Các bộ nhớ chương trình và dữ liệu cố định.
- Có thể thực hiện được 10.000 lần ghi/xóa.
- Vùng mà Boot ta chọn với những bit khác độc lập.
- Lập trình trên trong hệ thống bởi chương trình on-chip Boot. - Thao tác đọc trong khi ghi thực sự.
- 512 bytes EEFROM. - 1Kb SRAM bên trong.
- Giao diện nối tiếp đồng bộ. Khi thực hiện trao đổi với các dữ liệu tương thích thì khung dữ liệu 8 bit giữa hai thiết bị được truyền đồng bộ (cùng xung nhịp đồng hồ).
- Lập trình bộ nhớ Flash, EPROM, ngắt, khóa, bit thông qua giao diện JTAG.
Ghép nối ngoại vi:
- 2 bộ định thời/ bộ đếm 8 bit với các chế độ tỷ lệ định trước và chế độ so sánh. - 1 bộ định thời/ bộ đếm 16 bit với các chế độ tỷ lệ định trước riêng biệt, chế độ
so sánh và chế độ bắt giữ.
- Bộ thời gián thực với bộ tạo dao động riêng biệt. - 4 bộ băm xung PWM.
- 8 kênh ADC 10 bit.
- Giao diện nối tiếp 2 dây I2C.
- Bộ truyền tín nối tiếp USART khả trình. - Giao diện SPI chủ / tớ.
- Watchdog Timer khả trình với bộ tạo dao động bên trong riêng biệt.
Các đặc điểm đặc biệt khác:
- Power-on Reset và d. Brown-out khả trình. - Bộ tạo dao động được định cỡ bên trong. - Các nguồn ngắt bên trong và bên ngoài.
- 6 chế độ ngủ: Nhàn rỗi, giảm ồn ADC, tiết kiệm năng lượng, giảm năng lượng tiêu thụ, giảm năng lượng tiêu thụ, chờ, đóng băng trạng thái .
- I/O và các loại.
- 32 đường I/O khả trình.
Dưới đây là sơ đồ nối dây mạch điều khiển được thiết kế bằng phần mềm thiết kế mạch Orcad (Hình 4.25). Ngoài vi điều khiển là hạt nhân của mạch điều khiển, trên mạch còn tích hợp thêm các mô đun như: mô đun giả lập tín hiệu tốc độ, mô đun cấp điện và nhận tín hiệu hồi về từ cảm biến mô men xoắn, mô đun đo dòng điện điều khiển của động cơ trợ lực, mô đun điều xung cho mạch điều khiển động cơ, mô đun kết nối máy tính, mô đun hiển thị LCD, mô đun nguồn.
Hình 4.26. Board mạch in mạch điều khiển
Hình 4.27. Board mạch điều khiển sau khi chế tạo