1980 년대 필립스가 개발 한 I2C는 전자 제품에서 가장 일반적인 직렬 통신 프로토콜 중 하나가되었습니다. I2C 는 구성 요소가 동일한 PCB에 있거나 케이블을 통해 연결되어 있는지 여부에 관계없이 전자 부품이나 IC에서 IC 로의 통신을 가능하게합니다. I2C의 핵심 기능은 단순한 통신 속도와 저비용을 요구하는 애플리케이션에 I2C를 완벽하게 적용 할 수 있도록 단 2 개의 와이어로 단일 통신 버스에 수많은 구성 요소를 포함 할 수있는 기능입니다.
I2C 프로토콜 개요
I2C는 PCB상의 칩 간 통신을 위해 설계된 두 개의 신호 라인 만 필요로하는 직렬 통신 프로토콜입니다. I2C는 원래 100kbps 통신용으로 설계되었지만 최대 3.4Mbps의 속도를 달성하기 위해보다 빠른 데이터 전송 모드가 개발되었습니다. I2C 프로토콜은 공식 표준으로 제정되어 I2C 구현 간의 호환성이 뛰어나고 하위 호환성이 뛰어납니다.
I2C 신호
I2C 프로토콜은 I2C 버스의 모든 장치와 통신하기 위해 두 개의 양방향 신호선 만 사용합니다. 사용 된 두 신호는 다음과 같습니다.
- 직렬 데이터 라인 (SDL)
- 직렬 데이터 클록 (SDC)
I2C가 여러 주변 장치와 통신하는 데 2 개의 신호 만 사용할 수있는 이유는 버스를 통한 통신이 처리되는 방법에 있습니다. 각 I2C 통신은 나머지 통신이 통신을 수신하기위한 것 인 주변 장치의 주소를 호출하는 7 비트 (또는 10 비트) 주소로 시작합니다. 이를 통해 I2C 버스의 여러 장치가 시스템 요구 사항에 따라 마스터 장치의 역할을 수행 할 수 있습니다. 통신 충돌을 방지하기 위해 I2C 프로토콜에는 버스를 따라 원활하게 통신 할 수있는 조정 및 충돌 감지 기능이 포함되어 있습니다.
장점과 한계
통신 프로토콜로서, I2C는 make가 많은 임베디드 디자인 어플리케이션에 적합한 많은 장점을 가지고 있습니다. I2C는 다음과 같은 이점을 제공합니다.
- I2C는 두 개의 신호 라인 만 필요로합니다.
- 유연한 데이터 전송 속도
- 버스상의 각 장치는 독립적으로 주소 지정 가능합니다
- 장치는 간단한 마스터 / 슬레이브 관계를가집니다.
- I2C는 중재 및 통신 충돌 감지 기능을 제공하여 다중 마스터 통신을 처리 할 수 있습니다.
- SPI보다 장거리 통신
이러한 모든 장점으로 인해 I2C에는 몇 가지 한계가 있습니다. 가장 중요한 I2C 제한 사항은 다음과 같습니다.
- 장치 어드레싱에 7 비트 (또는 10 비트) 만 사용할 수 있기 때문에 동일한 버스의 장치는 동일한 주소를 공유 할 수 있습니다. 일부 장치는 주소의 마지막 몇 비트를 구성 할 수 있지만 여전히 동일한 버스에 장치의 제한을 부과합니다.
- 제한된 통신 속도가 제한되어 있으며 많은 장치가 고속 전송을 지원하지 않습니다. 느린 장치가 부분 전송을 포착하여 작동 오류가 발생하지 않도록 버스의 각 속도를 부분적으로 지원해야합니다.
- I2C 버스의 공유 특성으로 인해 버스에있는 단일 장치가 작동을 멈 추면 전체 버스가 매달릴 수 있습니다. 버스에 전원을 순환시키는 것은 버스를 재시작하고 적절한 작동을 복원하는 데 사용될 수 있습니다.
- 장치는 통신 속도를 설정할 수 있으므로 느린 작동 장치는 더 빠른 속도의 장치 작동을 지연시킬 수 있습니다.
- I2C는 통신 라인의 오픈 드레인 토폴로지로 인해 다른 직렬 통신 버스보다 많은 전력을 소비합니다.
- 일반적으로 I2C 버스의 한계는 버스에있는 장치의 수를 약 12 개 장치로 제한합니다.
응용 분야
I2C 버스는 고속이 아닌 저비용 및 간단한 구현이 필요한 애플리케이션에 적합한 옵션입니다. 예를 들어 특정 메모리 IC 읽기, DAC 및 ADC 액세스, 센서 읽기 , 사용자 지정 동작 전송 및 제어, 하드웨어 센서 읽기 및 다중 마이크로 컨트롤러와의 통신은 I2C 통신 프로토콜의 일반적인 용도입니다.