I2C-bus specification Rev.5
1. Abstract
I2C Bus 는 동일한 회로 기판 상에 상주하는 컴포넌트 사이의 통신을 쉽게 할 수 있도록 80년대 초반
Philips Semiconductors (현재 NXP) 에 의해 디자인 되었다. 이 bus 는 Inter-IC 나 I2C-bus 라고 불린다.
I2C-bus 는 여러가지 control architecture 로 사용되어진다.
- System Management Bus (SMBus)
- Power Management Bus (PMBus)
- Intelligent Platform Management Interface (IPMI)
- Display Data Channel (DDC)
- Advanced Telecom Computing Architecture (ATCA)
2. I2C-bus 특징
MCU, LCD, LED Driver, EEPROM, A/D, D/A Converter, Remote I/O Port, RAM, real-time clock,
radio and video systems 의 Digital Turning, signal processing, temperature sensors, smart cards 등
많은 곳에 포함되어 있다. 회로 단순화 및 효율적인 제어를 위해 개발 되었다.
a. 2개의 Bus Line 만 필요하다. (SDA, SCL)
b. Bus 에 연결된 장치들은 마스터/슬레이브 관계로 되어 있고 고유주소를 가진다.
c. 두개의 마스터가 동시에 데이터를 전송할 경우 데이터 손실을 방지하기 위하여 충돌을 검출하고
중재하는 멀티 마스터 방식이다.
d. 통신속도는 아래와 같다.
Bidirectional bus :
- Standard mode : 100Kbit/s
- Fast mode : 400Kbit/s
- Fast mode + : 1Mbit/s
- High Speed mode : 3.4Mbit/s
Unidirectional bus :
- Ultra Fast mode : 5Mbit/s
e. Bus Line 에 Spike (50ns) 는 Input Filter 에 의해 걸러진다.
f. 동일한 버스에 접속 될 수 있는 IC 의 개수는 Bus 의 최대 Capacitance (400pF)에 의해 제한된다.
I2C Bus Application 예제

3. The I2C-bus protocol
3.1. SDA and SCL logic levels
다양한 Device 들이 I2C Bus 에 연결 되기 때문에 SDA 와 SCL 의 Logic Level 은 고정되어 있지
않다. SDA 와 SCL 의 Logic Level 은 Vdd 의 70% 이상일때 High, Vdd 의 30% 이하일때 Low 로
결정된다.
3.2. Data 의 유효성
a. SDA Line 의 Data 는 SCL Line 이 High 인 동안 안정적이어야 한다.
b. SCL Line 의 Clock 이 Low 일때 Data Line 은 High/Low 로 상태를 변경 할 수 있다.
3.3. START and STOP conditions
a. 모든 처리는 START(S) 로 시작하고 STOP(P) 으로 종료된다.
b. START 조건의 정의는 SCL Line 이 High 일때 SDA Line 이 Low 상태가 될때 이다.
c. STOP 조건의 정의는 SCL Line 이 High 일때 SDA Line 이 High 상태가 될때 이다.
d. START 및 STOP 조건은 항상 마스터에 의해 생성된다.
e. Bus 는 START 조건 후에 Busy 상태로 간주 된다.
f. Bus 는 STOP 조건 후에 일정 시간(Buf Time : 0.5us ~ 4.7us) 이 지나면 Free 상태로 간주된다.
g. Repeat START 조건 일 경우 Bus 는 Busy 상태로 유지 된다.
h. START 와 Repeat START 의 조건은 기능적으로 동일하다.
3.4. Byte format
a. SDA Line 의 모든 Byte 의 길이는 8bit 여야 한다.
b. 전송되는 byte 의 수는 제한이 없다.
c. 각 byte 는 ACK bit 가 와야 한다.
d. Data 는 최상위 비트 (MSB) 부터 전송된다.
e. Slave 에서 다른 기능을 수행하기 위해 완전한 Byte 를 수신할 수 없는 경우 Master 는 강제로
SCL Line 을 Low 상태로 유지 할 수 있다.
f. Slave 에서 Data 를 받을 준비가 되었을 때 CLK Line 을 풀고 Data 전송이 계속 된다.
3.5. Acknowledge (ACK) and Not Acknowledge (NACK)
a. Acknowledge 는 모든 Byte 수신 후 일어난다.
b. Acknowledge bit 는 수신기에서 성공적으로 Byte 를 수신 했고 다른 Byte 를 수신 할 수 있다는
신호 이다.
c. Master 는 9번째 bit 를 포함하여 모든 Clock Pulse 를 생성한다.
d. Acknowledge 는 다음과 같이 정의 되어 있다.
- 수신기의 Acknowledge Pulse 는 SCK Pulse 가 High 인 동안 SDA Line 을 해제하고 SDA
Line 을 Low 로 당길 수 있도록 허락한다.
- SDA 가 9번째 Clock Pulse 동안 High 상태로 유지될때 Not Acknowledge 신호로 정의 된다.
e. NACK 신호가 생성되는 5가지 조건 :
1. Bus 에 Address 가 전송되었을 때 응답하는 수신기가 없을 때
2. 수신기가 실시간으로 어떤 기능을 실행중으로 마스터와의 통신을 시작할 수 없을때
3. 전송하는 동안 수신기가 알수 없는 Data 나 Command 를 전송 받았을때
4. 전송하는 동안 수신기가 Data 를 수신할수 없을때
5. 수신기에서 송신기로 전송이 끝났을 때



