KR19980057210A - I²c 버스의 인터럽트 발생 장치 - Google Patents

I²c 버스의 인터럽트 발생 장치 Download PDF

Info

Publication number
KR19980057210A
KR19980057210A KR1019960076483A KR19960076483A KR19980057210A KR 19980057210 A KR19980057210 A KR 19980057210A KR 1019960076483 A KR1019960076483 A KR 1019960076483A KR 19960076483 A KR19960076483 A KR 19960076483A KR 19980057210 A KR19980057210 A KR 19980057210A
Authority
KR
South Korea
Prior art keywords
data
bus
interrupt
address
transmitted
Prior art date
Application number
KR1019960076483A
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 KR1019960076483A priority Critical patent/KR19980057210A/ko
Publication of KR19980057210A publication Critical patent/KR19980057210A/ko

Links

Landscapes

  • Bus Control (AREA)

Abstract

본 발명은 슬레이브가 데이터를 수신하는 장치에서 다수의 인터럽트 발생시 이를 효율적으로 관리하여 슬레이브에서의 인터럽트 처리 함수의 부담을 줄이기 위한 I2C 버스의 인터럽트 발생 장치를 제공함에 그 목적이 있는 것으로, 이와같은 목적은 I2C 버스를 통해 마스터로부터 전송되는 시작 조건과 종결 조건을 검출하는 시작/종결 조건 검출부; 상기 시작/종결 조건 검출부로부터 시작 조건이 검출되면 데이타 라인으로 전송되어진 데이타를 소정 단위로 수신하는 데이타 수신부; 상기 시작 조건/종결 검출부의 출력에 따라 상기 I2C 버스를 통해 전송되는 어드레스를 미리 저장된 어드레스와 비교하여 그 결과를 출력하는 어드레스 비교부; 상기 데이타 수신부에 소정 단위의 데이타가 수신되면 이에따라 데이타 라인에 승인신호를 발생하는 승인신호 발생부; 상기 어드레스 비교부와 승인신호 발생부의 출력에 따라 순차적인 인터럽트를 발생시키고 그 인터럽트에 번호를 부가하여 출력하는 CPU; 상기 CPU로부터 출력되는 인터럽트 번호 및 데이타 수신부로부터 출력되는 데이타를 저장하는 메모리를 포함하여 구성됨으로써 달성된다.

Description

