KR880000991B1 - 키보드 코딩장치 - Google Patents

키보드 코딩장치 Download PDF

Info

Publication number
KR880000991B1
KR880000991B1 KR8201978A KR820001978A KR880000991B1 KR 880000991 B1 KR880000991 B1 KR 880000991B1 KR 8201978 A KR8201978 A KR 8201978A KR 820001978 A KR820001978 A KR 820001978A KR 880000991 B1 KR880000991 B1 KR 880000991B1
Authority
KR
South Korea
Prior art keywords
microprocessor
key
keyboard
interface device
output
Prior art date
Application number
KR8201978A
Other languages
English (en)
Other versions
KR830010420A (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=11183296&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR880000991(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 까를로 팔세띠, 하니웰 인포메인션 씨스템즈 이탈리아 에스.피.에이 filed Critical 까를로 팔세띠
Publication of KR830010420A publication Critical patent/KR830010420A/ko
Application granted granted Critical
Publication of KR880000991B1 publication Critical patent/KR880000991B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M11/00Coding in connection with keyboards or like devices, i.e. coding of the position of operated keys
    • H03M11/20Dynamic coding, i.e. by key scanning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

내용 없음.

Description

키보드 코딩장치
제1도 본 발명의 키보드 코딩장치를 사용하는 간단한 데이터 처리시스템의 아키텍처의 블록도.
제2도 제1도의 데이터 처리시스템내에서 프로세싱장치로서 적절히 사용될 수 있는 마이크로 프로세서를 블랙박스의 형태로 나타낸 도면.
제3도 본 발명에 따른 키보드와 마이크로 프로세서간의 인터페이스장치(interface unit)의 상세도.
제4도 키보드를 스캔닝(scanning)하고 작동된 키를 검출하기 위해 마이크로 프로세서에 의해 실행되는 동작과정의 플로우 차트.
제5도 많은 키들이 동시에 작동되는 것을 검출하기 위해 마이크로 프로세서에 의해 실행되는 동작 과정의 플로우 차트.
* 도면의 주요부분에 대한 부호의 설명
1 : 마이크로 프로세서 2 : ROM
3 : RWM (read/write working memory) 4 : 출력장치
5 : 출력인터페이스장치 6 : 키보드
7 : 스캔닝 인터페이스장치 8 : 통신인터페이스장치
9 : 버스 10, 11, 12 : 리드선
13 : 디코더(decoder) 22 : 멀티플렉서
23 : 계수기
본 발명은 키보드의 키가 작동될때, 작동된 키에 선택된 영문자 및 숫자 또는 제어용 문자와 관련된 코딩정보를 연결하는 키보드 코딩장치에 관한 것이다. 키보드(key board)는 정보를 데이타 처리 시스템으로 로딩하기 위한 가장 간단하고 보편화된 장치중의 하나로서 알려져 있다. 현재 다른 모든 입출력 장치와 같이 키보드는 인터페이스장치를 거쳐 프로세싱 장치에 연결된다. 일반적으로 프로세싱 장치에 의해 적절하게 명령받은 인터페이스 장치는 작동된 키가 있는지를 미리 정해진 과정에 따라 확인한다. 만약 인터페이스 장치가 작동된 키를 검출해 낸다면 작동된 키에 관계된 영문자 및 숫자 또는 제어용 문자를 나타내는 코드를 발생시켜 코드화된 정보를 출력시킬수 있게 한다. 키보드와 인터페이스 장치는 프로세싱장치와 분리된 단일 엘리먼트 또는 주변장치를 이룬다. 키보드 인터페이스 장치와 프로세싱장치와의 연결은 일반적으로 리드선 또는 버스(BUS)를 통해 이루어진다.
리드선들은 다음의 2개의 그룹으로 분류할 수 있다.
제1리드선 그룹은 문자코드를 인터페이스 장치로 부터 프로세싱 장치로 전송하는데 쓰이고, 제2리드선 그룹은 프로세싱 장치와 키보드 인터페이스 장치간에 제어신호를 교환하는데 쓰인다. 위에서 기술한 키보드 인터페이스 장치는 코드 8278을 가진 집적회로의 칩 형태로 INTEL사에 의해 제공된다. 더우기 키보드 인터페이스 장치는 예를 들어 미합중국 특허 제4,222,038호와 제4,106,011호를 비롯하여 많은 특허에 기술되어 있다. 그러나 위에 기술한 특허의 키보드 인터페이스 장치와 집적회로 8278의 사용은 키보드가 부속된 장치의 총비용에 심한 부담을 주게된다. 게다가 위의 키보드 인터페이스 장치와 집적회로 8278은 데이타, 명령, 제어신호의 교환을 위해 프로세싱장치에 연결된 많는 수이 리드선들을 필요로 한다.
본 발명은 전술한 종래에 기술의 단점을 해결하기 위하여 되어진 것으로서, 본 발명의 목적은 키보드 인터페이스 장치를 구성하고 있는 회로의 수를 최소화 시키는 키보드 코딩장치를 제공하는데 있다.
본 발명의 다른 목적은 전술한 인터페이스 장치를 최소한의 리드선을 통하여 프로세싱장치에 연결하는 키보드 코딩장치를 제공하는데 있다.
본 발명에 따르면, 다음의 이유에 의하여, 키보드 인터페이스 장치를 구성하는 회로들의 수와 복잡성을 줄이고, 키보드 인터페이스 장치와 프로세싱 장치사이의 연결 리드선의 수를 격감시킬 수 있다 ;
1) 본 발명의 키보드 코딩장치는 키보드의 키를 위한 스캔닝 논리 네트워크로서만 동작하는 인터페이스 장치를 갖는다.
2) 본 발명의 키보드 코딩장치는 작동된 키의 인지작용과 작동된 키에 문자코드를 연결하는 작동이 프로세싱 장치 자체에 의해서 실행되도록 되어있다.(종래의 기술에서는 이들 작동들이 키보드 인터페이스 장치에 의해 실행되었다.)
좀더 자세히 기술하면, 프로세싱 장치는 제1연결 리드선을 통해 일련의 펄스를 인터페이스 장치로 보낸다. 그러한 인터페이스 장치내에 포함되는 스캔닝 논리 네트워크는 그러한 펄스들에 응답하여 동작한다.
수신된 각각의 펄스에 대해 인터페이스 장치는 제2연결 리드선을 통해, 선택된 키가 작동되거나 눌러지면 미리 정해진 논리수준(logic level)을 가진 응답 신호를 프로세싱 장치로 보낸다. 그러한 응답신호가 키의 작동상태를 알리면, 프로세싱장치는 이미 인터페이스 장치로 보낸진 펄스의 수를 근거로 작동된 특정 키를 인식하여, 그 키에 관계된 문자 코드를 연결시켜 준다.
본 발명의 특징들은 다음에 설명되는 발명의 채택된 구체적인 실시예와 첨부된 도면으로 부터 명확해 질것이다.
제1도는 본 발명의 키보드 코딩장치를 사용하는 간단한 데이터 처리 시스템의 아키텍터의 개략적인 블록도를 도시한 것이다. 예를 들어, 그러한 데이터 처리 시스템은 지능 단말기 (intelligent terminal) 또는 미니 컴퓨터(minicomputer)일 수 있다.
제1도의 시스템(system)은 프로세싱 장치인 마이크로 프로세서(1), 마이크로 프로세서(1)의 제어프로그램(또는 마이크로 프로그램)을 저장하는데 쓰이는 ROM (2), RWM (read/write working memory)(3), 출력장치 (4), 출력장치 (4)를 제어하는데 출력인터페이스 장치(5), 키보드 (6) 및 키보드(6)를 스캔닝 하는데 사용되는 스캔닝 인터페이스 장치(7)로 이루어 진다.
제1도의 시스템이 예를 들어 지능 단말기에서 일어나는, 다른 데이터 처리 시스템과 정보를 전달, 교환해야 한다면, 통신 인터페이스 장치(8)를 구비해야 한다. 그러한 통신 인터페이스 장치를 통해서 마이크로 프로세서(1)는 제1도의 시스템에 연결되는 처리 시스템과 통신한다. 한가지 예로서, INTEL이 제작한 코드 8251을 갖는 집적회로를 통신 인터페이스 장치로 사용할 수 있다. 그러한 집적회로는 사용자가 추가로 정보를 얻을 수 있도록 매뉴얼에 자세히 기술되어 있다.
마이크로 프로세서(1)는 BUS로 표시된 리드선들(9)을 통해서 ROM (2), RWM (3), 출력 인터페이스 장치(5) 및 통신 인터페이스 장치(8)와 쌍방향으로 통신한다. 반면에 마이크로 프로세서(1)는 리드선(10)(11)을통해 스캔닝 인터페이스 장치(7)와 통신한다.
마이크로 프로세서(1)의 자원(resource)들이 키보드(6)를 다루기 위해 사용될때 마이크로 프로세서(1)는 ROM (2)에 저장된 마이크로 프로그램을 실행하여 소위 "폴링(polling)"이라 불리우는 기술로 스캔닝 인터페이스 장치(7)를 통해 키보드(6)의 모든 키의 상태를 조사한다. 이러한 방법으로 마이크로 프로세서(1)는 작동된 키가 있는지, 즉 처리되어야 할 문자가 있는지를 조사한다.
키보드(6)를 완전히 스캔닝하기 위해, 마이크로 프로세서(1)는 리드선(11)으로 키의 수와 같은 수의 펄스를 보낸다. 각 펄스는 키보드(6)의 키에 순차적으로 위치하게 된다. 송신된 각 펄스에 대해 마이크로 프로세서(1)는 그 자체의 내부 레지스터의 내용을 갱신하여, 위치한 키의상태를 나타내는 응답신호를 리드선(10)을 통해 수신한다. 그러한 응답신호를 통해 마이크로 프로세서(1)가 작동된 키의 상태를 검출하면 에를 들어 RWM (3)에 저장된 코드 테이블로 부터 그러한 키에 관련된 코드가 독출된다.
특히 마이크로 프로세서는 리드선(11)상으로 그때까지 송신된 펄스의 수를 포함하는 내부 레지스터 내의 그 어드레스에 저장된 기억 장소의 내용을 작동된 키에 연결시킨다.
제2도는 본 발명의 구체적 실시예에서 적절히 사용될 수 있는 마이크로 프로세서를 도식적으로 나타낸 것이다. 전술한 마이크로 프로세서(1)는 INTEL사가 제작한 μp 8085이고, 아키덱처 기능, 성능 그리고 사용조건은 예를 들어 "MCS-80, 유저 매뉴얼", 1977.10 및 "8080/8085 어셈블리어 프로그래밍 매뉴얼", 1977. 같은 매뉴얼에 기술되어 있다.
본 발명을 위해 μp 8085가 제1도의 리드선(10), (11)에 연결된 두개의 통신핀(pin)과 제1도의 시스템의 모든 인터페이스 장치에 연결된, 따라서 스캔닝 인터페이스 장치(7)에도 연결되는 제어핀(이러한 연결은 제1도에는 나타나 있지 않다)을 가지고 있다.
이러한 핀들은 다음과 같다.
-SID=마이크로 프로세서가 시리얼(serial)입력 데이터를 받아 들이도록 하는 입력핀(input pin)이다. 특히 RIM (Read Interrupt Mask) 마이크로 명령이 실행될때마다 이핀상의 정보는 마이크로 프로세서 어큐뮤레이터(accumulator)의 비트 "7"에 로딩된다.(이러한 마이크로 명령은 μp 8085의 마이크로 명령 세트의 일부이다.
-SOD=마이크로 프로세서가 시리얼 출력 데이터를 전송할 수 있도록 하는 출력핀이다. 특히 마이크로 프로세서 어큐뮤레이터의 비트 "7"에 해당하는 정보는 같은 어큐뮤레이터의 비트 "6"이 논리 수준 "1"에 있을 때와 SIM (Set Interrupt Mask) 마이크로 명령이 실행될때마다 이러한 핀상에 로딩된다. (이러한 마이크로 명령은 μp 8085의 마이크로 명령 세트의 일부이다.)
-RESET OUT=마이크로 프로세서가 다른 장치들을 초기 상태로 세트하기 위해 시스템의 다른 장치들에 신호를 송신하는 출력핀이다.
본 발명을 계속해서 설명하기 전에 μp 8085의 실행이 SOD 핀상에 펄스를 공급하는 간단한 루틴(routine)을 설명하면 다음과 같다.
이러한 루틴은 다음 단계들을 통해서 전개된다.
a) 마이크로 프로세서는 첫번째 로딩 마이크로 명령에 의하여 논리 수준 "1"로 세트된 비트 "6", "7"를 가진 정보를 어큐뮤레이터내로 로딩한다.
b) 마이크로 프로세서는 첫번째 SIM 마이크로 명령에 의하여 어큐뮤레이터 비트 "7"의 논리 수준"1"을 SOD 핀상으로 전송한다.(이것은 SOD 핀에 가해진 펄스의 선행구간 (leading edge)에 해당하는 것이다.)
c) 마이크로 프로세서(1)는 두번째 로딩 마이크로 명령에 의하여 논리 수준 "1"로 세트된 비트 "6", 논리수준 "0"으로 세트된 비트 "7"을 가진 정보를 어큐뮤레이터로 로딩된다.
d) 마이크로 프로세서는 두번째 SIM 마이크로 명령에 의해 어큐뮤레이터 비트"7"의 논리수준 "0"을 SOD 핀상에 전송한다.(이것은 펄스 하강구간(trailing edge)에 상당하는 것이다.)
전술한 바와 같이, 키보드(6)의 각 키의 상태를 검사하기 위해 펄스를 보낸 직후 μp 8085는 RIM 마이크로 명령에 의해 SID 핀상의 논리 수준을 어큐뮤레이터 비트 "7"에 로딩한다. 로직(logic) 및 점프(jump) 마이크로 명령에 의해, 마이크로 프로세서(1)는 그 논리 수준이 "1"인지 "0"인지를 검증하여, 프로그램을 수행하는데 있어서 적당한 분기(branch)들로 가게 한다.
전술한 것은 제3도 및 제4도를 해석하면 더 명확해 질것이다.
제3도는 스캔닝 인터페이스 장치(7), 키보드(6) 및 스캔닝 인터페이스 장치(7)와 마이크로 프로세서(1)간의 본 발명에 따른 연결상태를 자세히 도시하고 있다. 예를 들어 64개의 키를 가진 기계ㅅ기 키보드(6)는 8열 (R0), (R1), (R2), (R3), (R4), (R5), (R6), (R7)과 8행 (C0), (C1), (C2), (C3), (C4), (C5), (C6), (C7)의 메트릭스에 따라 배열된 다수의 리드선들로 이루어진다.
키(Tij)는 열리드선(i)과 행리드선(j)으로 결정되는 각 메트릭스 지점(Pij)과 연결되며 (0<i<7, 0<j<7) ; 이러한 키(Tij)가 눌러지면 열리드선(i)과 행리드선(j)간에 전기적 연속성을 일으킨다.
열리드선(R0), (R1), (R2), (R3), (R4), (R5), (R6), (R7)은 3입력과 8출력을 갖고 있는 디코더(13)의 출력 (Y0), (Y1), (Y2), (Y3), (Y4), (Y5), (Y6), (Y7)에 각각 연결된다.
행리드선(C0), (C1), (C2), (C3), (C4), (C5), (C6), (C7)은 저항(14)(15)(16)(17)(18)(19)(20)(21)의 한쪽을 통해 직류 전압 (Vc)에 연결되고, 다른 한쪽은 8입력과 1출력을 갖는 멀티플렉서의 (22) 입력(D0), (D1), (D2), (D3), (D4), (D5), (D6), (D7)에 연결된다.
멀티플렉서(22)의 선택 입력(S0), (S1), (S2)은 각각 6비트 계수기(23)의 출력 (B0), (B1), (B2)에 연결된다. 계수기(23)의 출력(B3), (B4), (B5)은 각각 디코더(13)의 입력 (A9), (A1), (A2)에 연결된다.
멀티플렉서(22)의 출력 (W)은 리드선(10)을 통해 마이크로 프로세서(1)(μp 8085)의 SID 핀에 연결된다. 계수기(23)의 충분 입력(T)은 리드선(11)을 거쳐 마이크로 프로세서의 SOD핀에 연결된다. 반면에, 계수기(23)의 리세트 입력(RST)은 리드선(12)을 통해 마이크로 프로세서(1) RESET OUT 핀에 연결된다.
스캔닝 인터페이스 장치(7)를 구성하는 계수기(23), 멀티플렉서(22) 및 디코더(13)의 회로는 각각 집적회로로서 일반적으로 시장에서 얻을 수 있고 본 기술 분야에 속하는 기술자들에게 잘 알려져 있으므로 특별히 설명하지 않는다. 예를 들어, 집적회로 74 LS 251과 74 LS 138은 각각 멀티플렉서(22)와 디코더 (13)로서 사용될 수 있다. 계수기(23)는 2개의 집적회로 74 LS 19을 직렬연결하여 쓸수 있다.
기술된 모든 집적회로는 TEXAS 상에서 제작된 것이다. 2개의 집적회로 74 LS 193을 적당히 직렬 연결하면 8비트 2진 계수기를 만들수 있다. 그러나 본 발명의 구체적 예에서의 키보드는 64개의 키(즉, 6비트 계수기로 충분하다)를 가지므로 계수기의 마지막 6개의 출력단자만을 사용하면 된다.
스캔닝 인터페이스 장치(7)의 동작은 간단하다.
계수기(23)의 출력들(B5), (B4), (B3), (B2), (B1), (B0)의 초기 2진 구성을 "0"으로 한다. 이 초기 조건은 마이크로 프로세서(1)에 의해 RESET OUT 핀에 가해진 동작신호에 의해 만들어진 일반 리셋트 계수기의 사이클작동 결과일 수 있다. 이러한 상태에서, 출력(B5), (B4), (B3)은 디코더 (13)의 출력(Y0)상의 논리 및 전기 수준을 "0"으로 만든다. 따라서 열리드선(R0)은 사실상 접지된 것으로 생각 할수 있다.
이밖에, 계수기(23)의 출력(B2), (B1), (B0)은 멀티플렉서(22)의 선택 입력(S2), (S1), (S0)에 각각 연결되어, 멀티플렉서 출력(W)으로 행리드선(C0)상에 나타난 논리/전기 수준을 전송하게 한다.
열리드선(R ) 및 행 리드선(C0)에 연결된 키(T0)가 눌려지면 논리/전기 수준은 멀티플렉서(22)의 출력(W)에 "0"으로 나타난다.
반면에 이 키가 눌려지지 않으면, 논리/전기 수준은 출력(W)에 "1"로 나타난다. 펄스가 계수기(23)의 입력 (T)에 전달되면, 계수기 출력은 "1"의 배열이 된다. 그러한 조건에서, 열 리드선(R0) 및 행 리드선(C1)에 연결된 키가 눌려졌는지(멀티플렉서의 출력(W)이 논리수준"0")아이면 눌려지지 않았는지 (멀티플렉서의 출력(W)이 논리수준"1")를 디코더(13) 및 멀티플렉서(22)를 통해 검사한다. 그리하여 일련의 63개의 펄스들을 통해 키보드 키들을 완전히 스캔닝 할수 있고, 그러한 스캔닝은 키가 배열된 방식에 따라 메트릭스의 남아있는 열들에 대하여 계속된다.
키보드를 스캔닝하여 작동된 키를 검사하기 위한 마이크로 프로세서(1)에 의해 실행되는 동작과정을 고려하기 전에, 키보드 사용에 있어서 발생하고, 마이크로 프로세서가 고려하여야 하는 2가지 문제를 간단히 지적하면 다음과 같다.
기계식 키보드에서 찾을 수 있는 첫번째 문제는 제3도의 키보드의 키(Tij)가 눌려지자 마자 발생하는 과도적 현상에 따른 문제이다. 실제로, 키(Tij)로 인해 열 리드선(i)와 행 리드선(j) 사이에서는 안정된 상태의 전기적 연속성이 즉시 일어날 수는 없으나, 키(Tij)의 바운스(bounce) 때문에 이러한 안정상태는 초기 구간(
Figure kpo00001
T0)후에 나타난다.
구간(
Figure kpo00002
T0)은 사용되는 기계식 키보드의 형태에 따르며, 일반적으로 수 ms(1-2ms)의 기간을 가진다.
이 구간동안 여러개의 키보드 스캔닝들이 이루어지기 때문에 마이크로 프로세서(1)는 키(Tij)의 상태를 점검하면서 초기 바운스들로 인하여 작동키(Tij)의 상태를 여러번 검출하여 이 키에 관련된 문자를 처리한다. 이러한 상황을 피하기 위해서는 마이크로 프로세서(1)를 다음과 같은 방식으로 동작시켜야 한다.
마이크로 프로세서(1)가 누른 키를 검출하자 마자
Figure kpo00003
TS>
Figure kpo00004
T0인 시간구간(
Figure kpo00005
TS)동안 잠시동안 정지하고, 여전히 이 키가 눌려져 있는지를 재검사한다.
눌려진 키의 상태가 지속된다면 마이크로 프로세서(1)는 이러한 상태를 인지하여 계속 관련문자 코드를 누른 키에 연결시켜 준다. 누른키를 인지하는 전체적 실행은 키가 이러한 상태로 지속되는 동안 시간 구간동안 전개된다. 이러한 시간구간은 조작자의 타이핑속도에 따르면, 일반적으로 약 수십 ms(20-30ms)보다 짧지는 않다.
본 발명에서는 시간구간(
Figure kpo00006
TS)을 상기 요구조건들을 충족시키기 위해 10ms로 적당히 고정시켰다. 키보드 사용에 있어서의 두번째 문제는 해당문자 코드가 누른키에 연결되는 동안 실행의 시작과 관련된 문제이다. 누른키를 인지하자 마자 이러한 실행을 시작한다면, 이러한 실행에 관련된 작동이 완결될때 이 키가 계속 눌러진 상태로 지속되어 동일키에 관련된 작동이 반복되는 원치 않는 경우가 발생할 수가 있다. 이러한 상황은 해당키가 눌려지지 않은 상태로 되돌아 오자마자 전술한 실행을 시작함으로서 피할수 있다.
제4도는 키보드를 스캔닝하고 누른키를 식별하기 위한 마이크로 프로세서(1)에 의해 이루어지는 과정을 플로우차트로 도시한 것이다.
제5도의 플로우 차트와 마찬가지로 제4도의 플로우 차트를 설명하는 동안 "마이크로 프로세서가 블록(i)에 엔터(enter)한다. "는 표현이 몇번 나온다 : 이 표현은 블록(i)에 의해 설명된 작동을 마이크로 프로세서가 실행하고 있다는 것을 의미한다.
제4도의 플로우 차트는 START 블럭(100)에서 시작되어 블럭(101) 까지 진행되는바, 이때 마이크로 프로세서(1)는 내부 레지스터(R)를 리세트하고, RESET OUT 명령을 통해 스캔닝 인터페이스(7)의 초기 상태로 프리세트한다. 그러면 마이크로 프로세서는 그 SID 입력상의 신호의 논리 수준을 검사하며 (블럭 (102)), 즉 이는 키(T0)가 눌러졌는지의 여부를 최초로 검사한다.
만약 키(T0)가 눌러지지 않았다는 것을 마이크로 프로세서가 검출하면 [SID=O], 마이크로 프로세서(1)는 계속해서 레지스터(R)의 내용이 "63"과 같은 지를 (블럭(103)) 즉, 키보드 스캔닝이 종결되었는지를 검사하는 것이다.
레지스터(R)의 내용이 "63"이하이면 마이크로 프로세서는 SOD 출력을 논리수준 "1"로 올려서(블럭(104)), 내부 레지스터(R)의 내용을 증가시키고 (블럭(105)), SOD 출력을 다시 논리수준 "O"으로 내린다. (블럭(106)) 마이크로 프로세서에 의해 제공된 펄스는 제3도의 계수기(23)의 내용을 1씩 증가시킨다.
이미 본바와 같이, 앞서 검사된 것에 따르는 키의 상태를 표시하는 신호는 계수기(23), 디코더(13) 및 멀티플렉서(22)를 통하여 마이크로 프로세서(1)의 SID 입력상에 가해진다.
마이크로 프로세서(1)는 이러한 신호를 검사하여(블럭(102)), 이 마지막 것이 논리수준 "1"에 있으면(즉, 검토되는 키가 눌러지지 않으면)블럭등(103)(104)(105)(106)(107)로 이루어지는 루프(loop)를 따라 계속해서 키보드를 스캔닝한다. 완전히 스캔닝이 끝날때 마이크로 프로세서(1)는 내부 레지스터(R)의 내용이 "63"과 같은지를 검출한다. 또한, 마이크로 프로세서(1)는 제3도의 계수기(23)의 출력을 리세트하도록 SOD 출력상에 펄스(블럭(107), (108))를 보낸다. 그러면, 마이크로 프로세서는 블럭(101)에 진입하여 다시 키보드의 스캔닝을 시작한다.
특정시간에 마이크로 프로세서(1)가 눌러진 키(Tij)를 검출하면 [(SID)=O], 예를 들어 마이크로 프로세서가 정해진 수의 NOP (NO Operation) 마이크로 명령들을 실행하도록 함으로써 마이크로 프로세서(1)는 (
Figure kpo00007
TS)=10ms 기간의 대기 상태에 들어가게 된다. 후에 마이크로 프로세서는 해당 키(Tij)의 상태를 다시 검사한다. (블럭(110))
이때 이러한 키가 눌러지지 않았다면 [(SID)=O], 마이크로 프로세서(1)는 다시 블럭(103)으로 들어간다. 반대로 마이크로 프로세서(1)가 해당 키(Tij)가 아직 눌러져 있는 것을 검출한다면 [(SID)=O], 마이크로 프로세서(1)는 이 키의 실제 작동을 인자하고 블럭(111)으로 들어가서 키(Tij)가 눌러지지 않은 상태로 돌아오는 것을 기다린다.
마이크로 프로세서(1)가 해당 키(Tij)가 더이상 눌러져 있지 않는다는 것을 검출하자마자 [출력[(SID)=O](블럭 (111))], 키(Tij)에 연관된 문자 코드를 뽑아내며(블럭(112)), 코드가 예를 들면 마이크로 프로세서(1) 레지스터(R)의 내용에 의해 제공된 어드레스가 있는 위치에서 제1도의 RWM (3)에 저장된다.
문자코드 처리 루틴(블럭 (113))을 실행한 후에 (블럭 (113)), 문자를 프린트하기 위한 명령을 보냄으로써 마이크로 프로세서(1)는 블럭 (103)으로 다시 들어간다. 스캔닝하는 동안 마이크로 프로세서(1)가 탐지하는 첫번째 눌려진 키에서 이 마이크로 프로세서가 정지하여 이 키가 눌려지지 않은 상태로 돌아올때까지 그 상태에 머물게 되기 때문에 제4도에 기술된 프로그램으로는 눌려진 다수의 키들의 존재를 마이크로 프로세서(1)가 동시에 탐지하지 못한다는 것을 알수 있다. 반면에, 대부분의 키보드는 다수의 키가 눌려지기만 하면 여러 기능들 및 문자들이 나타나게끔 해준다.
예를 들면, 모든 키보드에는 나머지 키들(몇몇을 제외한)에 두개의 문자의 연결을 가능케 해주는 "시프트(shift)"키가 구비되어 있다. 환언하면, "시프트"키가 눌려지지 않으면 일정한 문자가 키에 연결되며, 반대로 "시프트"키가 눌려지면 해당키에 다른 문자가 연결된다. (예를 들면 대문자들) 게다가, 대부분의 키보드에는 "리피트(repeat)"키도 구비되어 있다. "리피트"키가 눌려지면 바로 뒤에 눌려진 키와 연결된 문자를 반복처리시켜 주며 ; 해당키를 누른 상태로 있는 동안은 그 문자가 처리된다.
제5도는 마이크로 프로세서(1)가 다수의 눌려진 키들을 인지하기 위하여 실행되어야 할 동작들을 플로우차트로 나타낸 것이다. 리드선(11)상에 m개의 펄스가 보내진 후에 마이크로 프로세서(1)가 그상태를 검사하는 "시프트"키와, 리드선(11)상에 m개의 펄스가 보내진 후에 마이크로 프로세서(1)가 그상태를 검사하는 "리피트"키가 제3도의 키보드(6)에 구비되어 있다고 가정한다. 또한, 일정한 키와 연결된 제1문자 코드가 제1도의 RWM (3)의 어드레스(N)에 저장된다면, 같은 키에 연결된 제2문자 코드(동시에 "시프트"키도 눌려졌을때)는 어드레스 N+K에서 같은 기억장치내의 어드레스 (N+K)에 저장된다고 가정한다.
제5도에서도 마이크로 프로세서(1)에 의해 똑같이 수행되는 작동을 보여주는 블럭에 대해서는 제4도의 도면번호를 그대로 사용한다. 그러한 블럭에 대해서는 제4도의 기술시 이미 설명되었으므로 더이상 기술치 않는다.
제5도에서 보면, 블럭(100a)은 블럭(100)과 블럭(101)사이에 있다. 마이크로 프로세서(1)가 블럭(100a)에 들어오면 그 자체에 있는 두개의 내부 레지스터(X), (Y)를 리세트시킨다. 레지스터(X), (Y)는 "시프트"키 및 "리피트"키의 각각의 상태를 래치(latch)하기 위해 필요하다 ; 이에 대해서는 후술하기로 한다.
제5도에서 블럭(103)의 앞에 블럭(102a)이 있어서, 여기서 마이크로 프로세서(1)는 그것이 "시프트"키의 바로 앞에 있는 키의 상태를 테스트 했는지를 검사한다.
부정인 경우[(R)=m-1], 마이크로 프로세서(1)는 키보드가 완전히 주사되었는지를 검사한다. (블럭 (103))
긍정인 경우[(R)=m-1], 마이크로 프로세서(1)는 맨나중의 것이 이미 리세트 상태에 있을 지라도, 블럭(103)에 들어가기전에 레지스터(X)를 리세트한다. (블럭(102b)) 그리하여 레지스터(X)는 각 전이 스캔닝의 끝에서 리세트된다.
전이 스캔닝이란 키(m)에서 키(63)로, 그리고 키(O)에서 키(m-1)로 이행되는 스캔닝을 의미한다 ; 즉, 이는 마이크로 프로세서(1)가 "시프트"키가 눌려지지 않은 상태에서 눌러진 상태로 변하하는 것을 인식하기 때문에 일어나는 것이 틀림없다.
사실, 오퍼레이터가 "시프트"키를 누르고 (결국 후에 보게되겠지만 마이크로 프로세서(1)가 레지스트(X)에 "1"을 로딩시킨다), 후에 "시프트"기능을 이용하지 않고 이러한 키를 해제할 수 있다.
블럭(102a) 및 (102b)에 의해서, 눌러진 "시프트"키의 상태가 전이 스캔닝 동안 래치된 상태로 유지된다 ; 이어지는 전이 스캔닝이 시작될때, 마이크로 프로세서(1)가 눌러진 "스프트"키를 여전히 검출한다면, 마이크로 프로세서는 다시 이러한 상태를 래치한다.
마이크로 프로세서(1)가 키의 실제적인 작동을 인지하면 블럭(110)의 출력 [(SID)=O], 마이크로 프로세서(1)는 눌러진 키가 "시프트"키인가를 검사하는 블럭(110)으로 들어간다.
긍정인 경우 [(R)=m], 마이크로 프로세서(1)는 그러한 조건들을 레지스터(X)에 저장하고 (블럭 (110b)), 블럭(102a)에 들어간다.
부정인 경우 [(R)=m], 눌러진 키가 "리피트"키(110c)인가를 검사한다.(블럭(110c))
마이크로 프로세서(1)가 눌러진 키가 "리피트"키라고 인식한다면, 마이크로 프로세서는 이러한 상태를 레지스터(Y)에 저장하고 (블럭(110a)), 블럭(102a)에 들어가든지, 아니면 블럭(110e)에 들어간다. 이러한 블럭에서 마이크로 프로세서(1)는 전에 눌러진 "리세트"키 상태를 저장했었는지를 검사한다 ; 즉 부정인 경우 [(Y)=O], 블럭 (111a)에 들어가든지, 아니면 [(Y)=O], 통로 (110f)를 통해 바로 블럭(111a)에 들어간다.
블럭 (111a)에서 마이크로 프로세서(1)는 눌러진 "시프트"키의 상태가 전이 스캔닝동안 진행중인지를 검사한다 ; 부정의 경우 [(X)=O], 마이크로 프로세서는 바로 블럭(112) 다음에 블럭(113)에 들어가며, 긍정의 경우 [(X)=O], 레지스터(R)의 내용에 변위(K)를 더해주고 (블럭(111b)), 블럭(112) 및 다음 블럭(113)에 들어간다.
마이크로 프로세서(1)가 액세서된 문자코드의 처리를 마치면 눌러진 "시프트"키 상태가 래치되어 있는지를 다시 검사하는 블럭 (113)에 들어간다 ; 부정의 경우 [(X)=O], 마지막것이 이미 리세트 되었을지라도, 레지스터(Y)를 리세트하여 눌러진 "리피트"키의 상태를 제거하는 블럭(113a)에 바로 들어간다 ; 긍정의 경우 [(X)=O], 마이크로 프로세서(1)는 먼저번 내용을 레지스터(R)에 재저장 시켜주고 (블럭 (113b)), 블럭(113c)으로 들어간다.
그후 마이크로 프로세서(1)는 블럭(113c)으로 부터 블럭(102a)으로 들어간다.
제5도의 플로우 차트를 분석해보면 오퍼레이터가 "리피트"키를 누르고 두번째 키를 누르면 마이크로 프로세서는 이 두번째 키의 연결된 문자코드를 즉시 빼내어 처리한다는 것을 알수 있다 ; 또한 "리피트"키와 두번째 키가 계속적으로 눌러져 있으면, 마이크로 프로세서는 키보드 스캔닝을 위해서 두번째 키에 관계된 문자코드를 빼내어 처리하는 것을 계속한다. 따라서, 본 발명의 코딩 장치의 반복기간은 마이크로 프로세서로부터 키보드 스캔닝 사이클에 의하여 결정된다.
대기시간(
Figure kpo00008
Tr)의 블럭을 제5도의 경로(110)상에 삽입시키면 이 반복기간은 적당히 증가시킬 수가 있다.
제4도 및 제5도의 플로우 차트는 μp 8085의 명령 세트를 숙지하고 있는 본 기술 분양에서 통상의 지식을 가진 사람들에 의해 마이크로 프로그램으로 쉽게 해석될 수 있다.
본 발명에 따른 키보드 코딩 장치는 전술한 실시예에 한정되는 것이 아니라 본 발명의 요지를 벗어나지 않는 범위내에서 다양하게 변경하여 실시할수 있는 것이다. 일례로써, μp 8085대신에 시리얼 데이타를 각각 수신하고 전송하는 입력 및 출력을 갖는 어떤 다름 마이크로 프로세서도 사용될 수 있다.(예를 들어, 필립스(philips)에서 제조된 μp 2650)
본 발명에 따른 키보드 코딩장치는 지금까지 설명한 바와 같이, 스캔닝 논리 네트워크로서만 동작하는 인터페이스 장치를 가지며, 또한 작동된 키의 인지작용과 작동된 키에 문자코드를 연결하는 작동이 마이크로 프로세서 자체에 의해서 실시되도록 되어 있으므로, 최소한의 리드선으로 마이크로 프로세서(1)와 직접 연결될 수 있을 뿐만 아니라, 그 리드선은 값싼 케이블로 할수 있으며, 또한, 본 발명에 따른 키보드 코딩장치를 사용하여 데이타 처리 시스템을 구성하면, 마이크로 프로세서와 코딩장치 사이에 값비싼 인터페이스 회로의 구성부품들이 필요없으므로 회로를 간단하게 구성할 수 있고, 가격절감에 크게 기여할 수 있다는 뛰어난 효과가 있는 것이다.

