KR20050072502A - 동작모드 자동전환이 가능한 i2c 버스 컨트롤러 - Google Patents

동작모드 자동전환이 가능한 i2c 버스 컨트롤러 Download PDF

Info

Publication number
KR20050072502A
KR20050072502A KR1020040000544A KR20040000544A KR20050072502A KR 20050072502 A KR20050072502 A KR 20050072502A KR 1020040000544 A KR1020040000544 A KR 1020040000544A KR 20040000544 A KR20040000544 A KR 20040000544A KR 20050072502 A KR20050072502 A KR 20050072502A
Authority
KR
South Korea
Prior art keywords
bus
scl
signal
sda
rise time
Prior art date
Application number
KR1020040000544A
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 KR1020040000544A priority Critical patent/KR20050072502A/ko
Publication of KR20050072502A publication Critical patent/KR20050072502A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/12Picture reproducers
    • H04N9/31Projection devices for colour picture display, e.g. using electronic spatial light modulators [ESLM]
    • H04N9/3141Constructional details thereof
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K5/00Casings, cabinets or drawers for electric apparatus
    • H05K5/0004Casings, cabinets or drawers for electric apparatus comprising several parts forming a closed casing
    • H05K5/0008Casings, cabinets or drawers for electric apparatus comprising several parts forming a closed casing assembled by screws

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)

Abstract

I2C 버스 컨트롤러가 개시된다. 본 발명에 따른 I2C 버스 컨트롤러는, SCL 및 SDA로 구성된 I2C 버스에 접속된 디바이스와 데이터를 송수신하기 위하여 I2C 버스를 제어하는 I2C 버스 컨트롤러에 있어서, 시스템의 초기단계에 테스트를 위한 펄스를 생성시키는 테스트펄스 생성부, 테스트펄스 생성부에 의해 생성된 펄스에 대하여, SCL 및 SDA에 인가된 신호와 I2C 버스 상에 나타난 신호 사이의 펄스의 갯수를 카운팅하는 카운터, 카운터에 의해 카운팅된 펄스의 갯수에 기초하여 I2C 버스에 인가되는 신호의 상승시간을 산정하는 상승시간 산정부, 및 상승시간 산정부에 의해 산정된 상승시간에 따라 표준모드, 고속모드, 및 초고속모드 중의 어느 하나의 동작모드로 전환제어하는 제어부를 구비한다. 이로써, I2C 버스 컨트롤러는 발생되는 신호와 디바이스에 인가되는 신호 사이의 상승시간에 따라 최적의 동작모드로 동작전환이 가능하게 된다.

Description

동작모드 자동전환이 가능한 I2C 버스 컨트롤러{I2C bus controller capable of automatic switching operation mode}
본 발명은 I2C 버스 컨트롤러에 관한 것으로서, 보다 상세하게는, I2C 버스 상에 존재하는 슬레이브 장치들의 갯수에 따라 변화하는 SCL 및 SDA 신호선의 상승시간을 감지하여 타이밍 스펙 및 동작모드를 자동적으로 조절할 수 있는 I2C 버스 컨트롤러에 관한 것이다.
I2C는 집적회로들 간의 통신 링크를 제공하는 두 가닥 선의 양방향 직렬 버스이다. I2C는 인터-IC(Inter-IC)라고도 불리운다. 필립스는 TV, VCR 및 오디오 장비 등과 같은 대량 생산되는 제품용으로 I2C 버스를 소개하였다. I2C는 오늘날, 내장 응용을 위한 사실상의 표준 솔루션이 되었다. I2C 버스에는 표준, 고속 및 초고속 등 속도에 따라 세 가지 데이터 전송 모드가 있는데, 표준 모드는 100 Kbps, 고속은 400 Kbps, 그리고 초고속 모드에서는 최고 3.4 Mbps의 속도를 지원한다. 이 세 가지 모두 하위 호환성을 갖는다. I2C 버스는 7 비트와 10 비트 주소 공간을 갖는 장비들과, 서로 다른 전압에서 동작하는 장비들을 지원한다.
I2C 버스는 클록 전송을 위한 직렬 클록 라인(SCL)(Serial Clock Line)과 데이터를 직렬로 전송하기 위한 직렬 데이터 전송 라인(SDA)(Serial DAta line)으로 구성되며, 클록에 따라서 한 비트씩 데이터 라인에 실려 송수신된다. 또한, I2C 버스에 접속된 디바이스들은 마스터(master)와 슬레이브(slave) 관계로 상호 작용한다. I2C는 다수의 슬레이브 장치와 통신이 가능한 직렬버스 프로토콜로서, 다수의 슬레이브 장치를 전원선과 두 가닥의 선(SCL, SDA)만으로 제어가 가능하다.
일반적인 시스템은 각종 I/O 디바이스 예를 들면, ADC(Analog to Digital Converter), 센서, EEPROM(Electrically Erasable and Programmable ROM) 등의 제어를 위해서 I/O 개수에 해당하는 신호선과 전원선을 필요로 하며, 이를 줄이기 위하여 기존의 시리얼 인터페이스 프로토콜(serial interface protocol)인 I2C 또는 SM 버스 등을 사용하여 I/O 제어에 필요한 신호선을 SCL, SDA 두 개의 라인으로 공통으로 사용해서 제어한다. 이 경우, 메인 컨트롤러는 I2C를 지원하는 I/O 디바이스들의 제어를 위해 I2C 또는 SM 버스의 프로토콜을 만족하는 I2C 버스 컨트롤러를 구비하여야 하며, 이와 같은 I2C 버스 컨트롤러를 이용해서 I2C 버스 혹은 SM 버스 상의 I/O 디바이스들에 단순히 데이터를 쓰거나, 읽는 동작만을 수행한다.
도 1은 일반적인 I2C 버스 컨트롤러의 구성을 개략적으로 도시한 블록도이다. 도면을 참조하면, I2C 버스 컨트롤러(20)는 SCL 발생부(21), SDA 발생부(23), 및 SFR(Special Function Registers)부(25)를 구비한다.
SCL 발생부(21)는 슬레이브 디바이스1(30) 및 슬레이브 디바이스2(40)의 동작 주파수를 생성한다. 또한, SDA 발생부(23)는 슬레이브 디바이스1(30) 또는 슬레이브 디바이스2(40)에 데이터를 기록(write)하거나, 슬레이브 디바이스1(30) 또는 슬레이브 디바이스2(40)로부터 데이터를 독출(read)한다. 또한, SFR부(25)는 I2C 버스 컨트롤러(20)의 기능제어(SCL 주파수제어, 프로토콜제어, 관련 인터럽트 제어 등)와 메인 프로세서(10)와의 인터페이스를 담당한다.
I2C 버스의 직렬 인터페이스(serial interface)는 양방향 데이터를 표준모드(standard mode)시 최고 200kHz와 고속모드(fast mode)시는 최고 400kHz가지 송수신한다. SDA와 SCL의 출력 스테이지(output stage)는 각각 풀업(pull-up) 저항을 채용한 오픈 드레인(open-drain) 혹은 오픈 콜렉터(open-collector) 타입으로 '와이어드 앤드(WIRED-AND)' 동작을 수행한다.
SDA로 전송되는 직렬 데이터의 포맷은 각각 9비트로 구성되며, 이 직렬 데이터의 포맷을 구성하는 9비트는 8비트 데이터와 1비트의 애크(ACK)(ACKnowledge)로 구성된다. ACK를 포함한 데이터의 송수신이 완료되면, I2C 디바이스들은 SCL을 로우(low) 레벨로 홀드(hold)하여 I2C 버스의 사이클 진행을 대기시킨다. 그리고, 각각의 디바이스들 내부적으로 해당되는 인터럽트 등의 수행을 통해 이들 데이터의 처리 및 다음 사이클의 데이터 송수신작업을 준비한다. 이것이 완료되면, SCL에 해당되는 클록을 인가하여 다음 사이클을 진행한다. 이러한 동작은 I2C 버스가 와이어드 앤드 형태에 근거하여 버스 대기에 활용한 것이다.
도 2는 I2C 버스의 기본적인 프로토콜을 설명하기 위해 도시한 도면이다. I2C 버스를 통해 접속된 기기들 간에 있어서, 마스터는 전송을 개시하는 장치로 클록 펄스를 만들고, 또한 전송을 종료하는 역할을 하는 장치이며, 슬레이브는 마스터가 어드레싱한 장치이다. 마스터가 시작 상태(start condition)를 만들면, 버스에 연결된 슬레이브 장치들이 이후의 데이터를 기다린다. 여기서, 마스터에 의한 시작 상태는, SCL과 SDA가 모두 하이(High)인 상태에서, SDA가 로우(Low)로 떨어지는 상태를 말한다.
마스터가 슬레이브 어드레스를 보내면, 각각의 칩은 자신의 고유 어드레스와 비교하며, 어드레스가 일치하는 칩은 이어지는 ACK 신호 구간에서 데이터를 로우(low)로 유지하여 응답을 보낸다. 그러면, 마스터는 슬레이브에 대하여 데이터를 읽거나 쓰기를 할 수 있다. 모든 작업이 끝나면, 마스터는 정지 상태(stop contion)를 만들고, 버스를 해제(release)한다. 여기서, 마스터에 의한 정지 상태는, SCL이 하이인 동안에 SDA가 로우에서 하이로 바뀌는 상태를 말한다. 이때, 마스터에 의해 생성되는 클록은 일정한 듀티 사이클(duty cycle)을 유지할 필요는 없다.
일반 데이터 전송에서는 SCL이 로우일때만 SDA의 상태를 바꿀 수 있다. 따라서, SCL이 하이인 구간에서만 유효한 데이터이다. 마스터는 먼저 SDA을 적당한 데이터로 바꾸고, SCL을 일정시간 하이로 하고 다음 SDA 라인의 상태를 바꾸기 전에 SCL을 로우로 만든다. 이때, 데이터는 8비트이고, MSB(Most Significant Bit)가 먼저 전송된다. 시작 상태와 정지 상태 사이에 전송되는 데이터의 수에는 제한이 없다. 이때, 9번째의 SCL에 해당하는 슬레이브 장치는 전송의 가능 여부에 따라 ACK(Low) 또는 NACK(High) 신호를 I2C 버스 컨트롤러에 전송하게 된다.
I2C 버스는 이상적으로는 버스상에 연결 가능한 장치의 숫자에 제한이 없으나, 프로토콜의 타이밍 스펙(timing spec)을 만족하기 위해서 버스 커패시턴스(capacitance) 제한을 만족하여야 한다. 즉, I2C 버스는 표준 모드의 경우 100pF, 고속 모드의 경우 400pF, 및 초고속 모드의 경우 100 또는 400pF를 만족하여야 하며, 이에 따라 SCL 및 SDA의 상승/하강 시간은 표준 모드의 경우 1000ns, 고속 모드의 경우 300ns, 및 초고속 모드의 경우 10 ~ 160ns를 만족하여야 한다.
그런데, 종래의 기술에 따른 I2C 버스 컨트롤러는 I2C 버스 상에 부착된 슬레이브 장치들의 개수에 의한 SCL, SDA 신호선의 기울기(또는 상승/하강 시간)를 알 수 있는 방법이 없으며, 이에 따라 적절한 타이밍 스펙에 맞는 SDA 및 SCL을 생성할 수 없고, 사용자가 임의로 정의해 주어야 한다는 문제점이 있다. 특히, I2C 버스 상에 부착되는 슬레이브 장치들의 갯수가 증가하는 경우, 실제로 인가한 SCL 및 SDA 신호의 기울기가 더 커지기 때문에, 적절한 타이밍 스펙을 맞추기는 더욱 어려워진다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 창안된 것으로서, SCL 및 SDA 신호선의 기울기(상승시간/하강시간)를 산정하여 이에 적절한 타이밍 스펙을 만족하는 SCL 및 SDA 신호를 자동적으로 생성하고, 이에 적합한 동작모드로 자동적으로 변환가능한 I2C/SM 버스 컨트롤러를 제공하는 것을 목적으로 한다.
상기의 목적을 달성하기 위한 본 발명에 따른 I2C 버스 컨트롤러는, SCL(Serial Clock Line) 및 SDA(Serial DAta line)으로 구성된 I2C 버스에 접속된 디바이스와 데이터를 송수신하기 위하여 상기 I2C 버스를 제어하는 I2C 버스 컨트롤러에 있어서, 시스템의 초기단계에 테스트를 위한 펄스를 생성시키는 테스트펄스 생성부, 상기 테스트펄스 생성부에 의해 생성된 상기 펄스에 대하여 상기 SCL 및 상기 SDA에 인가된 신호와 상기 I2C 버스 상에 나타난 신호 사이의 상기 펄스의 갯수를 카운팅하는 카운터, 상기 카운터에 의해 카운팅된 상기 펄스의 갯수에 기초하여 상기 I2C 버스에 인가되는 신호의 상승시간을 산정하는 상승시간 산정부, 및 상기 상승시간 산정부에 의해 산정된 상기 상승시간에 따라 표준모드, 고속모드, 및 초고속모드 중의 어느 하나의 동작모드로 전환제어하는 제어부를 포함하는 것을 특징으로 한다.
바람직하게는, 상기 I2C 버스 컨트롤러는, 상기 표준모드, 상기 고속모드, 및 상기 초고속모드에 대한 최대 주파수를 저장하는 주파수 저장부를 더 포함하는 것이 바람직하다. 이 경우, 상기 제어부는 전환된 상기 동작모드에 대응하는 주파수로 전환제어한다.
또한, 상기 I2C 버스 컨트롤러는 상기 상승시간 산정부에 의해 산정된 상기 상승시간이 설정된 범위 외의 값인 경우, 상기 제어부의 동작을 정지시키기 위한 인터럽트신호를 발생시키는 인터럽트 발생부를 더 포함하는 것이 바람직하다.
바람직하게는, 상기 I2C 버스 컨트롤러는 상기 I2C 버스 상에서 하강하는 신호와 상기 SCL 및 상기 SDA의 하강하는 신호 사이의 하강시간을 산정하는 하강시간 산정부를 더 포함한다. 이 경우, 상기 카운터는 상기 테스트펄스 생성부에 의해 생성된 상기 펄스에 대하여, 상기 SCL 및 상기 SDA의 하강하는 신호와 상기 I2C 버스 상에서 하강하는 신호 사이의 상기 펄스의 갯수를 카운팅하며, 상기 하강시간 산정부는 상기 카운터에 의해 카운팅된 상기 펄스의 갯수에 기초하여 상기 하강시간을 산정한다.
이로써, I2C 버스 컨트롤러는, SCL 및 SDA 신호선의 기울기(상승시간/하강시간)를 산정하여 이에 적절한 타이밍 스펙을 만족하는 SCL 및 SDA 신호를 자동적으로 생성하고, 이에 적합한 동작모드로 자동적으로 변환가능하게 된다.
이하, 첨부된 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 3은 본 발명에 따른 I2C 버스 컨트롤러를 개략적으로 도시한 블록도이다. 도면을 참조하면, I2C 버스 컨트롤러는(200), SCL 발생부(210), SDA 발생부(220), 테스트펄스 생성부(230), 카운터(240), 상승시간 산정부(250), 하강시간 산정부(260), 제어부(270), 및 인터럽트 발생부(280)를 구비한다.
SCL 발생부(210)는 슬레이브 디바이스1(300) 및 슬레입 디바이스2(400)의 동작 주파수를 생성한다. 또한, SDA 발생부(220)는 슬레이브 디바이스1(300) 또는 슬레이브 디바이스2(400)에 데이터를 기록(write)하거나, 슬레이브 디바이스1(300) 또는 슬레이브 디바이스2(400)로부터 데이터를 독출(read)한다.
테스트펄스 생성부(230)는 I2C 버스 컨트롤러(200)가 장착된 시스템의 초기단계에 테스트를 위한 펄스를 생성한다. 테스트펄스 생성부(230)에 의해 생성된 테스트펄스는 최적의 타이밍 스펙을 만족하는 SCL신호 및 SDA신호를 생성하기 위한 것으로서, 슬레이브 디바이스1(300) 및 슬레이브 디바이스2(400)를 동작시키기 위해 발생되는 SCL신호 및 SDA신호와는 무관하다.
카운터(240)는 테스트펄스 생성부(230)에 의해 생성된 펄스에 대하여, SCL 발생부(210)에 의해 SCL에 인가된 신호 또는 SDA 발생부(220)에 의해 SDA에 인가된 신호와 SCL 또는 SDA 버스 상에 나타난 신호 사이의 펄스의 갯수를 카운팅한다.
상승시간 산정부(250)는 카운터(240)에 의해 카운팅된 펄스의 갯수에 기초하여 I2C 버스에 인가되는 신호의 상승시간을 산정한다. 또한, 하강시간 산정부(260)는 I2C 버스 상에서 하강하는 신호와 SCL 발생부(210) 또는 SDA 발생부(220)의 하강하는 신호 사이의 하강시간을 산정한다.
제어부(270)는 I2C 버스 컨트롤러(200)의 기능제어(SCL 주파수제어, 프로토콜제어, 관련 인터럽트 제어 등)와 메인 프로세서(100)와의 인터페이스를 담당한다. 또한, 제어부(270)는 상승시간 산정부(250)에 의해 산정된 상승시간 또는 하강시간 산정부(260)에 의해 산정된 하강시간에 따라 표준모드, 고속모드, 및 초고속모드 중의 어느 하나의 동작모드로 전환제어한다.
주파수 저장부(280)는 표준모드, 고속모드, 및 초고속모드에 대한 최대 주파수를 저장한다. 이때, 제어부(270)는 상승시간 산정부(250) 또는 하강시간 산정부(260)에 의해 산정된 상승시간 또는 하강시간에 대응하는 표준모드, 고속모드, 또는 초고속모드에 대한 최대 주파수를 검색하며, 검색된 주파수로 주파수 전환제어한다.
인터럽트 발생부(290)는 상승시간 산정부(250) 또는 하강시간 산정부(260)에 의해 산정된 상승시간 또는 하강시간이 설정된 범위 이외의 값인 경우, 제어부(270)의 동작을 정지시키기 위한 인터럽트신호를 발생시킨다.
도 4는 도 3의 I2C 버스 컨트롤러에 의한 제어방법을 나타낸 흐름도이다. 도면을 참조하여 본 발명에 따른 I2C 버스 컨트롤러의 동작 및 작용을 상세하게 설명한다.
테스트펄스 발생부(230)는 최적의 타이밍 스펙을 만족하기 위한 SCL 신호 또는 SDA신호를 생성하기 위하여, 사전에 상승시간 또는 하강시간을 측정하기 위한 테스트펄스를 발생시킨다(S401). 테스트펄스 발생부(230)에 의해 발생된 펄스는 일정한 간격을 유지하며 일정한 주기로 발생되는 클록과 비슷한 성질을 가지는 것이 바람직하다.
카운터(240)는 테스트펄스 발생부(230)에 의해 발생된 SCL신호 또는 SDA신호와, SCL 버스 또는 SDA 버스를 통해 슬레이브 디바이스1(300) 또는 슬레이브 디바이스2(400)에 인가되는 신호 사이의 테스트펄스의 갯수를 카운팅한다(S403).
상승시간 산정부(250)는 테스트펄스 발생부(230)에 의해 발생된 펄스와 슬레이브 디바이스1(300) 또는 슬레이브 디바이스2(400)에 인가되는 신호 사이의 기울기 즉, 상승시간을 산정한다(S405). 이해를 돕기 위하여, 도 5에 상승시간 산정부(250)에 의해 산정되는 상승시간(기울기)의 일 예를 도시하였다. 즉, 상승시간 산정부(250)는 I2C 버스 컨트롤러(200)에 접속되는 슬레이브 디바이스의 갯수의 증가에 의해 발생되는 SCL신호 또는 SDA신호와 인가되는 SCL신호 또는 SDA신호의 사이에 발생되는 시간지연(기울기)를 산정한다.
상승시간 산정부(250)에 의해 상승시간이 산정되면, 제어부(270)는 주파수 저장부(280)로부터 산정된 상승시간에 대응하는 최대 주파수를 검색한다(S407). 이때, 주파수 저장부(280)에는 I2C 버스의 상승시간에 대응하는 최대 주파수가 기저장되어 있다.
상승시간 산정부(250)에 의해 산정된 상승시간이 설정된 범위 즉, I2C 버스 컨트롤러(200)가 장착된 시스템이 허용할 수 있는 기설정된 범위 이내에 존재하면(S409), 제어부(270)는 상승시간 산정부(250)에 의해 산정된 상승시간에 따라 표준모드, 고속모드, 및 초고속모드 중의 어느 하나로 동작모드를 전환제어한다(S411). 또한, 제어부(270)는 상승시간 산정부(250)에 의해 산정된 상승시간에 따라 주파수 저장부(280)로부터 검색된 주파수로 주파수모드를 전환제어한다(S413).
상승시간 산정부(250)에 의해 산정된 상승시간이 설정된 범위 이내가 아닌 경우, 인터럽트 발생부(290)는 제어부(270)의 동작을 정지시키기 위한 인터럽트 신호를 발생시킨다(S415). 또한, 인터럽트 발생부(290)는 발생된 인터럽트 신호를 메인 프로세서(100)에 전송하여 시스템을 정지시킨다(S417). 이것은 허용범위 이외의 SCL신호 또는 SDA신호 발생에 의해 시스템에 고장이 발생되는 것을 사전에 방지하기 위함이다.
상기에는 발생되는 SCL신호 또는 SDA신호와, 슬레이브 디바이스에 인가되는 SCL신호 또는 SDA신호 사이의 상승시간을 측정하고, 측정된 상승시간에 기초하여 적절한 동작모드로 제어하는 방법에 대하여만 설명하였지만, 하강시간에 의한 동작모드 제어에도 상기와 유사한 방법이 적용된다.
이로써, I2C 버스 컨트롤러는 발생되는 SCL신호 또는 SDA신호와, 슬레이브 디바이스에 인가되는 SCL신호 또는 SDA신호 사이의 상승시간 또는 하강시간에 따라 최적의 동작모드 제어가 가능하게 된다.
본 발명에 따르면, I2C 버스 컨트롤러는 발생되는 신호와 디바이스에 인가되는 신호 사이의 상승시간 또는 하강시간에 따라 적절한 동작모드로 자동적으로 전환하여 제어할 수 있게 되므로, 마스터와 슬레이브는 최적 상태의 안정적인 통신이 가능하게 되며, 슬레이브 디바이스 갯수의 증가에 따른 동작가능 및 불가능여부도 판단할 수 있게 된다.
이상에서는 본 발명의 바람직한 실시예에 대해서 도시하고 설명하였으나, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.
도 1은 일반적인 I2C 버스 컨트롤러의 구성을 개략적으로 도시한 블록도,
도 2는 I2C 버스의 기본적인 프로토콜을 설명하기 위해 도시한 도면,
도 3은 본 발명에 따른 I2C 버스 컨트롤러를 개략적으로 도시한 블록도,
도 4는 도 3의 I2C 버스 컨트롤러에 의한 제어방법을 나타낸 흐름도, 그리고
도 5는 도 3에 의한 상승시간/하강시간의 산정을 설명하기 위해 나타낸 도면이다.
* 도면의 주요부분에 대한 부호의 설명 *
100 : 메인 프로세서 200 : I2C 버스 컨트롤러
210 : SCL 발생부 220 : SDA 발생부
230 : 테스트펄스 발생부 240 : 카운터
250 : 상승시간 산정부 260 : 하강시간 산정부
270 : 제어부 280 : 주파수 저장부
290 : 인터럽트 발생부

