KR100217819B1 - Iic 버스 사용 제어 방법 - Google Patents

Iic 버스 사용 제어 방법 Download PDF

Info

Publication number
KR100217819B1
KR100217819B1 KR1019960070824A KR19960070824A KR100217819B1 KR 100217819 B1 KR100217819 B1 KR 100217819B1 KR 1019960070824 A KR1019960070824 A KR 1019960070824A KR 19960070824 A KR19960070824 A KR 19960070824A KR 100217819 B1 KR100217819 B1 KR 100217819B1
Authority
KR
South Korea
Prior art keywords
data
bus
iic bus
data transmission
iic
Prior art date
Application number
KR1019960070824A
Other languages
English (en)
Other versions
KR19980051904A (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 KR1019960070824A priority Critical patent/KR100217819B1/ko
Publication of KR19980051904A publication Critical patent/KR19980051904A/ko
Application granted granted Critical
Publication of KR100217819B1 publication Critical patent/KR100217819B1/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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • G06F13/4036Coupling between buses using bus bridges with arbitration and deadlock prevention
    • 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
    • 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)

Abstract

본 발명은 IIC 버스에 연결된 기기가 균등하게 데이타를 전송할 수 있도록 하는 IIC 버스 사용 제어 방법에 관한 것으로, IIC 버스에 연결된 다수의 장치에 데이타 전송 상태를 나타내는 페어 플레그(Fair Flag)를 초기값으로 설정하는 페어 플래스 설정 단계(200, 210); 데이타 전송의 시작 상태를 나타내는 시작 조건을 발생하고 데이타를 전송하는 데이타 전송 단계(220, 230); 상기 데이타 전송 단계(220, 230)에서 IIC 버스 사용권 포기 여부를 판단하는 버스 사용권 포기 판단 단계(240); 상기 판단 결과 버스 사용권을 포기한 경우에는 재시도를 하는 재시도 수행 단계(270); 및 상기 판단 결과 버스 사용권을 포기하지 않은 경우에는 상기 페어 플래그를 클리어하고 데이타 전송의 종결을 나타내는 종결 조건을 발생하는 페어 플래그 클리어 단계(250, 260)에 의해 수행된다.
따라서 본 발명은 IIC 버스에 연결된 각 장치가 마스터 데이타 전송에 있어서, 균등한 기회를 가진다.

Description

