2009. 2. 1. 14:06
I2C Bus Interface
  - 1. Introduction

-------------------------------------------------------------------------------------
1. I2C, I2C(IIC) Bus Interface

  간단히 말해 통신방식의 하나로서, 주로 주변장치(Peripheral)와 통신/제어 용으로 많이 사용합니다.
  SCLK, SDATA 두개의 line을 사용하는 동기식 직렬통신(Synchoronous Serial Communication)의 하나입니다.
  비슷한 방식 통신 방식에는 UART, SPI 등이 있습니다.

  사실 별 신경쓰지 않고 있는 IIC, I2C 이 이름은 Inter-IC의 약자이다. IC는 Intergrated Circuit의 약자이다.
  어느 사이트에서 이 이름의 발음을 나름 쉽고 재미있게 표현했다.
  "eye-squared-see" 물론 이것은 발음상의 이야기이다

  통신 방식의 하나이지만, 앞서 말한 Inter-IC에서 보듯이, 주 목적이 제어입니다.
  
  여담으로 말하자면, 처음 고안한 회사가 Philips(현 NXP) 입니다.
  실제 이 회사 사이트에 가면 i2c specification을 얻을 수 있습니다.
  다음 링크를 참조하세요
  http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf

2. 기본적인 구성 및 통신 방식 
   * 기본적인 구성
     - SCL : Serial Clock
     - SDA : Serial Data
     - 이 두 SCL, SDA로 Send, Recieve를 모두 수행합니다.

   *  Transferring bit/bytes

   * 기본적인 특징 및 통신 방식
     - Master Slave Relationship
       모든 I2C 장치들은 Master와 Slave간의 통신입니다.
       사실 이둘을 어떻게 구분하느냐는 것은 간단히 Clock generation을 누가 하느냐라고 보면 됩니다.

     - Single Master, Multiple Slave
       하나의 Master에 여러개의 Slave가 연결될 수 있습니다.
       이런 특징과 더불어 Slave device는 device고유의 Slave address를 가지고 이를 통해 각각의 Slave와 통신합니다.

     - Communication Protocol
       ▷ Slave Address를 지정
       ▷ I2C의 구성에서 보듯이 Read/Write에 대한 전용 line이 없고 통신 프로토콜 상에서 Read/Write를 결정.
       ▷ ACK(Acknowledgement), NACK(Non-Acknowledgement)
         [Slave Address][R/W][NACK/ACK]  [DATA][NACK/ACK]



--------------------------------------------------------------------------------------------------------
출처 : 직접 작성