KR20080014218A - 아이투씨 인터페이스에서 데이터 송 수신 장치 및 방법 - Google Patents

아이투씨 인터페이스에서 데이터 송 수신 장치 및 방법 Download PDF

Info

Publication number
KR20080014218A
KR20080014218A KR1020060075595A KR20060075595A KR20080014218A KR 20080014218 A KR20080014218 A KR 20080014218A KR 1020060075595 A KR1020060075595 A KR 1020060075595A KR 20060075595 A KR20060075595 A KR 20060075595A KR 20080014218 A KR20080014218 A KR 20080014218A
Authority
KR
South Korea
Prior art keywords
data
mode
transmitting
clock
environment
Prior art date
Application number
KR1020060075595A
Other languages
English (en)
Inventor
이호준
신상길
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020060075595A priority Critical patent/KR20080014218A/ko
Publication of KR20080014218A publication Critical patent/KR20080014218A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

본 발명은 I2C 인터페이스에 관한 것으로, I2C 인터페이스를 이용한 데이터 송수신 방법에 있어서, 송수신 모드를 결정하는 과정과, 상기 송수신 모드 결정 결과가 제 1 모드일 경우, 데이터 송수신 시 상기 제 1모드를 사용하여 송수신하고, 제어 신호 송수신시 제 2 모드를 사용하여 데이터를 송수신하는 과정과, 상기 송수신 모드 결정 결과가 상기 제 2 모드일 경우, 데이터 송수신 시 및 제어 신호 송수신시 상기 제 2 모드를 사용하여 데이터를 송수신하는 과정을 포함하는 것으로 본 발명의 I2C 인터페이스는 클럭의 가장자리에서 데이터를 송수신할 수 있으므로 기존의 I2C 인터페이스보다 2 배의 데이터를 더 송수신할 수 있어, 빠른 데이터 송수신이 가능하다. 그리고, 노이즈가 많은 환경에서는 기존의 I2C 인터페이스모드로 동작할 수 있어, 노이즈가 많은 환경에 대한 대처가 가능하다.
I2C 인터페이스, Level Triggered, Edge Triggered, SCL(Serial Clock Line), SDA(Serial Data Address).

Description

