# I²C

### 위키백과 ― 우리 모두의 백과사전.

I²C 는 필립스에서 개발한 직렬 컴퓨터 버스이며 마더보드, 임베디드 시스템, 휴대폰등에 저속의 주변 기기를 연결하기 위해 사용된다. I²C 라는 이름은 Inter-Integrated Circuit의 약자이며 아이-스퀘어-씨 라고 발음한다.

## [편집] 설계

I²C 는 풀업 저항이 연결된 직렬 데이터(SDA)와 직렬 클럭(SCL)이라는 두 개의 양 방향 오픈 컬렉터 라인을 사용한다. 최대 전압은 +5 V 이며, 일반적으로 +3.3V 시스템이 사용되지만 다른 전압도 가능하다.

I²C 레퍼런스 디자인은 7 비트의 주소 공간을 가지며, 이 중 16개는 예약되어 있으므로, 동일한 버스에 최대 112개의 노드를 연결할 수 있다. 가장 일반적으로 사용되는 I²C 버스의 모드는 표준 모드인 100 kbit/s와, 저속 모드인 10 kbit/s 가 사용된다. 최신 리비전의 I²C 는 보다 빠르게 동작하며, (패스트(fast) 모드인 400 kbit/s와 고속(high-speed) 모드인 3.4 Mbit/s를 지원한다) 최대 1008 노드까지 연결 가능한 10 비트 주소 지정 등의 확장된 기능들을 지원한다.

## [편집] 리비전

원래 I²C 시스템은 1980년대 초반에 개발되었으며, 여러 필립스 칩들을 이용하여 전자 제품을 구성하기 위한 간단한 내부 버스 시스템으로 사용되었다.

1992년에 패스트 모드 10 비트 주소 지정 기능이 추가된 최초 표준 버전이 발표되었으며, 1998년에는 낮은 전압에서 동작하는 고속 모드와 전원 관리 요구 사항이 추가된 버전 2.0이 발표되었다. 2001년에 발표된 버전 2.1은 버전 2.0에서 약간의 수정이 가해진 것으로 현재 최신 버전에 해당한다.

## [편집] 응용

I²C 는 빠른 속도를 요구하지 않는 간단하고 저비용의 주변 장치들에 적합하다. I²C 버스가 사용되는 주된 응용 영역은 다음과 같다:

- 사용자 설정값을 저장하기 위해 NVRAM에 접근하는 경우
- 저속의 DAC에 접근하는 경우.
- 저속의 ADC에 접근하는 경우.
- 모니터의 명암, 대비, 색상 등을 변경하는 경우
- 지능형 스피커의 볼륨값을 변경하는 경우
- 휴대폰 등의 장치에 포함된 LED를 제어하는 경우
- CPU 온도나 팬 속도와 같은 하드웨어 모니터링 정보나 진단 센서 정보를 읽는 경우
- RTC 값을 읽는 경우.
- 시스템 요소의 전원을 제어하는 경우

I²C 의 장점은 특히 마이크로컨트롤러에서 단지 2 개의 GPIO 핀과 소프트웨어만을 이용하여 여러 장치들을 제어할 수 있다는 점이다.

주변 장치들은 시스템이 동작 중일때도 I²C 버스에 추가/제거될 수 있으며, 이것은 핫 스왑이 필요한 요소들을 이용하는 응용에 적합하다.

I²C 와 같은 버스들은 컴퓨터 엔지니어들이 칩의 패키지 크기와 핀 수가 생산 비용과 IC 설계에 영향을 준다는 것을 인식한 후부터 널리 사용되었다. 또한 작은 패키지는 일반적으로 더 적은 전력을 소모하므로, 휴대폰이나 이동형 장치들에서 사용하기에 편리하다.

## [편집] 운영 체제 지원

리눅스에서는, I²C 는 특정 장치에 대한 커널 모듈로 처리된다. I²C 클라이언트를 작성하는 법은 커널 관련 문서와 /usr/include/linux/i2c.h 헤더 파일에서 찾아볼 수 잇다.

OpenBSD는 최근 I²C 프레임워크에 대한 지원을 추가하였으며, 몇 가지 일반적인 마스터 컨트롤러들과 센서들을 지원한다.

Sinclair QDOS와 Minerva (QDOS reimplementation), QL 운영체제에서는 TF 서비스에서 제공하는 확장 기능을 통해 I²C 를 지원한다.

AmigaOS는 Wilhelm Noeker의 i2c.library 공유 라이브러리를 통해 I²C 를 지원한다.

eCos는 여러 하드웨어 아키텍처에 대해 I²C 를 지원한다.

EPIA-M 마더보드는 Mini-ITX 범위에서 I²C 를 지원한다.

## [편집] 파생 기술

I²C 는 ACCESS.bus, VESA Display Data Channel (DDC) 인터페이스, System Management Bus (SMBus), (IPMI 프로토콜 중의 하나인) Intelligent Platform Management Bus (IPMB)의 기본 기술이다. 이러한 것들은 전압과 클럭 주파수 범위에서 차이가 있으며, 인터럽트 라인을 가질 수 있다.

## [편집] 함께 보기

- I²S
- 1-Wire Bus
- SPI 버스
- SMBus

## [편집] 바깥 고리

- 필립스 I2C 명세
- 자세한 소개, 입문서
- I2C 소개
- I2C Bus / Access Bus
- 리눅스에서 I2C 버스 사용하기
- OpenBSD iic(4) 매뉴얼 페이지
- 리눅스 패키지 lm-sensors - I2C 및 다른 버스 지원.
- massmind i2c page PC, PIC, SX 마이크로 컨트롤러에서 i2c 를 사용하기 위한 소스 코드 및 기술 정보
- I2C bus
- 직렬 버스 정보
- I2C 버스의 기술적인 개요 및 FAQ
- I2C FAQ 버전 2.0
- I2C, SMBus, PMBus, IPMB & IPMI 와 같은 2 라인 버스 정보

원본 주소 ‘http://ko.wikipedia.org../../../i/%C2%B2/c/I%C2%B2C_66e0.html’

분류: 직렬 버스

##### Views

- 문서
- 토론
- 현재 버전

##### 찾기

##### 다른 언어

- Česky
- Deutsch
- English
- Español
- Suomi
- Français
- Italiano
- 日本語
- Nederlands
- Polski
- Português
- Русский
- Basa Sunda
- Svenska
- Tiếng Việt
- 中文