I2C phối hợp những công dụng tốt nhất của SPI cùng UART. Với I2C, bạn có thể liên kết những slave sầu với một master tốt nhất (như SPI) cùng bạn cũng có thể có rất nhiều master điều khiển một hoặc những slave sầu. Vấn đề này thực thụ hữu ích Khi bạn muốn có không ít hơn một vi tinh chỉnh và điều khiển ghi tài liệu vào trong 1 thẻ nhớ tuyệt nhất hoặc hiển thị vnạp năng lượng bạn dạng trên một screen LCD.

Bạn đang xem: I2c là gì

*

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

 

SDA (Serial Data) - đường truyền mang lại master và slave nhằm gửi với nhận tài liệu.

 

SCL (Serial Clock) - mặt đường với dấu hiệu xung nhịp.

 

I2C là 1 trong giao thức truyền thông thông suốt, do vậy dữ liệu được truyền từng bit dọc theo một đường độc nhất vô nhị (đường SDA).

 

Giống như SPI, I2C là nhất quán, vì vậy đầu ra output của các bit được nhất quán hóa với Việc đem mẫu những bit vị một biểu lộ xung nhịp được chia sẻ thân master với slave sầu. Tín hiệu xung nhịp luôn luôn được điều khiển vày master.

 

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

Với I2C, dữ liệu được truyền trong các lời nhắn. Tin nhắn được tạo thành các khung dữ liệu. Mỗi lời nhắn bao gồm một khung tác động đựng xúc tiến nhị phân của hệ trọng slave cùng một hoặc những kác loạn liệu cất tài liệu đang được truyền. Thông điệp cũng bao gồm điều kiện khởi cồn với điều kiện giới hạn, những bit phát âm / ghi cùng những bit ACK / NACK thân mỗi khung ác liệu:

*

Điều kiện khởi động: Đường SDA chuyển từ mức điện áp cao xuống đến mức năng lượng điện áp phải chăng trước khi mặt đường SCL chuyển từ bỏ mức cao xuống đến mức phải chăng.

 

Điều khiếu nại dừng: Đường SDA đưa tự nút năng lượng điện áp phải chăng sang nút điện áp cao sau thời điểm con đường SCL gửi từ bỏ mức phải chăng lên đến mức cao.

 

 

Bit Đọc / Ghi: Một bit nhất hướng đẫn master đang gửi dữ liệu mang lại slave (mức điện áp thấp) tốt thử dùng dữ liệu từ nó (nút điện áp cao).

 

Bit ACK / NACK: Mỗi size vào một tin nhắn được theo sau vì một bit xác thực / không xác nhận. Nếu một size liên quan hoặc khung tàn liệu được trao thành công xuất sắc, một bit ACK sẽ tiến hành trả lại mang lại máy gửi trường đoản cú sản phẩm nhận.

 

Địa chỉ

I2C không có các đường Slave Select nhỏng SPI, vày vậy nên một biện pháp khác để cho slave sầu biết rằng tài liệu đang được gửi mang lại slave sầu này chứ chưa hẳn slave khác. Nó triển khai điều đó bằng cách định địa chỉ. Khung tương tác luôn là form đầu tiên sau bit khởi rượu cồn vào một lời nhắn new.

Xem thêm: Chưa Biết Live Bank Là Gì ? Toàn Bộ Thông Tin Bạn Cần Phải Biết

 

Master gửi tác động của slave sầu mà lại nó ước ao tiếp xúc với đa số slave được liên kết với nó. Sau kia, mỗi slave đã đối chiếu can hệ được gửi tự master với liên hệ của chính nó. Nếu xúc tiến phù hợp, nó sẽ gửi lại một bit ACK năng lượng điện áp thấp đến master. Nếu hệ trọng không khớp, slave sầu không làm những gì cả cùng đường SDA vẫn ở tại mức cao.

 

Bit đọc / ghi

Khung xúc tiến gồm một bit nhất ở cuối tin nhắn đến slave biết master mong mỏi ghi tài liệu vào nó hay dấn tài liệu trường đoản cú nó. Nếu master ý muốn gửi dữ liệu đến slave sầu, bit đọc / ghi ở mức năng lượng điện áp phải chăng. Nếu master đang yêu thương cầu dữ liệu tự slave sầu, thì bit tại mức năng lượng điện áp cao.

 


*

Kác loạn liệu

Sau Lúc master phạt hiện bit ACK từ bỏ slave sầu, khung tàn liệu thứ nhất đang sẵn sàng chuẩn bị được gửi.

 