Claims (5)

  1. SCL(Serial Clock Line) 및 SDA(Serial DAta line)로 구성된 I2C 버스에 접속된 디바이스와 데이터를 송수신하기 위하여 상기 I2C 버스를 제어하는 I2C 버스 컨트롤러에 있어서,
    시스템의 초기단계에 테스트를 위한 펄스를 생성시키는 테스트펄스 생성부;
    상기 테스트펄스 생성부에 의해 생성된 상기 펄스에 대하여, 상기 SCL 및 상기 SDA에 인가된 신호와 상기 I2C 버스 상에 나타난 신호 사이의 상기 펄스의 갯수를 카운팅하는 카운터;
    상기 카운터에 의해 카운팅된 상기 펄스의 갯수에 기초하여 상기 I2C 버스에 인가되는 신호의 상승시간을 산정하는 상승시간 산정부; 및
    상기 상승시간 산정부에 의해 산정된 상기 상승시간에 따라 표준모드, 고속모드, 및 초고속모드 중의 어느 하나의 동작모드로 전환제어하는 제어부;를 포함하는 것을 특징으로 하는 I2C 버스 컨트롤러.
  2. 제 1항에 있어서,
    상기 표준모드, 상기 고속모드, 및 상기 초고속모드에 대한 최대 주파수를 저장하는 주파수 저장부;를 더 포함하며,
    상기 제어부는, 전환된 상기 동작모드에 대응하는 주파수로 전환제어하는 것을 특징으로 하는 I2C 버스 컨트롤러.
  3. 제 2항에 있어서,
    상기 상승시간 산정부에 의해 산정된 상기 상승시간이 설정된 범위 외의 값인 경우, 상기 제어부의 동작을 정지시키기 위한 인터럽트신호를 발생시키는 인터럽트 발생부;를 더 포함하는 것을 특징으로 하는 I2C 버스 컨트롤러.
  4. 제 3항에 있어서,
    상기 I2C 버스 상에서 하강하는 신호와 상기 SCL 및 상기 SDA의 하강하는 신호 사이의 하강시간을 산정하는 하강시간 산정부;를 더 포함하는 것을 특징으로 하는 I2C 버스 컨트롤러.
  5. 제 4항에 있어서,
    상기 카운터는 상기 테스트펄스 생성부에 의해 생성된 상기 펄스에 대하여, 상기 SCL 및 상기 SDA의 하강하는 신호와 상기 I2C 버스 상에서 하강하는 신호 사이의 상기 펄스의 갯수를 카운팅하며,
    상기 하강시간 산정부는, 상기 카운터에 의해 카운팅된 상기 펄스의 갯수에 기초하여 상기 하강시간을 산정하는 것을 특징으로 하는 I2C 버스 컨트롤러.
