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

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

Info

Publication number
KR0184402B1
KR0184402B1 KR1019960070819A KR19960070819A KR0184402B1 KR 0184402 B1 KR0184402 B1 KR 0184402B1 KR 1019960070819 A KR1019960070819 A KR 1019960070819A KR 19960070819 A KR19960070819 A KR 19960070819A KR 0184402 B1 KR0184402 B1 KR 0184402B1
Authority
KR
South Korea
Prior art keywords
data
bus
interrupt
shift register
acknowledgment signal
Prior art date
Application number
KR1019960070819A
Other languages
English (en)
Other versions
KR19980051899A (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 KR1019960070819A priority Critical patent/KR0184402B1/ko
Publication of KR19980051899A publication Critical patent/KR19980051899A/ko
Application granted granted Critical
Publication of KR0184402B1 publication Critical patent/KR0184402B1/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/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
    • 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
    • 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 버스의 데이타 라인과 클럭 라인으로 출력하는 데이타 전송부; 슬레이브측으로부터 I2C 버스의 데이타 라인과 클럭 라인를 통해 승인(acknowledge) 신호가 인가될때마다 그 순서에 따라 각각 다른 인터럽트 신호를 발생하는 승인신호 수신부; 상기 승인 신호 수신부로부터 인터럽트 신호가 인가되면 그 발생 순서에 따라 I2C 버스의 데이타 라인과 클럭 라인으로 데이타를 출력하기 위하여 상기 시작/종결 조건 발생부와 데이타 전송부 및 쉬프트 레지스터의 동작을 제어하는 제어부를 포함하여 구성됨으로써 달성된다.

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)을 통해 전송된 어드레스를 검사하게 된다.
그런데, 종래에는 마스터가 데이터를 전송할시 인터럽트가 발생할 수 있는 경우가 여러가지 발생하게 되며, 다수의 인터럽트가 발생할 경우 각각의 인터럽트에 대해서 인터럽트 처리함수가 필요하게 되므로 마스터내의 CPU의 인터럽트 처리 함수의 부담이 커져 데이타 전송 효율이 떨어지는 문제점이 있었다.
상기 문제점을 개선하기 위한 본 발명은 마스터가 데이터를 전송하는 장치에서 다수의 인터럽트 발생시 이를 효율적으로 관리하여 마스터에서의 인터럽트 처리 함수의 부담을 줄이기 위한 I2C 버스의 인터럽트 발생 장치를 제공함에 있다.
도 1 은 일반적인 I2C 버스의 구조도
도 2 는 시작 조건을 설명하기 위한 도면
도 3 은 본 발명에 의한 인터럽트 발생 시기를 설명하기 위한 도면
도 4 는 본 발명에 의한 I2C 버스의 인터럽트 발생 장치를 나타낸 구성도
* 도면의 주요부분에 대한 부호의 설명
100 : 제어부 110 : 시작/종결 조건 발생부
120 : 데이타 전송부 130 : 승인신호 수신부
140 : 쉬프트 레지스터 150 : 데이타 버퍼
상기 목적을 달성하기 위해 본 발명에 의한 인터럽트 발생 장치는, 제어부(100)의 제어에 의해 I2C 버스의 데이타 라인(SDA)을 통해 전송되는 신호를 검출하여 시작 조건과 종결 조건을 발생하는 시작/종결 조건 발생부(110); 전송할 데이타를 저장하는 데이타 버퍼(150); 제어부(100)의 제어에 의해 상기 데이타 버퍼(150)에 저장된 데이타를 순차적으로 입력받아 이를 쉬프트시켜 출력하는 쉬프트 레지스터(140); 제어부(100)의 제어에 의해 상기 쉬프트 레지스터(140)로부터 출력되는 데이타를 I2C 버스의 데이타 라인(SDA)과 클럭 라인(SCL)으로 출력하는 데이타 전송부(120); 슬레이브측으로부터 I2C 버스의 데이타 라인(SDA)과 클럭 라인(SCL)를 통해 승인(acknowledge) 신호가 인가되면 그 순서에 따라 각각 다른 인터럽트 신호를 발생하는 승인신호 수신부(130); 상기 승인 신호 수신부(130)로부터 인터럽트 신호가 인가되면 그 발생 순서에 따라 I2C 버스의 데이타 라인(SDA)과 클럭 라인(SCL)으로 데이타를 출력하기 위하여 상기 시작/종결 조건 발생부(110)와 데이타 전송부(120) 및 쉬프트 레지스터(140)의 동작을 제어하는 제어부(100)를 포함하여 구성된다.
이하 첨부한 도면을 참조하여 본 발명의 실시예를 상세히 설명한다.
본 발명에 의한 인터럽트 발생 장치는 도 4에 도시한 바와 같이 시작/종결 조건 발생부(110); 데이타 버퍼(150); 쉬프트 레지스터(140); 데이타 전송부(120); 승인신호 수신부(130); 제어부(100)로 구성된다.
이와 같이 구성되는 본 발명에 의한 I2C 버스의 인터럽트 발생 장치의 동작을 설명한다.
도 3 에 도시한 바와같이 마스터로부터 슬레이브로 데이타 전송시 3개의 인터럽트가 발생하는 경우를 일예를 들어 설명한다.
먼저, 시작/종결 조건 검출부(110)에서는 제어부(100)의 제어에 의해 데이타를 슬레이브로의 전송을 위한 첫 과정인 시작 조건을 발생한다.
즉, 도 3 에 도시한 바와같이 I2C 버스의 클럭 라인(SCL)의 클럭이 '1'인 상태에서 I2C 버스의 데이타 라인(SDA)이 '1'에서 '0'으로 천이하는 경우인 시작 조건(start condition)을 발생한다.
이렇게 시작 조건이 발생되면 제어부(100)는 쉬프트 레지스터(140)를 온시키게 되고, 상기 쉬프트 레지스터(140)가 온되면 데이타 버퍼(150)에 저장된 초기 1바이트의 데이타를 읽어들여 데이타 전송부(120)로 인가하게 되고, 상기 데이타 전송부(120)는 쉬프트 레지스터(140)로부터 인가되는 초기 1바이트의 데이타를 I2C 버스의 데이타 라인(SDA)와 클럭 라인(SCL)으로 출력하게 된다.
이때, 상기 I2C 버스의 데이타 라인(SDA)와 클럭 라인(SCL)으로 출력되는 1바이트의 데이타는 마스터가 지정한 슬레이브의 어드레스(addree)와 쓰기(w) 정보가 된다.
상기 슬레이브의 어드레스 전송시 도중에 아비트레이션(arbitration)이 발생하여 마스터가 아비트레이션 로스(arbitration loss)의 상태가 될 수 있으므로 이때는 제어부(100)는 데이타 전송부(120)를 제어하여 전송을 재시도하게 된다.
도 3에서 빗금친 부분은 마스터에서 슬레이브로 데이타를 전송하는 경우이고, 빗금치지 않은 부분은 슬레이브에서 마스터로 승인신호를 인가하는 경우이다.
상기와 같이 데이타 전송부(120)에 의해서 어드레스(address)와 쓰기 정보(w)가 전송되면 슬레이브측으로부터 이를 인가받은 후 승인 신호(A)를 I2C 버스의 데이타 라인(SDA)와 클럭 라인(SCL)으로 출력하게 된다.
마스터측의 승인신호 수신부(130)에서는 상기 I2C 버스의 데이타 라인(SDA)와 클럭 라인(SCL)으로부터 승인 신호가 인가되면 그와 동시에 제 1 인터럽트 신호(Interrupt1)를 발생하게 되는데, 승인신호 수신부(130)에서의 승인 신호 검출은 I2C 버스의 데이타 라인(SDA)이 '0'인가를 점검함으로써 이루어 진다.
상기 승인 신호 수신부(130)로부터 제 1 인터럽트 신호(Interrupt1)가 인가되면 제어부(100)는 쉬프트 레지스터(140)를 제어하여 데이타 버퍼(150)로부터 1바이트의 데이타를 읽어들일 수 있도록 한다.
상기 쉬프트 레지스터(140)에 두번째 1바이트의 데이타가 인가되면, 상기 제어부(100)는 데이타 전송부(120)를 제어하여 1바이트의 데이타가 I2C 버스의 데이타 라인(SDA)에 실릴 수 있도록 제어한다.
이후 슬레이브측으로부터 두번째의 승인신호가 I2C 버스의 데이타 라인(SDA)에 실리게 되면, 승인 신호 수신부(130)에서는 데이타 라인(SDA)이 '0'인가를 점검하여 제 2 인터럽트 신호(Interrupt2)를 발생하게 된다.
상기 제어부(100)에서는 승인신호 수신부(130)로부터 출력되는 제 2 인터럽트 신호(Interrupt2)를 인가받아 쉬프트 레지스터(140)를 제어하여 데이타 버퍼(150)에 들어있는 세번째의 1바이트 데이타를 읽어들이도록 하고, 데이타 전송부(120)를 통해 이를 I2C 버스의 데이타 라인(SDA)에 실어 해당 슬레이브측으로 전송하게 된다.
이후 다시, 슬레이브측으로부터 전송되는 승인신호를 승인신호 수신부(130)에서 인가받아 제 3 인터럽트 신호(Interrupt3)를 발생하게 되지만, 제어부(100)에서는 데이타 버퍼(150)에 저장된 데이타의 전송이 이루어졌으므로 쉬프트 레지스터(140)를 오프시켜 데이타의 전송을 종료시키고, 시작/종결 조건 발생부(110)를 제어하여 I2C 버스의 데이타 라인(SDA)이 '0'에서 '1'으로 천이하는 경우인 종결 조건(end condition)을 발생한다.
상기 승인 신호 발생부(130)로부터 인터럽트 신호가 발생하였을때 I2C 버스의 데이타 라인(SDA)이 '0'이 아닌 경우에는 제어부(100)에서 데이타 라인(SDA)이 한가해지기를 기다려서 쉬프트 레지스터(140)와 데이타 검출부(120)를 제어하여 재시도하도록 한다.
이상에서 설명한 바와 같이 본 발명에 의한 인터럽트 발생 장치는 I2C 버스상에서 인터럽트를 시작 조건에서 종결 조건이 발생할때까지 계속 처리하는 대신에, 필요한 시점에서 독립적으로 처리할 수 있도록 분리함으로써 인터럽트 처리 함수의 부담을 줄이게 되어 데이타 전송 효율을 향상시키는 효과가 있다.