Khung tàn liệu luôn tất cả độ dài 8 bit và được gửi cùng với bit quan trọng đặc biệt tuyệt nhất trước. Mỗi khung tàn liệu ngay kế tiếp là 1 trong những bit ACK / NACK nhằm xác minh rằng form đang được nhận thành công. Bit ACK đề nghị được trao vày master hoặc slave sầu (tùy thuộc vào cái như thế nào vẫn gửi dữ liệu) trước lúc khung ác liệu tiếp theo sau hoàn toàn có thể được gửi.

 

Sau Khi toàn bộ những khung ác liệu đã có được gửi, master có thể gửi một điều kiện giới hạn mang đến slave sầu nhằm tạm dừng quy trình truyền. Điều kiện giới hạn là việc thay đổi điện áp tự phải chăng lên rất cao trên phố SDA sau thời điểm sự chuyển tiếp giữa trường đoản cú phải chăng lên cao trên phố SCL , cùng với mặt đường SCL vẫn ở tầm mức cao.

 

Các bước truyền dữ liệu I2C

Master gửi điều kiện khởi rượu cồn mang lại đa số slave được kết nối bằng phương pháp gửi mặt đường SDA trường đoản cú nút điện áp đảm trách nấc năng lượng điện áp thấp trước lúc đưa mặt đường SCL tự nút cao xuống mức phải chăng.

 

Master gửi cho từng slave cửa hàng 7 hoặc 10 bit của slave sầu cơ mà nó mong tiếp xúc, với bit đọc / ghi.

 

Mỗi slave sầu đã đối chiếu can dự được gửi trường đoản cú master với địa chỉ của nó. Nếu liên tưởng trùng khớp, slave sầu đang trả về một bit ACK bằng cách kéo mẫu SDA xuống tốt cho một bit. Nếu địa chỉ với master không khớp với tương tác của slave sầu, slave sầu ra khỏi mặt đường SDA cao. Master gửi hoặc nhận kác loạn liệu.

 

Sau Lúc mỗi kác loạn liệu được gửi, đồ vật nhấn trả về một bit ACK không giống cho sản phẩm công nghệ gửi để xác thực đã nhận được thành công form.

Xem thêm: Guide Sona Mùa 9: Cách Chơi, Bảng Ngọc Tướng Sona 1, Sona Mùa 11

 

Để ngừng truyền dữ liệu, master gửi điều kiện giới hạn mang đến slave bằng cách thay đổi nấc cao SCL trước khi gửi nấc cao SDA.

 

Một master với nhiều slave

Vì I2C sử dụng định địa nên làm những slave sầu có thể được tinh chỉnh từ một master độc nhất vô nhị. Với liên can 7 bit sẽ sở hữu được 128 (2 nón 7) thúc đẩy tuyệt nhất. Việc sử dụng liên tưởng 10 bit không thịnh hành, dẫu vậy nó hỗ trợ 1.024 (2 mũ 10) thúc đẩy duy nhất. Để kết nối các slave cho một master tuyệt nhất, bạn cũng có thể đấu dây như thế này, với điện trlàm việc vuốt lên 4,7K Ohm liên kết con đường SDA với SCL với Vcc:

*

Nhiều master với tương đối nhiều slave

đa phần master có thể được liên kết với cùng một slave sầu hoặc những slave sầu. Sự cố với rất nhiều master trong cùng một khối hệ thống xẩy ra khi nhì master cố gắng gửi hoặc dấn tài liệu cùng một cơ hội qua đường SDA. Để xử lý vấn đề này, từng master rất cần được vạc hiện tại coi mặt đường SDA rẻ xuất xắc cao trước lúc truyền lời nhắn. Nếu mặt đường SDA phải chăng, điều này tức là một master khác tất cả quyền tinh chỉnh bus với master đó đề nghị hóng nhằm gửi tin nhắn. Nếu con đường SDA cao thì hoàn toàn có thể truyền lời nhắn bình yên. Để liên kết các master với nhiều slave, hãy áp dụng sơ thứ sau, cùng với các năng lượng điện trlàm việc kéo lên 4,7K Ohm kết nối các con đường SDA với SCL với Vcc:

*

Ưu điểm và yếu điểm của I2C

Có không ít điều nghỉ ngơi I2C có thể khiến cho nó nghe có vẻ tinh vi đối với các giao thức khác, dẫu vậy có một trong những lý do chính đáng khiến cho chúng ta cũng có thể muốn hoặc không muốn thực hiện I2C để kết nối với một thứ nắm thể: