기타/전자

I2C 통신

한상진-터치 2012. 3. 3. 16:37

Inter-IC

 

RS232C는 잘 아실겁니다.
RS232C 가 장비,기기간의 시리얼 통신이라면.
I²C 는 보드내의 시리얼 통신 규약 입니다.

RS232C 는 비동기통신 방식이지만,
I²C 는 동기 통신 방식입니다. ( 이 둘의 차이는 설명하지 않겠습니다. )

단 두선만을 사용하는 간단한 프로토콜로서 필립스에서 제안한 규격으로 현재
많은 회사들이 지원하고 있습니다. (동일 보드내에서의 통신이므로 전원규격은 필요없습니다.)

두 신호중 하나는 Clock 이고 (동기통신의 필수사항입니다.)
다른 하나는 DATA 입니다.

I²C Master 에서 클럭을 발생하고 I²C Salve 에서 그 클럭에 동기하여 통신을
하는 방식입니다. (하나의 Master 에서 다수의 Slave 가 엮이는 방식입니다.)

가장 대표적으로 이 프로토콜을 사용하는 부품은 시리얼 방식 EEPROM 이 되겠네요

---------------------------------------------------------------------------------------

SDA와 SCL 이 두개를 I2C-BUS라고 합니다.
더 정확히 말해서 Serial_DAta와 Serial_CLock의 약자 입니다.

---------------------------------------------------------------------------------------

하두 오래되서 잘 기억이 안나지만


아마도 필립스사에서 최초로 제안한 통신 방식일 겁니다


I2C통신을 하기 위해서는 덜렁 두개의 라인만 있으면 됩니다

한 라인은 통신에 필요한 클럭을 위한 라인이고

나머지 한 라인이 데이터 전송용 라인입니다

제가 아는 한은 PC에서 사용하는 시리얼 통신과 같이 사용하지는 않는걸로

알고 있구요 마이크로 콘트롤러간의 통신이나 마이크로 콘트롤러와 메모리칩이나

리얼타임 클럭 칩과의 통신과 같은 보드 상에서의 통신으로 주로 사용되는
걸로

알고 있습니다. 저는 리얼타임 클럭 칩과 EEPROM 칩과의 통신에 사용해 보았구요

통신을 할 경우에 통신을 관장하는 Master와 Master의 명령에 따라 움직이는

Slave로 나뉘게 되는데요

제가 사용한 경우는 Microcontroller인 PIC17C756이 Master가 되고

리얼 타임 클럭 칩과 EEPROM 칩이 Slave가 되었습니다

Slave에 각각 아이디와 같이 어드레스를 지정해줄수 있어서

한 라인에 여러개의 칩을 연결하여 사용이 가능합니다

저는 리얼 타임 클럭 칩 하나와 EEPROM 칩 4개를 연결해서 사용해보았습니다

PIC16계열에서는 제가 알기론 Master 모드를 지원하지 않을겁니다

Slave 모드만 지원하는데요 PIC16계열에서 Master모드처럼 사용하기 위해서

일반 포트를 이용해서 소프트웨어 적으로 Master모드를 구현하는 방법을

사용하더군요 해보지는 않아서 잘 모르지만 초보자에게는 쉽지는 않은듯 합니다

장점은 위에 내용을 보시면 대충 아실테고

제가 생각하는 단점은 그다지 빠르지 않다는게 단점인 듯 싶습니다

'기타 > 전자' 카테고리의 다른 글

AMOLED 원리  (0) 2011.11.23