Bài viết này, chúng ta sẽ mày mò về giao thức giao tiếp I2C, phần cứng của nó, cách tài liệu được truyền cùng các thông số kỹ thuật khác nhau nhưng mà nó hoạt động.Bạn đang xem: I2c là gì

Giới thiệu về tiếp xúc I2C

I2C là tên viết tắt của cụm từ giờ đồng hồ anh “Inter-Integrated Circuit”. Nó là 1 trong giao thức tiếp xúc được cải cách và phát triển bởi Philips Semiconductors để truyền tài liệu giữa một bộ xử lý trung tâm với tương đối nhiều IC trên và một board mạch chỉ sử dụng hai tuyến đường truyền tín hiệu.

Bạn đang xem: Giao tiếp i2c là gì

Do tính dễ dàng và đơn giản của nó phải loại giao thức này được sử dụng rộng thoải mái cho tiếp xúc giữa vi tinh chỉnh và mảng cảm biến, các thiết bị hiển thị, sản phẩm công nghệ IoT, EEPROMs, v.v …

Đây là một loại giao thức tiếp xúc nối tiếp đồng bộ. Nó có nghĩa là các bit dữ liệu được truyền từng bit một theo các khoảng thời hạn đều đặn được cấu hình thiết lập bởi một tín hiệu đồng hồ đeo tay tham chiếu.

Đặc điểm

Sau đó là một số quánh điểm quan trọng của giao thức tiếp xúc I2C:

Chỉ cần phải có hai con đường bus (dây) bình thường để điều khiển ngẫu nhiên thiết bị / IC như thế nào trên mạng I2CKhông cần thỏa thuận trước về tốc độ truyền dữ liệu như trong giao tiếp UART. Do vậy, vận tốc truyền dữ liệu hoàn toàn có thể được kiểm soát và điều chỉnh bất cứ bao giờ cần thiếtCơ chế dễ dàng để xác thực tài liệu được truyềnSử dụng hệ thống add 7 bit để khẳng định một sản phẩm / IC ví dụ trên bus I2CCác mạng I2C dễ ợt mở rộng. Những thiết bị mới có thể được kết nối đơn giản dễ dàng với hai đường bus chung I2C

Phần cứng

Bus đồ gia dụng lý I2C

Bus I2C (dây giao tiếp) chỉ tất cả hai dây và được lấy tên là Serial Clock Line (SCL) và Serial Data Line (SDA). Tài liệu được truyền đi được gửi qua dây SDA và được đồng hóa với tín hiệu đồng hồ thời trang (clock) từ bỏ SCL. Toàn bộ các máy / IC trên mạng I2C được kết nối với cùng đường SCL và SDA như sau:


*

Cả hai đường bus I2C (SDA, SCL) đều chuyển động như các bộ lái cực máng hở (open drain). Nó có nghĩa là ngẫu nhiên thiết bị / IC bên trên mạng I2C có thể lái SDA cùng SCL xuống mức thấp, nhưng cần thiết lái chúng lên tới mức cao. Vị vậy, một năng lượng điện trở dàn ra (khoảng 1 kΩ cho 4,7 kΩ) được sử dụng cho mỗi đường bus, để giữ mang lại chúng ở tại mức cao (ở điện áp dương) theo mang định.

Lý do áp dụng một khối hệ thống cực máng hở (open drain) là để không xảy ra hiện tượng ngắn mạch, điều này rất có thể xảy ra khi một thiết bị nỗ lực kéo con đường dây lên rất cao và một số trong những thiết bị khác cố gắng kéo mặt đường dây xuống thấp.

Thiết bị chủ (Master) với tớ (Slave)

Các thiết bị liên kết với bus I2C được phân một số loại hoặc là thiết bị nhà (Master) hoặc là máy Tớ (Slave). Ở bất kể thời điểm nào thì chỉ có duy nhất một lắp thêm Master sinh hoạt trang thái hoạt động trên bus I2C. Nó điều khiển đường tín hiệu đồng hồ đeo tay SCL với quyết định chuyển động nào đang được tiến hành trên đường dữ liệu SDA.

Tất cả các thiết bị thỏa mãn nhu cầu các khuyên bảo từ thứ Master này đầy đủ là Slave. Để khác nhau giữa những thiết bị Slave được kết nối với 1 bus I2C, mỗi sản phẩm Slave được gán một showroom vật lý 7-bit thay định.