Claims (3)

  1. 제어부(100)의 제어에 의해 I2C 버스의 데이타 라인(SDA)을 통해 전송되는 신호를 검출하여 시작 조건과 종결 조건을 발생하는 시작/종결 조건 발생부(110);
    전송할 데이타를 저장하는 데이타 버퍼(150);
    제어부(100)의 제어에 의해 상기 데이타 버퍼(150)에 저장된 데이타를 순차적으로 입력받아 이를 쉬프트시켜 출력하는 쉬프트 레지스터(140);
    제어부(100)의 제어에 의해 상기 쉬프트 레지스터(140)로부터 출력되는 데이타를 I2C 버스의 데이타 라인(SDA)과 클럭 라인(SCL)으로 출력하는 데이타 전송부(120);
    슬레이브측으로부터 I2C 버스의 데이타 라인(SDA)과 클럭 라인(SCL)를 통해 승인(acknowledge) 신호가 인가될때마다 그 순서에 따라 각각 다른 인터럽트 신호를 발생하는 승인신호 수신부(130);
    상기 승인 신호 수신부(130)로부터 인터럽트 신호가 인가되면 그 발생 순서에 따라 I2C 버스의 데이타 라인(SDA)과 클럭 라인(SCL)으로 데이타를 출력하기 위하여 상기 시작/종결 조건 발생부(110)와 데이타 전송부(120) 및 쉬프트 레지스터(140)의 동작을 제어하는 제어부(100)를 포함하여 구성됨을 특징으로 하는 I2C 버스의 인터럽트 발생 장치.
  2. 제 1 항에 있어서, 쉬프트 레지스터(140)는 데이타 버퍼(150)로부터 1바이트씩의 데이타를 읽어들여 이를 쉬프트시키는 것을 특징으로 하는 I2C 버스의 인터럽트 발생 장치.
  3. 제 1 항에 있어서,제어부(100)는 승인 신호 수신부(130)로부터 인터럽트 신호가 발생되지 않으면 데이타 라인(SDA)이 한가해질 동안 기다린 다음 전송을 재시도할 수 있도록 데이타 전송부(120)를 제어하는 것을 특징으로 하는 I2C 버스의 인터럽트 발생 장치.