IIC 버스 사용 제어 방법
본 발명은 IIC 버스에 연결된 기기가 균등하게 데이타를 전송할 수 있도록 하는 IIC 버스 사용 제어 방법에 관한 것이다.
일반적으로 IIC 버스는 도 1에 도시한 바와 같이 각 부분(A, B, C, D), 예를 들어 CPU, 메모리, I/O 기기간의 데이타 전송을 위해 사용하는 데이타 선로로, 2개의 선, 즉 데이타와 클럭을 각각 전송하는 2개의 선으로 통신이 가능하다. 또한, IIC 버스에 연결된 기기는 소프트웨어적으로 접근이 가능하고 다중 마스터가 동시에 같은 버스에 존재할 수 있다. 즉, IIC 버스에 연결된 각 부분(A, B, C, D)은 클럭을 발생하게 되면 모두 마스터가 될 수 있다.
예를 들어, 한 부분(A)이 클럭을 발생하여 마스터가 되면 나머지 부분(B, C, D)은 슬레이브가 되고, 다른 한 부분(B)이 클럭을 발생하여 마스터가 되면 나머지 부분(A, C, D)은 슬레이브가 되고, 또 다른 한 부분(C)이 클럭을 발생하여 마스터가 되면 나머지 부분(A, B, D)은 슬레이브가 되고, 또 다른 한 부분(D)이 클럭을 발생하여 마스터가 되면 나머지 부분(A, B, C)은 슬레이브가 된다.
또한, IIC 버스는 100Kbps에서 400Kbps까지 데이타 전송이 가능하며 캐패시터가 400pF을 초과하지 않는 한도내에서 다수의 기기(A, B, C, D)가 동일 버스에 연결될 수 있다.
IIC 버스는 2개의 라인, 즉 데이타를 전송하는 하나의 데이타 라인(SDA)와 클럭을 전송하는 하나의 클럭 라인(SCL)으로 이루어진다. 따라서 마스터에서 클럭 라인(SCL)을 통해 클럭을 전송하고 테이타 라인(SDA)을 통해 데이터와 어드레스를 전송하면 슬레이브에서는 클럭 라인(SCL)을 통해 전송된 클럭에 동기되어 데이타 라인(SDA)을 통해 전송된 데이터와 어드레스를 수신하게 된다.
종래에는 IIC 버스의 사용 가능 여부를 점검하기 위해 마스터가 IIC 버스의 클럭 라인(SCL)과 데이터 라인(SDA)의 상태를 점검하였다. 즉, 마스터가 데이터를 전송하기 위해 IIC 버스의 클럭 라인(SCL)과 데이터 라인(SDA)의 상태를 점검하여 버스 사용 가능 여부를 점검하였다.
이때, IIC 버스의 사용이 불가능할때에는 가능할때까지 계속 기다려야 한다. 또한, 데이터를 전송하는 도중에 사용권 포기가 발생하여 데이터를 재전송해야 하는 경우에도 버스 사용 가능 여부를 다시 점검하여야 한다.
그런데 종래에는 IIC 버스에서 하나의 단일 마스터가 버스 사용권을 독점할 우려가 있다. 즉, IIC 버스상에서 하나의 기기가 계속해서 마스터로서 동작하여 버스 사용권을 독점하므로써 다른 기기가 데이타를 전송할 수 없게 되는 경우가 발생하는 문제점이 있다.
상기 문제점을 개선하기 위한 본 발명은 페어 플래그(Fair Flag)를 사용하여 IIC 버스에 연결된 기기가 균등하게 데이타를 전송할 수 있도록 하기 위한 IIC 버스 사용 제어 방법을 제공함에 그 목적이 있다.
도 1은 일반적인 IIC 버스의 구조도
도 2는 본 발명이 적용되는 하드웨어의 구성도
도 3은 시작 조건 및 종결 조건을 설명하기 위한 신호 파형도
도 4는 본 발명에 의한 IIC 버스 사용 제어 방법의 흐름도
도 5는 도 4의 페어 플래그의 신호 파형도
도면의 주요 부분에 대한 부호의 설명
100 : 제어부110 : 시작 조건 발생부
120 : 데이타 처리부130 : 버스 사용 포기 점검부
140 : 페어 플래그150 : 종결 조건 발생부
상기 목적을 달성하기 위해 본 발명에 의한 IIC 버스 사용 제어 방법은 IIC 버스에 연결된 다수의 장치에 데이타 전송 상태를 나타내는 페어 플레그(Fair Flag)를 초기값으로 설정하는 페어 플래스 설정 단계; 데이타 전송의 시작 상태를 나타내는 시작 조건을 발생하고 데이타를 전송하는 데이타 전송 단계; 상기 데이타 전송 단계에서 IIC 버스 사용권 포기 여부를 판단하는 버스 사용권 포기 판단 단계; 상기 판단 결과 버스 사용권을 포기한 경우에는 재시도를 하는 재시도 수행 단계; 및 상기 판단 결과 버스 사용권을 포기하지 않은 경우에는 상기 페어 플래그를 클리어하고 데이타 전송의 종결 상태를 나타내는 종결 조건을 발생하는 페어 플래그 클리어 단계에 의해 수행됨을 특징으로 한다.
이하 첨부한 도면을 참조하여 본 발명의 실시예를 상세히 설명한다.
본 발명에 의한 IIC 버스 사용 제어 방법을 수행하기 위한 하드웨어는 도 2에 도시한 바와 같이 CPU로 이루어져 IIC 버스로의 데이터 전송을 제어하는 제어부(100), 상기 제어부(100)의 제어에 따라 IIC 버스의 사용이 가능하면 데이터 전송의 시작 상태를 나타내는 시작 조건을 상기 IIC 버스로 전송하는 시작 조건 발생부(110), 상기 제어부(100)의 제어에 따라 상기 IIC 버스를 통해 데이터를 전송하고 수신된 데이터를 처리하는 데이타 처리부(120), 상기 데이터 처리부(140)에서 출력되는 데이터와 상기 IIC 버스를 통해 수신되는 데이터를 비교하여 상기 제어부(100)로 IIC 버스 사용권 포기 인터럽트를 출력하는 버스 사용 포기 점검부(130), 상기 제어부(100)의 제어에 따라 데이터 전송의 종결 상태를 나타내는 종결 조건을 상기 IIC 버스로 전송하는 종결 조건 발생부(150), 및 상기 제어부(100)의 제어에 따라 세트 또는 클리어되어 다른 마스터가 데이타 전송을 할 수 있도록 하는 페어 플래그(140)로 구성된다.
또한, 본 발명에 의한 IIC 버스 사용 제어 장치는 도 4에 도시한 바와 같이 페어 플래그 설정 단계(200, 210), 데이타 전송 단계(220, 230), 버스 사용권 포기 판단 단계(240), 재시도 수행 단계(270), 및 페어 플래그 클리어 단계(250, 260)에 의해 수행된다.
상기 페어 플래그 설정 단계(200, 210)에서는 IIC 버스에 연결된 다수의 장치에 데이타 전송 상태를 나타내는 페어 플레그(Fair Flag)를 초기값으로 설정한다.
상기 데이타 전송 단계(220, 230)에서는 데이타 전송의 시작 상태를 나타내는 시작 조건을 발생하고 데이타를 전송한다.
상기 버스 사용권 포기 판단 단계(240)에서는 IIC 버스 사용권 포기 여부를 판단한다.
상기 재시도 수행 단계(270)에서는 상기 판단 결과 버스 사용권을 포기한 경우에는 재시도를 한다.
상기 페어 플래그 클리어 단계(250, 260)에서는 상기 판단 결과 버스 사용권을 포기하지 않은 경우에는 상기 페어 플래그를 클리어하고 데이타 전송의 종결을 나타내는 종결 조건을 발생한다.
이와 같이 이루어지는 본 발명에 의한 IIC 버스 사용 제어 방법은 IIC 버스 상에서 마스터나 슬레이브로 동작하는 장치가 데이터를 전송하고 수신하려고 할 때 효율적으로 버스 사용을 제어하게 된다.
먼저, 상기 페어 플래그 설정 단계(200, 210)를 수행하여 IIC 버스에 연결된 다수의 장치에 데이타 전송 상태를 나타내는 페어 플레그(Fair Flag)를 초기값인 '1'로 설정한다. 즉 페어 플래그를 각 장치에 설정하고(200), 설정된 페어 플래그의 초기값을 '1'로 세트한다(210).
이와 같이 페어 플래그를 설정한후에 데이타 전송 단계를 수행하기 위해 각 장치에서는 시작 조건을 발생한다(220).
즉, 시작 조건 발생부(110)에서 도 3에 도시한 바와 같이 클럭 라인(SCL)과 데이터 라인(SDA)을 구동시켜 클럭 라인(SCL)이 '1'인 상태에서 데이터 라인(SDA)이 '1'에서 '0'으로 천이하도록 한다.
이와 같이 시작 조건을 전송한후에는 계속해서 제어부(100)의 제어에 따라 데이터 처리부(120)에서 마스터로써 어드레스와 동작 조건, 즉 읽기/쓰기 신호를 전송하고 시작 조건에 따라 데이터를 전송 또는 수신하여 처리하게 된다. 즉, 데이터 처리부(120)에서는 읽기 동작인 경우 어드레스로 지정된 슬레이브 장치의 데이터를 전송받고 쓰기 동작인 경우 지정된 슬레이브 장치로 데이터를 전송하게 된다.
이때 데이터는 비트 단위로 처리하는데, 매 비트를 전송할때마다 IIC 버스 사용권 포기 여부를 점검해야 한다. 즉, 상기 버스 사용권 포기 판단 단계(240)를 수행하여 IIC 버스 사용권 포기 여부를 판단한다.
이의 IIC 버스 사용권 포기 여부의 판단과정을 설명하면 다음과 같다.
버스 사용 포기 점검부(130)에서 상기 데이터 처리부(120)에서 IIC 버스의 데이터 라인(SDA)으로 출력하는 어드레스 또는 데이터값과 실제 IIC 버스의 데이터 라인(SDA)의 현재 값을 비교하여 그 두 개의 값이 다른 경우 IIC 버스 사용권을 포기하는 것으로 간주하여 IIC 버스 사용권 포기 인터럽트를 발생시키게 된다.
이에따라 제어부(100)는 IIC 버스 사용권 포기 여부를 인지하게 되는 것이다.
이와 같이 버스 사용권 포기 판단 결과 인터럽트가 발생되어 버스 사용권을 포기하면 자신은 슬레이브가 되는 것이므로 이후 마스터가 되기 위해서 재시도를 수행하게 되는것이다(270).
한편, 인터럽트가 발생되지 않고 버스 사용권이 포기되지 않은 경우에는 페어 플래그를 클리어시킴으로 인해 다른 마스터가 데이타를 전송할 수 있는 기회를 제공한다(250).해서 다른 마스터가 데이타를 전송할 수 있는 기회를 제공한다(250).
즉, 오랫동안 하나의 마스터가 계속적으로 데이터 전송을 수행하는 경우 어느 일정한 시점에서 다른 마스터에게 데이터 전송의 기회를 넘겨주는 것이다.
페어 플래그를 클리어한 후에는 종결 조건 발생부(150)에서 종결 조건을 전송하여 데이타의 전송이 종결되었음을 알린다.
즉, 도 3에 도시한 바와 같이 클럭 라인(SCL)과 데이터 라인(SDA)을 구동시켜 클럭 라인(SCL)이 '1'인 상태에서 데이터 라인(SDA)이 '0'에서 '1'로 천이하도록 한다.
한편, 도 5에 도시한 바와 같이 일정한 기간 동안 클럭 라인(SCL)이 '1'인 상태에 머물러 있으면 IIC 버스는 아이들 상태가 되고 이때 페어 플래그의 값을 다시 '1'로 설정하여 데이타를 전송한다.
이는 곧, 다른 마스터들이 계속적으로 데이터를 전송하는 경우 자신의 우선 순위를 되찾기 위하여 페어 플레그를 '1'로 제설정함으로써 상기에서 설명한 과정을 다시 수행하는 것이다.
즉, 어는 일정 시간동안 자신이 독점적으로 데이터를 전송하였다면 일정 시간 경과 후 다른 마스터에게 데이터의 전송기회를 넘겨주고, 또한 일정 기간 경과 후 데이터 전송 기회를 다시 찾아오게 되어 각 마스터가 균등하게 데이터를 전송할 수 있게 된다.
이상에서 설명한 바와 같이 본 발명에 의한 IIC 버스 사용 제어 방법은 IIC 버스에 연결된 각 장치가 마스터 데이타 전송에 있어서 균등한 기회를 가지게 되어 어느 한 마스터의 데이터 전송의 지체가 발생하지 않는 효과가 있다.