Claims (2)

  1. C행 및 R열로 된 메트릭스에 따라 배열된 다수의 키들을 가지며, 각 키들이 작동되면 C행 리드선들 중 하나와 R열 리드선들 중 하나와의 사이에 전기적 신호를 전달하는 키보드(6) ; 행 및 열 리드선들에 연결되며, 열 리드선들 중 선택되는 하나에 전기적 신호를 선택적으로 제공하는 스캔닝 인퍼페이스 장치(7) 내부 레지스터, 시리얼 입력 데이터 핀(SID) 및 시리얼 출력 데이터 핀(SOD)을 가지는 마이크로 프로세서(1) ; 및 다수의 어드레싱 할수 있는 기억장소들을 가지며, 마이크로 프로세서의 제어 프로그램 및 소정의 기억장소들에 키들에 관련된 문자코드들을 저장하는 ROM (2) 및 RWM (3)으로 이루어진 키보드 코딩장치에 있어서, 스캔닝 인터페이스 장치(7)가 두개의 리드선(10)(11)을 통해서 마이크로 프로세서(1)의 시리얼 입력데이터 핀(SID)과 시리얼 출력데이터 핀(SOD)에 각각 연결되는 출력(W) 및 입력 (T)을 가지며, 마이크로 프로세서(1)로 부터 스캔진행 펄스들을 받아서, 각 수신된 펄스에 대해 키들중 선택된 하나의 작동/비작동 상태를 표시하는 논리신호를 마이크로 프로세서(1)에 출력으로 제공하도록 되어있는것 ; 마이크로 프로세서(1)는 스캔닝 인터페이스 장치(7)로 전송되는 각 스캔진행 펄스에 대해 내부 레지스터의 내용을 하나씩 증가시키고, 논리 신호가 선택된 키의 작동상태를 나타내면 ROM (2) 및 RWM (3)의 소정의 기억장소들중 하나는 어드레싱하며, 작동된 키에 관계되는 코드를 어드레싱된 기억장소로 부터 읽어내도록 되어 있는 것을 특징으로 하는 키보드 코딩장치.
  2. 제1항에 있어서, 스캔닝 인퍼페이스 장치(7)가 스캔닝 인터페이스 장치(7)의 입력이 되는 증분입력(T) 및 제1, 제2그룹으로 된 출력단자(R0), (R1), (R2), (R3), (R4), (R5)를 가지는 계수기(23), 계수기(23)의 제1그룹의 출력단자(B3), (B4), (B5)에 각각 연결되는 입력단자 그룹(A0), (A1), (A2)과, 키보드 (6)의 R열 리드선들에 각각 연결되는 다수의 출력단자 (Y0), (Y1), (Y2), (Y3), (Y4), (Y5), (Y6), (Y7)를 갖는 디코더(13) 및 키보드의 C 행 리드선들에 각각 연결되는 다수의 입력단자(D0), (D1), (D2), (D3), (D4), (D5), (D6), (D7), 계수기(23)의 제2그룹의 출력단자(B0), (B1), (B2)에 연결되는 선택입력단자(S0), (S1), (S2), 그리고 스캔닝 인터페이스 장치(7)의 출력단자가 되는 출력단자(W)를 갖는 멀티플렉스(22)로 이루어진 것을 특징으로 하는 키보드 코딩장치.
