UART, I2C, và SPI hoạt động như thế nào?

Giải mã các chuẩn giao tiếp vật lý: UART, I2C, và SPI hoạt động như thế nào?

Trong thế giới vi điều khiển và mạch nhúng, để bộ não (CPU/MCU) có thể nói chuyện được với các linh kiện ngoại vi (cảm biến, màn hình, module kết nối), chúng cần chung một “ngôn ngữ” và “cầu nối”. Đó chính là các chuẩn giao tiếp vật lý. Trong đó, UART, I2C và SPI là ba chuẩn truyền thông nối tiếp (Serial Communication) phổ biến nhất, xuất hiện trên 99% các bo mạch điện tử hiện nay.

1. Chuẩn UART (Universal Asynchronous Receiver-Transmitter)

Khác với I2C và SPI, UART không hẳn là một giao thức truyền thông khắt khe, mà nó là một mạch vật lý (một khối phần cứng) được tích hợp bên trong vi điều khiển. Chữ “Asynchronous” (bất đồng bộ) là đặc điểm cốt lõi nhất của chuẩn này.

  • Cơ chế hoạt động và Số lượng dây dẫn:
    • Giao tiếp UART chỉ cần 2 dây tín hiệu (chưa tính dây chung GND):
      • TX (Transmit): Chân phát dữ liệu.
      • RX (Receive): Chân thu dữ liệu.
    • Đấu nối: Chân TX của thiết bị A nối vào chân RX của thiết bị B và ngược lại (đấu chéo).
    • Bất đồng bộ: UART không có dây xung nhịp (Clock) để đồng bộ hóa hai thiết bị. Thay vào đó, cả hai thiết bị bắt buộc phải được cấu hình để chạy cùng một tốc độ truyền (Baud rate – ví dụ 9600 bps, 115200 bps). Khi truyền, UART sẽ tự động chèn thêm một “Start bit” (để báo hiệu bắt đầu) và một hoặc hai “Stop bit” (để báo hiệu kết thúc) vào mỗi gói dữ liệu 8-bit.
  • Tốc độ và Khoảng cách:
    • Tốc độ tương đối chậm, phổ biến từ 9600 bps đến 115200 bps. Một số IC có thể đẩy lên vài Mbps.
    • Khoảng cách ngắn (thường dưới 15cm trên cùng bo mạch) vì tín hiệu dễ bị suy hao. Nếu muốn đi xa, UART thường được chuyển đổi thành chuẩn RS232 hoặc RS485 qua các IC giao tiếp mức.
  • Ưu nhược điểm:
    • Ưu điểm: Cực kỳ đơn giản, chỉ cần 2 chân vi điều khiển. Hỗ trợ truyền song công toàn phần (Full-duplex – vừa gửi vừa nhận cùng lúc).
    • Nhược điểm: Chỉ giao tiếp được điểm-điểm (1 thiết bị nói chuyện với 1 thiết bị). Nếu tốc độ hai bên lệch nhau một chút, dữ liệu sẽ bị “rác”.
  • Ứng dụng thực tế: Giao tiếp giữa máy tính và vi điều khiển (thông qua cáp chuyển USB-to-TTL), kết nối module GPS, module Bluetooth (như HC-05), hoặc module SIM/GPRS.

2. Chuẩn I2C (Inter-Integrated Circuit)

