KR100209192B1 - I2c 버스의 인터럽트 발생장치 - Google Patents
I2c 버스의 인터럽트 발생장치 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0016—Inter-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 버스는 제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)
- 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 버스의 인터럽트 발생 장치.
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) |
-
1996
- 1996-08-31 KR KR1019960037434A patent/KR100209192B1/ko not_active IP Right Cessation
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 |