아이투씨 인터페이스에서 데이터 송 수신 장치 및 방법{APPATURUS AND METHOD FOR DATA SENDING AND RECEIVING IN I2C INTERFACE}
도 1은 일반적인 I2C 인터페이스의 동작 과정을 도시한 도면,
도 2는 일반적인 I2C 인터페이스의 통신 과정을 도시한 도면,
도 3은 일반적인 I2C 인터페이스를 사용하는 장치의 구조를 도시한 도면,
도 4는 일반적인 I2C 인터페이스를 사용하는 마스터 장치의 데이터 송신과정을 도시한 도면,
도 5는 일반적인 I2C 인터페이스를 사용하는 마스터 장치의 데이터 수신과정을 도시한 도면,
도 6은 본 발명의 실시 예에 따른 클럭의 가장자리를 이용하는 I2C 인터페이스의 하드웨어 로직구성을 도시한 도면,
도 7은 본 발명의 실시 예에 따른 가장자리 구동방식을 도시한 도면,
도 8은 본 발명의 실시 예에 따른 클럭 구동 방식에 따른 데이터 전송을 도시한 도면,
도 9는 본 발명의 실시 예에 따른 마스터 장치의 블록 구성을 도시한 도면,
도 10은 본 발명의 실시 예에 따른 슬레이브 장치의 블록 구성을 도시한 도 면,
도 11은 본 발명의 실시 예에 따른 마스터 장치의 데이터 전송과정을 도시한 도면,
도 12는 본 발명의 실시 예에 따른 마스터 장치의 데이터 수신과정을 도시한 도면,
도 13은 본 발명의 실시 예에 따른 클럭의 가장자리를 이용하는 I2C 인터페이스의 모드 변환 과정을 도시한 도면,
도 14는 본 발명의 실시 예에 따른 마스터 장치의 데이터 송신과정을 도시한 흐름도,
도 15는 본 발명의 실시 예에 따른 마스터 장치의 데이터 수신과정을 도시한 흐름도,
도 16는 본 발명의 실시 예에 따른 슬레이브 장치의 데이터 수신과정을 도시한 흐름도, 및,
도 17는 본 발명의 실시 예에 따른 슬레이브 장치의 데이터 송신과정을 도시한 흐름도.
본 발명은 I2C 인터페이스에 관한 것으로, 특히 클럭의 가장리에서 데이터를 송 수신하여 데이터 전송률을 2배로 증가시키는 데이터 송수신 장치 및 방법에 관한 것이다.
상기 I2C 인터페이스는 병렬 버스와 다르게 주변 장치를 단지 두 가닥의 신호선, 즉, 클럭 라인(Clock Line)(SCL)과 데이터 라인(Data Line)(SDA)을 사용하여 양방향 통신을 수행하는 양방향 직렬 버스 통신 인터페이스를 나타낸다. 그리고 상기 I2C 인터페이스는 집적 회로 간의 인터페이스 또는 회로 보드 사이의 인터페이스에 사용이 되고 다양한 분야에서 ASIC(Application Specific Integrated Circuit)으로 구현되어 시스템 제어 경로를 위한 인터페이스로도 사용되고 있다.
도 1은 일반적인 I2C 인터페이스의 동작 과정을 도시한 것이다.
상기 도 1을 참조하면, I2C 인터페이스는 SCL이 하이(high)인 경우에 데이터의 유효성이 보장된다. 그리고 두 가닥의 신호선 만이 사용되기 때문에 간단한 구조를 가지므로 구현이 용이하다.
도 2는 일반적인 I2C 인터페이스의 통신 과정을 도시한 것이다.
상기 도 2를 참조하면, 처음에 어드레스(Address)를 전송하고 이후, 데이터를 연이어 전송한다. 데이터 그리고 어드레스도 상기 도 1의 경우처럼 하이 레벨(High Level)일 경우에 전송한다. 그리고 상기 I2C 인터페이스를 사용하는 장치는 상기 어드레스에 의해 구분이 되고, 응답 신호(ACK)의 수신 여부에 따라 존재 여부가 판단될 수 있다.
도 3은 일반적인 I2C 인터페이스를 사용하는 장치의 구조를 도시한 것이다.
상기 도 3을 참조하면, I2C 인터페이스를 사용하는 장치는 클럭을 공급하는 마스터(310)와 통신 대상이 되는 주변 장치인 슬레이브(320, 322, 324)로 구성된다.
도 4는 일반적인 I2C 인터페이스를 사용하는 마스터 장치의 데이터 송신과정을 도시한 것이다.
I2C 인터페이스는 직렬 전송 방식을 사용하기 때문에 데이터의 전송은 기본적으로 비트 정보를 순차적으로 전송하는 것이다. I2C 버스에서 데이터 비트들을 장치에 전송하기 위해서는 하기와 같은 과정이 필요하다.
먼저 마스터(410) 장치가 슬레이브(420) 장치로 전송을 시작할 경우, 시작 신호를 전송하고(a 단계), 이후, 전송 목적지의 주소를 전송한다(b 단계).
이후, 동작 모드를 전송한다(c 단계). 상기 동작 모드는 쓰기 목적인지 읽기 목적인지를 나타낸다. 상기 도 4는 쓰기 목적인 경우이다. 이후, 상기 동작 모드에 대한 성공 응답(ACK)를 수신하고(d 단계), 데이터 전송(e, g 단계)과, 이에 대한 성공 응답을 수신한다(f, h단계). 이후, 데이터 전송을 완료한 경우, 종료 신호(i 단계)를 전송하고 전송과정을 종료한다. 상기 과정에서 I2C 버스 상에서 데이터를 전송하는 기본 데이터는 8비트 단위로 지정한다. 시작과 종료, 응답 표현은 1비트 단위이다.
도 5는 일반적인 I2C 인터페이스를 사용하는 마스터 장치의 데이터 수신과정을 도시한 것이다.
상기 도 5를 참조하면, 먼저 마스터(510) 장치가 슬레이브(520) 장치로부터 수신을 시작할 경우, 시작 신호를 전송하고(a 단계), 이후, 수신지의 주소를 전송 한다(b 단계).
이후, 동작 모드를 전송한다(c 단계). 상기 동작 모드는 쓰기 목적인지 읽기 목적인지를 나타낸다. 상기 도 5에서는 읽기 목적인 경우이다. 이후, 상기 동작 모드에 대한 성공 응답(ACK)를 수신한다(d 단계).
이후, 데이터를 수신하고(e 단계), 데이터 수신이 성공적이면 성공 응답신호를 전송하고(f 단계), 만약, 데이터를 수신했지만(g 단계), 데이터 수신이 성공적이지 않을 경우에는 실패 응답(Ack Not)신호를 전송한다(h 단계). 이후, 데이터 수신을 완료한 경우, 종료 신호(i 단계)를 전송하고 수신과정을 종료한다.
상기 I2C 인터페이스는 다양한 분야에서 사용이 되고 있지만, 고속의 데이터 전송에는 인터페이스 자체의 데이터 처리 능력이 낮은 관계로 호스트 프로세서의 부하(병목현상으로 인한)로 작용하는 문제점이 있다.
이러한 문제점을 해결하기 위해 클럭을 증가시켜 동작하게 할 수 있지만, 공유하는 채널에 특정한 장치마다 동작하는 클럭을 다르게 설정하기가 곤란하고, 클럭도 제한된 범위 이상으로 증가시킬 수 없다. 또한, 특별한 회로를 장치의 끝 부분이나 중간에 브리지(bridge)로 연결하여 사용할 수 있으나 이는 버스를 공유하여 사용하는 시스템에는 적합하지 않으며, 다른 부가적인 회로를 요구하므로 구현상에 문제점이 발생할 가능성이 높다.
따라서, 상기와 같은 문제점을 극복하는 장치 및 방법이 필요하다.
본 발명의 목적은 클럭의 가장자리에서 데이터를 전송하여 전송율을 높이는 I2C 인터페이스 장치 및 방법을 제공함에 있다.
본 발명의 다른 목적은 데이터 전송율을 높이면서도 호환성이 보장되는 I2C 인터페이스 장치 및 방법을 제공함에 있다.
상기 목적을 달성하기 위한 본 발명의 제 1 견지에 따르면, I2C 인터페이스를 이용한 데이터 송수신 방법에 있어서, 송수신 모드를 결정하는 과정과, 상기 송수신 모드 결정 결과가 제 1 모드일 경우, 데이터 송수신 시 상기 제 1모드를 사용하여 송수신하고, 제어 신호 송수신시 제 2 모드를 사용하여 데이터를 송수신하는 과정과, 상기 송수신 모드 결정 결과가 상기 제 2 모드일 경우, 데이터 송수신 시 및 제어 신호 송수신시 상기 제 2 모드를 사용하여 데이터를 송수신하는 과정을 포함하는 것을 특징으로 한다.
상기 목적을 달성하기 위한 본 발명의 제 2 견지에 따르면, I2C 인터페이스를 이용한 데이터 송수신 장치에 있어서, 클럭의 상향 가장자리에서 데이터를 송수신하는 상향 가장자리 검출부와, 상기 클럭의 하향 가장자리에서 데이터를 송수신하는 하향 가장자리 검출부와, 상기 클럭의 레벨 부분에서 데이터를 송수신하는 데이터 구동부와, 제 1 환경에서는 상기 상향 가장자리 검출부와 하향 가장자리 검출부를 제어하여 상기 클럭의 상향 가장자리 또는 상기 클럭의 하향 가장자리에서 데이터를 송수신하게 하고 제 2 환경에서는 데이터 구동부를 제어하여 상기 클럭의 레벨 부분에서 데이터를 송수신하게 하는 제어부를 포함하는 것을 특징으로 한다.
상기 목적을 달성하기 위한 본 발명의 제 3 견지에 따르면, I2C 인터페이스 를 이용한 데이터 송수신 시스템에 있어서, 제 1 환경에서 클럭의 상향 가장자리 또는 상기 클럭의 하향 가장자리에서 데이터를 송신하고 제 2 환경에서 상기 클럭의 레벨 부분에서 데이터를 송신하는 하는 송신장치와, 상기 제 1 환경에서 상기 송신장치가 상기 클럭의 상향 가장자리에서 또는 상기 클럭의 하향 가장자리에서 전송하는 데이터를 수신하고, 상기 제 2 환경에서 상기 송신장치가 클럭의 레벨 부분에서 전송하는 데이터를 수신하는 수신장치를 포함하는 것을 특징으로 한다.
이하 본 발명의 바람직한 실시 예를 첨부된 도면의 참조와 함께 상세히 설명한다. 그리고, 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다.
이하, 본 발명은 I2C 인터페이스에서 클럭의 가장자리를 사용하는 데이터 송 수신 장치 및 방법에 대해 설명할 것이다. 그리고 본 발명은 레벨 구동(Level Latch)에 의한 방식과 가장자리 구동(Edge Triggered)에 의한 방식을 동시에 지원하는 기술을 제안한다.
도 6은 본 발명의 실시 예에 따른 클럭의 가장자리를 이용하는 I2C 인터페이스의 하드웨어 로직구성을 도시한 것이다.
상기 도 6을 참조하면, 시스템 제어기(System Controller)(610)는 가장자리 구동기(Edge Triggered)(630)을 제어하여 데이터 송수신시 클럭의 가장자리마다 데 이터를 송수신하게 한다. 그리고 레벨 구동기(Level Latch)(620)를 제어하여 어드레시 송수신시 클럭의 레벨마다 어드레스를 송수신하게 한다. 상기 가장자리 구동기(630)는 데이터 송수신시 클럭의 가장자리에서 데이터 송수신을 처리하고, 상기 레벨 구동기(620)는 어드레시 송수신시 클럭의 레벨에서 어드레스 송수신을 처리한다. 가장자리 구동방식은 레벨 구동방식에 비해 2 배 많은 데이터를 같은 단위 시간에 처리할 수 있다. 물리적 구동기(Physical Driver)(640)는 상기 가장자리 구동기(Edge Triggered)(630)및 레벨 구동기(Level Latch)(620)와 버스사이의 인터페이스 역할을 수행한다.
도 7은 본 발명의 실시 예에 따른 가장자리 구동 방식을 도시한 것이다.
상기 도 7을 참조하면, 상기 가장자리 구동 방식은 클럭의 가장자리에서 데이터의 송수신을 수행하기에 레벨 구동 방식에 비해 2 배 많은 데이터를 같은 단위 시간에 처리할 수 있다.
도 8은 본 발명의 실시 예에 따른 클럭 구동 방식에 따른 데이터 전송을 도시한 것이다.
상기 도 8을 참조하면, 본 발명은 레벨 구동에 의한 방식과 가장자리 구동에 의한 방식을 동시에 지원하는 기술을 제안한다. 데이터 전송을 제외한 나머지의 구동 방식(예를 들어, 주소 전송, 제어신호 전송)의 경우에는 기존의 I2C 인터페이스에서 사용하는 레벨 구동 방식을 사용하고 데이터 전송시에는 가장자리 구동 방식을 사용한다.
하지만, 본 발명의 방식은 하기와 같은 3 가지 문제로 인하여 필요에 의해 변경 가능하다. 1 번째로, 버스 채널에 접속되는 장치의 호환성을 위해서 주소 송수신에는 기존의 방식을 사용한다. 2 번째로, 기존의 방식과 본 발명의 방식을 동시에 적용할 경우에 기존의 방식으로 통신을 수행할 수 있게 하기 위해서 기본 설정 모드는 레벨 동작 모드로 설정한다. 그리고, 본 발명의 가장자리 구동 모드를 사용하기 위해서는 I2C 버스를 통한 설정을 통해 또는 다른 방법을 통한 설정을 통해 동작 모드를 전환한다. 3 번째로, 현재의 채널상태가 극히 악화 되었을 경우에는 레벨 구동 모드로 전환한다.
도 9는 본 발명의 실시 예에 따른 마스터 장치의 블록 구성을 도시한 것이다.
상기 도 9를 참고하면, 제어부(I2C Control Unit)(910), 응답 생성부 및 검사부(Acknowledge Generator and Checker)(920), 시작 신호부(START Condition)(930), 종료 신호부(End Condition)(940), 데이터 구동부(Data Driver)(970)의 기능은 기존과 동일하고, 특히, 본 발명에 따라 클럭의 상향 가장자리에서 데이터를 송수신하는 상향 가장자리 검출부(Rising Edge Detector)(950), 그리고 클럭의 하향 가장자리에서 데이터를 송수신하는 하향 가장자리 검출부(Falling Edge Detector)(960)가 추가되었다.
도 10은 본 발명의 실시 예에 따른 슬레이브 장치의 블록 구성을 도시한 것이다.
상기 도 10를 참고하면, 제어부(I2C Control Unit)(1010), 응답 생성부 및 검사부(Acknowledge Generator and Checker)(1020), 시작 신호부(START Condition)(1030), 종료 신호부(End Condition)(1040), 데이터 구동부(Data Driver)(1070)의 기능은 기존과 동일하고, 특히 본 발명에 따라 클럭의 상향 가장자리에서 데이터를 송수신하는 상향 가장자리 검출부(Rising Edge Detector)(1050), 그리고 클럭의 하향 가장자리에서 데이터를 송수신하는 하향 가장자리 검출부(Falling Edge Detector)(1060)가 추가되었다.
도 11은 본 발명의 실시 예에 따른 마스터 장치의 데이터 전송과정을 도시한 것이다. 본 발명의 I2C 인터페이스는 직렬 전송 방식을 사용하기 때문에 데이터의 전송은 기본적으로 비트 정보를 전송하는 것이다. I2C 버스에서 데이터 비트들을 장치에 전송하기 위해서는 하기와 같은 과정이 필요하다.
상기 도 11을 참조하면, 먼저 마스터(1110)장치가 슬레이브(1120)장치로 전송을 시작할 경우, 시작 신호를 전송하고(a 단계), 이후, 전송 목적지의 주소를 전송한다(b 단계). 이후, 동작 모드를 전송한다(c 단계). 상기 동작 모드는 쓰기 목적인지 읽기 목적인지를 나타낸다. 상기 도 11은 쓰기 목적인 경우이다. 이후, 상기 동작 모드에 대한 성공 응답(ACK)을 수신하고(d 단계), 데이터 송신(e, f, h, i 단계)과, 이에 대한 성공 응답을 수신한다(g, j 단계). 이후, 데이터 전송을 완료한 경우, 종료 신호(m 단계)를 전송하고 전송과정을 종료한다. 상기 과정에서 성공응답 신호 수신은 레벨 구동방식을 사용하고, 데이터 전송은 가장자리 구동방식을 사용하기 때문에 2 번의 데이터 전송 후, 상기 성공응답신호를 수신한다. 그리고 상기 과정에서 클럭의 가장자리에서 데이터를 전송하므로, 기존의 방식에 비해 2 배의 데이터를 전송할 수 있다.
도 12는 본 발명의 실시 예에 따른 마스터 장치의 데이터 수신과정을 도시한 것이다.
상기 도 12를 참조하면, 먼저 마스터(1210) 장치가 슬레이브(1220) 장치로부터 수신을 시작할 경우, 시작 신호를 전송하고(a 단계), 이후, 수신지의 주소를 전송한다(b 단계). 이후, 동작 모드를 전송한다(c 단계). 상기 동작 모드는 쓰기 목적인지 읽기 목적인지를 나타낸다. 상기 도 12는 읽기 목적인 경우이다. 이후, 상기 동작 모드에 대한 성공 응답(ACK)를 수신한다(d 단계).
이후, 데이터를 수신하고(e, f 단계), 데이터 수신이 성공적이면 성공 응답신호를 전송하고(g 단계), 만약, 데이터를 수신했지만(h, i 단계), 데이터 수신이 성공적이지 않을 경우에는 실패 응답(Ack Not)신호를 전송한다(j 단계). 이후, 데이터 수신을 완료한 경우, 종료 신호(k 단계)를 전송하고 수신과정을 종료한다. 상기 과정에서 성공응답 신호 전송은 레벨 구동방식을 사용하고, 데이터 수신은 가장자리 구동방식을 사용하기 때문에 2 번의 데이터 수신 후, 상기 성공응답 신호를 전송한다. 그리고 상기 과정에서 클럭의 가장자리에서 데이터를 수신하므로, 기존의 방식에 비해 2 배의 데이터를 수신할 수 있다.
도 13은 본 발명의 실시 예에 따른 클럭의 가장자리를 이용하는 I2C 인터페이스의 모드 변환 과정을 도시한 것이다. 본 발명의 가장자리 구동 모드에서는 장치가 시작 신호와 종료 신호를 혼동할 가능성이 있으므로 해당 블록이 구동되지 못하도록 하고, 상향 가장자리 검출부와 하향 가장자리 검출부를 동시에 동작하게 하기 위해 구동 모드 전환이 필요하다.그리고 해당 데이터가 송 수신되었는지 확인하 고 송수신이 되었으면 일반적인 I2C 모드로 전환하고 종료 신호 블록을 구동시켜 종료신호를 전송한다. 상기 도 11과 상기 도 12 과정 이전에 상기 도 13의 과정이 선행된다.
상기 도 13을 참조하면, 먼저 마스터(1310) 장치가 슬레이브(1320) 장치로 전송을 시작하는 경우, 시작 신호를 전송하고(a 단계), 이후, 전송 목적지의 주소를 전송한다(b 단계). 이후, 동작 모드를 전송한다(c 단계). 상기 동작 모드는 가장자리 구동 모드를 동작하도록 지시하기 위한 것으로 쓰기 모드를 사용한다. 이후, 상기 동작 모드에 대한 성공 응답(ACK)를 수신하고(d 단계), 본 발명의 I2C 전송방식 사용을 위해 사용할 주소를 설정하고(e 단계) 성공응답을 수신한다(f 단계). 이후, 본 발명의 I2C 전송방식으로 전송될 데이터의 수를 설정하고(g 단계) 성공응답을 수신한다.(h 단계). 이후, 종료 신호(i 단계)를 전송하고 전송과정을 종료한다.
도 14는 본 발명의 실시 예에 따른 마스터 장치의 데이터 송신과정을 도시한 것이다.
상기 도 14를 참조하면, 마스터 장치가 슬레이브 장치로 전송을 시작할 경우, 1405단계에서 시작 신호를 전송하고 1410단계에서 전송 목적지의 주소를 전송한다. 이후, 동작 모드를 전송한다(1415 단계). 상기 동작 모드는 쓰기 목적인지 읽기 목적인지를 나타낸다. 상기 도 14에서는 쓰기 목적인 경우이다. 이후, 1420단계에서 상기 동작 모드에 대한 성공 응답(ACK)를 수신한다.
이후, 1425 단계에서 본 발명의 가장자리 구동모드로 전환하고 1430단계에서 정해진 수(N)의 데이터가 전송되었는지 검사한다.
만약, 상기 1430단계에서 정해진 수의 데이터가 전송되지 않았다면 1435 단계에서 2 바이트가 전송되었는지 검사한다.
만약, 상기 1435단계에서 2 바이트가 전송되지 않았다면 1440단계에서 데이터를 1 비트 전송하고 상기 1430단계로 진행한다.
만약, 상기 1435단계에서 2 바이트가 전송된 경우, 1445단계에서 일반적인 I2C 모드로 전환하고 1450단계에서 데이터 전송에 따른 성공응답을 수신한다. 이후, 상기 1425단계로 진행한다.
만약, 상기 1430단계에서 정해진 수의 데이터가 전송되었다면 1455 단계에서 일반적인 I2C 모드로 전환하고 1460단계에서 종료신호를 전송한다.
상기 과정 중에서 통신을 위한 타이머를 설정하여 일정시간 이상의 클럭(SCL)이 수신이 되지 않을 경우나, 일정시간 이상, 본 발명의 I2C 통신 방식이 지켜지지 않을 경우에 타이머 오버플로(Timer Overflow)를 발생시켜 일반적인 I2C 모드로 전환한다.
이후, 본 발명에 따른 알고리즘을 종료한다.
도 15는 본 발명의 실시 예에 따른 마스터 장치의 데이터 수신과정을 도시한 것이다.
상기 도 15를 참조하면, 마스터 장치가 슬레이브 장치로부터 수신을 시작할 경우, 1505단계에서 시작 신호를 전송하고 1510단계에서 수신 목적지의 주소를 전송한다. 이후, 동작 모드를 전송한다(1515 단계). 상기 동작 모드는 쓰기 목적인지 읽기 목적인지를 나타낸다. 상기 도 15는 읽기 목적인 경우이다. 이후, 1520단계에서 상기 동작 모드에 대한 성공 응답(ACK)를 수신한다.
이후, 1525 단계에서 본 발명의 가장자리 구동모드로 전환하고 1530단계에서 정해진 수(N)의 데이터가 수신되었는지 검사한다.
만약, 상기 1530단계에서 정해진 수의 데이터가 수신되지 않았다면 1535 단계에서 2 바이트가 수신되었는지 검사한다.
만약, 상기 1535단계에서 2 바이트가 수신되지 않았다면 1540단계에서 데이터를 1 비트 수신하고 상기 1530단계로 진행한다.
만약, 상기 1535단계에서 2 바이트가 수신된 경우, 1545단계에서 일반적인 I2C 모드로 전환하고 1550단계에서 데이터 수신에 따른 성공응답을 전송한다. 이후, 상기 1525단계로 진행한다.
만약, 상기 1530단계에서 정해진 수의 데이터가 수신되었다면 1555 단계에서 일반적인 I2C 모드로 전환하고 1560단계에서 종료신호를 전송한다.
상기 과정 중에서 통신을 위한 타이머를 설정하여 일정시간 이상의 클럭(SCL)이 수신이 되지 않을 경우나, 일정시간 이상, 본 발명의 I2C 통신 방식이 지켜지지 않을 경우에 타이머 오버플로(Timer Overflow)를 발생시켜 일반적인 I2C 모드로 전환한다.
이후, 본 발명에 따른 알고리즘을 종료한다.
도 16는 본 발명의 실시 예에 따른 슬레이브 장치의 데이터 수신과정을 도시한 것이다.
상기 도 16를 참조하면, 마스터 장치가 슬레이브 장치로 전송을 시작할 경우, 1605단계에서 시작 신호를 수신하고 1610단계에서 전송 목적지(즉, 상기 슬레이브 장치)주소를 수신한다. 이후, 동작 모드를 수신한다(1615 단계). 상기 동작 모드는 쓰기 목적인지 읽기 목적인지를 나타낸다. 상기 도 16은 상기 마스터 장치가 쓰기 목적인 경우이다. 이후, 1620단계에서 상기 동작 모드에 대한 성공 응답(ACK)를 전송한다
이후, 1625 단계에서 본 발명의 가장자리 구동모드로 전환하고 1630단계에서 정해진 수(N)의 데이터를 수신하였는지 검사한다.
만약, 상기 1630단계에서 정해진 수의 데이터를 수신하지 않은 경우 1635 단계에서 2 바이트를 수신하였는지 검사한다.
만약, 상기 1635단계에서 2 바이트를 수신하지 않았다면 1640단계에서 데이터를 1 비트 수신하고 상기 1630단계로 진행한다.
만약, 상기 1635단계에서 2 바이트를 수신한 경우, 1645단계에서 일반적인 I2C 모드로 전환하고 1650단계에서 데이터 수신에 따른 성공응답을 전송한다. 이후, 상기 1625단계로 진행한다.
만약, 상기 1630단계에서 정해진 수의 데이터를 수신하였다면 1655 단계에서 일반적인 I2C 모드로 전환하고 1660단계에서 종료신호를 수신한다.
상기 과정 중에서 통신을 위한 타이머를 설정하여 일정시간 이상의 클럭(SCL)이 수신이 되지 않을 경우나, 일정시간 이상, 본 발명의 I2C 통신 방식이 지켜지지 않을 경우에 타이머 오버플로(Timer Overflow)를 발생시켜 일반적인 I2C 모 드로 전환한다.
이후, 본 발명에 따른 알고리즘을 종료한다.
도 17는 본 발명의 실시 예에 따른 슬레이브 장치의 데이터 송신과정을 도시한 것이다.
상기 도 17를 참조하면, 마스터 장치가 슬레이브 장치로부터 수신을 시작할 경우, 1705단계에서 시작 신호를 수신하고 1710단계에서 수신 목적지의 주소(즉, 상기 슬레이브 장치의 주소)를 수신한다. 이후, 동작 모드를 수신한다.(1715 단계). 상기 동작 모드는 쓰기 목적인지 읽기 목적인지를 나타낸다. 상기 도 17은 상기 마스터 장치가 읽기 목적인 경우이다. 이후, 1720단계에서 상기 동작 모드에 대한 성공 응답(ACK)를 전송한다.
이후, 1725 단계에서 본 발명의 가장자리 구동모드로 전환하고 1730단계에서 정해진 수(N)의 데이터가 전송되었는지 검사한다.
만약, 상기 1730단계에서 정해진 수의 데이터가 전송되지 않았다면 1735 단계에서 2 바이트가 전송되었는지 검사한다.
만약, 상기 1735단계에서 2 바이트가 전송되지 않았다면 1740단계에서 데이터를 1 비트 전송하고 상기 1730단계로 진행한다.
만약, 상기 1735단계에서 2 바이트가 전송된 경우, 1745단계에서 일반적인 I2C 모드로 전환하고 1750단계에서 데이터 수신에 따른 성공응답을 수신한다. 이후, 상기 1725단계로 진행한다.
만약, 상기 1730단계에서 정해진 수의 데이터가 전송되었다면 1755 단계에서 일반적인 I2C 모드로 전환하고 1760단계에서 종료신호를 수신한다.
상기 과정 중에서 통신을 위한 타이머를 설정하여 일정시간 이상의 클럭(SCL)이 수신이 되지 않을 경우나, 일정시간 이상, 본 발명의 I2C 통신 방식이 지켜지지 않을 경우에 타이머 오버플로(Timer Overflow)를 발생시켜 일반적인 I2C 모드로 전환한다.
이후, 본 발명에 따른 알고리즘을 종료한다.
본 발명의 특성을 기존의 방식과 비교하면 하기 <표 1>과 같다.
기존의 I2C 본 발명의 I2C
데이터 트래픽의 양 N 2N
호환성 없음(기존의 I2C만 가능) 있음(기존의 I2C와 본 발명의 I2C)
노이즈 대처 없음 잡음이 많을 경우, 기존의 I2C로 전환하여 동작
모드 변환 없음 모드변환(기존의 I2C, 본 발명의 I2C 사이의 변환)이 소프트웨어 또는 하드웨어적으로 가능
상기 <표 1>을 참고하면, 본 발명의 I2C는 기존의 I2C보다 2 배의 데이터를 전송할 수 있으며 기존의 I2C처럼 동작도 가능하다. 그리고 노이즈가 많은 경우에는 기존의 I2C로 동작할 수 있다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
본 발명의 I2C 인터페이스는 클럭의 가장자리에서 데이터를 송수신할 수 있으므로 기존의 I2C 인터페이스보다 2 배의 데이터를 더 송수신할 수 있어, 빠른 데이터 송수신이 가능하다. 그리고, 노이즈가 많은 환경에서는 기존의 I2C 인터페이스모드로 동작할 수 있어, 노이즈가 많은 환경에 대한 대처가 가능하다.

