KR100209192B1 - I2c 버스의 인터럽트 발생장치 - Google Patents

I2c 버스의 인터럽트 발생장치 Download PDF

Info

Publication number
KR100209192B1
KR100209192B1 KR1019960037434A KR19960037434A KR100209192B1 KR 100209192 B1 KR100209192 B1 KR 100209192B1 KR 1019960037434 A KR1019960037434 A KR 1019960037434A KR 19960037434 A KR19960037434 A KR 19960037434A KR 100209192 B1 KR100209192 B1 KR 100209192B1
Authority
KR
South Korea
Prior art keywords
bus
comparator
address
signal
interrupt
Prior art date
Application number
KR1019960037434A
Other languages
English (en)
Other versions
KR19980017641A (ko
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 KR1019960037434A priority Critical patent/KR100209192B1/ko
Publication of KR19980017641A publication Critical patent/KR19980017641A/ko
Application granted granted Critical
Publication of KR100209192B1 publication Critical patent/KR100209192B1/ko

Links

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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0016Inter-integrated circuit (I2C)

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

본 발명은 인터럽트 처리 함수의 부담을 줄이기 위해 I2C 버스상에서 마스터에 의해 지정된 어드레스를 슬레이브에서 하드웨어적으로 검출하는 I2C 버스의 인터럽트 발생 장치에 관한 것이다.
본 발명은 I2C 버스의 클럭 라인(SCL)을 통해 전송되는 신호에 따라 인에이블되어 상기 I2C 버스의 데이터 라인(SDA)을 통해 전송되는 신호와 '1'을 비교하는 제1비교기(200), 상기 제1비교기(200)의 출력 신호를 반전시키는 인버터(210), 상기 클럭 라인(SCL)을 통해 전송되는 신호에 따라 인에이블되어 상기 인버터(210)의 출력 신호와 상기 데이터 라인(SDA)을 통해 전송되는 신호를 비교하는 제2 비교기(220), 상기 제2 비교기(220)의 출력에 따라 인에이블되어 상기 I2C 버스의 데이터 라인(SDA)을 통해 전송되는 어드레스와 읽기/쓰기 제어 신호를 쉬프트시키는 쉬프트 레지스터(300), 및 상기 쉬프트 레지스터(300)로부터 출력되는 어드레스 및 읽기/쓰기 제어 신호와 미리 지정된 어드레스 및 읽기/쓰기 제어신호를 비교하여 인터럽트 신호(INT)와 읽기/쓰기 신호(R/W)를 발생하는 제3비교기(310)로 구성되어, 인터럽트 처리 함수의 부담을 줄이므로써 데이타 전송 효율을 향상시키는 효과가 있다.

Description

I2C 버스의 인터럽트 발생 장치
본 발명은 인터럽트 처리 함수의 부담을 줄이기 위해 I2C 버스상에서 마스터에 의해 지정된 어드레스를 슬레이브에서 하드웨어적으로 검출하는 I2C 버스의 인터럽트 발생 장치에 관한 것이다.
일반적으로 I2C 버스는 제1도에 도시한 바와 같이 각 부분(A, B, C, D), 예를들어 CPU, 메모리, I/O 기기간의 데이타 전송을 위해 사용하는 데이타 선로로, 2개의 선, 즉 데이타와 클럭을 각각 전송하는 2개의 선으로 통신이 가능하다. 또한, I2C 버스에 연결된 기기는 소프트웨어적으로 접근이 가능하고 다중 마스터가 동시에 같은 버스에 존재할 수 있다. 즉, I2C 버스에 연결된 각 부분(A, B, C, D)은 클럭을 발생하게 되면 모두 마스터가 될 수 있다.
예를 들어, 한 부분(A)이 클럭을 발생하여 마스터가 되면 나머지 부분(B, C, D)은 슬레이브가 되고, 다른 한 부분(B)이 클럭을 발생하여 마스터가 되면 나머지 부분(A, C, D)은 슬레이브가 되고, 또 다른 한 부분(C)이 클럭을 발생하여 마스터가 되면 나머지 부분(A, B, D)은 슬레이브가 되고, 또 다른 한 부분(D)이 클럭을 발생하여 마스터가 되면 나머지 부분(A, B, C)은 슬레이브가 된다.
또한, I2C 버스는 100Kbps에서 400Kbps까지 데이타 전송이 가능하며 캐패시터가 400pF을 초과하지 않는 한도내에서 다수의 기기(A B, C, D)가 동일 버스에 연결될 수 있다.
한편, 종래의 I2C 버스에서 데이타 전송을 하기 위해서는 마스터에서 시작 조건(Start Condition)을 발생하고 이때 슬레이브(Slave)에서 인터럽트를 발생하여 인터럽트 처리 함수에서 주소(Address)를 검사하게 된다.
예를 들어 제1도에서 기기(A)가 클럭을 발생하는 마스터이고 나머지 기기(B, C, D)가 슬레이브라고 가정하고 제2도를 참조하여 설명한다.
마스터(A)에서는 I2C 버스의 클럭 라인(SCL)으로 전송되는 클럭이 '1'인 상태에서 데이타 라인(SDA)으로 전송되는 데이타를 '1'에서 '0'으로 천이시켜 시작 조건을 발생한다. 이때, 슬레이브(B, C, D)에서는 인터럽트가 발생되어 인터럽트 처리함수를 포함하는 CPU에서 마스터(A)로부터 데이타 라인(SDA)을 통해 전송된 어드레스를 검사하게 된다.
그런데, 종래에는 각 슬레이브(B, C, D)가 시작 조건을 검출하고 마스터에 의해 지정된 어드레스를 검출하여 인터럽트를 발생하는 동작이 소프트웨어적으로 이루어 졌다.
따라서, 슬레이브내의 CPU의 인터럽트 처리 함수의 부담이 커지게 된다. 즉, 시작 조건이 발생할때마다 각 슬레이브 장치가 모두 인터럽트를 처리해야 하므로 인터럽트 처리 함수의 부담이 커져 데이타 전송 효율이 떨어지는 문제점이 있었다.
상기 문제점을 개선하기 위한 본 발명은 슬레이브로 동작하는 장치에서 시작조건을 검출하고 마스터에 의해 지정된 어드레스까지도 하드웨어적으로 검출한후에 인터럽트를 발생시켜서 인터럽트 처리 함수의 부담을 줄이기 위한 I2C 버스의 인터럽트 발생 장치를 제공함에 있다.
제1도는 일반적인 I2C 버스의 구조도.
제2도는 시작 조건을 설명하기 위한 도면.
제3도는 본 발명에 의한 인터럽트 발생 장치의 구성도.
제4도는 제3도의 시작 조건 검출부의 세부 구성도.
제5도는 제3도의 어드레스 검출부의 세부 구성도.
* 도면의 주요부분에 대한 부호의 설명
100 : 시작 조건 검출부 110 : 어드레스 검출부
120 : CPU 130 : 메모리
200, 220, 310 : 비교기 210 : 인버터
300 : 쉬프트 레지스터
본 발명은 인터럽트 처리 함수의 부담을 줄이기 위해 하드웨어적으로 I2C 버스상에서 마스터에 의해 지정된 어드레스를 검출하여 인터럽트를 발생하는 인터럽트 발생 장치에 관한 것이다.
상기 목적을 달성하기 위해 본 발명에 의한 인터럽트 발생 장치는 I2C 버스의 클럭 라인을 통해 전송되는 신호에 따라 인에이블되어 상기 I2C 버스의 데이터라인을 통해 전송되는 신호와 '1'을 비교하는 제1비교기, 상기 제1비교기의 출력신호를 반전시키는 인버터, 상기 클럭 라인을 통해 전송되는 신호에 따라 인에이블되어 상기 인버터의 출력 신호와 상기 데이터 라인을 통해 전송되는 신호를 비교하는 제2 비교기, 상기 제2 비교기의 출력에 따라 인에이블되어 상기 I2C 버스의 데이터 라인을 통해 전송되는 어드레스와 읽기/쓰기 제어 신호를 쉬프트시키는 쉬프트 레지스터, 및 상기 쉬프트 레지스터로부터 출력되는 어드레스 및 읽기/쓰기 제어 신호와 미리 지정된 어드레스 및 읽기/쓰기 제어 신호를 비교하여 인터럽트 신호와 읽기/쓰기 신호를 발생하는 제3 비교기로 구성됨을 특징으로 하는 I2C 버스의 인터럽트 발생 장치를 제공한다.
이하 첨부한 도면을 참조하여 본 발명의 실시예를 상세히 설명한다.
본 발명에 의한 인터럽트 발생 장치는 제3도에 도시한 바와 같이 시작 조건 검출부(100)와, 어드레스 검출부(110)로 구성된다.
시작 조건 검출부(100)는 I2C 버스의 데이타 라인(SDA)와 클럭 라인(SCL)을 통해 전송되는 신호를 검출하여 인터럽트를 발생하기 위한 시작 조건을 검출하는 것으로, 제4도에 도시한 바와 같이 상기 I2C 버스의 클럭 라인(SCL)을 통해 전송되는 신호인 클럭에 따라 인에이블되어 상기 데이타 라인(SDA)을 통해 전송되는 신호인 데이타와 '1'을 비교하는 비교기(200), 상기 비교기(200)의 출력 신호를 반전시키는 인버터(210), 및 상기 I2C 버스의 클럭 라인(SCL)을 통해 전송되는 신호인 클럭에 따라 인에이블되어 상기 인버터(210)의 출력 신호와 상기 데이타 라인(SDA)을 통해 전송되는 신호인 데이타를 비교하여 상기 어드레스 검출부(110)으로 출력하는 비교기(220)로 구성된다.
어드레스 검출부(110)는 상기 시작 조건 검출부(100)의 출력에 따라 상기 I2C 버스의 데이타 라인(SDA)을 통해 전송되는 어드레스를 입력으로 인터럽트(INT)를 발생하여 CPU(120)로 출력하는 것으로, 제5도에 도시한 바와 같이 상기 시작 조건 검출부(100)의 출력에 따라 인에이블되어 상기 I2C 버스의 데이타 라인(SDA)을 통해 전송되는 어드레스를 쉬프트시키는 쉬프트 레지스터(300), 및 상기 쉬프트 레지스터(300)로부터 출력되는 어드레스와 미리 지정된 어드레스를 비교하여 인터럽트 신호(INT)를 발생하는 비교기(310)로 구성된다.
이와 같이 구성되는 본 발명에 의한 I2C 버스의 인터럽트 발생 장치의 동작을 설명한다.
먼저, 시작 조건 검출부(100)에서 시작 조건을 검출한다. 즉, 시작 조건 검출부(100)에서는 제2도에 도시한 바와 같이 I2C 버스의 클럭 라인(SCL)을 통해 전송되는 클럭이 '1'인 상태에서 I2C 버스의 데이타 라인(SDA)이 '1'에서 '0'으로 천이하는 경우인 시작 조건을 검출한다.
이를 제4도를 참조하여 세부적으로 설명하면 다음과 같다.
I2C 버스의 클럭 라인(SCL)을 통해 전송되는 클럭이 '1'인 경우 시작 조건 검출부(100)의 비교기(200, 220)가 인에이블된다.
이때, I2C 버스의 데이타 라인(SDA)을 통해 전송되는 데이타와 '1'을 비교기(200)에서 비교하여 출력한다.
여기서, I2C 버스의 데이타 라인(SDA)을 통해 전송되는 데이타가 '1'인 경우에는 비교기(200)에서 '1'을 출력하게 되고 비교기(200)에서 출력된 신호는 인버터(210)에서 반전되어 '0'이 된다.
이때 다시 비교기(220)에서는 I2C 버스의 데이타 라인(SDA)을 통해 전송되는 데이타와 인버터(210)로부터 출력되는 '0'을 비교하여 어드레스 검출부(110)로 출력하게 된다. 여기서, I2C 버스의 데이타 라인(SDA)을 통해 전송되는 데이타가 '0'인 경우에는 비교기(220)에서 '1'을 출력하게 되어 시작 조건임을 어드레스 검출부(110)에 알린다.
한편, I2C 버스의 클럭 라인(SCL)을 통해 전송되는 클럭이 '1'이 아닌 경우에는 시작 조건을 만족하지 않으므로 비교기(200, 220)가 디스에이블되어 시작 조건검출을 하지 않게 된다.
이와 같이 시작 조건이 검출되면 어드레스 검출부(110)가 인에이블되어 I2C 버스의 데이타 라인(SDA)을 통해 전송되는 어드레스에 해당하는 슬레이브에 인터럽트가 걸리도록 한다.
즉, 시작 조건이 만족되면 어드레스 검출부(110)에서 마스터가 전송하는 어드레스를 검출하여 해당하는 슬레이브의 CPU(120)로 인터럽트(INT)를 출력하게 된다.
시작 조건 검출부(100)의 동작에 의해 시작 조건이 검출되면 어드레스 검출부(110)의 쉬프트 레지스터(300)가 인에이블되어 I2C 버스의 클럭 라인(SCL)을 통해 전송되는 클럭에 따라 데이타 라인(SDA)을 통해 전송되는 어드레스를 쉬프트시킨다.
I2C 버스의 클럭 라인(SCL)을 통해 전송되는 클럭에 따라 쉬프트 레지스터(300)에서 출력되는 어드레스는 비교기(310)에 입력되어 미리 지정된 어드레스와 비교된다. 즉, 마스터로부터 전송된 어드레스와 각 장치에 지정된 어드레스를 비교기(310)에서 비교하여 동일한 경우에는 인터럽트(INT)를 발생하여 CPU(120)가 인터럽트를 처리할 수 있도록 한다.
한편, 본 발명에 의한 인터럽트 발생 장치는 어드레스 검출과 함께 전송 조건을 검출할 수도 있다.
이를 위해 상기 어드래스 검출부(110)는 어드레스에 이어서 전송되는 읽기/쓰기 제어 신호를 판별하여 전송 조건을 검출하며, 제5도에 도시한 바와 같이 시작 조건 검출부(100)의 출력에 따라 인에이블되어 상기 I2C 버스의 데이타 라인(SDA)을 통해 전송되는 어드레스와 읽기/쓰기 제어 신호를 쉬프트시키는 쉬프트 레지스터(300), 및 상기 쉬프트 레지스터(300)로부터 출력되는 어드레스 및 읽기/쓰기 제어 신호와 미리 지정된 어드레스 및 읽기/쓰기 제어 신호를 비교하여 인터럽트 신호(INT)와 전송 조건에 해당하는 읽기/쓰기 신호(R/W)를 발생하는 비교기(310)로 구성된다.
이와 같이 전송 조건을 검출하는 경우를 설명하면 다음과 같다.
시작 조건 검출부(100)에서 시작 조건이 검출된 상태에서 전송 조건을 나타내는 읽기/쓰기 제어 신호가 어드레스에 이어서 들어오면 이를 어드레스 검출부(110)에서 검출하여 읽기/쓰기를 판별한다.
즉, I2C 버스의 데이타 라인(SDA)을 통해 전송되는 어드레스가 7비트인 경우 읽기/쓰기 제어 신호는 7비트의 어드레스에 이어서 들어오는 8번째 비트이므로 이를 어드레스 검출부(110)의 어드레스 검출시 같이 검출하여 전송 조건을 나타내는 읽기/쓰기 제어 신호(R/W)를 CPU(120)로 전달한다.
즉, 쉬프트 레지스터(300)에서 I2C 버스의 데이타 라인(SDA)을 통해 전송되는 7비트의 어드레스와 1비트의 읽기/쓰기 제어 신호를 쉬프트시켜 비교기(310)로 출력하면 비교기(310)에서는 지정된 7비트의 어드레스와 7비트의 입력 어드레스를 비교하여 인터럽트(INT)를 발생하면서, 마지막 8번째 데이타와 미리 지정된 데이타를 비교하여 읽기/쓰기 제어 신호(R/W)를 출력하게 된다.
다시말해서 8번째 비트가 '1'로 미리 설정되어 있는 경우 마지막 8번째 입력데이타가 '1'이면 비교기(310)에서 '1'을 출력하여 읽기를 수행하도록 CPU(120)로 제어 신호를 출력하고 입력 데이타가 '0'이면 '0'을 출력하여 쓰기를 수행하도록 CPU(120)로 제어 신호를 출력한다.
어드레스 검출부(110)에서 인터럽트(INT)가 출력되면 CPU(120)에서는 인터럽트 처리 함수를 메모리(130)로부터 읽어와서 인터럽트를 처리하도록 한다.
CPU(120)의 인터럽트 처리 함수에서는 마스터의 지정 조건, 즉 읽기/쓰기 조건에 따라서 데이타를 처리한다.
즉, 읽기인 경우에는 I2C 버스의 데이타 라인(SDA)과 클럭 라인(SCL)을 이용 하여 8비트의 데이타를 입력으로 사용하고 쓰기인 경우에는 I2C 버스의 데이타 라인(SDA)에 클럭 라인(SCL)이 하이 레벨(High Level)인 상태에서 데이타를 전송한다.
이상에서 설명한 바와 같이 본 발명에 의한 인터럽트 발생 장치는 I2C 버스상에서 마스터에 의해 지정된 어드레스를 검출하여 인터럽트를 발생하는 장치를 하드웨어로 구성하여 인터럽트 처리 함수의 부담을 줄이므로써 데이타 전송 효율을 향상시키는 효과가 있다.
본 발명의 목적은 I2C 버스상에서 마스터에 의해 지정된 어드레스를 하드웨어적으로 검출하여 인터럽트 처리 함수의 부담을 줄이므로써 데이타 전송을 원할하게 하기 위한 I2C 버스의 인터럽트 발생 장치를 제공함에 있다.

Claims (1)

  1. I2C 버스의 클럭 라인(SCL)을 통해 전송되는 신호에 따라 인에이블되어 상기 I2C 버스의 데이터 라인(SDA)을 통해 전송되는 신호와 '1'을 비교하는 제1비교기(200); 상기 제1비교기(210)의 출력 신호를 반전시키는 인버터(210); 상기 클럭 라인(SCL)을 통해 전송되는 신호에 따라 인에이블되어 상기 인버터(210)의 출력 신호와 상기 데이터 라인(SDA)을 통해 전송되는 신호를 비교하는 제2 비교기(220); 상기 제2 비교기(220)의 출력에 따라 인에이블되어 상기 I2C 버스의 데이터라인(SDA)을 통해 전송되는 어드레스와 읽기/쓰기 제어 신호를 쉬프트시키는 쉬프트 레지스터(300); 및 상기 쉬프트 레지스터(300)로부터 출력되는 어드레스 및 읽기/쓰기 제어 신호와 미리 지정된 어드레스 및 읽기/쓰기 제어 신호를 비교하여 인터럽트 신호(INT)와 읽기/쓰기 신호(R/W)를 발생하는 제3비교기(310)로 구성됨을 특징으로 하는 I2C 버스의 인터럽트 발생 장치.
KR1019960037434A 1996-08-31 1996-08-31 I2c 버스의 인터럽트 발생장치 KR100209192B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960037434A KR100209192B1 (ko) 1996-08-31 1996-08-31 I2c 버스의 인터럽트 발생장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960037434A KR100209192B1 (ko) 1996-08-31 1996-08-31 I2c 버스의 인터럽트 발생장치

Publications (2)

Publication Number Publication Date
KR19980017641A KR19980017641A (ko) 1998-06-05
KR100209192B1 true KR100209192B1 (ko) 1999-07-15

Family

ID=19472192

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960037434A KR100209192B1 (ko) 1996-08-31 1996-08-31 I2c 버스의 인터럽트 발생장치

Country Status (1)

Country Link
KR (1) KR100209192B1 (ko)

Also Published As

Publication number Publication date
KR19980017641A (ko) 1998-06-05

Similar Documents

Publication Publication Date Title
EP0654742A2 (en) Multiple bus interface
US7863938B2 (en) Address decoder and method for setting an address
KR100209192B1 (ko) I2c 버스의 인터럽트 발생장치
KR100293950B1 (ko) 주변소자 내부연결 버스 모니터를 이용한 장애 감지 장치 및 방법
US5414721A (en) Serial data receiving device
US6378078B1 (en) Semiconductor integrated circuit supervising an illicit address operation
KR100202170B1 (ko) 시리얼 인터페이스를 위한 데이터 수신 방법 및 그 장치
KR0181596B1 (ko) I2c 버스의 데이터 전송 장치 및 방법
KR970049492A (ko) 버스 제어기를 갖는 데이타 프로세서
KR0167937B1 (ko) 데이터 전송망의 시작신호 판별장치
KR19980057209A (ko) I²c 버스의 인터럽트 발생 장치
KR0184402B1 (ko) I₂c 버스의 인터럽트 발생 장치
JPH02230356A (ja) 情報処理装置のバス拡張装置
KR100261080B1 (ko) Pci버스와isa버스사이의통신제어회로및알고리듬
KR0139968B1 (ko) 이중화시스템의 이중화상태 결정회로
JPS6252652A (ja) トライステ−トの異常検出方式
JPH087442Y2 (ja) プログラマブルコントローラの入出力装置
JP2576715Y2 (ja) 特定用途向けicの出力バッファ故障検出回路
US5953349A (en) Data variation detecting system
KR19980057210A (ko) I²c 버스의 인터럽트 발생 장치
JPH06175888A (ja) 異常アクセス検出回路
JP2827573B2 (ja) エラー検出タイミング制御方式
KR20050067324A (ko) 마스터/슬레이브 디바이스간의 인터페이스 장치 및 그 방법
KR19990000748A (ko) 컴퓨터 시스템 오류 진단 장치 및 방법
KR19980017639A (ko) I2c 버스의 클럭 라인 점검 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120413

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20130401

Year of fee payment: 15

LAPS Lapse due to unpaid annual fee