KR1020040000544A 2004-01-06 2004-01-06 동작모드 자동전환이 가능한 i2c 버스 컨트롤러 KR20050072502A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040000544A KR20050072502A (ko) 2004-01-06 2004-01-06 동작모드 자동전환이 가능한 i2c 버스 컨트롤러

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040000544A KR20050072502A (ko) 2004-01-06 2004-01-06 동작모드 자동전환이 가능한 i2c 버스 컨트롤러

Publications (1)

Publication Number Publication Date
KR20050072502A true KR20050072502A (ko) 2005-07-12

Family

ID=37261882

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040000544A KR20050072502A (ko) 2004-01-06 2004-01-06 동작모드 자동전환이 가능한 i2c 버스 컨트롤러

Country Status (1)

Country Link
KR (1) KR20050072502A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100778114B1 (ko) * 2006-09-18 2007-11-21 삼성전자주식회사 통신에러를 개선하기 위한 통신방법 및 그 통신방법이적용된 전자장치
CN102650975A (zh) * 2012-03-31 2012-08-29 中国人民解放军国防科学技术大学 用于多硬件平台飞腾服务器的i2c总线的实现方法
CN114676088A (zh) * 2022-02-18 2022-06-28 珠海全志科技股份有限公司 一种通讯方法、装置及存储介质
CN114676088B (zh) * 2022-02-18 2024-06-04 珠海全志科技股份有限公司 一种通讯方法、装置及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100778114B1 (ko) * 2006-09-18 2007-11-21 삼성전자주식회사 통신에러를 개선하기 위한 통신방법 및 그 통신방법이적용된 전자장치
CN102650975A (zh) * 2012-03-31 2012-08-29 中国人民解放军国防科学技术大学 用于多硬件平台飞腾服务器的i2c总线的实现方法
CN114676088A (zh) * 2022-02-18 2022-06-28 珠海全志科技股份有限公司 一种通讯方法、装置及存储介质
CN114676088B (zh) * 2022-02-18 2024-06-04 珠海全志科技股份有限公司 一种通讯方法、装置及存储介质

