看板 Headphone 關於我們 聯絡資訊
最近寫程式無意發現,微軟有給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