Claims (1)

  1. IIC 버스에 연결된 다수의 장치에 데이타 전송 상태를 나타내는 페어 플레그(Fair Flag)를 초기값으로 설정하는 페어 플래스 설정 단계(200, 210);
    데이타 전송의 시작 상태를 나타내는 시작 조건을 발생하고 데이타를 전송하는 데이타 전송 단계(220, 230);
    상기 데이타 전송 단계(220, 230)에서 IIC 버스 사용권 포기 여부를 판단하는 버스 사용권 포기 판단 단계(240);
    상기 판단 결과 버스 사용권을 포기한 경우에는 재시도를 하는 재시도 수행 단계(270); 및
    상기 판단 결과 버스 사용권을 포기하지 않은 경우에는 상기 페어 플래그를 클리어하고 데이타 전송의 종결을 나타내는 종결 조건을 발생하는 페어 플래그 클리어 단계(250, 260)에 의해 수행됨을 특징으로 하는 IIC 버스 사용 제어 방법.
KR1019960070824A 1996-12-24 1996-12-24 Iic 버스 사용 제어 방법 KR100217819B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960070824A KR100217819B1 (ko) 1996-12-24 1996-12-24 Iic 버스 사용 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960070824A KR100217819B1 (ko) 1996-12-24 1996-12-24 Iic 버스 사용 제어 방법

