안녕하세요?



키보드 자작중 몇 가지 새로 알게된 사실과 의문점이 있어 글을 올립니다.


USB 키보드의 경우 내부에 Diode를 넣어 Ghost 현상을 방지 하더라도 최대 동시 입력이 6개 밖에 안된 다고 알고 있었습니다.

그런데 프로그램 작성중 USB 규격을 보니 반은 맞고 반은 틀린 예기인것 같습니다.



일단 USB 키보드 쪽에서 한번에 컴퓨터로 보낼수 있는 데이타는 다음과 같이 8개 입니다.


USB Keyboard Input report.jpg 

출처 - The last HID 1.11 Specification 60 페이지



이중 0번과 1번은 일반 적인 키에 사용 되지 않고 2 - 7번(Keyboard 1 - 6) 6개의 장소(Byte)만 사용 하기 때문에

실제로 여러개의 키가 동시 입력 되더라도 6개만 컴퓨터로 전달 되게 됩니다.

(참고로, 실제는 6개 이상 입력 될경우 프로그램 적으로 입력 오류 신호를 컴퓨터에 전달하도록 규격되어 있습니다)



그런데 한가지 중요한 사실은 0번 장소(Byte)의 용도 입니다.


USB Keyboard Modifiers.jpg

<meta charset="utf-8">출처 - The last HID 1.11 Specification 56 페이지



0번의 경우 상기 표의 8개의 키(좌우 CTRL, SHIFT, ALT, WINDOW)가 동시에 눌렸을 경우에도

컴퓨터쪽으로 내용을 전달 할수 있게 되어있습니다.

0번의 경우 이런게 가능한 이유는 각 비트를 해당키에 맞춰 쪼개 쓰기 때문입니다.


이러한 사실을 봤을때 결과  적으로 최소 입력 가능한 키는 6개 이지만

경우에 따라 최대 14개의 키까지 동시 입력이 될것으로 생각 됩니다.

(테스트 방법이 생각 나지 않아 아직 확인해 보지는 못하였습니다.)


혹시 이에 대하여 좀 더 자세한 정보를 알고 계신 분이 있으면 지식 공유를 부탁 드립니다.



그럼 모두 즐거운 하루 보내시기 바랍니다.





</meta>

profile

진정한 커스텀 키보드를 위하여...