I2c là gì

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

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

*

Giống như giao tiếp UART, I2C chỉ áp dụng nhị dây nhằm truyền dữ liệu thân các thiết bị:

 

SDA (Serial Data) - đường truyền đến master với slave sầu để gửi với dìm tài liệu.

 

SCL (Serial Clock) - mặt đường có tín hiệu xung nhịp.

 

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

 

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

 

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

Với I2C, tài 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 có một size liên can chứa shop nhị phân của can hệ slave cùng một hoặc các khung ác liệu cất dữ liệu đang được truyền. Thông điệp cũng bao gồm ĐK khởi động với ĐK ngừng, các bit phát âm / ghi và các bit ACK / NACK giữa mỗi kác loạn liệu:

*

Điều kiện khởi động: Đường SDA gửi từ nút điện áp cao xuống tới mức điện áp thấp trước lúc con đường SCL gửi từ mức cao xuống tới mức rẻ.

 

Điều khiếu nại dừng: Đường SDA gửi trường đoản cú mức năng lượng điện áp thấp quý phái nút điện áp cao sau khi đường SCL gửi tự nấc phải chăng lên tới mức cao.

 

 

Bit Đọc / Ghi: Một bit duy nhất hướng đẫn master vẫn gửi tài liệu mang lại slave (mức năng lượng điện áp thấp) tuyệt đề xuất tài liệu tự nó (nút năng lượng điện áp cao).

 

Bit ACK / NACK: Mỗi form trong một tin nhắn được theo sau vì chưng một bit xác thực / ko xác nhận. Nếu một form liên quan hoặc khung dữ liệu được nhận thành công, một bit ACK sẽ được trả lại mang lại trang bị gửi từ vật dụng dấn.

 

Địa chỉ

I2C không có các con đường Slave sầu Select nhỏng SPI, bởi vì vậy bắt buộc một phương pháp không giống làm cho slave hiểu được tài liệu đang được gửi mang lại slave sầu này chđọng chưa phải slave không giống. Nó tiến hành điều này bằng cách định can hệ. Khung địa chỉ luôn luôn là khung thứ nhất sau bit khởi đụng vào một tin nhắn mới.

Xem thêm: Cách Xem Ai Vừa Vào Facebook Của Mình Bằng Điện Thoại Iphone

 

Master gửi can dự của slave sầu cơ mà nó mong muốn giao tiếp với tất cả slave được kết nối với nó. Sau đó, từng slave đang đối chiếu xúc tiến được gửi từ bỏ master cùng với hệ trọng của chính nó. Nếu can dự phù hợp, nó đã gửi lại một bit ACK điện áp phải chăng mang đến master. Nếu tác động không hợp, slave ko làm gì cả với mặt đường SDA vẫn tại mức cao.

 

Bit đọc / ghi

Khung thúc đẩy gồm một bit nhất sinh hoạt cuối tin nhắn mang đến slave sầu biết master ý muốn ghi tài liệu vào nó hay dấn tài liệu trường đoản cú nó. Nếu master ước ao gửi tài liệu đến slave sầu, bit phát âm / ghi ở mức đ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.

 


*

Khung ác liệu

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

 

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

 

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

 

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

Master gửi ĐK khởi đụng đến hồ hết slave sầu được kết nối bằng cách đưa con đường SDA từ bỏ nấc năng lượng điện áp phụ trách mức năng lượng điện áp rẻ trước lúc chuyển đường SCL tự nấc cao xuống đến mức thấp.

 

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

 

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

 

Sau Khi mỗi khung ác liệu được đưa, thứ nhận trả về một bit ACK không giống cho trang bị gửi để xác thực đã nhận được thành công khung.

 

Để dừng truyền dữ liệu, master gửi điều kiện giới hạn cho slave sầu bằng cách chuyển đổi nấc cao SCL trước lúc chuyển nấc cao SDA.

 

Một master với nhiều slave

Vì I2C áp dụng định địa chỉ nên các slave sầu rất có thể được tinh chỉnh và điều khiển xuất phát từ một master độc nhất. Với ảnh hưởng 7 bit sẽ sở hữu 128 (2 nón 7) can hệ độc nhất vô nhị. Việc sử dụng tác động 10 bit ko thông dụng, mà lại nó hỗ trợ 1.024 (2 nón 10) cửa hàng nhất. Để liên kết nhiều slave mang đến một master tốt nhất, chúng ta cũng có thể đấu dây như thế này, cùng với năng lượng điện trsống vuốt lên 4,7K Ohm liên kết đường SDA và SCL cùng với Vcc:

*

Nhiều master với khá 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ự nuốm với nhiều master trong cùng một hệ thống xẩy ra Khi nhì master nỗ lực gửi hoặc dìm tài liệu cùng một lúc qua đường SDA. Để giải quyết và xử lý vấn đề này, từng master rất cần phải phân phát hiện tại coi đường SDA phải chăng hay cao trước lúc truyền tin nhắn. Nếu con đường SDA thấp, điều đó tức là một master không giống gồm quyền điều khiển và tinh chỉnh bus cùng master kia cần chờ để gửi tin nhắn nhắn. Nếu đường SDA cao thì rất có thể truyền tin nhắn an ninh. Để kết nối những master với tương đối nhiều slave, hãy thực hiện sơ đồ gia dụng sau, cùng với các điện trsinh sống dàn ra 4,7K Ohm liên kết những đường SDA cùng SCL với Vcc:

*

Ưu điểm cùng nhược điểm của I2C

Có tương đối nhiều điều sinh sống I2C rất có thể khiến cho nó nghe có vẻ phức hợp so với các giao thức khác, nhưng gồm một trong những nguyên nhân chính đại quang minh khiến cho bạn cũng có thể mong muốn hoặc không muốn áp dụng I2C để kết nối với 1 trang bị cụ thể: