Chuẩn giao tiếp I2C là gì

Chúng tôi rất vui mừng chia sẻ kiến thức về từ khóa I2c la gi và hi vọng rằng nó sẽ hữu ích cho các bạn đọc. Bài viết tập trung trình bày ý nghĩa, vai trò và ứng dụng của từ khóa trong việc tối ưu hóa nội dung trang web và chiến dịch tiếp thị trực tuyến. Chúng tôi cung cấp các phương pháp tìm kiếm, phân tích và chọn lọc từ khóa phù hợp, kèm theo các chiến lược và công cụ hữu ích. Hi vọng rằng thông tin chúng tôi chia sẻ sẽ giúp bạn xây dựng chiến lược thành công và thu hút lưu lượng người dùng. Cảm ơn sự quan tâm và hãy tiếp tục theo dõi blog của chúng tôi để cập nhật kiến thức mới nhất.

Giới thiệu giao tiếp I2C

Bạn Đang Xem: Chuẩn giao tiếp I2C là gì

I2C phối hợp các tính năng tốt nhất của SPI và UART. Với I2C, chúng ta có thể kết nối nhiều slave với một master duy nhất (như SPI) và chúng ta có thể có nhiều master điều khiển và tinh chỉnh một hoặc nhiều slave. Điều này thực sự hữu ích khi chúng ta muốn có nhiều hơn một vi điều khiển và tinh chỉnh ghi tài liệu vào một trong những thẻ nhớ duy nhất hoặc hiển thị văn bản trên một màn hình hiển thị LCD.

Giống như giao tiếp UART, I2C chỉ sử dụng hai dây để truyền tài liệu giữa các thiết bị:

SDA (Serial Data) – đường truyền cho master và slave để gửi và nhận tài liệu.

SCL (Serial Clock) – đường mang tín hiệu xung nhịp.

I2C là một giao thức truyền thông tiếp nối, vì vậy tài liệu được truyền từng bit dọc theo một đường duy nhất (đường SDA).

Giống như SPI, I2C là đồng bộ, do đó đầu ra của khá nhiều bit được đồng bộ hóa với việc lấy mẫu các bit bởi một tín hiệu xung nhịp được san sẻ giữa master và slave. Tín hiệu xung nhịp luôn luôn được điều khiển và tinh chỉnh bởi master.

Cách hoạt động của I2C

Với I2C, tài liệu được truyền trong các tin nhắn. Tin nhắn được chia thành các sườn tài liệu. Mỗi tin nhắn có một sườn địa chỉ chứa địa chỉ nhị phân của địa chỉ slave và một hoặc nhiều sườn tài liệu chứa tài liệu đang rất được truyền. Thông điệp cũng gồm có điều kiện kèm theo phát động và điều kiện kèm theo dừng, các bit đọc / ghi và các bit ACK / NACK giữa mỗi sườn tài liệu:

Nhập cuộc phát động: Đường SDA chuyển từ mức điện áp cao xuống mức điện áp thấp trước lúc đường SCL chuyển từ mức cao xuống mức thấp.

Nhập cuộc dừng: Đường SDA chuyển từ mức điện áp thấp sang mức điện áp cao sau khoản thời gian đường SCL chuyển từ mức thấp lên mức cao.

Sườn địa chỉ: Một chuỗi 7 hoặc 10 bit duy nhất cho từng slave để xác định slave khi master muốn giao tiếp với nó.

Xem Thêm : Tắc Bóng Là Gì? Kỹ Thuật Tắc Bóng Của Các Cầu Thủ Nổi Tiếng

Bit Đọc / Ghi: Một bit duy nhất chỉ định master đang gửi tài liệu đến slave (mức điện áp thấp) hay yêu cầu tài liệu từ nó (mức điện áp cao).

Bit ACK / NACK: Mỗi sườn trong một tin nhắn được theo sau bởi một bit xác nhận / không xác nhận. Nếu một sườn địa chỉ hoặc sườn tài liệu được trao thành công, một bit ACK sẽ tiến hành trả lại cho thiết bị gửi từ thiết bị nhận.

Địa chỉ

I2C không có những đường Slave Select như SPI, vì vậy cần một cách khác để cho slave biết rằng tài liệu đang rất được gửi đến slave này chứ không phải slave khác. Nó thực hiện điều này bằng phương pháp định địa chỉ. Sườn địa chỉ luôn là sườn trước nhất sau bit phát động trong một tin nhắn mới.

Master gửi địa chỉ của slave mà nó muốn giao tiếp với mọi slave được kết nối với nó. Sau đó, mỗi slave sẽ so sánh địa chỉ được gửi từ master với địa chỉ của chính nó. Nếu địa chỉ phù hợp, nó sẽ gửi lại một bit ACK điện áp thấp cho master. Nếu địa chỉ không khớp, slave không làm gì cả và đường SDA vẫn ở tại mức cao.

Bit đọc / ghi