I2C 버스의 인터럽트 발생 장치
본 발명은 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)가 슬레이브라고 가정하여 설명한다.
마스터(A)에서는 I2C 버스의 클럭 라인 (SCL)으로 전송되는 클럭이 '1'인 상태에서 데이타 라인(SDA)으로 전송되는 데이타를 '1'에서 '0'으로 천이시켜 시작 조건을 발생한다.
이때, 슬레이브(B, C, D)에서는 인터럽트가 발생되어 인터럽트 처리 함수를 포함하는 CPU에서 마스터(A)로 부터 데이타 라인(SDA)을 통해 전송된 어드레스를 검사하게 된다.
그런데, 종래에는 슬레이브가 데이터를 수신할시 인터럽트가 발생할 수 있는 경우가 여러가지 발생하게 되며, 다수의 인터럽트가 발생할 경우 각각의 인터럽트에 대해서 인터럽트 처리함수가 필요하게 되므로 슬레이브내의 CPU의 인터럽트 처리 함수의 부담이 커져 데이타 수신 효율이 떨어지는 문제점이 있었다.
상기 문제점을 개선하기 위한 본 발명은 슬레이브가 데이터를 수신하는 장치에서 다수의 인터럽트 발생시 이를 효율적으로 관리하여 슬레이브에서의 인터럽트 처리 함수의 부담을 줄이기 위한 I2C 버스의 인터럽트 발생 장치를 제공함에 그 목적이 있다.
도 1 은 일반적인 I2C 버스의 구조도
도 2 는 시작 조건 및 종결 조건을 설명하기 위한 신호 파형도
도 3 은 본 발명에 의한 인터럽트 발생 장치의 구성도
도 4 는 본 발명에 의한 인터럽트 발생 시기를 설명하기 위한 도면
도면의 주요 부분에 대한 부호의 설명
100 : 시작/종결 조건 검출부200 : 데이타 수신부
300 : 승인신호 발생부 400 : 어드레스 비교부
500 : CPU 600 : 메모리
상기 목적을 달성하기 위해 본 발명에 의한 인터럽트 발생 장치는, I2C 버스를 통해 마스터로부터 전송되는 시작 조건과 종결 조건을 검출하는 시작/종결 조건 검출부(100); 상기 시작/종결 조건 검출부(100)로부터 시작 조건이 검출되면 데이타 라인(SDA)으로 전송되어진 데이타를 소정 단위로 수신하는 데이타 수신부(200); 상기 시작 조건/종결 검출부(100)의 출력에 따라 상기 I2C 버스를 통해 전송되는 어드레스를 미리 저장된 어드레스와 비교하여 그 결과를 출력하는 어드레스 비교부(400); 상기 데이타 수신부(200)에 소정 단위의 데이타가 수신되면 이에따라 데이타 라인(SDA)에 승인신호를 발생하는 승인신호 발생부(300); 상기 어드레스 비교부(400)와 승인신호 발샌부(300)의 출력에 따라 순차적인 인터럽트(INT)를 발생시키고 그 인터럽트에 번호(INTNO)를 부가하여 출력하는 CPU(500); 상기 CPU(500)로부터 출력되는 인터럽트 번호(INTNO) 및 데이타 수신부(200)로부터 출력되는 데이타를 저장하는 메모리(600)를 포함하여 구성됨을 특징으로 한다.
이하 첨부한 도면을 참조하여 본 발명의 실시예를 상세히 설명한다.
본 발명에 의한 인터럽트 발생 장치는 도 2에 도시한 바와 같이 시작/종결 조건 검출부(100), 데이타 수신부(200), 승인신호 발생부(300), 어드레스 비교부(400), CPU(500), 메모리(600)로 구성된다.
시작/종결 조건 검출부(100)는 클럭 라인의 클럭이 '1'인 상태에서 데이타 라인의 상태가 '1'에서 '0'으로 천이하는 경우의 시작 조건과, 클럭 라인의 클럭이 '1'인 상태에서 데이타 라인의 상태가 '0'에서 '1'으로 천이하는 경우의 종결 조건을 검출한다.
데이타 수신부(200)는 데이타 라인의 마스터로부터 전송되어진 데이타를 클럭 라인의 클럭에 동기하여 1바이트씩의 데이타를 수신한다.
이때, 상기 데이타 수신부(200)는 쉬프트 레지스터로 구성된다.
어드레스 비교부(400)는 전송되어진 어드레스를 미리 저장하고 있는 자신의 주소와 비교하여 그 비교값을 출력한다.
승인신호 발생부(200)는 지정 조건이 만족되면 승인신호를 발생하는 것으로, 승인신호는 1바이트후의 9번째 비트에 해당하는 클럭 라인(SCL)의 클럭에 동기하여 데이타 라인(SDA)을 '0'으로 만들어 준다.
이때 지정 조건이란 데이타 수신부(200)에서 1바이트 즉, 8비트의 데이타를 수신하였을 경우이다.
CPU(500)는 초기에 어드레스 비교부(400)의 출력을 인가받아 인터럽트(INT)를 발생시킴과 아울러 그 인터럽트에 번호(INTNO)를 부가하게 되며, 이후에는 상기 승인신호 발생부(300)의 출력을 인가받아 인터럽트 번호를 부가하여 인터럽트를 발생시킨다.
메모리(600)는 상기 데이타 수신부(200)로부터 출력되는 1바이트씩의 데이타를 저장함과 아울러 인터럽트 번호를 저장하게 된다.
이와 같이 구성되는 본 발명에 의한 I2C 버스의 인터럽트 발생 장치의 동작을 설명한다.
도 4 에 도시한 바와같이 마스터로부터의 데이타를 슬레이브가 수신시 3개의 인터럽트가 발생하는 경우를 일예를 들어 설명한다.
여기서, 빗금친 부분은 마스터에서 슬레이브로 전송되는 데이타를 나타낸 것이고, 빗금치지 않은 부분은 슬레이브에서 마스터로 전송되는 데이타이다.
먼저, 시작/종결 조건 검출부(100)에서는 마스터로부터 전송되어진 데이타를 수신받기 위한 첫 과정인 시작 조건을 검출한다.
즉, 도 3 에 도시한 바와같이 I2C 버스의 클럭 라인(SCL)의 클럭이 '1'인 상태에서 I2C 버스의 데이타 라인(SDA)이 '1'에서 '0'으로 천이하는 경우인 시작 조건(start condition)을 검출한다.
이렇게 시작 조건이 검출되면, 상기 시작/종결 조건 발생부(100)는 데이타 수신부(200)와 어드레스 비교부(400)를 온시키게 된다.
상기 데이타 수신부(200)가 시작/종결 조건 발생부(100)에 의해 온되면 데이타 라인(SDA)의 데이타를 클럭 라인(SCL)의 클럭에 동기하여 초기 1바이트의 데이타를 수신받게 되는데, 이때 시작 조건 다음에 수신되는 데이타는 도 4 에 도시한 바와같이 마스터가 지정한 슬레이브의 어드레스와 읽기/쓰기에 대한 전송조건 정보이다.
따라서, 읽기 정보이면 마스터가 지정한 슬레이브로부터 데이타를 읽어가는 것이고, 쓰기 정보이면 마스터가 지정한 슬레이브에 데이타를 저장하는 것이다.
그러므로, 데이타 수신부(200)는 슬레이브의 어드레스를 어드레스 비교부(400)로 출력하게 되면, 상기 어드레스 비교부(400)는 이를 인가받아 미리 저장하고 있는 자신의 어드레스와 비교하여 일치되는 경우 전송 조건(여기서는 쓰기 정보(w)에 의해 그 결과값을 CPU(500)로 출력함과 아울러 데이타 수신부(200)로 하여금 이후의 데이타를 받아들일 수 있도록 온시키게 된다.
이때, 상기 데이타 수신부(200)는 쉬프트 레지스터(shift register)로 구성된다.
상기 데이타 수신부(200)는 어드레스 비교부(400)에 의해 온되면 즉시 승인신호 발생부(300)를 인에이블시키게 되고, 이로인해 상기 승인신호 발생부(300)는 승인신호(A)를 발생하게 되는데, 이는 클럭 라인(SCL)의 슬레이브 어드레스와 쓰기(w) 정보의 바로 다음의 첫번째 비트 즉, 초기 1바이트이후의 9번째 클럭에 동기하여 데이터 라인(SDA)를 '0'으로 만들게 된다.
이때, 상기 CPU(500)는 어드레스 비교부(400)의 비교 결과값과 승인신호 발생부(300)의 승인 신호에 의해 첫번째 인터럽트(Interrupt1)를 발생하게 되고 그 인터럽트 번호를 메모리(600)에 저장하게 되며, 이와 동시에 데이타 수신부(200)는 데이타 라인(SDA)의 데이타를 클럭 라인(SCL)에 동기하여 2번째의 1바이트 데이타를 인가받아 메모리(600)에 저장하게 된다.
이후, 데이타 수신부(200)가 1바이트의 데이타를 수신하면 승인신호 발생부(300)는 두번째의 승인신호(A)를 발생하게 되는데, 이때의 승인신호 발생의 조건은 클럭 라인(SCL)에서 인가되는 클럭에 9번째의 클럭에 동기하여 발생하게 되는데, 이는 두번째 1바이트의 데이타가 즉, 8비트의 데이타가 클럭에 동기되어 수신되므로 8번째 클럭 이후 9번째 클럭에서 승인 신호가 발생되는 것이다.
그러면, 상기 CPU(500)는 두번째 인터럽트(Interrrupt2)를 발생하여 이의 인터럽트 번호(INTNO)를 메모리(600)에 저장함과 동시에 데이타 수신부(200)는 세반째 1바이트의 데이타를 데이타 라인(SDA)로부터 인가받아 메모리(600)에 저장하게 된다.
이후, 세번째의 1바이트의 데이타가 데이타 수신부(200)에 의해 수신되면, 상기 승인신호 발생부(300)는 클럭 라인(SCL)의 9번째 클럭에 동기하여 승인신호를 발생하게 되는데, 이때, 상기 시작/종결 조건 발생부(100)에서 도 3 에 도시한 바와같이 클럭 라인(SCL)의 클럭이 '1'인 상태에서 데이타 라인(SDA)의 상태가 '0'에서 '1'로 바뀌면 즉, 종결 조건이 검출되면 데이타 수신부(200)와 어드레스 비교부(400)를 오프시키게 되므로 CPU(500)는 더 이상의 데이타가 전송되지 않는 것으로 판단하여 승인신호 발생부(300)로부터 출력되는 승인신호에 의해 세번째 인터럽트(Interrupt3)를 발생하여 그 인터럽트 번호(INTNO)를 메모리(600)에 저장한 다음 마스터로부터 전송되는 데이타의 수신을 종료하게 된다.
이상에서 설명한 바와 같이 본 발명에 의한 인터럽트 발생 장치는 I2C 버스상에서 슬레이브가 인터럽트를 시작 조건에서 종결 조건이 발생할때까지 계속 처리하는 대신에, 필요한 시점에서 독립적으로 처리할 수 있도록 분리함으로써 슬레이브측의 인터럽트 처리 함수의 부담을 줄이게 되어 데이타 수신 효율을 향상시키는 효과가 있다.

Claims (4)

  1. I2C 버스를 통해 마스터로부터 전송되는 시작 조건과 종결 조건을 검출하는 시작/종결 조건 검출부;
    상기 시작/종결 조건 검출부로부터 시작 조건이 검출되면 데이타 라인으로 전송되어진 데이타를 소정 단위로 수신하는 데이타 수신부;
    상기 시작 조건/종결 검출부의 출력에 따라 상기 I2C 버스를 통해 전송되는 어드레스를 미리 저장된 어드레스와 비교하여 그 결과를 출력하는 어드레스 비교부;
    상기 데이타 수신부에 소정 단위의 데이타가 수신되면 이에따라 데이타 라인에 승인신호를 발생하는 승인신호 발생부;
    상기 어드레스 비교부와 승인신호 발생부의 출력에 따라 순차적인 인터럽트를 발생시키고 그 인터럽트에 번호를 부가하여 출력하는 CPU;
    상기 CPU로부터 출력되는 인터럽트 번호 및 데이타 수신부로부터 출력되는 데이타를 저장하는 메모리를 포함하여 구성됨을 특징으로 하는 I2C 버스의 인터럽트 발생 장치.
  2. 제 1 항에 있어서, 데이타 수신부는 쉬프트 레지스터로 구성됨을 특징으로 하는 I2C 버스의 인터럽트 발생 장치.
  3. 제 1 항에 있어서, 데이타 수신부는 1바이씩의 데이타를 데이타 라인으로부터 수신하는 것을 특징으로 하는 I2C 버스의 인터럽트 발생 장치.
  4. 제 1 항에 있어서, 상기 어드레스 비교부는 어드레스에 이어서 전송되는 읽기/쓰기 제어 신호를 판별하여 전송 조건을 검출함을 특징으로 하는 I2C 버스의 인터럽트 발생 장치.
KR1019960076483A 1996-12-30 1996-12-30 I²c 버스의 인터럽트 발생 장치 KR19980057210A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960076483A KR19980057210A (ko) 1996-12-30 1996-12-30 I²c 버스의 인터럽트 발생 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960076483A KR19980057210A (ko) 1996-12-30 1996-12-30 I²c 버스의 인터럽트 발생 장치

Publications (1)

Publication Number Publication Date
KR19980057210A true KR19980057210A (ko) 1998-09-25

Family

ID=66396699

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960076483A KR19980057210A (ko) 1996-12-30 1996-12-30 I²c 버스의 인터럽트 발생 장치

Country Status (1)

Country Link
KR (1) KR19980057210A (ko)

Similar Documents

Publication Publication Date Title
US4390969A (en) Asynchronous data transmission system with state variable memory and handshaking protocol circuits
KR920004416B1 (ko) 개량된 통신제어장치에 사용된 데이타 처리장치
US6253259B1 (en) System for controlling operation of an external storage utilizing reduced number of status signals for determining ready or busy state based on status signal level
US20050157718A1 (en) Method and circuit for asynchronous transmission
US5889817A (en) Communication system with data comparison circuit
US6681269B2 (en) Data processing apparatus, external storage apparatus, data processing system and data transmitting method
US5737633A (en) Serial data receiving device having a memory for storing a reception permit signal which enable or disable the device from hand-shaking with the transmitting device
US5481753A (en) I/O device having identification register and data register where identification register indicates output from the data register to be an identifier or normal data
KR19980057210A (ko) I²c 버스의 인터럽트 발생 장치
KR0184402B1 (ko) I₂c 버스의 인터럽트 발생 장치
KR19980057209A (ko) I²c 버스의 인터럽트 발생 장치
US5577260A (en) Data processing system having a serial interface comprising an end-of-transmission flag
EP0945806A1 (en) Supervisory circuit for semiconductor integrated circuit
KR19990008189A (ko) 전송되는 패킷을 오버래핑하여 인터페이스의 대기 시간을 감소시키는 방법 및 장치
JP3133733B2 (ja) データ送信制御システム
KR0181596B1 (ko) I2c 버스의 데이터 전송 장치 및 방법
KR19980035115A (ko) 시리얼 인터페이스를 위한 데이터 수신 방법 및 그 장치
KR100295683B1 (ko) 인터아이씨의 제너럴콜 어크날리지장치및 방법
KR100209192B1 (ko) I2c 버스의 인터럽트 발생장치
JPH0312494B2 (ko)
JPS60235548A (ja) 信号フレ−ムの伝送方式
JPH082056B2 (ja) データ伝送装置
JP2630077B2 (ja) クロック同期式シリアルインターフェース
KR970010157B1 (ko) Sdlc/hdlc 데이타 프레임의 토큰링 제어 버스 송신 정합 장치
JP2941266B1 (ja) バス通信型エンコーダ装置のエンコーダデータ出力方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
SUBM Submission of document of abandonment before or after decision of registration