Publications (2)

Publication Number Publication Date
KR19980051904A KR19980051904A (ko) 1998-09-25
KR100217819B1 true KR100217819B1 (ko) 1999-09-01

Family

ID=19490501

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960070824A KR100217819B1 (ko) 1996-12-24 1996-12-24 Iic 버스 사용 제어 방법

Country Status (1)

Country Link
KR (1) KR100217819B1 (ko)

Also Published As

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

Similar Documents

Publication Publication Date Title
US6175887B1 (en) Deterministic arbitration of a serial bus using arbitration addresses
JP2704144B2 (ja) シリアルデータ伝送装置及びその制御方法
KR100217819B1 (ko) Iic 버스 사용 제어 방법
KR100622800B1 (ko) 버스를 통한 데이터 전송을 제어하는 방법, 시스템 및 컴퓨터 시스템
EP0514080A2 (en) Transition signalling data communications
KR100340815B1 (ko) 버스시스템의작동방법및이작동방법을수행하기위한장치
KR100209199B1 (ko) I2c 버스 사용 점검 장치 및 방법
KR0184402B1 (ko) I₂c 버스의 인터럽트 발생 장치
JP2000231539A (ja) データ転送システムおよびデータ転送方法
KR0181596B1 (ko) I2c 버스의 데이터 전송 장치 및 방법
US5808485A (en) Clock clamping circuit that prevents clock glitching and method therefor
KR980010798A (ko) 다중 버스 시스템의 인터럽트 처리장치
KR100244471B1 (ko) 다이렉트 메모리 엑세스 제어기 및 그 제어방법
KR19990008189A (ko) 전송되는 패킷을 오버래핑하여 인터페이스의 대기 시간을 감소시키는 방법 및 장치
KR930004910Y1 (ko) 다중처리기 시스템에서의 데이터버스 중재기
KR890013568A (ko) 데이타 전송 제어장치
KR19980057209A (ko) I²c 버스의 인터럽트 발생 장치
JP2615815B2 (ja) 優先順位制御方式
KR970002399B1 (ko) 안정적인 버스 중재정보 구동을 위한 상태 할당방법(State assignment for stable drive of bus arbirtation information)
JP4666369B2 (ja) Usbデバイス
KR20050067324A (ko) 마스터/슬레이브 디바이스간의 인터페이스 장치 및 그 방법
JPS5994159A (ja) デ−タ転送制御方式
JPH09259071A (ja) 通信制御装置
JP2002024160A (ja) Dma転送装置
KR19980017641A (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
LAPS Lapse due to unpaid annual fee