KR1019960070819A 1996-12-24 1996-12-24 I₂c 버스의 인터럽트 발생 장치 KR0184402B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960070819A KR0184402B1 (ko) 1996-12-24 1996-12-24 I₂c 버스의 인터럽트 발생 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960070819A KR0184402B1 (ko) 1996-12-24 1996-12-24 I₂c 버스의 인터럽트 발생 장치

Publications (2)

Publication Number Publication Date
KR19980051899A KR19980051899A (ko) 1998-09-25
KR0184402B1 true KR0184402B1 (ko) 1999-05-15

Family

ID=19490497

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960070819A KR0184402B1 (ko) 1996-12-24 1996-12-24 I₂c 버스의 인터럽트 발생 장치

Country Status (1)

Country Link
KR (1) KR0184402B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100687923B1 (ko) * 2005-04-29 2007-02-27 삼성전자주식회사 마스터디바이스, 그 제어방법과 마스터디바이스를 갖는전자장치

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100778114B1 (ko) * 2006-09-18 2007-11-21 삼성전자주식회사 통신에러를 개선하기 위한 통신방법 및 그 통신방법이적용된 전자장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100687923B1 (ko) * 2005-04-29 2007-02-27 삼성전자주식회사 마스터디바이스, 그 제어방법과 마스터디바이스를 갖는전자장치