Similar Documents

Publication Publication Date Title
EP1950668B1 (en) Controlling the timing of a state transition of a serial data line in an I2C Controller
US9990316B2 (en) Enhanced serial peripheral interface
EP3304381B1 (en) Systems and methods for asynchronous toggling of i2c data line
EP3254203B1 (en) Receive clock calibration for a serial bus
US9684624B2 (en) Receive clock calibration for a serial bus
JP2017510006A (ja) インバンド割込みを用いたカメラ制御インターフェース拡張
KR20050076924A (ko) 양방향 통신이 가능한 i2c 통신시스템 및 그 방법
US8103896B2 (en) Method and system for I2C clock generation
JP2005130358A (ja) 信号伝送装置及び伝送方法
KR100687923B1 (ko) 마스터디바이스, 그 제어방법과 마스터디바이스를 갖는전자장치
EP3036647B1 (en) Method to minimize the number of irq lines from peripherals to one wire
CN112051890A (zh) I2c总线的时钟控制方法、主设备及连接i2c总线的设备系统
KR20050072502A (ko) 동작모드 자동전환이 가능한 i2c 버스 컨트롤러
US10476504B1 (en) Signal interface system and data transmission method thereof
Kalinsky et al. Introduction to I2C
JP2006079621A (ja) ベースバンドプロセッサと無線周波数集積モジュールとの間のデジタルプログラミングインターフェース
KR100306349B1 (ko) 데이타통신시스템과그시스템을위한장치
KR20130138472A (ko) Fpga를 활용한 장치 제어용 범용 i2c 인터페이스 장치 및 이를 이용한 통신 방법
CN116028403B (zh) 基于异步电路的i2c总线电路
CN113127401A (zh) 一种耳机盒与耳机的通信方法和系统
JP2002229693A (ja) ユニット装着検知装置
KR100900047B1 (ko) 이동 통신 단말기의 유에스비 연결 장치
KR20090074491A (ko) I2c 프로토콜에 기초한 선택적 인터페이싱 방법,디바이스 및 i2c 버스 시스템
KR100622943B1 (ko) 자동적으로 타이밍 스펙 제어가 가능한 컨트롤러 및 그타이밍 스펙 제어방법
JP2011043904A (ja) インターフェース回路

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application