Sườn địa chỉ gồm có một bit duy nhất ở cuối tin nhắn cho slave biết master muốn ghi tài liệu vào nó hay nhận tài liệu từ nó. Nếu master muốn gửi tài liệu đến slave, bit đọc / ghi ở tại mức điện áp thấp. Nếu master đang yêu thương cầu tài liệu từ slave, thì bit ở tại mức điện áp cao.

Sườn tài liệu

Sau thời điểm master phát hiện bit ACK từ slave, sườn tài liệu trước nhất đã sẵn sàng được gửi.

Sườn tài liệu luôn có độ dài 8 bit và được gửi với bit quan trọng nhất trước. Mỗi sườn tài liệu ngay sau đó là một bit ACK / NACK để xác minh rằng sườn đã được trao thành công. Bit ACK phải được trao bởi master hoặc slave (tùy thuộc vào cái nào đang gửi tài liệu) trước lúc sườn tài liệu tiếp theo có thể được gửi.

Sau thời điểm tất cả những sườn tài liệu đã được gửi, master có thể gửi một điều kiện kèm theo dừng cho slave để tạm dừng quá trình truyền. Nhập cuộc dừng là việc chuyển đổi điện áp từ thấp lên rất cao trên phố SDA sau khoản thời gian chuyển tiếp từ thấp lên rất cao trên phố SCL , với đường SCL vẫn ở tại mức cao.

Các bước truyền tài liệu I2C

  1. Master gửi điều kiện kèm theo phát động đến mọi slave được kết nối bằng phương pháp chuyển đường SDA từ mức điện áp cao sang mức điện áp thấp trước lúc chuyển đường SCL từ mức cao xuống mức thấp.
  1. Master gửi cho từng slave địa chỉ 7 hoặc 10 bit của slave mà nó muốn giao tiếp, cùng với bit đọc / ghi.
  1. Mỗi slave sẽ so sánh địa chỉ được gửi từ master với địa chỉ của chính nó. Nếu địa chỉ trùng khớp, slave sẽ trả về một bit ACK bằng phương pháp kéo dòng SDA xuống thấp cho một bit. Nếu địa chỉ từ master không khớp với địa chỉ của slave, slave rời khỏi đường SDA cao.
  2. Master gửi hoặc nhận sườn tài liệu.
  1. Sau thời điểm mỗi sườn tài liệu được chuyển, thiết bị nhận trả về một bit ACK khác cho thiết bị gửi để xác nhận đã nhận được thành công sườn.
  1. Để dừng truyền tài liệu, master gửi điều kiện kèm theo dừng đến slave bằng phương pháp chuyển đổi mức cao SCL trước lúc chuyển mức cao SDA.

Một master với nhiều slave

Vì I2C sử dụng định địa nên làm nhiều slave có thể được điều khiển và tinh chỉnh từ một master duy nhất. Với địa chỉ 7 bit sẽ sở hữu 128 (2 mũ 7) địa chỉ duy nhất. Việc sử dụng địa chỉ 10 bit không phổ thông, nhưng nó cung cấp 1.024 (2 mũ 10) địa chỉ duy nhất. Để kết nối nhiều slave đến một master duy nhất, chúng ta có thể đấu dây như vậy này, với điện trở kéo lên 4,7K Ohm kết nối đường SDA và SCL với Vcc:

Xem Thêm : Casual Là Gì? Công Việc Của Một Nhân Viên Casual Trong Nhà Hàng Khách Sạn

Nhiều master với nhiều slave

Nhiều master có thể được kết nối với một slave hoặc nhiều slave. Sự cố với nhiều master trong cùng một khối hệ thống xẩy ra khi hai master nỗ lực gửi hoặc nhận tài liệu cùng một lúc qua đường SDA. Để xử lý vấn đề này, mỗi master cần phải phát hiện xem đường SDA thấp hay cao trước lúc truyền tin nhắn. Nếu đường SDA thấp, điều này còn có tức thị một master khác có quyền điều khiển và tinh chỉnh bus và master đó phải đợi để nhắn tin nhắn. Nếu đường SDA cao thì có thể truyền tin nhắn an toàn. Để kết nối nhiều master với nhiều slave, hãy sử dụng sơ đồ sau, với những điện trở kéo lên 4,7K Ohm kết nối các đường SDA và SCL với Vcc:

Ưu điểm và nhược điểm của I2C

Có rất nhiều điều ở I2C có thể khiến nó nghe có vẻ phức tạp so với những giao thức khác, nhưng có một số lý do chính đáng khiến chúng ta có thể muốn hoặc không muốn sử dụng I2C để kết nối với một thiết bị cụ thể:

Ưu điểm

Chỉ sử dụng hai dây

Tương trợ nhiều master và nhiều slave

Bit ACK / NACK xác nhận mỗi sườn được chuyển thành công

Phần cứng ít phức tạp hơn so với UART

Giao thức nổi tiếng và được sử dụng rộng rãi

Nhược điểm

Tốc độ truyền tài liệu chậm hơn SPI

Kích thước của sườn tài liệu bị giới hạn ở 8 bit

Cần phần cứng phức tạp hơn để triển khai so với SPI

You May Also Like

About the Author: v1000