3.9. The slave address and R/W bit
f. Master - Transmitter

g. Master - Read

h. Combined format

3.10. 10-bit addressing
a. 10-bit address 는 가능한 주소의 수를 확장한다.
b. 10-bit address 를 가진 장치는 동일한 I2C Bus 에 접속 될 수 있다.
c. 10-bit address 는 많이 사용되지 않는다.
d. 10-bit address START 조건 또는 반복 Repeat START 조건 다음의 처음 두 바이트로 부터 형성
된다.
f. 1st byte 의 8번째 bit 는 R/W bit 이다 .
g. 1111 1XX 는 미래의 I2C 버스 개선을 위해 예약되어 있다.
h. Master - Transmitter


j. 10-bit address Slave Device 는 7-bit address Slave Device 와 동일한 방식으로 'general
call'에 응답한다.
3.11. Reserved addresses

3.12. General call address
a. General call address 는 I2C 버스에 연결된 모든 장치를 동시에 호출 한다.
b. Device 는 General call 에 제공된 데이터가 필요하지 않는 경우에 응답을 하지 않음으로써 이
주소를 무시할 수 있다.
c. Device 는 General call 의 데이터에 응답하면 Slave 수신기로 동작한다.
d. Master 는 하나 이상의 장치가 응답하면 몇개의 장치가 응답했는지 알 수 없다.
e. General call 의 의미는 다음과 같다.

- Sencond byte 의 'B' bit 가 0 일때 :
* 0000 0110 (06h): Reset / 프로그램 된 영역에서 Reset 되고 재설정 된다.
* 0000 0100 (04h): 프로그램 된 영역에서 Reset 되고 재설정 된다.
- Sencond byte 의 'B' bit 가 1 일때 :
* xxxx xxx1 : hardware general call, Hardware Master 는 메시지가 전송되어질 Device 를
사전에 알 수 없기 때문에 자신의 주소를 포함하여 호출을 하면 해당 Device 에서 응답 한다.
4.1. CBUS compatibility
a. CBUS 는 Standard-mode I2C 버스 에 연결될 수 있다.
b. DLEN 이라는 세 번째 버스 라인이 연결되어 있어야 하고, ACK bit 를 생략 한다.
c. CBUS 는 전송방식이 다르므로 I2C 버스 장치는 CBUS 메시지에 응답 하지 않는다.
d. CBUS 는 어드레스 전송 후 DLEN 라인은 활성화 되고 CBUS 포맷으로 전송 한다.
e. 전송은 모든 장치 에서 인식 할 수있는 STOP 조건 에 의해 종료됩니다.
4.2. SMBus - System Management Bus
a. SMBus 는 Intel 에서 정의한 I2C 기반의 프로토콜이다.
b. ‘hot-plugged’ 방식으로 시스템을 재시작 하지않고 구성이 가능하다.
c. Device 는 자동으로 인식 되고 고유 한 주소가 할당된다. (plug-and-play)
d. 제조업체 정보를 제공하고 모델/부품 번호를 알려주며 오류보고 및 제어를 한다.
e. PC의 전력 관리칩, 온도센서, 스위치등에 많이 사용된다.
4.3. PMBus - Power Management Bus
a. PMBus 는 전원 변환기의 보다 지능적인 제어를 제공 한다.
b. SMBus 표준을 토대로 256 개의 명령 어드레스가 정의 되어 있고 전원 변환기의 제어, 상태
모니터링, 결함관리, 데이터 저장등을 할 수 있다.
5. Electrical connections of I2C-bus devices to the bus lines
5.1. Pull-up resistor sizing
a. Bus Capacitance 값에 따라 Pull up 저항 값이 달라진다.



5.2. Series protection resistors
a. SDA, SCL Line 에 Series Resistor 를 달면 High-Voltage Spike 보호가 된다.


5.3. Wiring pattern of the bus lines
a. Crosstalk 간섭을 최소화 하기 위하여 Bus Line 의 길이는 최대한 짧게 하는것이 좋다.
b. PCB 나 리본케이블에서 Bus Line 길이가 10cm 가 넘고 VDD, VSS Line 을 포함하는 경우
아래와 같이 구성하는 것이 좋다.


출처 : http://cafe.naver.com/micropic
'HW' 카테고리의 다른 글
HW :: IEC/EN 60065, 60950-1 최소 절연거리 (0) | 2014.09.02 |
---|---|
HW :: How to select the Triac, ACS, or ACST that fits your application (0) | 2014.08.21 |
HW :: 비이상적인 접지 (0) | 2012.04.25 |
HW :: USBSPEC (0) | 2012.04.03 |
HW :: 전기 설비 설계 가이드 (0) | 2012.03.09 |