안녕하세요

USB와 열심히 씨름중인 한 학생입니다..^_^;

다름이 아니라 PXA255 보드 하나를 가지고있습니다.

이 보드에는 USB host 하나가 있는데 이곳에 디바이스를 하나 물리려고 합니다.

G2라고 하는 공간인식 마우스(포인팅 디바이스입니다^_^.. 마이크로 마우스 아님!)인데

이녀석을 꼽고나면 HID클래스로 2개의 디바이스를 잡습니다.

keyboard와 mouse로 두개를 잡는데

두개가 파이프라인을 각각 따로 여는것 같습니다.

이 마우스에는 버튼이 6개가 달려있습니다.

마우스 좌우 버튼은 mouse 파이프 라인으로

추가버튼은 keyboard 파이프 라인으로 들어오는것 같습니다.

방식은 interrupt 방식의 polling 방식으로 통신을 하고

keyboard와 mouse의 EndPoint Max Packet Size는 각각 8byte입니다.


지금까지는 사전정보였고 제가 궁금한건 두가지 입니다^_^;;;

첫번째는, 이 두개의 EndPoint를 가진 디바이스를

하나의 디바이스 드라이버에서 물게 할 수 있는가입니다.

usb_driver 구조체에서 id_table 정보를 따로 줘볼까도 생각해봤지만 이렇게 하자니..

디바이스 드라이버를 처음부터 새로 만들어야 할듯한데

문제는 디바이스에 대한 내부 레퍼런스가 없습니다.

회사측에도 하다못해 USB비트맵이라도 얻을수 없을까 하고 전화를 했지만

담당 엔지니어라는분은 그런건 절대 없다고 하시네요ㅠ_ㅠ


두번째는, 어쨌든 이녀석들은 인터럽트 방식이기때문에 한번 폴링할때마다 64byte씩

데이터를 받아올텐데 이 로우데이터를 보고싶습니다.

전반적인 USB 인터페이스와 URB 자료구조에 대한 습득은 어느정도 된듯한데

어떤 변수에서 어떤방식으로 긁어와야 이 64byte 데이터를 볼수있을지가..

약간.. 손에 닿을듯 하면서 2cm 모자라네요ㅠ_ㅠ


이상입니다.

긴글 읽어주셔서 감사합니다!

열흘 가까이 USB core와; USB Driver와;; HID class spec과;;; 마우스와;;;; 씨름중이네요

지나가는 말씀이라도 좋으니 조언 부탁드립니다 ㅠ_ㅠ

그럼..!