討論區快速選單
知識庫快速選單
程式設計俱樂部Facebook粉絲團 政府補助!學嵌入式+物聯網 傑米的攝影旅遊筆記
[ 回上頁 ] [ 討論區發言規則 ]
如何將hid和audio function做在同一個device
更改我的閱讀文章字型大小
作者 : jasonchung(jason)
[ 貼文 30 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/5/6 下午 04:30:52
請教版上前輩大大們:
若我需要將hid(keyboard & mice) and audio(headphone & microphone)做在同一個device,就是用一個usb device,同時support兩種configration,這該如何描述descriptor。
1. 將device 做成有兩個configuration.
2. 模擬hub的方式掛下兩個device.
是以上兩個方案都可行嗎?
作者 : yohji(阿泰) C++ Builder卓越專家貼文超過500則
[ 貼文 566 | 人氣 3153 | 評價 3150 | 評價/貼文 5.57 | 送出評價 10 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/5/6 下午 05:08:41

>請教版上前輩大大們:
>若我需要將hid(keyboard & mice) and audio(headphone & microphone)做在同一個device,就是用一個usb device,同時support兩種configration,這該如何描述descriptor。
>1. 將device 做成有兩個configuration.
>2. 模擬hub的方式掛下兩個device.
>是以上兩個方案都可行嗎?


應該是兩個interface
市面上在賣的skype phone(audio device + HID)就是你要的
作者 : jasonchung(jason)
[ 貼文 30 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/5/6 下午 05:19:40
感謝啊泰大大回應。
大大所說的skype phone,它是結合audio + keypad,是在現有的standard class就有支援這個class。
但我目前是想把audio+hid(keyboard and mice)結合在一起,目前還沒看到官方文件上有這種class。
查了usb spec 上說,這種叫compound device ,建議用一個embedded hub,不知我這樣的認知對不對。
再請版上的前輩大師們指點,謝謝。
作者 : yohji(阿泰) C++ Builder卓越專家貼文超過500則
[ 貼文 566 | 人氣 3153 | 評價 3150 | 評價/貼文 5.57 | 送出評價 10 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/5/6 下午 05:26:31
我沒記錯的話skype phone中hid的部分不是鍵盤,是自訂的data來表示按鍵值
因此在PC端會搭配一個AP接收hid data,AP再利用SKYPE的API來控制skype打電話之類的動作


>大大所說的skype phone,它是結合audio + keypad,是在現有的standard class就有支援這個class。
>但我目前是想把audio+hid(keyboard and mice)結合在一起,目前還沒看到官方文件上有這種class。
>查了usb spec 上說,這種叫compound device ,建議用一個embedded hub,不知我這樣的認知對不對。
>再請版上的前輩大師們指點,謝謝。
作者 : lidder(lidda) 人氣指數超過10000點
[ 貼文 97 | 人氣 13348 | 評價 140 | 評價/貼文 1.44 | 送出評價 6 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人jasonchung註記此篇回應為很有道理 2010/5/7 上午 09:50:23
我沒做過, 不過OS應該是看interface和它的protocol, 來決定怎麼跟device溝通.

這個要查一下, WDK.
作者 : jasonchung(jason)
[ 貼文 30 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/5/7 上午 09:55:54
感謝lidda大大的回應。
大師說的有道理,應該是增加interface number 就可以了,我這邊先朝這方向試試,謝謝。
作者 : lidder(lidda) 人氣指數超過10000點
[ 貼文 97 | 人氣 13348 | 評價 140 | 評價/貼文 1.44 | 送出評價 6 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/5/7 上午 10:07:54
有了
USB Common Class Generic Parent Driver

這一篇有跟你說, Windows怎麼判斷.
作者 : tdtsai(新兵衛) 驅動程式優秀好手貼文超過200則
[ 貼文 362 | 人氣 779 | 評價 1290 | 評價/貼文 3.56 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/5/7 上午 10:49:52
只要加兩個Interface 然後去 www.usb.org 下載HID 的Spec. 裡面就有 Keyboard 和 Mice 的Report Descriptor, 和Interface Descriptor 要如何Report 了. 加上去就OK 了不會很難的 這個原理和阿泰大師說的 Skype Phone 是一樣的

>感謝lidda大大的回應。
>大師說的有道理,應該是增加interface number 就可以了,我這邊先朝這方向試試,謝謝。
作者 : yohji(阿泰) C++ Builder卓越專家貼文超過500則
[ 貼文 566 | 人氣 3153 | 評價 3150 | 評價/貼文 5.57 | 送出評價 10 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/5/7 上午 10:55:25
言重了,新兵衛前輩才是大師
我只是小小工程師,剛好4年前有做過skype phone ^^


作者 : jasonchung(jason)
[ 貼文 30 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/5/7 上午 11:03:50
感謝啊泰、lidda、新兵衛大師們的回應,^^嘿!
作者 : jasonchung(jason)
[ 貼文 30 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/5/10 上午 11:32:36
請問版上的先進:
目前小弟發現一個問題,就是device 的VID and PID,有一定的格式存在,host 會根據這兩個參數,去尋找對應的driver。
不過我用google找了一下,還沒找到說明文件,來說明這兩個參數的format define。
若版上有人知道的,可否告知小弟,謝謝。

ps:
PID:
mice & keyboard: 0XC52E
headphone & microphone: 0x0a01
以上兩個,是我錄人家device的PID,若我要結合mice & keyboard and headphone & microphone這四種interface,我該如何去定義呢?
作者 : jasonchung(jason)
[ 貼文 30 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/5/10 下午 06:39:25
這個問題應該是我搞錯了,因看spec 上寫,PID是由manufacturer assigned的,而我會有這個誤解,主因我一開始這一組vid & pid,是拿來當hid,之後用同一組vid & pid,拿來當audio,這樣就會出現pc還是當作hid來辨認,而出錯,主因是一開始向pc註冊後,這一組vid & pid,就對應到相對應的driver了,而記錄在pc driver table(實際的檔名我已忘了叫什麼了),所以當後續用同一組vid&pid,它就不會再重新註冊一次,而是去看table中的記錄。
除非再換一組pid,這樣pc才會去看interface descriptor,然後重新註冊新的device.

以上若有說錯,再請版上大師指教,謝謝。

>請問版上的先進:
>目前小弟發現一個問題,就是device 的VID and PID,有一定的格式存在,host 會根據這兩個參數,去尋找對應的driver。
>不過我用google找了一下,還沒找到說明文件,來說明這兩個參數的format define。
>若版上有人知道的,可否告知小弟,謝謝。
>
作者 : jasonchung(jason)
[ 貼文 30 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/5/12 上午 11:41:25
小弟已完成將四種interface(mice & keyboard & headphone & microphone) 結合在一個device 了。
實現方式如同lidda大師所說的,只要增加interface descriptor就可以了,因為 pc driver主要是看interface,來對應到相關的driver。
感謝版上前輩的指導。
作者 : lidder(lidda) 人氣指數超過10000點
[ 貼文 97 | 人氣 13348 | 評價 140 | 評價/貼文 1.44 | 送出評價 6 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2010/5/13 上午 09:38:12
別亂講我不是大師.
而且interface跟driver的關係, 是microsoft他們定的.
我只不過曾經看到這段說明, 但沒做過.
而你是做的人, 應該也要看過才是.

提醒你 vid&pid 跟 driver 的關係, 直覺想就知道不可能叫device廠換再換一組pid, 來更新driver.
microsoft一定會有正當程序來做這件事.
 板主 : 徵求中
 > 驅動程式 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - 驅動程式 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
驅動程式
1 新兵衛 1240 
2 eBoy 980 
3 牧童哥 780 
4 北極熊 580 
5 天行者 580 
6 燒酒仙 440 
7 weber 380 
8 KEN 350 
9 jonay 180 
10 掌握文武半邊天 180 
驅動程式
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.078125