Khi một sản phẩm công nghệ Master mong mỏi truyền dữ liệu đến hoặc thừa nhận dữ liệu xuất phát điểm từ 1 thiết bị Slave, nó xác định showroom thiết bị Slave cụ thể này trê tuyến phố SDA và tiếp nối tiến hành truyền dữ liệu. Bởi vì vậy, giao tiếp có hiệu quả diễn ra giữa đồ vật Master và một sản phẩm công nghệ Slave nắm thể.

Tất cả các thiết bị Slave không giống không phản hồi trừ khi địa chỉ của bọn chúng được chỉ định vị thiết bị Master trên cái SDA.


*

Giao thức truyền dữ liệu

Giao thức tiếp sau đây (tập hợp những quy tắc) được theo sau vị thiết bị Master và những thiết bị Slave nhằm truyền dữ liệu giữa chúng.

Dữ liệu được truyền giữa đồ vật Master và các thiết bị Slave thông qua 1 đường tài liệu SDA duy nhất, thông qua các chuỗi có cấu trúc gồm những số 0 và 1 (bit). Mỗi chuỗi số 0 và 1 được gọi là thanh toán (transaction) và dữ liệu trong mỗi thanh toán giao dịch có cấu tạo như sau:


*

Điều khiếu nại bắt đầu (Start Condition)

Bất cứ khi nào một thiết bị nhà / IC quyết định bắt đầu một giao dịch, nó sẽ đưa mạch SDA trường đoản cú mức năng lượng điện áp cao xuống tới mức điện áp thấp trước lúc đường SCL gửi từ cao xuống thấp.

Khi điều kiện bước đầu được gửi vị thiết bị Master, tất cả các thiết bị Slave đều hoạt động ngay cả khi bọn chúng ở cơ chế ngủ (sleep mode) và chờ bit địa chỉ.


*

Khối địa chỉ

Nó bao gồm 7 bit và được tủ đầy với showroom của thứ Slave đến / tự đó vật dụng Master đề xuất gửi / thừa nhận dữ liệu. Toàn bộ các máy Slave bên trên bus I2C so sánh những bit địa chỉ này với showroom của chúng.

Bit Read / Write 

Bit ACK / NACK

ACK / NACK là viết tắt của Acknowledged/Not-Acknowledged. Nếu địa chỉ vật lý của bất kỳ thiết bị Slave nào trùng với showroom được trang bị Master phát, quý giá của bit này được mix là ‘0’ vị thiết bị Slave. Ngược lại, nó vẫn ở mức logic ‘1’ (mặc định).

Khối dữ liệu

Nó bao gồm 8 bit và chúng được tùy chỉnh thiết lập bởi bên gửi, với các bit dữ liệu cần truyền tới mặt nhận. Khối này được theo sau vày một bit ACK / NACK và được mix thành ‘0’ bởi bên nhận ví như nó nhận thành công xuất sắc dữ liệu. Ngược lại, nó vẫn nghỉ ngơi mức xúc tích ‘1’.

Sự phối kết hợp của khối dữ liệu theo sau bởi vì bit ACK / NACK được lặp lại cho tới quá trình truyền dữ liệu được hoàn tất.

Điều kiện chấm dứt (Stop condition)

Sau khi các khung dữ liệu cần thiết được truyền qua con đường SDA, máy Master gửi đường SDA từ mức năng lượng điện áp tốt sang mức điện áp cao trước lúc đường SCL đưa từ cao xuống thấp.


*

Giao tiếp I2C vận động như nỗ lực nào?

Giao tiếp I2C được ban đầu bởi sản phẩm công nghệ Master hoặc để gửi tài liệu đến đồ vật Slave hoặc nhận dữ liệu từ máy đó. Họ hãy tìm hiểu về cách thao tác làm việc của cả hai kịch phiên bản một giải pháp chi tiết.

Gửi dữ liệu đến máy Slave

Trình tự chuyển động sau đây ra mắt khi một sản phẩm Master gửi tài liệu đến một thiết bị Slave rõ ràng thông qua bus I2C:

Thiết bị Master gởi điều kiện bước đầu đến tất cả các đồ vật SlaveThiết bị Master nhờ cất hộ 7 bit showroom của thiết bị Slave cơ mà thiết bị Master muốn giao tiếp cùng với bit Read/Write


Mỗi thiết bị Slave so sánh địa chỉ cửa hàng được gởi từ vật dụng Master đến add riêng của nó. Nếu add trùng khớp, vật dụng Slave giữ hộ về một bit ACK bằng phương pháp kéo đường SDA xuống thấp với bit ACK / NACK được tùy chỉnh cấu hình là ‘0’,. Nếu địa chỉ từ trang bị Master không phù hợp với showroom riêng của lắp thêm Slave thì đường SDA ở mức cao cùng bit ACK / NACK sẽ tại mức ‘1’ (mặc định).