Also Published As

Publication number Publication date
KR19980051899A (ko) 1998-09-25

Similar Documents

Publication Publication Date Title
EP0258872B1 (en) Serial data transfer system
US20080086578A1 (en) Integrated circuit device having send/receive macro for serial transfer bus
US5068785A (en) Bus control for small computer system interface with transfer indication preceding final word transfer and buffer empty indication preceding receipt acknowledgement
KR920004416B1 (ko) 개량된 통신제어장치에 사용된 데이타 처리장치
US5067075A (en) Method of direct memory access control
JPH01133167A (ja) データ転送ドライバ
KR0184402B1 (ko) I₂c 버스의 인터럽트 발생 장치
EP0473059B1 (en) Communication control system
KR100266963B1 (ko) 전송되는 패킷을 오버래핑하여 인터페이스의 대기시간을 감소시키는 방법 및 장치
JP2000231539A (ja) データ転送システムおよびデータ転送方法
KR0181596B1 (ko) I2c 버스의 데이터 전송 장치 및 방법
KR100217819B1 (ko) Iic 버스 사용 제어 방법
KR19980057209A (ko) I²c 버스의 인터럽트 발생 장치
KR19980057210A (ko) I²c 버스의 인터럽트 발생 장치
KR100295683B1 (ko) 인터아이씨의 제너럴콜 어크날리지장치및 방법
KR100260538B1 (ko) 중앙처리장치와 주변장치 간의 데이터 전송 방법 및 장치
KR100209199B1 (ko) I2c 버스 사용 점검 장치 및 방법
JP3548943B2 (ja) 割り込み制御方法
JP2002373145A (ja) ダイレクトメモリアクセス装置
JP2581041B2 (ja) デ−タ処理装置
JPH10116245A (ja) Dma制御装置
KR20020084725A (ko) 저속 주변장치와의 데이터 전송을 위한 메모리 컨트롤러
JP2000010909A (ja) データ転送制御装置
KR20050067324A (ko) 마스터/슬레이브 디바이스간의 인터페이스 장치 및 그 방법
JP2630077B2 (ja) クロック同期式シリアルインターフェース

Legal Events

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

Payment date: 20121203

Year of fee payment: 15

LAPS Lapse due to unpaid annual fee