KR0143933B1 - 호스트와 주변장치 간의 양방향 통신이 가능한 인터페이스 제어장치 및 방법 - Google Patents

호스트와 주변장치 간의 양방향 통신이 가능한 인터페이스 제어장치 및 방법

Info

Publication number
KR0143933B1
KR0143933B1 KR1019950011985A KR19950011985A KR0143933B1 KR 0143933 B1 KR0143933 B1 KR 0143933B1 KR 1019950011985 A KR1019950011985 A KR 1019950011985A KR 19950011985 A KR19950011985 A KR 19950011985A KR 0143933 B1 KR0143933 B1 KR 0143933B1
Authority
KR
South Korea
Prior art keywords
signal
data
host
peripheral device
drq
Prior art date
Application number
KR1019950011985A
Other languages
English (en)
Other versions
KR960042375A (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 KR1019950011985A priority Critical patent/KR0143933B1/ko
Publication of KR960042375A publication Critical patent/KR960042375A/ko
Application granted granted Critical
Publication of KR0143933B1 publication Critical patent/KR0143933B1/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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • 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/38Universal adapter
    • G06F2213/3854Control is performed at the peripheral side

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

본 발명은 호스트(Host)와 주변장치가, 비동기적으로 신속하게 데이타를 송수신하기 위한 인터페이스 제어장치 및 그 방법에 관한것으로서, 인터페이스 제어장치는 송신을 위해서는 제어신호를 만드는 디코더; 데이타 요구 신호 생성기; 데이타 요구 신호 클리어(Clear)기; 및 데이타 버스 전환부를 포함하고 있으며, 수신을 위해서는 상기 디코더; 데이타 처리중임을 나타내는 신호 생성기; 데이타 처리중 신호 클리어기; 및 데이타 버스 전환부를 포함하고 있다.
본 발명은 호스트와 주변 장치가 동시에 토커나 리스너가 될 수 있으며, 송수신 체계를 간단히 하여 문자 전송에 있어서 콘트롤러에 의해 토커와 리스너가 정해지는 인터페이스 체계보다 전송률이 높다. 또한 속도가 빠른 장치와 느린 장치간에도 데이타 교환이 가능하다.

Description

호스트와 주변장치 간의 양방향 통신이 가능한 인터페이스 제어장치 및 방법
제 1 도는 종래의 Centronics 방식의 타이밍도
제 2 도는 종래의 Centronics 방식의 데이타 전송 흐름도
제 3 도는 종래의 GP-lB 방식의 타이밍도
제 4 도는 종래의 GP-lB 방식의 데이타 전송 흐름도
제 5 도는 본 발명에 따른 호스트와 주변장치 간의 송수신 인터페이스 제어장치의 전체 구성도
제 6 도는 제 5 도의 구성요소인 버스제어부의 내부 블록도
제 7 도는 제 6 도의 구성요소인 어드레스 디코더에 있어서 그 일실시예를 나타낸 호스트 어드레스 맵(Map)도
제 8 도는 제 6 도의 오드레스 디코더의 타이밍도
제 9 도는 호스트에서 주변장치로의 데이타 전송시의 타이밍도
제 10 도는 주변장치에서 호스트로의 데이타 전송시의 타이밍도
제 11a 도는 호스트에서 주변장치로의 데이타 전송시 호스트 쪽에서의 데이타 전송 흐름도
제 11b 도는 호스트에서 주변장치로의 데이타 전송시 주변장치쪽에서의 데이타 전송 흐름도
제 12a 도는 주변장치에서 호스트로의 데이타 전송시 호스트 쪽에서의 데이타 전송 흐름도
제 12b 도는 주변장치에서 호스트로의 데이타 전송시 주변장치쪽에서의 데이타 전송 흐름도
제 13 도는 제 6 도의 제어부의 일실시예인 상세 회로도
본 발명은 인터페이스 장치 및 방법에 관한 것으로서, 더욱 상세하게는 호스트(Host)와 주변장치가 비동기적(Asynchronous)으로 신속하게 데이타를 송수신하기 위한 인터페이스 제어장치 및 그 방법에 관한 것이다.
컴퓨터와 각종 기기를 접속하는 인터페이스 방식에는 여러 가지 종류가 있으나, 본 발명과 비슷한 종래의 인터페이스 방식으로는 신트로닉스(이하 Centronics)와 지피-아이비(이하 GP-IB) 방식이 있다.
Centronics 와 GP-IB의 데이타 전송원리에 대해 간단히 설명하면 다음과 같다.
먼저, Centroincs 의 경우는 단방향 통신으로서, 타이밍(Timing)도는 제 1 도와 같다. 호스트에서 구동하는 출력 신호는 /STB 와 DATA이며, 주변장치에서 구동하는 출력 신호는 BUSY 와 /ACK이다. /STB신호는 호스트가 전송하고자 하는 데이타를 버스상에 실어 놓고 주변장치에게 데이타를 가져가라는 신호이고, BUSY 는 주변장치가 다른 일을 하고 있는 중임을 나타내는 신호이고, /ACK 는 주변장치가 호스트에서 출력한 데이타를 받아들였다는 것을 호스트에게 알리는 신호이다. 데이타가 호스트에서 주변장치로 전달되는 자세한 절차는 제 2 도와 같다.
한편, GP-IB 의 경우는 콘트롤러(Controller)에 의해 데이타를 전송하는 토커(Talker)와 데이타를 받는 리스너(Listener)가 정해지며, 토커와 리스너가 데이타를 주고 받는 타이밍도는 제 3 도와 같다.
토커에서 출력하는 신호는 DAV(Data Valid)와 DATA 이며. 리스너에서 출력하는 신호는 NRFD(Not Ready For Data)와 NDAC(Not Data Accepted)이다. DAV 신호는 토커가 전송하기 위한 데이타를 버스상에 실어 놓고 리스너에게 유효한 데이타가 데이타 버스 상에 실렸다는 것을 알리는 신호이고, NRFD 는 리스너가 토커에게 데이타를 처리 증임을 알리는 신호이다. 그리고 NDAC 신호는 리스너가 토커에게 데이타를 처리 중임을 알리는 신호이다. 데이타가 토커에서 리스너로 전달되는 자세한 절차는 제 4 도와 같다.
이상에서 호스트와 주변기기 사이에 데이타 입출력이 빈번한 시스템을 구성할 경우에는 위의 Centronics 의 경우는 단방향 통신인 까닭에 양방향 통신이 되지 않으며, GP-IB 의 경우는 콘트롤러에 의해 토커와 리스너가 빈번히 바뀌게 되므로 전송효율이 떨어지는 단점이 있다. 또한 전송을 위한 시퀀스(Sequence)가 상대방의 제어 신호에 대응해서 수행되므로 제 2 도 및 제 4 도와 같이 신호의 흐름이 복잡하게 된다는 문제점이 있다.
본 발명은 상술한 종래의 문제점을 해결하기 위해 창출된 것으로서, 호스트와 주변장치가 동시에 토커나 리스너가 될 수 있도록 구성하였으며, 데이타를 전송할 시점인지 아닌지를 판단하는 신호는 데이타를 전송하면서 변화된 핸드쉐이크(이하 Handshake) 신호가 클리어(이하 Clear) 되었는지 안되었는지를 확인하면 알 수 있도록 함으로써, 즉 Handshake 신호가 Clear 되었으면 다음 데이타를 전송해도 좋다는 것을 나타냄으로써, 종래 기술의 문제점을 해결하는 데 본 발명의 목적이 있다.
상기한 목적을 달성하기 위해 본 발명에 따른 신속하고 양방향 통신이 가능한 인터페이스 제어장치 및 그 방법은 크게 송신을 위한 인터페이스 제어장치 및 그 방법, 그리고 수신을 위한 인터페이스 제어장치 및 그 방법으로 나누어서 구성된다. 먼저 호스트에서 주변장치로의 데이타 송신을 위한 인터페이스 제어장치는 호스트의 어드레스 버스와 어드레스 버스가 유효함을 나타내는 신호 및 시스템 클럭을 포함하는 신호를 입력으로 받아서, 주변장치에게 데이타를 가져가라고 요구하는 신호(M_DRQ)를 읽고자 할 때 인에이블(Enable)된 상태에서 M_DRQ 신호가 읽히도록 하는 제 1 제어 신호(CS_STATUS)와, 상기 M_DRQ 신호를 생성할 때 입력으로 사용되는 제 2 제어신호(CS_IF)를 출력하는 디코더(Decoder);
호스트의 상기 디코더로부터 출력되는 제 1 제어 신호(CS_STATUS) 와 데이타 쓰기 신호(/LOW)를 입력으로 받아 호스트의 데이타 버스에 실린 리셋 정보를 주변장치 쪽으로 출력하는 리셋신호(RST 신호) 발생기;
상기 디코더로부터 출력되는 제 2 제어신호(CS_IF)와 호스트의 데이타 쓰기 신호를 입력으로 받아, 상기 M_DRQ 신호를 생성하는 M_DRQ 신호 생성기;
주변장치가 호스트의 데이타를 읽어 감을 나타내는 신호(/M_ACK)를 입력으로 사용하여 상기 M_DRQ 신호를 클리어 시키는 M_DRQ 신호 클리어기;
상기 M_DRQ 신호와 상기 CS_STATU 및 상기 /IOR 신호를 입력으로 받아 호스트가 상기 M_DRQ 신호의 상태를 읽을 수 있게 하는 M_DRO 신호 독출기; 및
상기 /M_ACK 신호가 인에이블 될 때, 데이타 버스 방향이 호스트에서 주변장치 쪽으로 바뀌는 데이타 버스 전환부를 포함함을 특징으로 한다.
그리고 호스트(Host)에서 주변장치로부터의 데이타 수신을 위한 인터페이스 제어 장치는 호스트의 어드레스 버스와 어드레스 버스가 유효함을 나타내는 신호 및 시스템 클럭을 포함하는 신호를 입력으로 받아서, 데이타 처리 중임을 나타내는 신호(DACK)의 상태를 읽고자 할 때 인에블된 상태에서 DACK신호가 읽히게 하는 제 1 제어신호(CS_STATUS)와, 상기 DACK 신호를 클리어 할 때 사용되는 제 2 제어신호(CS_IF)를 출력하는 디코더; 호스트의 상기 디코더로부터 출력되는 제 1 제어 신호(CS_STATUS)신호와 데이타 쓰기 신호(/LOW)를 입력으로 받아 호스트의 데이타 버스에 실린 리셋 정보를 주변장치 쪽으로 출력하는 리셋신호(RST 신호) 발생; 주변장치가 호스트에게 주변장치의 데이타를 가져가라고 요구하는 신호(/DRQ)를 입력으로 이용하여 데이타처리중임을 나타내는 신호(DACK)를 생성하는 DACK 신호 생성기; 호스트가 데이타를 읽어들이는 신호(/IOR)와 제 2 제어신호(CS_IF)를 입력으로 사용하여, 상기 DACK 를 클리어시키는 DACK 클리어기; 상기 DACK 신호와 상기 CS_STATUS 및 상기 /IOR 신호를 입력으로 받아 호스트가 상기 DACK 신호의 상태를 읽을 수 있게 하는 DACK 신호 독출기 ; 및
호스트에서 데이타를 읽을 때 인에이블 되는 데이타 읽기 신호(/IOR)를 입력으로 받아, 데이타 버스 방향이 주변장치에서 호스트쪽으로 바뀌게 하는 데이타 버스 전환부를 포함함을 특징으로 한다.
한편, 호스트에서 주변장치로 데이타 송신을 위한 인터페이스 방법은 호스트가 주변장치에게 리셋신호(RST)를 보내고 주변장치는 이 신호를 받아 주변장치를 초기화하는 과정; 호스트가 주변장치에게 보내고자 하는 데이타가 있을 때, 전송데이타를 버스에 출력하는 제 1 과정; 호스트가 주변장치에게 보내고자 하는 데이타가 있을 때, 이를 나타내는 신호(M_DRQ)를 인에이블시키는 제 2 과정; 상기 M_DRQ 신호를 이용해서 주변장치는, 호스트가 보낸 데이타를 래치(Latch)하고 나서, 래치된 데이타가 읽히고 있음을 나타내는 신호(/M_ACK)를 인에이블시키고, 데이타 버스에서 데이타를 읽고 나서, 다시 상기 /M_ACK 신호를 디스에이블 시키는 제3과정; 상기 인에블된 /M_ACK 신호를 사용하여 상기 인에블된 M_DRQ 신호를 클리어(Clear) 시키는 제 4 과정; 및 호스트는 상기 M_DRQ 신호를 계속 감시하고 있다가 M_DRQ 신호가 클리어 되었으면, 보낸 데이타가 주변장치에 제대로 전달되었음을 알고 더 보낼 데이타가 없으면 전송을 종료하고, 만약 더 보낼 데이타가 있으면 상기 M_DRQ 신호가 클리어 되기를 기다렸다가, M_DRQ 신호가 클리어되면 상기 제 1 과정에서 제 4 과정을 반복하는 과정을 특징으로 포함하여 이루어진다.
그리고, 호스트가 주변장치의 데이타를 수신하기 위한 인터페이스 방법은
호스트가 주변장치에게 리셀신호(RST)를 보내고 주변장치는 이 신호를 받아 주변장치를 초기화하는 과정; 주변장치가 전송데이타를 버스에 출력한 후, 호스트에게 주변장치의 데이타를 가져가라고 요구하는 신호(/DRQ)를 인에이블시키고 나서 상기 /DRQ 신호를 다시 디스에이블시키는 제 1 과정 ;상기 /DRQ 신호를 사용하여 데이타를 처리 중임을 나타내는 신호(DACK)가 인에이블되는 제 2 과정; 호스트가 상기 DACK 신호를 감시하고 있다가 DACK 신호가 인에이블되면 데이타를 읽어들이는 제 3 과정; 호스트가 데이타를 읽어 들인 후 특정 어드레스를 액세스함으로써 발생하는 특정 신호를 사용하여 상기 DACK 를 클리어시키는 제 4 과정; 및 주변장치는 상기 DACK 신호를 감시하고 있다가 DACK 가 클리어 되면, 보낼 데이타가 없으면 전송을 종료하고 더 있으면 상기 제 1 과정에서 제 4 과정을 반복하는 과정을 특징으로 포함하여 이루어진다.
또한, 상기 호스트에서 주변장치로 데이타 송신을 위한 인터페이스 제어방법에 있어서, 호스트가 주변장치에게 보내고자 하는 데이타가 있을 때 이를 나타내는 신호(M_DRQ)를 인에이블시키는 과정은 호스트가 주변장치에게 보내고자 하는 데이타를 특정 어드레스에 쓰는 과정; 및
상기 특정 어드레스와 호스트의 어드레스 인에이블 신호를 포함하는 신호를 디코딩하여 생성된 제 1 제어신호(CS_IF)를 사용하여 호스트가 주변장치에게 데이타를 보내기를 요구하는 신호(M_DRQ)를 생성하는 과정을 포함하여 이루어진다.
이하 첨부된 도면을 참조하여 상술한 본 발명에서의 장치와 그 제어 방법을 상세히 설명한다.
제 5 도는 본 발명에 따른 호스트와 주변장치간의 송수신 인터페이스 제어장치의 전체 구성도를 도시한 것으로서, 본 발명의 목적을 달성하는 주요 기능을 담당하는 부분인 버스 제어부(520)와 데이타 송수신의 기점이 되는 호스트(510) 및 주변장치(530)를 나타낸다. 또한 제 5 도는 상기 버스 제어부(520)를 사이에 두고 호스트(510)와 주변장치(530) 간의 데이타를 주고받는 데 필요한 신호들과 그 방향을 도시하고 있다. 이 신호들에 대한 상세한 것은 아래의 일실시예에서 설명하기로 한다.
한편, 상기 제 5 도에서의 버스 제어부(510)의 보다 상세한 구성은 제 6 도에 도시한 바와 같이 어드레스 디코더(600)와 제어부(610)로 구성되어 있다 그리고 제 7 도는 호스트 어드레스 맵(Map) 의 일실시예를 나타낸 것이며, 제 8 도는 제 6 도의 어드레스 디코더의 타이밍도를 나타낸 것이다.
상술한 도면을 참조하여 본 발명의 일실시예를 설명하면 다음과 같다. 먼저, 제 6 도의 어드레스 디코더(600)는 호스트(510)의 어드레스 버스(ADD[9..0])와 어드레스 버스가 유효함을 나타내는 신호(AEN), 시스템 클럭(SCLK), 그리고 온(ON) 흑은 오프(OFF)의 세팅 상태에 따라 두 가지의 어드레스를 사용할 수 있도륵 하는 스위치(S/W)를 입력으로 받아, 제 7 도의 호스트 어드레스 맵(Map)에 따라 디코딩하여 제 1 제어신호(CS_STATUS)와 제 2 제어신호(CS_IF)를 만들어 낸다.
이에 대한 자세한 타이밍도는 제 8 도와 같다. 즉 스위치(S/W)가 0(OFF)으로 세팅되었다고 가정하면, 제 7 도의 호스트 어드레스 맵에 의해 CS_STATUS 는 어드레스가 16진수 값 200(200H) 이고 AEN 이 0 일 경우에 인에이블되고, CS_IF 는 어드레스가 16진수 값 201(201H) 이고 AEN 이 0 일 때 인에이블된다.
만약 AEN 이 하이(High)일 경우는 호스트 버스 마스터(Master)가 직접 기억장소 액세스(DMA : Direct Memory Access) 콘트롤러(Controller)일 때이므로, 본 발명에서는 호스트 버스 마스터가 마이크로 처리 장치(MPV : Micro Processor Unit) 일 때, 즉 AEN 이 로(LOW) 일 때만 CS_STATUS 와 CS_IF 이 인에이블되도록 한다.
첫째로, 상기에서 기술한 제 1, 제 2 제어신호(CS_STATUS, CS_IF)를 사용하여 호스트에서 주변장치로의 데이타 송신장치의 동작 및 그 제어방법을 제 9 도., 제 l1a 도, 제 11b 도 및 제 13 도를 중심으로 참조하여 설명하면 다음과 같다.
제 11A도는 호스트에서 주변장치로의 데이타를 송신 할 때에, 호스트쪽에서 일어나는 전송 흐름을 도시한 흐름도이고, 제 11b 도는 주변장치쪽에서 일어나는 전송 흐름을 도시한 흐름도이다. 그리고 제 9 도는 상기 제 11a 도 및 제 11b 도의 과정을 타이밍도로 나타낸 것이다.
먼저, 호스트에서 리셋신호(RST 신호) 발생기를 통해 RST 신호를 주변장치로 출력시킨다. (제 11a 도의 1110단계) 상기 RST 신호 발생기는 제 13 도의 래치칩(1302)과 논리곱(AND) 게이트(1350) 및 인버터 (1352)으로 구성되며, 입력신호는 CS_STATUS, /LOW 신호이며 출력되는 신호는 RST 신호이다. 이에 대한 동작은 다음과 같다. 호스트에서 어드레스 200H에 호스트 데이타 버스(PDAT[7..0])를 통해 특정 데이타 쓰기를 함으로써 제 6 도의 어드레스 디코더(600)를 통해 발생되는 CS_STATUS 신호와 호스트의 /IOW 신호를 인에이블시켜, 상기 CS_STATUS 신호와 인버터된 /IOW 신호를 입력으로 받은 AND 게이트(1350)의 출력신호를 클럭의 입력으로 받은 제 13 도의 래치칩(1302)이 특정데이타가 실린 PDAT[7..0]을 래치하여 RST 신호를 주변장치로 출력시킨다.
그러면 주변장치는 RST를 체크하고 있다가 (제 11b 도의 1150단계) RST 신호를 받으면 주변장치를 초기화시킨다.(1152단계)
한편 호스트는 M_DRQ 신호 독출기를 통해 M_DRQ 신호를 읽으며 M_DRQ=1 인지 검사한다. (1112단계) 상기 M_DRQ 신호 독출기는 제 13 도의 래치칩(1304), OR 게이트(1348), 인버터(1346)으로 구성되며, 입력신호는 M_DRQ, CS_STATUS, /IOR 신호이며 출력신호는 호스트의 데이타 버스인 PDAT[7..0] 이다. 이에 대한 동작은 다음과 같다. 먼저, 어드레스 200H 번지를 액세스하여 읽으면 CS_STATUS 신호와 /IOR 신호가 인에이블되고, 상기 /IOR 신호와 상기 인버터(1346) 율 거쳐 반전된 CS_STATUS 신호가 상기 OR 게이트(1348)를 통해 상기 래치칩(1304)의 출력제어 단자(OC단자)로 사용되어 M_DRQ 신호가 읽히게 된다.
호스트는 상기 1112 단계에서 M_DRQ=1 이면 M_DRQ=0 이 될 때까지 기다리고, M_DRQ=1 이 아니면 즉 M_DRQ=0 이면 호스트에서 어드레스 201H 번지에 호스트 데이타 버스(PDAT[7..0]) 상에 55H 값을 갖는 전송 데이타를 실어 출력시킨다.(1114단계)
그리고 나서 M_DRQ 신호 생성기를 통해 M_DRQ 신호가 인에블된다.
상기 M_DRQ 신호 생성기는 제 13 도의 제 1 플립플롭(1310), AND 게이트(1354) 및 인버터 (1352) 로 구성되는데, 입력신호는 CS_IF, /IOW이며 출력신호는 M_DRQ 이다. 이에 대한 동작은 다음과 같다. 먼저 상기 1114 단계에서 어드레스 201H 번지에 호스트 데이타 버스(PDAT[7..0] ) 상에 55H 값을 갖는 전송 데이타가 실려 출력되면, 어드레스 디코더(600)에서 CS_IF 신호가 인에이블되고 이것이 쓰기신호(/IOW)와 결합하여 상기 제 1 플립플롭(1310)의 클럭으로 사용되어 M_DRQ 를 High 로 구동함으로써 M_DRQ=1 이 된다.(1116단계)
그리고 이 때 M_DRQ 가 래치칩(참조번호 1306)의 C(Clock) 단자를 '0' 에서 '1' 이 되게 함으로써 제 13 도에서 PDAT[7..0] 에 실린 데이타는 래치만 되고 아직 주변장치의 데이타 버스(MDAT[7..0]) 에는 실리지 못한 상태가 된다.
한편, 주변장치는 상기 M_DRQ 신호가 '1'인가를 체크하고 있다가(1154단계), M_DRQ=1 이면 제 13 도의 /M_ACK 신호를 '0' 이 되게 한다. (1156단계)
그리고 데이타 버스 전환부를 통해 데이타 버스가 호스트에서 주변장치 쪽으로 전환이 된다. 상기 데이타 버스 전환부는 제 13 도의 래치칩(1306)으로 구성되는데, 입력신호는 /M_ACK 와 PDAT[7..0] 이며 출력신호는 MDAT[7..0] 이다. 이에 대한 동작은 다음과 같다. 상기 1156단계에서 /M_ACK 신호가 '0' 즉 인에이블 되면 이 신호가 래치칩(1306)의 출력콘트를 단자(OC 단자) 가 인에이블되어 데이타 버스 방향이 호스트에서 주변장치 쪽으로 전환이 된다.
그리고 나서 호스트가 보낸 데이타를 주변장치 데이타 버스(MDAT[7..0])를 통해 한 바이트를 읽어 들인다. (1158단계)
또한 /M_ACK 신호가 인에이블 될 때, M_DRQ 신호 클리어기를 통해 M_DRQ 신호가 클리어 된다. 상기 M_DRQ 신호 클리어기는 제 13 도의 플립플롭(1310)과 AND 게이트(1356)으로 구성되며, 입력신호는 M_ACK이며 출력신호는 M_DRQ 이다. 이에 대한 동작은 제 13 도에서 보는 바와 같이 /M_ACK 가 상기 AND 게이트(1356)를 통해 플립플롭(1310)의 Clear단자(CLR)로 사용되어 /M_ACK 신호가 인에이블 즉 '0' 이 되면 M_DRQ신호를 클리어(Clear) 시키게 되어 M_DRQ 신호를 다시 '0' 이 되게 함과 같다.
그리고 주변장치는 상기 1158 단계에 이어 다시 /M_ACK 신호를 '1'이 되게 한 다음(1160단계), 상기 1154단계로 가서 M_DRQ 신호가 '1' 인지 체크한다.
한편 호스트는 M_DRQ 신호 독출기를 통해 M_DRQ 신호를 읽으며
M_DRQ=0 인지 검사하고 있다가(1118단계), 주변장치에서 /M_ACK 를 Low로 하여 M_DRQ=0 이 되면 전송하고자 하는 데이타를 모두 전송하였는지 아니면 더 있는지 검사한다.(1120단계) 그리하여 전송할 데이타가 남아있으면 1112 단계에서 1120 단계를 반복한다. 한편 1120 단계에서 모든 데이타가 전송되었으면 전송을 종료한다.
둘째로, 상기에서 기술한 제 1, 제 2 제어신호(CS_STATUS, CS_IF)를 사용하여 호스트에서 주변장치로부터의 데이타 수신장치의 동작 및 그 제어방법을 제 10 도, 제 12a 도, 제 12b 도 및 제 13 도를 중심으로 참조하여 설명하면 다음과 같다.
제 12a 도는 호스트가 주변장치의 데이타를 수신 할 때에, 호스트 쪽에서 일어나는 전송 흐름을 도시한 흐름도이고, 제 12b 도는 주변장치 쪽에서 일어나는 전송 흐름을 도시한 흐름도이다. 그리고 제 10 도는 상기 제 12a 도 및 제 12b 도의 과정을 타이밍도로 나타낸 것이다.
먼저, 호스트에서 리셀신호(RST 신호) 발생기를 통해 RST 신호를 주변장치로 출력시킨다. (제 12a 도의 1210단계) 상기 RST 신호 발생기는 제13도의 래치칩(1302)과 논리곱(AND) 게이트(1350) 및 인버터(1352)으로 구성되며, 입력신호는 CS_STATUS, /IOW 신호이며 출력되는 신호는 RST신호이다. 이에 대한 동작은 다음과 같다. 호스트에서 어드레스 200H에 호스트 데이타 버스(PDAT[7..0])를 통해 특정 데이타 쓰기를 함으로써 제 6 도의 어드레스 디코더(600)를 통해 발생되는 CS_STATUS 신호와 호스트의 /IOW 신호를 인에이블 시켜, 상기 CS_STATUS 신호와 인버터된 /IOW 신호를 입력으로 받은 AND 게이트(1350)의 출력신호를 클럭의 입력으로 받은 제 13 도의 래치칩(1302)이 특정데이타가 실린 PDAT[7..0]을 래치하여 RST 신호를 주변장치로 출력시킨다.
그러면 주변장치는 RST 를 체크하고 있다가 (제 12b 도의 1250단계) RST 신호를 받으면 주변장치를 초기화 시킨다.(1252단계)
한편 주변장치는 데이타가 처리중 임을 나타내는 호스트부의 DACK 신호가 '0' 즉 디스에이블 되었는지 검사하여(1252단계), DACK=0 이 아니면 DACK=0 이 될 때까지 기다리고, DACK=0 이면 주변장치는 주변장치 데이타 버스인 MDAT[7..0] 상에 보내고자 하는 데이타를 출력하고(1256단계), 주변장치의 데이타를 읽어 가라고 요구하는 신호(/DRQ)를 Low 로 구동함으로 /DRQ=0 이 되게 한다.(1258단계)
그리고 이 때, DACK 신호 발생기를 통해 DACK 신호가 인에이블 된다. 상기 DACK 신호 발생기는 제 13 도의 제 2 플립플롭(1312)과 인버터(1358)로 구성되는데, 입력신호는 /DRQ 신호이며 출력신호는 DACK 신호이다.
이에 대한 동작은 다음과 같다. 상기 1258 단계에서 /DRQ 신호가 Low 가 될 때 /DRQ 신호는 인버터(1358) 을 거쳐 High 가 되고 이어서 상기 제 2 플립플롭(1312)의 클럭 단자로 입력됨으로써, DACK 신호는 High 로 구동된다.
그리고 이와 함께, MDAT[7..0] 에 실린 데이타는 제 13 도의 래치칩(1308)을 통해 래치만 되고 호스트의 데이타 버스인 PDAT[7..0]에는 아직 실리지 못한 상태로 된다.
한편 호스트는 DACK 신호 독출기를 통해 DACK 신호를 읽으며 DACK=1 인가를 체크한다. (1212단계) 상기 DACK 신호 독출기는 제 13 도의 래치 칩 (1304), OR 게이트(1348), 인버터 (1346)으로 구성되며 , 입력신호는 DACK, CS_STATUS, /IOR 신호이며 출력신호는 호스트의 데이타 버스인 PDAT[7..0] 이다. 이에 대한 동작은 다음과 같다. 먼저, 어드레스 200H 번지를 액세스하여 읽으면 CS_STATUS 신호와 /IOR 신호가 인에이블되고, 상기 /IOR 신호와 상기 인버터(1346) 을 거쳐 반전된 CS_STATUS 신호가 상기 OR 게이트(1348)를 통해 상기 래치칩(1304)의 출력제어 단자(OC 단자)로 사용되어 DACK 신호가 읽히게 된다.
그리고 상기 1212 단계에서 만약 DACK=1 이면 즉 DACK 가 High 가 되면, 데이타 버스 전환부를 통해 데이타 버스 방향이 주변장치에서 호스트 쪽으로 전환된다. 상기 데이타 버스 전환부는 제 13 도의 래치칩(1308), 논리합(OR) 게이트(1362), 제 1 인버터(1360)으로 구성되며, 입력신호는 CS_IF, /IOR, MDAT[7..0] 이며 출력신호는 PDAT[7..0] 이다.
이에 대한 동작은 다음과 같다. 우선, 호스트가 상기 1212 단계에서 DACK 를 체크하다가 DACK=1 이 되면 어드레스 201H 를 통해 주변장치의 데이타를 읽는다. 이 때 어드레스가 201H 를 포함한 신호들을 사용하여 디코딩하여 발생되는 CS_IF 와 읽기신호(/IOR)가 인에이블되고, CS_IF 신호는 제 1 인버터(1360)을 통하고 /IOR 신호는 바로 OR 게이트(1362)의입력으로 들어가 OR 게이트 출력이 래치칩(1.308)의 출력제어 단자(OC 단자) 로 사용됨으로써, 데이타 버스 방향을 주변장치에서 호스트 쪽으로 바뀌게 한다.
그리하여 상기 래치된 주변장치의 데이타는 PDAT[7..0] 에 실리게 되고 호스트는 데이타 버스에서 한 바이트를 읽어 들이게 된다. (1214단계)
그리고 나서 DACK 신호는 DACK 클리어기를 통해 클리어 된다. (1216단계) 상기 DACK 클리어기는 제 13 도의 제 2 플립플롭(1312), 제 3 플립플롭(1314), OR 게이트(1362) 및 제 1 인버터(1360). 제 2 인버터(1364)로 구성되며 입력신호는 CS_IF 와 /IOR 신호이며 출력신호는 DACK 신호이다. 이에 대한 동작은 다음과 같다. 상기 1214 단계에서 호스트가 데이타 버스를 통해 한 바이트의 전송데이타 읽기가 끝나면 CS_IF 신호와 /IOR 신호가 디스에이블 된다. 따라서 상기 OR 게이트(1362) 의 출력이 High 가 되어 상기 제 3 플립플롭(1314)의 출력단자(Q)가 High 되어 인버터(1364)를 거쳐 상기 제 2 플립플롭(1312)의 클리어 단자(CLR 단자) 를 활성화 시켜 DACK 신호가 클리어 된다.
그리고 호스트는 상기 1216 단계에서 DACK 신호를 클리어하고 난 후 다시 1212 단계로 가서 DACK 의 상태를 체크한다.
한편 주변장치는 상기 1258단계에 이어서 /DRQ 신호를 디스에이블 즉 /DRQ=1 이 되게한 후(1260단계), 모든 데이타가 전송되었는가 체크하여(1262단계), 전송할 데이타가 남아 있으면 상기 1254 단계에서 1262 단계를 반복한다. 만약 상기 1262 단계에서 모든 데이타가 전송이 되었으면 전송을 종료한다.
상술한 바와 같이 본 발명에 따른 호스트와 주변장치간의 신속한 양방향 송수신 인터페이스 제어장치 및 그 방법은 호스트와 주변 장치가 동시에 토커나 리스너가 될 수 있도록 구성되었으며, 데이타를 전송할 시점인지 아닌지를 판단하는 신호는 데이타를 전송하면서 변화된 핸드쉐이크(이하 Handshake) 신호, 즉 M_DRQ, DACK 신호가 클리어(이하 Clear) 되었는지 안되었는지를 확인하면 알 수 있도록 함으로써 데이타 송수신의 체계를 간단히 한 효과를 갖는다. 따라서 데이타의 입출력이 빈번한 시스템에서 별도의 콘트롤러(Controller) 없이 송수신이 가능하게 되었으며, 블럭(Block) 전송이 아닌 몇 바이트(Byte) 씩 주고받는 시스템에서는 콘트롤러에 의해 토커와 리스너가 정해지는 인터페이스 체계보다 전송률이 높다. 또한 데이타 전송시 속도가 빠른 장치와 느린 장치간에도 데이타 교환이 가능하도록 구성됨으로 써 보다 폭 넓게 본 발명이 응용될 수 있는 장점이 있다.

Claims (5)

  1. 호스트(Host) 에서 주변장치로의 데이타 송신을 위한 인터페이스 제어 장치에 있어서, 호스트의 어드레스 버스와 어드레스 버스가 유효함을 나타내는 신호 및 시스템 클럭을 포함하는 신호를 입력으로 받아서, 주변장치에게 데이타를 가져가라고 요구하는 신호(M_DRQ)를 읽고자 할 때 인에이블(Enable)된 상태에서 M_DRQ 신호가 읽히도록 하는 제 1 제어 신호(CS_STATUS)와, 상기 M_DRQ 신호를 생성할 때 입력으로 사용되는 제 2 제어신호(CS_IF)를 출력하는 디코더(Decoder); 호스트의 상기 디코더로부터 출력되는 제 1 제어신호(CS_STATUS) 신호와 데이타 쓰기 신호(/Iow)를 입력으로 받아 호스트의 데이타 버스에 실린 리셀 정보를 주변장치 쪽으로 출력하는 리셀신호(RST 신호) 발생기; 상기 디코더로부터 출력되는 제 2 제어신호(CS_IF)와 호스트의 데이타 쓰기 신호를 입력으로 받아, 상기 M_DRQ 신호를 생성하는 M_DRQ 신호 생성기; 주변장치가 호스트의 데이타를 읽어 감을 나타내는 신호(/M_ACK)를 입력으로 사용하여 상기 M_DRQ 신호를 클리어 시키는 M_DRQ 신호 클리어기; 상기 M_DRQ 신호와 상기 CS_STATUS 및 상기 /IOR 신호를 입력으로 받아 호스트가 상기 M_DRQ 신호의 상태를 읽을 수 있게 하는 M_DRQ 신호 독출기; 및 상기 /M_ACK 신호가 인에이블 될 때, 데이타 버스 방향이 호스트에서 주변장치 쪽으로 바뀌는 데이타 버스 전환부를 포함하는 호스트에서 주변장치로의 데이타 송신을 위한 인터페이스 제어 장치.
  2. 호스트(Host) 에서 주변장치로의 데이타 수신을 위한 인터페이스 제어 장치에 있어서, 호스트의 어드레스 버스와 어드레스 버스가 유효함을 나타내는 신호 및 시스템 클럭을 포함하는 신호를 입력으로 받아서, 데이타 처리 중임을 나타내는 신호(DACK)의 상태를 읽고자 할 때 인에블된 상태에서 DACK 신호가 읽히게 하는 제 1 제어신호(CS_STATUS)와, 상기 DACK 신호를 클리어 할 때 사용되는 제 2 제어신호(CS_IF)를 출력하는 디코더; 호스트의 상기 디코더로부터 출력되는 제 1 제어 신호(CS_STATUS) 신호와 데이타 쓰기 신호(/IOW)를 입력으로 받아 호스트의 데이타 버스에 실린 리셀 정보를 주변장치 쪽으로 출력하는 리셀신호(RST 신호) 발생기; 주변장치가 호스트에게 주변장치의 데이타를 가져가라고 요구하는 신호(/DRQ)를 입력으로 이용하여 데이타 처리중임을 나타내는 신호(DACK)를 생성하는 DACK 신호 생성기; 호스트가 데이타를 읽어들이는 신호(/IOR)와 제 2 제어신호(CS_IF)를 입력으로 사용하여, 상기 DACK 를 클리어시키는 DACK 클리어기; 상기 DACK 신호와 상기 CS_STATUS 및 상기 /IOR 신호를 입력으로 받아 호스트가 상기 DACK 신호의 상태를 읽을 수 있게 하는 DACK 신호 독출기; 및 호스트에서 데이타를 읽을 때 인에이블 되는 데이타 읽기 신호(/IOR)를 입력으로 받아, 데이타 버스 방향이 주변장치에서 호스트 쪽으로 바뀌게 하는 데이타 버스 전환부를 포함하는 호스트에서 주변장치로의 데이타 수신을 위한 인터페이스 제어 장치.
  3. 호스트에서 주변장치로 데이타 송신을 위한 인터페이스 방법에 있어서, 호스트가 주변장치에게 리셀신호(RST)를 보내고 주변장치는 이 신호를 받아 주변장치를 초기화하는 과정; 호스트가 주변장치에게 보내고자 하는 데이타가 있을 때 전송데이타를 버스에 출력하는 제 1 과정; 호스트가 주변장치에게 보내고자 하는 데이타가 있을 때, 이를 나타내는 신호(M_DRQ)를 인에이블시키는 제 2 과정; 상기 M_DRQ 신호를 이용해서 주변장치는 호스트가 보낸 데이타를 래치(Latch)하고 나서, 래치된 데이타가 읽히고 있음을 나타내는 신호(/M_ACK)를 인에이블시키고, 데이타 버스에서 데이타를 읽고 나서, 다시 상기 /M_ACK 신호를 디스에이블 시키는 제 3 과정; 상기 인에블된 /M_ACK 신호를 사용하여 상기 인에이블된 M_DRQ 신호를 클리어(Clear) 시키는 제 4 과정; 및 호스트는 상기 M_DRQ 신호를 계속 감시하고 있다가 M_DRQ 신호가 클리어 되었으면, 보낸 데이타가 주변장치에 제대로 전달되었음을 알고 더 보낼 데이타가 없으면 전송을 종료하고, 만약 더 보낼 데이타가 있으면 상기 M_DRQ 신호가 클리어 되기를 기다렸다가, M_DRQ 신호가 클리어되면 상기 제 1 과정에서 제 4 과정을 반복하는 과정을 포함하는 호스트에서 주변장치로의 데이타 송신을 위한 인터페이스 제어 방법.
  4. 제 3 항에 있어서, 상기 제 2 과정은 호스트가 주변장치에게 보내고자 하는 데이타를 특정 어드레스에 쓰는 과정; 및 상기 특정 어드레스와 호스트의 어드레스 인에이블 신호를 포함하는 신호를 디코딩하여 생성된 제 1 제어신호(CS_IF)를 사용하여 호스트가 주변장치에게 데이타를 보내기를 요구하는 신호(M_DRQ)를 생성하는 과정을 포함하는 호스트에서 주변장치로의 데이타 송신을 위한 인터페이스 방법.
  5. 호스트가 주변장치의 데이타를 수신하기 위한 인터페이스 방법에 있어서, 호스트가 주변장치에게 리셋신호(RST)를 보내고 주변장치는 이 신호를 받아 주변장치를 초기화하는 과정; 주변장치가 전송데이타를 버스에 출력한 후, 호스트에게 주변장치의 데이타를 가져가라고 요구하는 신호(/DRQ)를 인에이블시키고 나서 상기 /DRQ 신호를 다시 디스에이블시키는 제 1 과정; 상기 /DRQ 신호를 사용하여 데이타를 처리 중임을 나타내는 신호(DACK)가 인에이블되는 제 2 과정; 호스트가 상기 DACK 신호를 감시하고 있다가 DACK 신호가 인에이블되면 데이타를 읽어들이는 제 3 과정; 호스트가 데이타를 읽어 들인 후 특정 어드레스를 액세스 함으로서 발생하는 특정 신호를 사용하여 상기 DACK를 클리어 시키는 제 4 과정; 및 주변 장치는 상기 DACK 신호를 감시하고 있다가 DACK 가 클리어 되면, 보낼 데이타가 없으면 전송을 종료하고 더 있으면 상기 제 1 과정에서 제 4 과정을 반복하는 과정을 포함하는 호스트가 주변장치의 데이타를 수신하기 위한 인터페이스 제어 방법.
KR1019950011985A 1995-05-15 1995-05-15 호스트와 주변장치 간의 양방향 통신이 가능한 인터페이스 제어장치 및 방법 KR0143933B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019950011985A KR0143933B1 (ko) 1995-05-15 1995-05-15 호스트와 주변장치 간의 양방향 통신이 가능한 인터페이스 제어장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019950011985A KR0143933B1 (ko) 1995-05-15 1995-05-15 호스트와 주변장치 간의 양방향 통신이 가능한 인터페이스 제어장치 및 방법

Publications (2)

Publication Number Publication Date
KR960042375A KR960042375A (ko) 1996-12-21
KR0143933B1 true KR0143933B1 (ko) 1998-08-17

Family

ID=19414504

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950011985A KR0143933B1 (ko) 1995-05-15 1995-05-15 호스트와 주변장치 간의 양방향 통신이 가능한 인터페이스 제어장치 및 방법

Country Status (1)

Country Link
KR (1) KR0143933B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100497989B1 (ko) * 1997-03-21 2005-09-08 매그나칩 반도체 유한회사 풀 모델 호출 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100497989B1 (ko) * 1997-03-21 2005-09-08 매그나칩 반도체 유한회사 풀 모델 호출 방법

Also Published As

Publication number Publication date
KR960042375A (ko) 1996-12-21

Similar Documents

Publication Publication Date Title
JPS63255759A (ja) 制御システム
WO1999015949A1 (en) Direct memory access (dma) transactions on a low pin count bus
EP0085048A1 (en) EXTENDED ADDRESSING METHOD AND APPARATUS FOR MEMORY DIRECT ACCESS DEVICES.
EP0772831B1 (en) Bidirectional parallel signal interface
TWI233553B (en) Bus system and bus interface for connection to a bus
KR900000776A (ko) 주변 제어기와 어댑터 인터페이스
US6058440A (en) Programmable and adaptive resource allocation device and resource use recorder
KR0143933B1 (ko) 호스트와 주변장치 간의 양방향 통신이 가능한 인터페이스 제어장치 및 방법
KR100581606B1 (ko) 인터페이스를구비한통신시스템및데이터교환인터페이스
KR20040043198A (ko) 버스 시스템 및 버스 인터페이스
JP3768561B2 (ja) 多重プロセッサシステム
KR960006507B1 (ko) 컴퓨터 시스템, 시스템 확장장치, 버스 결합장치 및 버스 신호 전송방법
US5823871A (en) Interface control device for use with TV game equipment
KR20030044373A (ko) 기억 장치 직접 접근 인터페이스를 지원하는 범용 직렬버스 장치
JPH04225458A (ja) コンピュータ
JPH069036B2 (ja) 入出力制御装置
KR950004510B1 (ko) 퍼스널컴퓨터와 광디스크 드라이버와의 인터페이스 방법 및 회로
KR950002306B1 (ko) Fifo를 이용한 보드간 데이타 전송장치 및 방법
KR960014177B1 (ko) 병렬데이터처리시스템의 데이터통신장치
KR100299572B1 (ko) 버스트모드버스를탑재한마이크로프로세서와주변장치간인터페이스장치
JPS6368958A (ja) デ−タ転送装置
KR950002316B1 (ko) 1바이트 래치를 이용한 보드간 데이타 전송장치
JPH09282271A (ja) 通信装置及びその制御方法
JPH04353959A (ja) 分散型ファイル転送プログラムのデータ受信方式
JPH0766361B2 (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: 20010330

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee