作者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
1F:推 delaluna:先推 不过不是学cs的 看不懂code Orz 01/02 18:10
3F:→ sxing6326:用这个看看 Mytek 192 不是用标准规范的设计 01/02 18:11
4F:→ sxing6326:有可能是bulk transfer 然後Adaptive本来就是最常见的 01/02 18:12
5F:→ sxing6326:Asynchronous是最近几年才开始普及 01/02 18:12
6F:推 bq78:没有用DSD档 但是仍然推一下 01/02 19:38