안녕하세요; 오랜만입니다.
이렇게 글을 쓰는 이유는 백년만에 키보드를 하나 새로 사고 나서보니..
이걸 무선으로 만들면 좋겠다는 생각에 아이디어를 내봅니다.
제안하는 아이디어는 제목에도 적혀있듯 USB HID 키보드를 Bluetooth를 이용해서 무선으로 만들어주는
컨버터 모듈 제작에 관한 것입니다.
일단 모듈 컨셉은.. 키보드의 컨트롤러를 건드리지 않고. 그냥 USB 단자를 모듈에 끼워서
간단하게 무선 키보드를 만드는 것인데..이를 위해 관련 정보를 좀 검색해봤습니다.
예전에도 한번 서치를 해보고 포기했던 이유가 HID 프로파일이 올라간 블루투스 모듈을 개인이 구하기
힘들어서였는데.. 다행이도 지금은 펌테크에서 파는게 있더군요..
관련 내용은 아래 그림과 같습니다.
FB155BC라는 블루투스 모듈은 Rx,Tx..즉 UART 통신을 통해 자체 규약된 패킷을 수신한 뒤, 수신한 패킷을
HID Packet으로 바꿔서 블루투스로 전송해주는 장치인것 같습니다. 회사에서 예제로 들어놓은 구성을 보면
별도의 MPU에서 PS/2 키 입력을 규정된 패킷으로 바꾸더군요. 패킷의 형태는 아래 그림과 같습니다.
이말인 즉슨.. 키보드의 HID packet을 받아서 파싱한 뒤, 입력된 키코드를 얻어
위의 프로토콜로 바꿔서 블루투스 모듈에 전송하면 블루투스 HID 키보드가 된다는 것이죠.
(페어링이나 블루투스 HID 키보드 인식등은 블루투스 모듈 레벨에서 해결이 된것 같습니다.
단지 블루투스 모듈만 연결해도 HID 장치로 인식이 된다고 하는걸 보니까요.)
여기까지 서치하고 문제가 좀 해결된 줄 알았는데.. 생각해보니까 우리가 사용하는 키보드는
USB device임이 뻔하고.. USB host 장치에 붙이지 않으면 패킷을 얻을 수가 없다는 겁니다.
따라서 중간에 USB Host 역할을 해줄수 있는 MCU가 필요하고 그 MCU에서 키보드의 HID 패킷을 받고
분석해서 UART 패킷으로 변환한 뒤 블루투스 모듈에 전달해 줘야한다는 것이죠.
따라서 모듈의 전체적인 구성은 아래와 같이 하면 될것 같은데..
(베터리나 스위치, 레귤레이터, 기타 부품은 포함하지 않은 개념도입니다.)
이제 이걸 만들어보려고 하니 고민이 되는것은.. USB Host 역할을 할수 있는 MCU를 구해야 하는데..
검색을 해보니 AT90USB 시리즈나.. MAX3421 정도가 나오는데 둘다 써본적이 없다는 것이죠.
전자는 아트멜에서 나온 AVR 시리즈에 USB 컨트롤러가 내장된 놈인것 같고.. 후자는 USB host 기능을
가진 칩으로 USB 패킷 데이터를 SPI로 변환시켜 주는 놈인것 같은데 뭘 써야할지 잘 모르겠습니다.
(관련 정보를 아시는분은 부탁드립니다.)
일단 구상은 이리 하였고. 막상 시작하려고 하니 부품들이 단가가 꽤 나가더군요.. 막무가내로 하기엔
위험할것 같아서 조언이나 같이 고민좀 해주실분을 찾아 글을 씁니다.
혹시나 제가 개념을 잘못 잡고 있는 것들이 있는지. 아니면 HID나 USB관련 지식이 부족해서 헛다리 짚고
있는건 아닌지.. 혹은 더 괜찮은 구성이나 방법 등이 생각나면 부탁드립니다.
ps. 비슷한 개념으로 Wireless USB hub나 adaptor, cabel이라고 나온 제품들은 있더군요.
하지만 Hub 까지는 필요없고.. 그냥 USB low speed 에서 동작하는 HID 프로토콜만 오가면 되서
일단은 별개로 봤습니다. 완제품은 국내에서 구하기도 힘들고.. 부숴서 키보드에 넣기엔 덩치도 큰녀석
들이어서 일단 제외하고 제작하는 쪽으로 마음을 굳혔습니다.
ps2. 펌테크에서 위의 MPU쪽에 들어가는 펌웨어는 바이너리로만 제공되고 소스코드는 제공이 안된다고
합니다. 제공된다고 해도 PS/2와 HID는 방식이 달라서 어차피 만들긴 해야할테지만..
이상 긴 글 읽어주셔서 감사합니다.
고수분들의 참여가 절실하네요...