I2C (đọc là I-squared-C) được phát minh bởi Philips Semiconductor. Đây là chuẩn giao tiếp đồng bộ, cực kỳ tối ưu cho việc tiết kiệm chân cắm trên vi điều khiển.

  • Cơ chế hoạt động và Số lượng dây dẫn:
    • I2C sử dụng mạng dạng Bus, hỗ trợ nhiều Master (chủ) và nhiều Slave (tớ) trên cùng một đường dây.
    • Chỉ cần đúng 2 dây tín hiệu (cộng với GND):
      • SDA (Serial Data): Dây truyền tải dữ liệu hai chiều.
      • SCL (Serial Clock): Dây xung nhịp do thiết bị Master phát ra để đồng bộ quá trình truyền dữ liệu.
    • Cơ chế địa chỉ: Mỗi thiết bị Slave trên đường truyền I2C được nhà sản xuất gán sẵn một địa chỉ cứng (thường là 7-bit, cho phép 128 thiết bị trên cùng 1 bus). Khi Master muốn nói chuyện với cảm biến A, nó sẽ phát địa chỉ của cảm biến A lên bus, chỉ có cảm biến A phản hồi, các thiết bị khác sẽ bỏ qua.
    • Lưu ý thiết kế mạch: Chân SDA và SCL của I2C có cấu trúc cực máng hở (Open-Drain). Do đó, trên đường bus I2C bắt buộc phải có 2 điện trở kéo lên (Pull-up resistor, thường từ 4.7kΩ đến 10kΩ) nối lên nguồn dương (VCC) để mạch hoạt động.
  • Tốc độ và Khoảng cách:
    • Tốc độ cơ bản: Standard Mode (100 kbps), Fast Mode (400 kbps), Fast Mode Plus (1 Mbps) và High-Speed Mode (lên đến 3.4 Mbps).
    • Khoảng cách truyền rất ngắn, chủ yếu dùng để giao tiếp các IC trên cùng một bo mạch.
  • Ưu nhược điểm:
    • Ưu điểm: Kết nối hàng chục linh kiện mà chỉ tốn đúng 2 chân GPIO của vi điều khiển.
    • Nhược điểm: Tốc độ tương đối chậm do cơ chế Open-Drain. Chỉ hỗ trợ bán song công (Half-duplex – tại một thời điểm, chỉ có thể gửi hoặc nhận, không diễn ra cùng lúc). Giao thức phần mềm khá phức tạp (cần xung ACK/NACK xác nhận).
  • Ứng dụng thực tế: Đọc dữ liệu từ cảm biến môi trường (nhiệt độ, độ ẩm BME280), module thời gian thực (RTC DS3231), chip nhớ EEPROM, và điều khiển màn hình OLED (SSD1306).

3. Chuẩn SPI (Serial Peripheral Interface)

SPI được phát triển bởi Motorola. Đây là chuẩn giao tiếp đồng bộ, sinh ra để giải quyết bài toán “Tốc độ” mà I2C và UART không làm được.

  • Cơ chế hoạt động và Số lượng dây dẫn:
    • SPI hoạt động theo mô hình 1 Master – nhiều Slave. Giao tiếp này tốn khá nhiều dây dẫn. Cơ bản cần 4 dây tín hiệu (cộng GND):
      • MOSI (Master Out Slave In): Master gửi dữ liệu đến Slave.
      • MISO (Master In Slave Out): Slave gửi dữ liệu về Master.
      • SCK (Serial Clock): Xung nhịp đồng bộ do Master tạo ra.
      • CS / SS (Chip Select / Slave Select): Chân chọn chip. Master dùng chân này để quyết định sẽ nói chuyện với Slave nào.
    • Thay vì dùng địa chỉ như I2C, SPI dùng phần cứng để chọn thiết bị. Nếu có 3 thiết bị Slave, Master sẽ cần 3 chân CS riêng biệt nối đến từng thiết bị. Để kích hoạt một Slave, Master kéo chân CS tương ứng của nó xuống mức thấp (Low).
  • Tốc độ và Khoảng cách:
    • Tốc độ cực nhanh, có thể dễ dàng đạt từ 10 Mbps đến 100 Mbps hoặc hơn.
    • Giao tiếp khoảng cách ngắn (thường dưới 20cm).
  • Ưu nhược điểm:
    • Ưu điểm: Tốc độ truyền tải siêu cao. Truyền song công toàn phần (Full-duplex – dữ liệu chạy liên tục hai chiều qua MOSI và MISO). Giao thức cực kỳ đơn giản (không cần bit Start/Stop, không cần xác nhận ACK).
    • Nhược điểm: Rất tốn chân GPIO của vi điều khiển. Cứ thêm 1 thiết bị Slave là tốn thêm 1 chân CS. Chỉ có 1 Master duy nhất trong mạng.
  • Ứng dụng thực tế: Kết nối với các thiết bị cần băng thông lớn như khe cắm thẻ nhớ MicroSD, màn hình màu TFT LCD, module Wi-Fi/Ethernet rời, và các chip ADC/DAC tốc độ cao.

4. Bảng so sánh tổng hợp

Đặc điểmUARTI2CSPI
Kiểu đồng bộBất đồng bộĐồng bộ (Có xung SCL)Đồng bộ (Có xung SCK)
Số lượng dây2 (TX, RX)2 (SDA, SCL)4 (MOSI, MISO, SCK, CS)
Tốc độ tối đa~ vài Mbps (thường chậm)Lên đến 3.4 Mbps> 10 Mbps (Rất nhanh)
Chế độ truyềnFull-duplexHalf-duplexFull-duplex
Số lượng thiết bị2 (Điểm – Điểm)Nhiều (Gán qua Địa chỉ bit)Nhiều (Gán qua Chân CS vật lý)
Độ phức tạp phần cứngThấpTrung bình (cần trở Pull-up)Cao (Tốn nhiều chân vi điều khiển)

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

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

,

Chia sẻ bài viết này

Share Facebook