作者dnaspirit (XD)
看板Headphone
標題[心得] 幾種USB Audio 傳輸模式
時間Wed Jan 2 18:03:26 2013
最近寫程式無意發現,微軟有給USB View的原始碼,
就抓來compiler看看,發現VS2012版的,資訊多了不少。
以前一直搞不清楚,Asynchronous 到底是在幹嘛的,
透過code反而多少了解了一些。
簡單的拿三台有USB Audio的裝置來檢驗一下:
第一台 : Mytek 192DSD 插上(USB 2.0)的孔
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x06 -> Direction: OUT - EndpointID: 6
bmAttributes: 0x01 ->
Isochronous Transfer Type,
Synchronization Type =
No Synchronization, Usage Type = Data Endpoint
wMaxPacketSize: 0x00AC = 1 transactions per microframe, 0xAC
max bytes
bInterval: 0x01
第二台 : 阿仁的 USB DDC
bLength: 0x07
bDescriptorType: 0x05
bEndpointAddress: 0x01 -> Direction: OUT - EndpointID: 1
bmAttributes: 0x05 ->
Isochronous Transfer Type,
Synchronization Type =
Asynchronous, Usage Type = Data Endpoint
wMaxPacketSize: 0x0400 = 1 transactions per microframe,
0x400 max bytes
bInterval: 0x01
第三台 : 不知名AD1955 DAC 用C-MEDIA USB Audio
bLength: 0x09
bDescriptorType: 0x05
bEndpointAddress: 0x06 -> Direction: OUT - EndpointID: 6
bmAttributes: 0x09 ->
Isochronous Transfer Type,
Synchronization Type =
Adaptive, Usage Type = Data Endpoint
wMaxPacketSize: 0x00C0 = 0xC0 bytes
wInterval: 0x0001
bSyncAddress: 0x00
小結:
Mytek 192DSD 用rigisystems 的方案,No Synchronization,
我個人的理解,應該是說不使用同步方式,
但是同ISOCHRONOUS 下如何確保資料的正確性呢?
看來是有用其它的方式。
在使用上,Myetek 192DSD的USB個人是覺得不是很穩定,
尤其直接上Intel USB 3.0的port,播放時,爆音不斷。
只有接2.0的孔可以正常使用。
阿仁的DDC用XMOS的方案,是使用非同步的方式。
播放時,ASIO,WASAPI都很ok。
C-MEDIA USB Audio,居然是Adaptive方式。
結果居然沒有用同步模式的晶片XD,看來要找PCM270x的看看了。
review code 後,總結在ISOCHRONOUS 這種方式下有:
"No Synchronization", "Asynchronous","Adaptive","Synchronous" 四種模式。
若有誤解的地方,大家可以指導一下,感謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.124.168.214
推 delaluna:先推 不過不是學cs的 看不懂code Orz 01/02 18:10
→ sxing6326:用這個看看 Mytek 192 不是用標準規範的設計 01/02 18:11
→ sxing6326:有可能是bulk transfer 然後Adaptive本來就是最常見的 01/02 18:12
→ sxing6326:Asynchronous是最近幾年才開始普及 01/02 18:12
推 bq78:沒有用DSD檔 但是仍然推一下 01/02 19:38