KR8201978A 1981-05-07 1982-05-06 키보드 코딩장치 KR880000991B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IT21539/81A IT1138321B (it) 1981-05-07 1981-05-07 Apparato di codifica per tastiera
IT21539A/81 1981-05-07

Publications (2)

Publication Number Publication Date
KR830010420A KR830010420A (ko) 1983-12-30
KR880000991B1 true KR880000991B1 (ko) 1988-06-10

Family

ID=11183296

Family Applications (1)

Application Number Title Priority Date Filing Date
KR8201978A KR880000991B1 (ko) 1981-05-07 1982-05-06 키보드 코딩장치

Country Status (8)

Country Link
US (1) US4502039A (ko)
EP (1) EP0064627B1 (ko)
JP (1) JPS5816332A (ko)
KR (1) KR880000991B1 (ko)
AU (1) AU542573B2 (ko)
CA (1) CA1180821A (ko)
DE (1) DE3261348D1 (ko)
IT (1) IT1138321B (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4758829A (en) * 1982-06-04 1988-07-19 Smith Iii William N Apparatus for stimulating a keyboard
JPS58219633A (ja) * 1982-06-14 1983-12-21 Alps Electric Co Ltd マイコン化エンコ−ダを有するキ−ボ−ド
JPS5920039A (ja) * 1982-07-23 1984-02-01 Casio Comput Co Ltd デ−タ入力確認方式
JPS5949633A (ja) * 1982-09-14 1984-03-22 Toshiba Corp リピ−ト制御方式
JPH07109572B2 (ja) * 1984-02-29 1995-11-22 東京プレス工業株式会社 キャパシティブキ−ボ−ド
JPS60193678A (ja) * 1984-03-15 1985-10-02 Canon Inc 電子機器
DE3429309A1 (de) * 1984-08-09 1986-02-20 Philips Patentverwaltung Gmbh, 2000 Hamburg Elektronische dateneingabe-tastatur mit galvanische kontakte aufweisenden tasten
JPS61107417A (ja) * 1984-10-30 1986-05-26 Toshiba Corp キ−ボ−ド制御方式
US4706068A (en) * 1985-01-30 1987-11-10 Wyse Technology, Inc. Four wire keyboard interface
JPS62160520A (ja) * 1986-01-08 1987-07-16 Brother Ind Ltd マトリツクススイツチ装置
US4937778A (en) * 1986-04-14 1990-06-26 Wolf Chris L System for selectively modifying codes generated by a touch type keyboard upon detecting of predetermined sequence of make codes and break codes
DE3640432A1 (de) * 1986-11-27 1988-06-09 Siemens Ag Mikroprozessorgesteuerte tastatur
JPS63225288A (ja) * 1987-03-16 1988-09-20 沖電気工業株式会社 文字表示装置
DE4134358A1 (de) * 1991-10-17 1993-04-22 Standard Elektrik Lorenz Ag Schaltungseinrichtung zur abfrage einer tastatur
ES2040172B1 (es) * 1991-12-31 1994-05-01 Alcatel Standard Electrica Procedimiento y dispositivo para la lectura de teclados.
US5818426A (en) * 1996-02-01 1998-10-06 Aztech New Media Corporation Peripheral-computer interfacing system and method
FR2790886B1 (fr) * 1999-03-12 2001-06-08 Sextant Avionique Procede et dispositif d'adressage sequentiel des entrees d'un multiplexeur de circuit d'acquisition de donnees
US6715086B1 (en) 1999-06-30 2004-03-30 International Business Machines Corporation Data processing system and method having time-span support for input device driver
AUPQ673400A0 (en) * 2000-04-06 2000-05-04 Mcom Solutions Inc Keypad
TW504637B (en) * 2001-05-29 2002-10-01 Via Tech Inc Keyboard instruction reading device for notebook computer
US7446676B2 (en) * 2005-12-28 2008-11-04 Broadcom Corporation Self-scan programmable keypad interface
JP4916959B2 (ja) * 2007-06-19 2012-04-18 富士通株式会社 キー制御回路、電子機器、携帯装置及びキー制御方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3750113A (en) * 1971-11-12 1973-07-31 Becton Dickinson Co Capacitive keyboard
GB1496522A (en) * 1974-01-22 1977-12-30 Endfield C Keyboard
DE2420119B2 (de) * 1974-04-25 1977-09-08 Siemens AG, 1000 Berlin und 8000 München Schaltungsanordnung zum erfassen von meldungen mit mehreren meldungsgebern
JPS5187917A (ko) * 1975-01-31 1976-07-31 Hitachi Ltd
SE405515B (sv) * 1975-09-25 1978-12-11 Siemens Ag Anordning for inmatning och kodning av datatecken
US4145687A (en) * 1975-09-30 1979-03-20 Denki Onkyo Co., Ltd. Keyboard switch circuit for use in a matrix which has a series circuit including a reluctance element and a diode connected between each row and column of the matrix
US4106011A (en) * 1975-10-24 1978-08-08 Tektronix, Inc. Keyboard circuit
US4194188A (en) * 1977-09-26 1980-03-18 Redactron Corporation Interrogation of key switches using pulse width detection
JPS5477534A (en) * 1977-12-02 1979-06-21 Matsushita Electric Ind Co Ltd Digital input circuit
US4222038A (en) * 1978-02-24 1980-09-09 Motorola, Inc. Microcomputer keyboard input circuitry
US4305135A (en) * 1979-07-30 1981-12-08 International Business Machines Corp. Program controlled capacitive keyboard variable threshold sensing system
US4408191A (en) * 1979-12-12 1983-10-04 Sperry Corporation Key cycle timer control providing a universal keyboard

Also Published As

Publication number Publication date
JPS5816332A (ja) 1983-01-31
EP0064627B1 (en) 1984-11-28
KR830010420A (ko) 1983-12-30
US4502039A (en) 1985-02-26
DE3261348D1 (en) 1985-01-10
CA1180821A (en) 1985-01-08
IT1138321B (it) 1986-09-17
AU8296882A (en) 1982-11-11
AU542573B2 (en) 1985-02-28
IT8121539A0 (it) 1981-05-07
EP0064627A1 (en) 1982-11-17

Similar Documents

Publication Publication Date Title
KR880000991B1 (ko) 키보드 코딩장치
AU597962B2 (en) Keyboard enhancer
US3842405A (en) Communications control unit
US3701972A (en) Data processing system
EP0089646B1 (en) Input system using switch matrix
JPS5876932A (ja) キ−ボ−ド走査およびインタフエ−スの方法と回路
US4087857A (en) ROM-initializing apparatus
US3952289A (en) Controller for linking a typewriter console to a processor unit
US4804278A (en) Key input apparatus provided with a key input buffer
US4027290A (en) Peripherals interrupt control unit
US5377358A (en) Character processing device adapted to perform document-editing processing and typewriting processing
US4095277A (en) Method for communicating text commands and instructions using conventional coded text characters and a structure for decoding and presenting command and instruction signals
EP0112179A2 (en) Data processing apparatus with automatic mode determination
US3832694A (en) Processor unit for data retrieval and processing
GB2263991A (en) Computer keyboard
US4807178A (en) Programmable sequence controller having indirect and direct input/output apparatus
US4107774A (en) Microprogram splatter return apparatus
JPH0713670A (ja) 外部処理装置に計算機キーボードをインタフェースするためのシステム
US3786431A (en) Electronic scanner checking process and system
JPH0313610B2 (ko)
GB2263990A (en) Method for detecting ghost keys
JPH0752384B2 (ja) プリンタ装置
Leagus et al. Verification of the logic structure of an experimental switching system on a digital computer
SU1539787A1 (ru) Микропрограммное устройство дл сопр жени процессора с абонентами
KR900001122B1 (ko) 동일한 입출력 포트의 키스캔 방법