키보드 컨트롤러(컴퓨팅)
Keyboard controller (computing)컴퓨팅에서 키보드 컨트롤러는 키보드를 컴퓨터에 연결하는 장치다.키를 누르거나 놓으면 컴퓨터에 알리는 것이 주요 기능이다.키보드의 데이터가 도착하면 컨트롤러는 CPU가 입력을 처리할 수 있도록 인터럽트(키보드 인터럽트)를 올린다.
키보드가 별도의 주변 시스템 장치인 경우(대부분의 최신 데스크탑 컴퓨터 등) 키보드 컨트롤러는 키에 직접 연결되지 않고 일종의 직렬 인터페이스를 통해 키보드에 내장된 마이크로 컨트롤러로부터 스캔 코드를 수신한다.이 경우 콘트롤러는 보통 와이어를 통해 키보드로 데이터를 다시 전송해 키보드의 LED도 제어한다.
IBM PC AT는 인텔 8042 칩을 사용하여 키보드에 접속했다.이 컴퓨터는 또한 인텔 80286의 칩 버그에 대한 해결 방법을 구현하기 위해 A20 회선에 대한 접근을 통제했다.[1]키보드 컨트롤러는 CPU를 재설정하지 않는 한 CPU를 보호 모드에서 실제 모드로 전환하는[1] 것을 허용하지 않았기 때문에 CPU가 보호 모드에서 실제 모드로 전환될 수 있도록 소프트웨어 CPU 재설정을 시작하는 데도 사용되었다.이는 BIOS와 운영체제 서비스가 리얼모드의 프로그램으로만 호출될 수 있었기 때문에 문제가 되었다.이러한 동작은 이러한 동작을 예상하는 많은 소프트웨어에 의해 사용되어 왔으며, 따라서 키보드 컨트롤러를 통한 리셋의 필요성이 CPU 없이 보호 모드에서 실제 모드로 전환하는 인텔 80386의 능력에 의해 배제된 경우에도 키보드 컨트롤러는 A20 라인을 제어하고 소프트웨어 CPU 리셋을 수행해 왔다.재설정. 또한 키보드 컨트롤러는 PS/2 마우스 포트가 있는 경우 PS/2 마우스 입력을 처리한다.오늘날 키보드 컨트롤러는 Super I/O 장치 내부의 장치 또는 분실되어 USB 컨트롤러에 의해 키보드와 마우스 기능이 처리되고 칩셋에 의해 처리되는 A20 라인을 제어하는 역할이 있다.
IBM
- IBM은 키보드 컨트롤러를 만드는 데 작은 역할을 한다.IBM과 호환되는 컴퓨터로는 키보드 컨트롤러나 인텔 8042 키보드 컨트롤러가 마더보드에 있다.컨트롤러는 컴퓨터 키보드에서 수신한 입력, A20 회선, 재설정, 스캔 코드 해독, PS/2 마우스 등을 처리한다.이후 키보드 모델과 함께 8042는 마이크로프로세서, RAM, I/O 포트가 있는 8742 마이크로컨트롤러로 대체되었다.[2]
- IBM PC/AT 및 거의 모든 이후의 PC에서 고전적인 8042 스타일의 키보드 컨트롤러(KBC)를 사용하려고 하는 사람은 대개 정확한 문서화 부족으로 문제에 직면한다.8042(또는 8742 또는 이후 Super I/O 칩에 내장된 호환 부품 수)는 실제로 상당히 잘 문서화되어 있다.캐치(catch)는 8042가 (보통) ROM에 자체 제어 소프트웨어가 탑재된 프로그램 가능한 마이크로컨트롤러(micro-controller). 최근까지 몇 개 회사(IBM, AMI, Phoenix) 밖에서는 아무도 제어 소프트웨어가 정확히 어떤 기능을 했는지 알지 못했다.[3]
- IBM은 호스트가 KBC에 전송할 수 있는 여러 명령을 문서화했다.이 모든 명령은 8042 하드웨어에 관한 어떤 것도 명령어가 어떤 특정한 형식, 기능 또는 심지어 그 곳에 있을 필요가 있다는 것을 지시하는 것이 아니라 순수한 소프트웨어 구조라는 것을 이해해야 한다.따라서, 8042 ROM 코드를 이해하는 것은 서로 다른 컨트롤러가 ROM에 다소 다른 코드를 가지고 있을 수 있다는 주의와 함께 명령이 무엇이고 무엇을 하는지를 정확히 이해하는 유일한 방법이다.[3]
KBC 명령어[3] 목록
-"무시"로 나열된 명령은 아무 기능도 수행하지 않는다.
- 00h-1Fh: KBC RAM을 간접적으로 읽으십시오.문서화되지 않음.
- 20h-3Fh: 오프셋 20h-3Fh에서 KBC RAM을 읽으십시오.오직 명령 20h만이 IBM에 의해 문서화된다.
- 40h-5Fh : KBC RAM을 간접적으로 쓰시오.문서화되지 않음.
- 60h-7Fh: 오프셋 20h-3Fh로 KBC RAM을 작성한다.오직 60h 명령만이 IBM에 의해 문서화된다.오프셋 20h의 바이트는 명령 바이트로 특별히 처리된다.
- 80h-A8h: 무시됨.
- AAh: 자가 테스트.이 명령은 문서화되지만 부작용은 없다.
- ABh: 인터페이스 테스트.
- ACh: 진단 덤프.제3자가 언급했지만 IBM이 문서화하지 않음.
- ADh: 키보드를 비활성화하십시오.
- AEh: 키보드를 활성화하십시오.
- AFh-BFh: 무시됨.
- C0h: 입력 포트 읽기.
- C1h: 연속 입력 포트 폴링, 높은 니블.제3자가 언급했지만 IBM이 문서화하지 않음.
- C2h: 연속 입력 포트 폴링, 낮은 니블.제3자가 언급했지만 IBM이 문서화하지 않음.
- C3h-CFh: 무시됨.
- D0h: 출력 포트 읽기.
- D1h: 출력 포트 쓰기.
- D2h-DEH: 무시됨.
- E0h: 테스트 입력을 읽으십시오.
- E1h-EFH: 무시됨.
- F0h-FFh: 펄스 출력 비트.
결론
휴대용 컴퓨터 장치:키 스트로크 입력을 수신하고 키 스트로크 입력을 메인 프로세서에 전달하기 위한 출력을 가진 키보드 컨트롤러와 보조 버스를 통해 키보드 컨트롤러와 인터페이스가 있는 보조 프로세서로 구성된다.tery module, 여기서 키보드 컨트롤러는 또한 해당 보조 버스를 통해 해당 보조 프로세서에 해당 키 스트로크 입력을 전달한다.[4]키보드 컨트롤러는 IBM® 호환 개인용 컴퓨터 키보드 시리얼 인터페이스를 지원하도록 프로그래밍되어 있다.키보드 컨트롤러는 키보드로부터 직렬 데이터를 수신하고, 데이터의 패리티를 확인하고, 스캔 코드를 번역하고, 출력 버퍼의 데이터 바이트로 시스템에 데이터를 제시한다.데이터가 출력 버퍼에 배치되면 컨트롤러가 시스템을 중단한다.데이터 바이트는 홀수 패리티 비트가 자동으로 삽입되어 키보드로 직렬로 전송된다.키보드는 모든 데이터 전송을 승인하는 데 필요하다.전송된 이전 바이트에 대한 수신확인이 수신될 때까지 키보드로 전송되지 않아야 한다.IBM PC 기계와 그 호환성을 향상시키기 위한 키보드 컨트롤러 및 BIOS.기존의 8042 키보드 BIOS에서와 같이 소프트웨어 구현 대신 유선 연결된 방법론이 이 키보드 컨트롤러에서 사용된다.이를 통해 키보드 컨트롤러는 키보드에서 CPU BIOS로 전송되는 모든 명령에 즉시 응답할 수 있다.이를 통해 Microsoft® Windows™, Novell® 및 기타 프로그램과 같은 인기 있는 프로그램을 훨씬 더 빠르게 실행할 수 있다.[5]
참고 항목
- 키보드 버퍼
- AT 키보드
- KVM 익스텐더
- 내장 컨트롤러:인텔 8042 및 IBM PC/AT 설계에 기초한 컴퓨터에 사용되는 기타 키보드 컨트롤러는 내장형 컨트롤러로 간주할 수 있다.
- 모든 데이터 시트
참조
- ^ a b "A20 - a pain from the past".
- ^ "What is a Keyboard Controller?". www.computerhope.com. Retrieved 2019-12-04.
- ^ a b c "IBM PC/AT 8042 Keyboard Controller Commands OS/2 Museum". www.os2museum.com. Retrieved 2019-12-04.
- ^ [1], "키보드 컨트롤러에 연결된 저전력 보조 프로세서를 가진 컴퓨터 장치" 2001-03-08
- ^ "KBD42W11 Datasheet(PDF) - SMSC Corporation". www.alldatasheet.com. Retrieved 2019-12-04.