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 hai chiều với hai dây tín hiệu đượ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) cho quá trình giao tiếp giữa các IC. 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.
SMBus ( System Management Bus ), là một ” chuẩn con ” của I²C, được ra mắt bởi Intel vào năm 1995, với đặc tính sử dụng khắt khe hơn. SMBus điển hình nổi bật bởi tính không thay đổi và độ thích hợp cao. Do đó, những mạng lưới hệ thống I²C ngày này đã sử dụng 1 số ít chủ trương và nguyên tắc của SMBus, và nhiều lúc tương hỗ cả I²C và SMBus, trải qua việc sử dụng câu lệnh ( command ) hoặc biến hóa liên kết những chân linh phụ kiện .
Nội dung chính
Lịch sử tăng trưởng.
Bus I²C được tăng trưởng vào những năm 1980. [ 2 ] Ban đầu, loại bus này chỉ được dùng trong những linh phụ kiện điện tử của Philips. Sau đó, do tính ưu việt và đơn thuần của nó, I²C đã được chuẩn hóa và được dùng thoáng đãng trong những module tiếp thị quảng cáo tiếp nối đuôi nhau của vi mạch tích hợp ngày này .
Từ ngày 10 tháng 10 năm 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í.[3] 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í.
Bạn đang đọc: I²C – Wikipedia tiếng Việt
Các đối thủ cạnh tranh cạnh tranh đối đầu 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, đã ra mắt những mẫu sản phẩm tích hợp bus I²C từ giữa những năm 1990 .
Đặc điểm kĩ thuật.
Các thiết bị thích hợp với bus I²C đều tích hợp một giao diện trên chip ( on-chip interface ) được cho phép những thiết bị đó tiếp xúc với nhau trải qua bus I²C. Các tính năng của một bus I²C :
- Chỉ sử dụng hai đường bus: SDA (serial data line, tạm dịch: đường truyền dữ liệu nối tiếp) và SCL (serial clock line, tạm dịch: đường xung nhịp nối tiếp).
- Hoạt động theo cơ chế master-slave với cả master và slave đều có thể truyền-nhận dữ liệu. Hỗ trợ nhiều master với cơ chế phát hiện va chạm trên đường truyền (collision detection) và phân xử (arbitration) khi có va chạm tín hiệu để ngăn ngừa mất dữ liệu nếu hai hoặc nhiều master truyền tín hiệu cùng lúc.
- Mỗi thiết bị kết nối vào bus được định một địa chỉ duy nhất bằng phần mềm.
- Quá trình truyền dữ liệu nối tiếp hai chiều 8-bit có định hướng có thể đạt tốc độ lên đến 100 kbit/giây với Standard-mode (tạm dịch: chế độ tiêu chuẩn), 400 kbit/giây với Fast-mode (tạm dịch: chế độ nhanh), 1 Mbit/giây với Fast-mode Plus (Fm+) hoặc đến 3.4 Mbit/s với High-speed mode. Ultra Fast-mode là chế độ chỉ truyền đơn hướng với tốc độ có thể lên đến 5Mbit/giây.
- Lọc nhiễu các xung nhọn trên đường bus để đảm bảo tính toàn vẹn dữ liệu.
- Số lượng IC tối đa có thể kết nối được trên I²C bus chỉ phụ thuộc vào sức chứa tối đa của bus.
Thiết kế kĩ thuật.
I²C sử dụng 2 đường dây 2 chiều là SCL và SDA với cực thu hở và cực máng hở, 2 dây này luôn được kéo lên nguồn bằng một điện trở kéo lên có giá trị xê dịch 4,7 kΩ. Khi bus ở trạng thái rảnh ( không tính tiền ), cả 2 dây SDA và SCL đều ở mức logic cao. Không gian địa chỉ ( 7 – bit hoặc 10 – bit địa chỉ ) và thông số kỹ thuật điện dung của bus sẽ số lượng giới hạn số lượng thiết bị hoặc node hoàn toàn có thể liên kết vào bus .
Thiết kế tìm hiểu thêm.
Bus I²C sử dụng 7 bit để định địa chỉ. Các node trên bus sẽ đóng 2 vai trò là master hoặc slave :
- Master node: node phát xung clock và khởi tạo giao tiếp với slave.
- Slave node: node nhận xung clock và phản hồi khi được định địa chỉ bởi master.
Có 4 chế độ hoạt động cho một thiết bị trên bus I²C, bao gồm:
- master transmit: Node master đang gởi dữ liệu đến slave
- master receive: Node master đang nhận dữ liệu từ slave
- slave transmit: Node slave đang gởi dữ liệu đến master
- slave receive: Node slave đang nhận dữ liệu từ master
Bus I²C hoàn toàn có thể là một bus có nhiều master ( multi-master bus ). Tức là hoàn toàn có thể có nhiều hơn một thiết bị hoàn toàn có thể điều khiển và tinh chỉnh những thiết bị khác liên kết vào bus I²C đó .Về hoạt động giải trí tổng quan giữa master và slave, xét 2 ví dụ sau :Với hình minh họa, xét trường hợp vi điều khiển và tinh chỉnh master ( µC Master trên hình ) muốn gởi thông tin đến vi điều khiển và tinh chỉnh slave ( µC Slave ) trên hình, hàng loạt quy trình diễn ra như sau :
- µC Master định địa chỉ (address) µC Slave
- µC Master (khi đó là master-transmitter) sẽ gởi dữ liệu đến µC Slave (khi đó là slave-receiver)
- µC Master hủy quá trình truyền
Với hình minh họa, xét trường hợp vi điều khiển và tinh chỉnh master ( µC Master trên hình ) muốn nhận thông tin đến vi tinh chỉnh và điều khiển slave ( µC Slave ) trên hình, hàng loạt quy trình diễn ra như sau :
- µC Master định địa chỉ (address) µC Slave
- µC Master (khi đó là master-receiver) nhận dữ liệu từ µC Slave (khi đó là slave-transmitter)
- µC Master hủy quá trình truyền
Tần số xung nhịp đồng hồ đeo tay hoàn toàn có thể xuống 0 Hz. Trên một bus I²C hoàn toàn 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 tiêu riêng .
Các hệ điều hành quản lý tương hỗ.
- Hệ điều hành AmigaOS hỗ trợ component i2c.resource[9] cho AmigaOS 4.x và MorphOS 3.x hoặc shared library i2c.library (phát triển bởi Wilhelm Noeker) cho các hệ thống cũ hơn.
- Nền tảng Arduino với thư viện Wire[10]
- Maximite hỗ trợ giao tiếp I2C trong thành phần của MMBasic.
TWI (Two-Wire Interface) hoặc TWSI (Two-Wire Serial Interface) về cơ bản là một dạng I²C bus triển khai trên các bộ xử lý system-on-chip của Atmel và các nhà phân phối khác.[11]
Trên thực tiễn, bus I²C thời nay đã trở thành một tiêu chuẩn quốc tế được tiến hành trong hơn 1000 loại IC khác nhau bởi hơn 50 nhà phân phối IC. Các bus I²C đa tính năng được dùng trong nhiều kiến trúc tinh chỉnh và điều khiển, như SMBus ( System Management Bus ), PMBus ( Power Management Bus ), IPMI ( Intelligent Platform Management Interface ), DDC ( Display Data Channel ) và ATCA ( Advanced Telecom Computing Architecture ) .Một điểm mạnh khác của I²C nằm ở năng lực vi tinh chỉnh và điều khiển hoàn toàn có thể tinh chỉnh và điều khiển được một mạng lưới những thiết bị khác mà chỉ trải qua 2 chân của vi điều khiển và tinh chỉnh. Với một số ít công nghệ tiên tiến bus tiếp nối đuôi nhau khác cho cùng nhu yếu này, như SPI, thì việc tinh chỉnh và điều khiển sẽ nhu yếu nhiều chân liên kết và dây tín hiệu hơn để liên kết nhiều thiết bị .
Tài liệu tìm hiểu thêm.
Liên kết ngoài.
Source: http://139.180.218.5
Category: Thuật ngữ đời thường