Bài 24. Khái quát về vi điều khiển
1. Khái niệm vi điều khiển
Vi điều khiển (Microcontroller — MCU) là một máy tính thu nhỏ được tích hợp trên một chip duy nhất, bao gồm bộ xử lý, bộ nhớ và các khối ngoại vi.
Đặc điểm:
- Tích hợp nhiều thành phần trên một chip (SoC — System on Chip)
- Tiêu thụ năng lượng thấp
- Giá thành rẻ
- Kích thước nhỏ gọn
- Phù hợp cho các ứng dụng nhúng
Ví dụ về vi điều khiển phổ biến: Arduino (ATmega328), ESP32, STM32, PIC, 8051.
2. Cấu trúc cơ bản của vi điều khiển
Các khối chức năng chính:
- CPU (Central Processing Unit): Khối xử lý trung tâm, thực thi chương trình
- RAM (Random Access Memory): Bộ nhớ tạm thời, lưu dữ liệu trong khi chạy
- ROM/Flash: Bộ nhớ chứa chương trình và dữ liệu cố định
- Cổng I/O (Input/Output): Giao tiếp với các thiết bị bên ngoài
- Các khối ngoại vi: Timer, ADC, PWM, UART, SPI, I²C...
Sơ đồ khối: CPU là trung tâm, kết nối với RAM, ROM qua bus dữ liệu và bus địa chỉ; các khối ngoại vi kết nối qua bus ngoại vi.
3. CPU và bộ nhớ
CPU (Central Processing Unit):
- ALU (Arithmetic Logic Unit): Thực hiện tính toán số học và logic
- CU (Control Unit): Điều khiển và giải mã lệnh
- Thanh ghi (Register): Lưu dữ liệu tạm thời trong CPU
- Bộ đếm chương trình (PC): Chỉ đến lệnh tiếp theo
Bộ nhớ:
- ROM (Read Only Memory): Lưu chương trình cố định (bootloader, firmware)
- RAM (Random Access Memory): Lưu biến, stack, dữ liệu tạm thời — mất khi mất nguồn
- EEPROM/Flash: Lưu dữ liệu không mất khi mất nguồn, có thể ghi/xóa
4. Các khối ngoại vi
Các khối ngoại vi phổ biến trong vi điều khiển:
- GPIO (General Purpose I/O): Các chân vào/ra đa năng, có thể đọc hoặc xuất tín hiệu số
- ADC (Analog-to-Digital Converter): Chuyển đổi tín hiệu tương tự sang số
- Timer/Counter: Đếm thời gian và sự kiện
- PWM (Pulse Width Modulation): Tạo xung điều chế độ rộng để điều khiển tốc độ, độ sáng
- UART/USART: Giao tiếp nối tiếp không đồng bộ
- SPI, I²C: Giao tiếp nối tiếp đồng bộ với cảm biến, màn hình, bộ nhớ ngoài
5. So sánh vi điều khiển và vi xử lý
Vi xử lý (Microprocessor — MPU):
- Chỉ có CPU trên chip
- Cần thêm RAM, ROM, ngoại vi bên ngoài
- Công suất tính toán cao
- Phù hợp máy tính, server, laptop
- Ví dụ: Intel Core i5, AMD Ryzen
Vi điều khiển (Microcontroller — MCU):
- Tích hợp CPU + RAM + ROM + ngoại vi trên một chip
- Tiêu thụ điện thấp
- Giá thành thấp
- Phù hợp hệ thống nhúng, IoT, tự động hóa
- Ví dụ: ATmega328, STM32, ESP32
6. Ứng dụng của vi điều khiển trong đời sống
Các ứng dụng thực tế:
- Thiết bị gia dụng thông minh: Máy giặt, lò vi sóng, tủ lạnh, điều hòa
- Ô tô: ECU (Engine Control Unit), ABS, túi khí, điều khiển cửa
- IoT (Internet of Things): Cảm biến thông minh, nhà thông minh, đo đạc từ xa
- Robot và drone: Điều khiển động cơ, đọc cảm biến, xử lý ảnh
- Y tế: Máy đo huyết áp, máy đo đường huyết, máy tạo nhịp tim
- Giáo dục và Maker: Arduino, Micro:bit, Raspberry Pi Pico
Dạng 1: Phân biệt vi điều khiển và vi xử lý
Phương pháp:
- Vi điều khiển: tích hợp CPU+RAM+ROM+I/O trên chip, giá rẻ, tiết kiệm năng lượng
- Vi xử lý: chỉ CPU, cần thêm chip ngoài, hiệu năng cao, đắt hơn
- Xem xét yêu cầu ứng dụng để chọn loại phù hợp
Giải: Nên chọn vi điều khiển vì giá rẻ, tiết kiệm pin, tích hợp ADC và GPIO đủ dùng cho cảm biến và LCD.
Dạng 2: Xác định chức năng khối trong vi điều khiển
Phương pháp:
- CPU: xử lý và thực thi lệnh
- RAM: lưu dữ liệu tạm thời
- ROM/Flash: lưu chương trình
- GPIO: giao tiếp tín hiệu số
- ADC: đọc tín hiệu tương tự
- Timer: đếm thời gian/sự kiện
Giải: ROM (hoặc Flash) chứa chương trình khởi động (bootloader) và firmware.
Dạng 3: Lập trình GPIO cơ bản
Phương pháp:
- Cấu hình chân GPIO là input hoặc output
- Output: digitalWrite(chân, HIGH/LOW) để xuất mức điện áp
- Input: digitalRead(chân) để đọc trạng thái
- Analog: analogRead(chân ADC) để đọc giá trị 0-1023
Giải:
void setup() { pinMode(13, OUTPUT); pinMode(2, INPUT_PULLUP); }
void loop() { digitalWrite(13, !digitalRead(2)); }Luyện tập trắc nghiệm
1 / 14Vi điều khiển là: