Title Image

Blog Logo

Bài 21. 8051 I2C Overview

🌱 Bài 21. 8051 I2C Overview

    Giống như giao thức SPI, I2C là một giao thức nối tiếp đồng bộ thường được sử dụng để giao tiếp giữa các IC trong cùng bo mạch. Nhưng I2C có một số đặc điểm khác với SPI. 

    👉 Tổng quan về chuẩn giao tiếp I2C

    I2C - Viết tắt của Inter-Integrated Circuitlà một chuẩn truyền thông nối tiếp, đồng bộ. Giống như SPI, đồng bộ ở đây có nghĩa là dữ liệu truyền nhận sẽ được đồng bộ theo xung clock (cụ thể 1 chu kỳ xung clock sẽ cho phép truyền/nhận 1 bit dữ liệu).

    I2C hoạt động theo cơ chế Multi Master - Multi Slave, và có thể có nhiều Master cũng như Slave trên đường bus giao tiếp.

8051

    Sơ đồ chân:

  • SDA - Serial Data, là chân truyền dữ liệu giữa các master - slave.
  • SCL - Serial Clock, là chân cấp clock từ các master sang slave để đồng bộ dữ liệu.

    👉 Đặc điểm giao thức I2C

    Do chỉ có duy nhất 1 đường bus data nên I2C hoạt động theo cơ chế half - duplex. Với việc có nhiều master cũng như slave trên một đường bus data, nên việc quản lý việc master nào giao tiếp với slave nào được quy định bằng phương pháp đánh địa chỉ (cụ thể là 7 bit địa chỉ).

    Mỗi slave sẽ được định một địa chỉ cố định duy nhất, và phân biệt với các slave khác. Khi master muốn giao tiếp với một slave nào, nó sẽ gửi địa chỉ lên đường bus SDA, và slave nào có địa chỉ tương ứng sẽ gửi phản hồi về master để bắt đầu giao tiếp.

    Một đặc điểm khác của giao thức I2C là cần có điện trở Pullup trên 2 đường bus. Các chân giao tiếp I2C thường được cấu hình ở chế độ Open-drain nên cần các điện trở Pullup này để kéo đường truyền lên mặc định ở mức cao.

8051

    👉 Cơ chế truyền nhận dữ liệu

    Master sẽ giao tiếp với các slave theo khung truyền như sau:

8051
  • Start & Stop Condition

    8051

    Start Condition được định nghĩa bằng việc kéo chân SDA từ mức cao xuống mức thấp trong khi bus SCL giữ ở mức cao.
    Stop Condition được định nghĩa bằng việc kéo chân SDA từ mức thấp lên mức cao trong khi bus SCL giữ ở mức cao.

  • Slave Address & Bit Read/Write


    Sau Start Condition, Master sẽ gửi 7 bit địa chỉ sang các Slave, cùng với đó là bit Read/Write để xác nhận Master này muốn truyền hay nhận dữ liệu. Các Slave sẽ kiểm tra địa chỉ này và so sánh với địa chỉ của chúng, nếu đúng, slave sẽ phản hồi về master một bit ACK (mức thấp). Trong khi các slave khác sẽ phản hồi là NACK (mức cao mặc định của bus). 

  • Sau đó Master sẽ gửi các byte dữ liệu, ứng với mỗi byte dữ liệu này, slave cũng sẽ phản hồi về các bit ACK/NACK tương ứng.
     


    Sau khi truyền xong data, Master sẽ gửi Stop Condition.

    👉 Các ứng dụng của I2C

     Giao thức I2C được tích hợp trong một số loại thiết bị:

  • Giao tiếp giữa vi điều khiển và các mảng cảm biến. 
  • Giao tiếp các thiết bị hiển thị (LCD, TFT, ...).
  • Giao tiếp một số thiết bị IoT, EEPROMs, …
>>>= Follow ngay =<<<

💚 Kênh Youtube Lập trình - Điện tử 💚

Để nhận được những bài học miễn phí mới nhất nhé 😊

    Chúc các bạn học tập tốt 😊 

Xem Bài 20                                   Xem Bài 22

Đăng nhận xét

0 Nhận xét