[心得] 幾種USB Audio 傳輸模式
最近寫程式無意發現,微軟有給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
推
01/02 18:10, , 1F
01/02 18:10, 1F
推
01/02 18:11, , 2F
01/02 18:11, 2F
→
01/02 18:11, , 3F
01/02 18:11, 3F
→
01/02 18:12, , 4F
01/02 18:12, 4F
→
01/02 18:12, , 5F
01/02 18:12, 5F
推
01/02 19:38, , 6F
01/02 19:38, 6F
Headphone 近期熱門文章
PTT數位生活區 即時熱門文章