Claims (11)

  1. I2C 인터페이스를 이용한 데이터 송수신 방법에 있어서
    송수신 모드를 결정하는 과정과,
    상기 송수신 모드 결정 결과가 제 1 모드일 경우, 데이터 송수신 시 상기 제 1모드를 사용하여 송수신하고, 제어 신호 송수신시 제 2 모드를 사용하여 데이터를 송수신하는 과정과,
    상기 송수신 모드 결정 결과가 상기 제 2 모드일 경우, 데이터 송수신 시 및 제어 신호 송수신시 상기 제 2 모드를 사용하여 데이터를 송수신하는 과정을 포함하는 것을 특징으로 하는 방법.
  2. 제 1항에 있어서,
    상기 송수신 모드를 결정하는 과정은,
    전송 환경이 노이즈가 적은 환경일 경우 또는 기 설정 값이 상기 제 1 모드 사용일 경우에는 상기 제 1 모드 사용을 결정하고,
    상기 전송환경이 노이즈가 많은 환경일 경우 또는 상기 기 설정 값이 상기 제 2 모드 사용일 경우에는 상기 제 2 모드 사용을 결정하는 것임을 특징으로 하는 방법.
  3. 제 2항에 있어서,
    데이터 송수신 시 제 1 모드를 사용하여 송수신하고, 제어 신호 송수신시 제 2 모드를 사용하여 데이터를 송수신하는 과정은,
    상기 제 1 모드 사용을 설정하는 과정과,
    상기 설정 과정 후, 데이터를 송수신한 후, 상기 데이터 송수신에 따른 제어 신호 송수신시 상기 제 2 모드로 전환하여 상기 제어 신호를 송수신하는 과정과,
    상기 데이터 송수신을 완료한 경우, 상기 제 2 모드 사용을 설정하는 과정을 포함하는 것을 특징으로 하는 방법.
  4. 제 3항에 있어서,
    상기 제 1 모드 사용을 설정하는 과정은,
    상기 제 1 모드로 전송할 주소를 설정하는 과정과,
    상기 주소 설정 후, 상기 제 1 모드로 전송할 데이터의 수를 설정하는 과정을 포함하는 것을 특징으로 하는 방법.
  5. 제 4항에 있어서,
    상기 제 1 모드는 클럭의 상향 가장자리 또는 하향 가장자리에서 데이터를 송수신하는 것이고 상기 제 2 모드는 클럭의 레벨에서 데이터를 송수신하는 것임을 특징으로 하는 방법.
  6. I2C 인터페이스를 이용한 데이터 송수신 장치에 있어서
    클럭의 상향 가장자리에서 데이터를 송수신하는 상향 가장자리 검출부와,
    상기 클럭의 하향 가장자리에서 데이터를 송수신하는 하향 가장자리 검출부와,
    상기 클럭의 레벨 부분에서 데이터를 송수신하는 데이터 구동부와,
    제 1 환경에서는 상기 상향 가장자리 검출부와 하향 가장자리 검출부를 제어하여 상기 클럭의 상향 가장자리 또는 상기 클럭의 하향 가장자리에서 데이터를 송수신하게 하고 제 2 환경에서는 데이터 구동부를 제어하여 상기 클럭의 레벨 부분에서 데이터를 송수신하게 하는 제어부를 포함하는 것을 특징으로 하는 장치.
  7. 제 6항에 있어서,
    상기 제 1 환경은 전송 환경이 노이즈가 적은 환경일 경우 또는 기 설정 값이 상기 클럭의 상향 가장자리 및 하향 가장자리에서 데이터를 송수신하는 환경이고, 상기 제 2 환경은 전송 환경이 노이즈가 많은 환경일 경우 또는 기 설정 값이 상기 클럭의 레벨에서 데이터를 송수신하는 환경인 것을 특징으로 하는 장치.
  8. 제 6항에 있어서,
    상기 장치는 상기 클럭의 레벨에서 제어신호를 송수신하는 것을 특징으로 하는 장치.
  9. I2C 인터페이스를 이용한 데이터 송수신 시스템에 있어서
    제 1 환경에서 클럭의 상향 가장자리 또는 상기 클럭의 하향 가장자리에서 데이터를 송신하고 제 2 환경에서 상기 클럭의 레벨 부분에서 데이터를 송신하는 하는 송신장치와,
    상기 제 1 환경에서 상기 송신장치가 상기 클럭의 상향 가장자리에서 또는 상기 클럭의 하향 가장자리에서 전송하는 데이터를 수신하고, 상기 제 2 환경에서 상기 송신장치가 클럭의 레벨 부분에서 전송하는 데이터를 수신하는 수신장치를 포함하는 것을 특징으로 하는 시스템.
  10. 제 9항에 있어서,
    상기 제 1 환경은 전송 환경이 노이즈가 적은 환경일 경우 또는 기 설정 값이 상기 클럭의 상향 가장자리 및 하향 가장자리에서 데이터를 송수신하는 환경이 고, 상기 제 2 환경은 전송 환경이 노이즈가 많은 환경일 경우 또는 기 설정 값이 상기 클럭의 레벨에서 데이터를 송수신하는 환경인 것을 특징으로 하는 시스템.
  11. 제 9항에 있어서,
    상기 송신 장치 및 수신 장치는 상기 클럭의 레벨에서 제어신호를 송수신하는 것을 특징으로 하는 시스템.