Thiết bị Master giữ hộ hoặc nhận khung dữ liệu. Nếu đồ vật Master ao ước gửi dữ liệu đến đồ vật Slave, bit Read / Write là mức điện áp thấp. Nếu đồ vật Master vẫn nhận tài liệu từ máy Slave, bit này là mức điện áp cao.


Nếu khung dữ liệu được vật dụng Slave nhận ra thành công, nó sẽ thiết lập bit ACK / NACK thành ‘0’, báo cho biết cho sản phẩm công nghệ Master tiếp tục


Sau khi toàn bộ dữ liệu được gửi mang lại thiết bị Slave, máy Master gửi đk dừng để báo cho biết cho tất cả các máy Slave biết rằng bài toán truyền tài liệu đã kết thúc.


Hình dưới đây thể hiện toàn thể các bit tài liệu được gửi trên phố SDA với thiết bị điều khiển và tinh chỉnh chúng khi sản phẩm Master gửi dữ liệu đến sản phẩm công nghệ Slave.


Hình tiếp sau đây thể hiện cục bộ các bit dữ liệu được gửi trê tuyến phố SDA với thiết bị điều khiển và tinh chỉnh chúng khi trang bị Master nhận tài liệu đến sản phẩm công nghệ Slave.


Các chế độ buổi giao lưu của I²C

Dựa vào vận tốc ta chia thành 2 loại

Chế độ chuẩn (standard mode) vận động ở tốc độ 100 Kbit/s.Chế độ tốc độ thấp (low-speed mode) chuyển động ở tốc độ 10 Kbit/s.

Nếu phân tách theo quan hệ nhà tớ:

Một Master một Slave.Một Master nhiều Slave.Nhiều Master nhiều Slave.

Một Master những Slave

Bởi bởi vì I2C áp dụng địa chỉ, nhiều thiết bị Slave có thể được điều khiển và tinh chỉnh từ một lắp thêm Master duy nhất. Với 7 bit địa chỉ cửa hàng tương ứng 128 (27) add duy nhất bao gồm sẵn. Để liên kết nhiều trang bị Slave với cùng 1 một máy Master duy nhất, hãy nối dây như hình mặt dưới, với những điện trở đẩy lên 4.7 kΩ kết nối các đường SDA cùng SCL với Vcc:


Nhiều Master những Slave.

Xem thêm: Tìm Số Tự Nhiên Chẵn Nhỏ Nhất Có 5 Chữ Số Bé Nhất Có 5 Chữ Số Khác Nhau

Nhiều thiết bị Master có thể được kết nối với một máy Slave đối chọi hoặc nhiều thiết bị Slave. Vụ việc với nhiều thiết bị Master trong thuộc một hệ thống xuất hiện khi hai thiết bị Master cố chũm gửi hoặc nhận dữ liệu cùng một thời gian trên dòng SDA. Để giải quyết vấn đề này, mỗi thiết bị Master cần phát hiện tại xem mặt đường SDA thấp tốt cao trước lúc truyền một thông điệp. Nếu mặt đường SDA thấp, điều này tức là một thiết bị Master khác gồm quyền điều khiển và tinh chỉnh bus và thiết bị Master còn lại phải đợi để gửi tin nhắn nhắn. Nếu con đường SDA cao thì bình yên để truyền sở hữu thông điệp. Để liên kết nhiều thiết bị Master với các thiết bị Slave, hãy sử dụng sơ đồ gia dụng sau đây, với điện trở kéo lên 4.7 kΩ kết nối những đường SDA cùng SCL với Vcc:


Tổng kết

I2C là giao thức truyền thông nối tiếp đồng bộ phổ biến chuyển hiện nay, được sử dụng rộng rãi trong việc liên kết nhiều IC với nhau, hay liên kết giữa IC và các ngoại vi với tốc độ thấp.

Qua bài viết này, tôi hy vọng bạn đã sở hữu những kiến thức nhất định về loại giao thức này. Nếu như khách hàng có ngẫu nhiên câu hỏi hoặc có chủ kiến đóng góp cho bài viết thì sung sướng để lại phản hồi dưới đây. Với hãy nhớ đăng ký để nhấn thêm các bài viết như thay này trong vỏ hộp thư mang đến của bạn!