휴먼 인터페이스 디바이스
Human interface device휴먼 인터페이스 장치 또는 HID는 보통 인간으로부터 입력을 받아 인간에게 출력을 제공하는 컴퓨터 장치의 한 종류이다.
"HID"라는 용어는 일반적으로 USB-HID 사양을 나타냅니다.이 용어는 Microsoft의 Mike Van Flandern이 USB 위원회에 Human Input Device 클래스 작업 [when?]그룹을 만들 것을 제안했을 때 만들어졌습니다.작업 그룹은 제안된 표준이 양방향 [when?]통신을 지원했기 때문에 DEC의 Tom Schmidt의 제안으로 Human Interface Device 클래스로 이름이 변경되었습니다.
출력용 HID | |
공통 HID | |
덜 일반적인 HID | |
HID 규격
HID 표준은 주로 PC 입력 장치의 혁신을 가능하게 하고 그러한 장치의 설치 과정을 간소화하기 위해 채택되었습니다.HID 개념이 도입되기 전에 장치는 일반적으로 마우스, 키보드 및 조이스틱에 대해 엄격하게 정의된 프로토콜을 준수했습니다. 예를 들어, 당시 표준 마우스 프로토콜은 최대 2개의 버튼에 대한 상대적인 X축 및 Y축 데이터와 이진 입력을 지원했지만 레거시 지원은 없었습니다.모든 하드웨어 혁신은 기존 프로토콜의 데이터 사용에 과부하가 걸리거나 사용자 정의 장치 드라이버를 생성하고 새로운 프로토콜을 개발자에게 전파해야 했습니다.반면 모든 HID 정의 디바이스는 임의의 수의 데이터 유형 및 형식을 포함하는 자체 설명 패키지를 제공합니다.컴퓨터의 단일 HID 드라이버로 데이터를 해석하고 데이터 I/O를 애플리케이션 기능과 동적으로 연결할 수 있으며, 이를 통해 신속한 혁신과 개발 및 새로운 휴먼 인터페이스 장치의 다양화가 가능해졌습니다.
몇몇 유명 기업의 대표들로 구성된 실무 위원회가 HID 표준을 개발했습니다.참가자 목록은 "HID([1]Human Interface Devices)용 디바이스 클래스 정의" 문서에 나타납니다.Mike Van Flandern과 Manolito Adan이 마이크로소프트에서 "Raptor"라는 이름의 프로젝트를 진행하고 있을 때 처음 나온 확장 프로토콜의 개념은 Forte에서 액세스 버스용 장치 프로토콜에 대해 작업했던 Steve McGowan과는 독립적으로 나왔습니다.Consumer Game Developer Conference에서 노트를 비교한 후, Steve와 Mike는 새롭게 등장한 USB(Universal Serial Bus)의 새로운 표준에 대해 공동 작업하기로 합의했습니다.
HID 프로토콜에는 한계가 있지만, 현대의 모든 주류 운영 체제는 특별한 드라이버 없이도 키보드나 마우스 같은 표준 USB HID 장치를 인식합니다.인스톨 하면, 통상은 「HID 준거 디바이스가 인식되었습니다」라고 하는 메세지가 화면에 표시됩니다.이에 비해 이 메시지는 USB보다 앞선 PS/2 6핀 DIN 커넥터를 통해 연결된 장치에서는 일반적으로 표시되지 않습니다.PS/2는 플러그 앤 플레이를 지원하지 않습니다.이는 컴퓨터의 전원이 켜진 상태에서 PS/2 키보드 또는 마우스를 연결하는 것이 항상 작동하지 않고 컴퓨터의 메인보드에 위험을 초래할 수 있음을 의미합니다.마찬가지로 PS/2 표준은 HID 프로토콜을 지원하지 않습니다.USB 휴먼 인터페이스 디바이스 클래스는 USB HID를 나타냅니다.
HID 프로토콜의 구성 요소
HID 프로토콜에는 "host"와 "device"라는 두 개의 엔티티가 있습니다.디바이스는 키보드나 마우스와 같이 인간과 직접 상호작용하는 엔티티입니다.호스트는 장치와 통신하고 사람이 수행한 작업에 대한 장치로부터 입력 데이터를 수신합니다.출력 데이터는 호스트에서 장치로, 다음으로 사람에게 흐릅니다.호스트의 가장 일반적인 예는 PC이지만 일부 휴대 전화와 PDA는 호스트일 수도 있습니다.
HID 프로토콜은 장치 구현을 매우 단순하게 합니다.디바이스는, 데이터 패킷을 정의하고 나서, 호스트에 「HID 디스크립터」를 표시합니다.HID 기술자는 장치의 데이터 패킷을 설명하는 하드 코드화된 바이트 배열입니다.여기에는 디바이스가 지원하는 패킷 수, 패킷 크기, 패킷 내의 각 바이트 및 비트의 목적 등이 포함됩니다.예를 들어 계산기 프로그램 버튼이 있는 키보드는 호스트에게 버튼의 누름/해제 상태가 데이터 패킷 번호 4의 6번째 바이트의 2번째 비트로 저장되어 있음을 알릴 수 있다(주의: 이러한 위치는 설명에 불과하고 디바이스 고유의 것입니다).일반적으로 디바이스는 HID 디스크립터를 ROM에 저장하기 때문에 HID 디스크립터를 본질적으로 이해하거나 해석할 필요가 없습니다.현재 시판되고 있는 일부 마우스 및 키보드 하드웨어는 8비트 [citation needed]CPU만을 사용하여 구현되고 있습니다.
호스트는 디바이스보다 더 복잡한 엔티티여야 합니다.호스트는 디바이스에서 HID 기술자를 가져와 해석해야 디바이스와 완전히 통신할 수 있습니다.HID 기술자의 해석은 복잡할 수 있습니다.디바이스 드라이버가 최초로 [citation needed]공개되고 나서, 복수의 operating system이 HID 디스크 리프터의 해석을 담당하는 디바이스 드라이버의 버그를 출하하고 있는 것으로 알려져 있습니다.하지만 이런 복잡성 때문에 HID 기기를 통한 신속한 혁신이 가능한 것이다.
위의 메커니즘은 HID "보고서 프로토콜"로 알려진 것을 설명합니다.모든 호스트가 HID 기술자를 구문 분석할 수 있는 것은 아니기 때문에 HID는 "boot protocol"도 정의합니다.부트 프로토콜에서는 고정 데이터 패킷 형식이 사용되므로 특정 장치만 특정 기능으로 지원됩니다.이 모드에서는 HID 기술자가 사용되지 않기 때문에 혁신은 제한됩니다.그러나 HID를 지원할 수 없는 호스트에서는 여전히 최소한의 기능을 사용할 수 있다는 장점이 있습니다.부트 프로토콜에서 지원되는 디바이스는 다음과 같습니다.
- 키보드 – HID Usage Tables, Usage Page 7에 정의된 최초의 256개의 키 코드('사용방법') 중 어느 것이든 부트 프로토콜을 사용하여 키보드로 보고할 수 있지만 대부분의 시스템에서는 이러한 키의 서브셋만 처리합니다.대부분의 시스템은 IBM AT-101 레이아웃의 모든 104 키와 Microsoft Windows 95용으로 설계된 세 개의 추가 키(왼쪽 및 오른쪽 Windows 키 및 Menu 키)를 지원합니다.또한 많은 시스템은 기본적인 서유럽 105키, 한국어 106키, 브라질 ABNT 107키 및 일본어 DOS/V 109키 레이아웃에 대한 추가 키를 지원합니다.사용 페이지 7에 보고되지 않은 버튼, 노브 및 키는 사용할 수 없습니다.예를 들어 특정 미국 키보드의 QWERTY 키는 기능하지만 Calculator 키와 Logoff 키는 Usage Page 12에서 정의되어 부팅 프로토콜에서 보고할 수 없기 때문에 작동하지 않습니다.
- 마우스 – X축, Y축 및 처음 3개의 버튼만 사용할 수 있습니다.마우스의 그 외의 기능은 기능하지 않습니다.
부트 모드의 일반적인 사용 방법 중 하나는 컴퓨터 부팅 시퀀스의 첫 번째 순간입니다.컴퓨터의 BIOS 를 직접 설정하는 경우는, 기동 모드만을 사용하고 있는 경우가 많습니다.디바이스가 올바른 드라이버를 인스톨 해, 사용 가능하게 된 것을 유저에게 통지하는 메세지가 표시되는 일이 있습니다.
디바이스의 HID 정의
HID 사양에 따르면 디바이스는 리포트 모드 중에 일련의 컨트롤 또는 컨트롤 그룹으로 기술된다.컨트롤은 데이터를 포함하는 필드와 사용태그를 포함하는 필드에 의해 대조됩니다.각 사용 태그는 보고서 모드에서 설명된 데이터의 사용을 컨스트럭터가 제안하는 것으로 사양에 설명되어 있습니다.
HID를 사용하는 기타 프로토콜
HID가 USB를 통해 원래 정의되었기 때문에, HID는 현재 다른 컴퓨터 통신 버스에도 사용되고 있습니다.이것에 의해, 종래 USB에만 있던 HID 디바이스를 대체 버스에서도 사용할 수 있게 됩니다.이는 USB HID 장치에 대한 기존 지원이 마우스, 터치패드, 키보드 등을 지원하는 완전히 새로운 프로토콜을 개발하는 것보다 훨씬 빠르게 적용될 수 있기 때문입니다.HID 를 사용하는 기존의 버스는 다음과 같습니다.
- Bluetooth HID – Bluetooth를 통해 연결된 마우스 및 키보드에 사용
- 시리얼 HID – Microsoft Windows Media Center PC 리모트 컨트롤 리시버에서 사용됩니다.
- ZigBee 입력 장치– ZigBee (RF4)CE)는 ZigBee 입력 디바이스 프로파일을 통해 HID 디바이스를 지원합니다.
- HID over I²C – Microsoft Windows[2] 8의 임베디드 디바이스에 사용
- HOGP(HID over GATT)– 블루투스 저전력 테크놀로지를 사용하여 연결된 HID 디바이스에 사용
「 」를 참조해 주세요.
- 휴먼 인터페이스 가이드라인
- 인간과 컴퓨터의 상호 작용
- USB 휴먼 인터페이스 디바이스 클래스
- 그래피컬 사용자 인터페이스 빌더
- 데스크톱상의 Linux
- 주변기기
- 유형 사용자 인터페이스
레퍼런스
- ^ Device Class Definition for Human Interface Devices (HID): Firmware Specification -- Final 1/30/97. USB Implementer's Forum. 1997. Retrieved 2014-04-28.
- ^ "HID over I2C". Microsoft. Retrieved 2016-01-19.