KR1020060075595A 2006-08-10 2006-08-10 아이투씨 인터페이스에서 데이터 송 수신 장치 및 방법 KR20080014218A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060075595A KR20080014218A (ko) 2006-08-10 2006-08-10 아이투씨 인터페이스에서 데이터 송 수신 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060075595A KR20080014218A (ko) 2006-08-10 2006-08-10 아이투씨 인터페이스에서 데이터 송 수신 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20080014218A true KR20080014218A (ko) 2008-02-14

Family

ID=39341550

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060075595A KR20080014218A (ko) 2006-08-10 2006-08-10 아이투씨 인터페이스에서 데이터 송 수신 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20080014218A (ko)

Similar Documents

Publication Publication Date Title
US7111097B2 (en) One wire serial communication protocol method and circuit
US8175173B2 (en) Methods and systems for transmitting signals differentially and single-endedly across a pair of wires
US20060277339A1 (en) Communication apparatus, switching method, and switching program
US7706309B2 (en) Data transfer control device, electronic instrument, and data transfer control method
US20020108011A1 (en) Dual interface serial bus
KR100687923B1 (ko) 마스터디바이스, 그 제어방법과 마스터디바이스를 갖는전자장치
JP2007026438A (ja) 通信システム
CN108920401B (zh) 多主多从的i2c通信方法、系统及节点设备
RU2740163C2 (ru) Устройство связи, способ связи, программа и система связи
US9880895B2 (en) Serial interface with bit-level acknowledgement and error correction
EP3246823B1 (en) Optical module and transmitting data in optical module
CN101361111B (zh) 用于驱动显示设备的方法和装置
WO2017183482A1 (en) Communication device, communication method, program, and communication system
KR20080014218A (ko) 아이투씨 인터페이스에서 데이터 송 수신 장치 및 방법
JP6903645B2 (ja) 通信装置、通信方法、プログラム、および、通信システム
US8421652B2 (en) Decoding circuit and decoding method thereof
US20200250122A1 (en) Circuit device and electronic apparatus
JP2005084792A (ja) データ通信ユニット
KR20190008198A (ko) 통신 장치, 통신 방법, 프로그램, 및, 통신 시스템
JP2017207934A5 (ko)
KR20190127570A (ko) 디스플레이 장치 및 그의 드라이버
WO2024009733A1 (ja) 半導体装置、および通信システム
KR20080020909A (ko) 전자장치 및 i2c 통신방법
KR0178588B1 (ko) I2c 프로토콜 통신 장치
CN114070666B (zh) 一种总线通讯接口电路及增强总线通讯效果的通信方法

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination