I²C

Bách khoa toàn thư mở Wikipedia
Bước tới điều hướng Bước tới tìm kiếm

I²C (viết tắt của từ tiếng Anh "Inter-Integrated Circuit", phát âm tiếng Anh I-two-C, hoặc cũng có thể viết là IIC) là một loại bus nối tiếp được phát triển bởi hãng sản xuất linh kiện điện tử Philips (nay là hãng NXP Semiconductors) vào năm 1982.[1] I²C được sử dụng rộng rãi trong việc tích hợp các IC ngoại vi tốc độ thấp vào vi điều khiển và vi xử lí ở khoảng cách ngắn, hoặc để giao tiếp trực tiếp giữa các board mạch/vi điều khiển với nhau.

SMBus (System Management Bus), là một "chuẩn con" của I²C, được giới thiệu bởi Intel vào năm 1995, với đặc tính sử dụng nghiêm ngặt hơn. SMBus nổi bật bởi tính ổn định và độ tương thích cao. Do đó, các hệ thống I²C ngày nay đã sử dụng một số chính sách và nguyên tắc của SMBus, và đôi khi hỗ trợ cả I²C và SMBus, thông qua việc sử dụng câu lệnh (command) hoặc thay đổi kết nối các chân linh kiện.

Lịch sử phát triển[sửa | sửa mã nguồn]

Ban đầu, loại bus này chỉ được dùng trong các linh kiện điện tử của Philips. Sau đó, do tính ưu việt và đơn giản của nó, I²C đã được chuẩn hóa và được dùng rộng rãi trong các module truyền thông nối tiếp của vi mạch tích hợp ngày nay.

Từ ngày 10/10/2006, việc triển khai giao thức I²C trong quá trình sản xuất, thương mại sẽ không bị tính phí.[2] Tuy nhiên, việc sở hữu địa chỉ I²C cho các thiết bị slave cung cấp bởi NXP sẽ bị tính phí.

Các đối thủ cạnh tranh của NXP như Siemens AG (sau này là Infineon Technologies AG, và hiện tại là Intel mobile communications), NEC, Texas Instruments, STMicroelectronics (trước đó là SGS-Thomson), Motorola (sau này là Freescale, hiện tại đã sáp nhập vào NXP), Nordic Semiconductor và Intersil, đã giới thiệu các sản phẩm tích hợp bus I²C từ giữa những năm 1990s.

Đặc tính[sửa | sửa mã nguồn]

Truyền thông với bus I²C là quá trình truyền thông đồng bộ nối tiếp, hỗ trợ nhiều master và slave trên đường truyền. I²C phù hợp với các ngoại vi mà sự ưu tiên về kết nối đơn giản và chi phí sản xuất thấp quan trọng hơn là yêu cầu về tốc độ truyền.

Một điểm mạnh khác của I²C nằm ở khả năng vi điều khiển có thể điều khiển được một mạng lưới các thiết bị khác mà chỉ thông qua 2 chân của vi điều khiển. Nếu một số công nghệ bus nối tiếp khác cho cùng yêu cầu này, như SPI, thì việc điều khiển sẽ yêu cầu nhiều chân kết nối và dây tín hiệu hơn để kết nối nhiều thiết bị.

Cấu tạo và nguyên lý hoạt động[sửa | sửa mã nguồn]

I²C sử dụng hai đường truyền tín hiệu: một đường xung nhịp đồng hồ (SCL) và một đường dữ liệu (SDA).[3] SCL và SDA luôn được kéo lên nguồn bằng một điện trở kéo lên có giá trị xấp xỉ 4,7 KOhm. Các chế độ hoạt động của I²C bao gồm:

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

Tần số xung nhịp đồng hồ có thể xuống 0 Hz. I²C sử dụng 7 bit để định địa chỉ, do đó trên một bus có thể định địa chỉ tới 112 nút, 16 địa chỉ còn lại được sử dụng vào mục đích riêng. Điểm mạnh của I²C chính là hiệu suất và sự đơn giản của nó: một vi điều khiển trung tâm có thể điều khiển cả một mạng thiết bị mà chỉ cần hai ngõ ra điều khiển.

Xem thêm[sửa | sửa mã nguồn]

Chú thích[sửa | sửa mã nguồn]

  1. ^ “I2C – What’s That?”. 
  2. ^ "I²C Licensing Information" (PDF). 10 tháng 1 năm 2017. Truy cập ngày 29 tháng 11 năm 2019.  Kiểm tra giá trị ngày tháng trong: |accessdate= (trợ giúp)
  3. ^ “How I2C Communication Works and How To Use It with Arduino”. 

Tham khảo[sửa | sửa mã nguồn]