1. Giới thiệu
Trong các hệ thống nhúng (Embedded System), giao tiếp giữa vi điều khiển và module ngoại vi là yếu tố quan trọng để truyền dữ liệu.
Ba chuẩn phổ biến nhất là:
• UART – giao tiếp nối tiếp không đồng bộ
• SPI – giao tiếp nối tiếp đồng bộ, tốc độ cao
• I2C – giao tiếp nối tiếp đa thiết bị, chỉ dùng 2 dây
Mỗi loại có ưu, nhược điểm riêng phù hợp cho từng mục đích sử dụng.
2. Giao tiếp UART
🔹 Đặc điểm:
• Không đồng bộ (không cần xung clock)
• Dùng 2 dây: TX (truyền), RX (nhận)
• Dữ liệu được gửi bit nối tiếp theo thời gian
🔹 Ưu điểm:
• Đơn giản, dễ cấu hình
• Thích hợp truyền dữ liệu giữa 2 thiết bị
🔹 Nhược điểm:
• Chỉ hỗ trợ 1–1, không đa thiết bị
• Khoảng cách truyền ngắn (dưới 5m)
🔹 Ứng dụng:
• Giao tiếp ESP32 ↔ PC qua USB
• Arduino ↔ Module SIM A7680C (AT Command)
• ESP32 ↔ DFPlayer Mini để phát nhạc
3. Giao tiếp SPI
🔹 Đặc điểm:
• Đồng bộ, có tín hiệu clock (SCK)
• Tốc độ cao (có thể đạt vài MHz)
• Dùng 4 dây chính:
• MISO (Master In Slave Out)
• MOSI (Master Out Slave In)
• SCK (Clock)
• SS (Slave Select)
🔹 Ưu điểm:
• Tốc độ truyền nhanh nhất trong ba chuẩn
• Giao tiếp dễ dàng giữa Master và nhiều Slave
🔹 Nhược điểm:
• Cần nhiều dây hơn
• Không có cơ chế địa chỉ hóa thiết bị
🔹 Ứng dụng:
• Màn hình TFT, OLED SPI, cảm biến tốc độ cao
• Thẻ nhớ SD, module RF NRF24L01
• Vi điều khiển ↔ ADC/DAC tốc độ cao
4. Giao tiếp I2C
🔹 Đặc điểm:
• Đồng bộ, chỉ dùng 2 dây:
• SDA (Serial Data)
• SCL (Serial Clock)
• Mỗi thiết bị có địa chỉ riêng
• Cho phép nhiều thiết bị nối song song
🔹 Ưu điểm:
• Tiết kiệm dây, hỗ trợ nhiều thiết bị
• Dễ mở rộng hệ thống
🔹 Nhược điểm:
• Tốc độ thấp hơn SPI (thường 100kHz – 400kHz)
• Cấu hình phức tạp hơn UART
🔹 Ứng dụng:
• Cảm biến nhiệt độ, độ ẩm (DHT12, BMP280, BME680)
• Màn hình LCD 1602 I2C, OLED 0.96 inch
• RTC DS3231, EEPROM 24C02
5. Bảng so sánh UART – SPI – I2C
Đặc điểm UART SPI I2C
Kiểu giao tiếp Không đồng bộ Đồng bộ Đồng bộ
Số dây 2 4+ 2
Số thiết bị hỗ trợ 2 Nhiều (qua SS) Nhiều (qua địa chỉ)
Tốc độ Trung bình Cao Trung bình
Khoảng cách Ngắn Ngắn Trung bình
Độ phức tạp Thấp Trung bình Cao
Ứng dụng Giao tiếp 1–1 Màn hình, thẻ SD Cảm biến, RTC
6. Khi nào nên chọn giao tiếp nào?
Tình huống Giao tiếp khuyên dùng
- Truyền dữ liệu đơn giản giữa 2 thiết bị UART
- Cần tốc độ cao, truyền cảm biến nhanh SPI
- Kết nối nhiều module cảm biến, ít dây I2C
7. Kết luận
Ba chuẩn UART, SPI và I2C là nền tảng trong hầu hết các dự án điện tử.
Việc hiểu nguyên lý và chọn chuẩn giao tiếp phù hợp giúp hệ thống hoạt động ổn định, dễ mở rộng, và tiết kiệm năng lượng.


Để lại một bình luận