.注册.  找回密码
楼主: whisky_qz

我来说说究竟什么是“USB异步传输” (Asynchronous USB)吧

[复制链接]
发表于 2009-10-23 02:32 | 显示全部楼层
引用第36楼cmkang于2009-10-23 00:29发表的 :


“同步传输模式”下的“时钟异步同步”??好吧,如果你真的觉得这么说比“异步传输”更能让人理解,那我没有意见,你赢了。囧~
关于“传输模式”和“同步类型”的名称问题,我不想再和你争论了。
我承认“同步类型”是更为标准的名称,但是我坚决反对你从一开始就歪曲我的本意,搬出USB基本传输模式来与我纠缠。
.......

不是我扭曲你的意思,而是你本来就用USB规范和USB音频规范里没有的东西出来唬人呢。

恩,对于QB9上TAS1020的MCLKI是有输入。这个我承认看得不清楚,疏忽了。

不过嘛,你留意过TAS1020B上的这图了没(同样来自TAS1020BPDF第2.2.6章节)?MCKI加入的位置在哪呢?
Frequency Synthesizer依然是ACG提供的。没有本质的变化呢。

而MCKI使用之后,I2S输出的时钟源可选项里就多了MCKI同步后的频率选择呢。MCKI只是同步了I2S最后输出的时钟,以及复原了AC97模式下的输出时钟。作用就类似于时钟重整了。
TTT2.GIF
回复

使用道具 举报

发表于 2009-10-23 02:49 | 显示全部楼层
引用第39楼whisky_qz于2009-10-23 02:15发表的 :
一激动,把灌水的小号亮出来了,汗。。。

现在总结一下我跟你看法的主要矛盾吧。

你认为,在异步传输模式下,USB芯片会对音频数据进行采样率匹配。
采样率匹配的结果是什么,等于是对数据进行了插值重采样。这样一来,原始数据的完整性就被破坏了,而这样的DAC,音频数据,就不是BIT FOR BIT 精确的。

而我的看法,根本就不会有采样率匹配的操作。至少,QB-9所采用的这个方案肯定不会。
想想什么是异步传输的核心理念?是时钟的异步,USB接收芯片的时钟与电脑USB总线时钟没有直接关系。
既然我的目的是要时钟异步,干吗又要自相矛盾的去与电脑端匹配?这样一来不等于又“同步”了么?

而且你根据QB-9的电路作为判断的结果,也被证明是错的了。
QB-9的USB接收芯片,其主时钟输出,采用的是外部时钟,而不是用本地工作时钟合成。
而且我可以再进一步告诉你,这个外部时钟是来自哪里——就是DAC芯片旁边的那两个高精度晶振。
也就是说,在QB-9这个DAC里头,整个系统的核心时钟,就是DAC芯片旁边的两个高精度晶振。
系统的时钟与电脑、USB总线完全隔离,不受其控制和影响。
呵呵,现在你知道了吗,你对QB-9的工作原理,完全误判了。

1.我有提出过异步模式下USB控制器不会对音频数据进行速率调整的条件。只要满足这个条件就OK。

2.我解释过采样率代表什么了,如果不匹配,就会出现时间轴上的错误,让缓冲区溢出或者欠载。更会让声音发生变化,夸张的说,1K的信号因为采样率不匹配而会变成2K的信号。

对于QB9的判断,主要集中在时钟上呢,我承认没留意到MCKI。不过MCKI只是同步I2S/AC97模块的输出。这个PDF的时钟流程结构图里也给出了。用于校对的时钟信号依然还是ACG给出的。

而QB9在失真测量上的表现也说明了这点,数据在USB上有经过一定的修整。

我还是那话,QB9的精华是在FPGA之后,包括DAC所用的高精度的时钟,以及分立的输出级
回复

使用道具 举报

 楼主| 发表于 2009-10-23 03:09 | 显示全部楼层
引用第40楼蓝子风于2009-10-23 02:32发表的 :


不是我扭曲你的意思,而是你本来就用USB规范和USB音频规范里没有的东西出来唬人呢。

恩,对于QB9上TAS1020的MCLKI是有输入。这个我承认看得不清楚,疏忽了。

不过嘛,你留意过TAS1020B上的这图了没(同样来自TAS1020BPDF第2.2.6章节)?MCKI加入的位置在哪呢?
Frequency Synthesizer依然是ACG提供的。没有本质的变化呢。


而MCKI使用之后,I2S输出的时钟源可选项里就多了MCKI同步后的频率选择呢。MCKI只是同步了I2S最后输出的时钟,以及复原了AC97模式下的输出时钟。作用就类似于时钟重整了。

如果我没有看错的话,MCKLI难道不是直接跳过了Frequency Synthesizer吗?

另外我引用的这段话:


“The
TAS1020B can also accommodate asynchronous isochronous operation, and the input MCLKI is provided for this
case. For asynchronous isochronous operation, the external clock pin MCLKI is used to derive the data and sync
signal to the codec. However, the external clock that provides the input to pin MCLKI, instead of the master clock
output (MCLKO or MCLKO2) from the ACG, must also source the codec’s MCLK.


—— <TAS1020B Data Mannual> 第2.2.6节

红字这句看懂了吗?MCLKI直接代替了时钟合成器ACG的主时钟输出(MCLKO),作为主时钟输出源。

汗了,你到底看得懂图吗?图片、文字引用了一大堆,实际什么都没说。
回复

使用道具 举报

发表于 2009-10-23 03:21 | 显示全部楼层
你留意到图片上MCLKI加入的位置了吗?在输出之前。

ACG的频率输出之后。当然就是同步了I2S的最终时钟输出了~~~~

这也是你说的那段文字的理解呢

但是回馈的频率却还是ACG出的呢

而且,在加入MCLKI后,寄存器里依然可以有ACG的MCK的位置。

你觉得这个是为什么呢?

即使有MCKI,也改变不了TAS1020B原本的特性。

你要记得Frequency Synthesizer的确定,是在MCLKI加入之前的。也就是说,MCLKI是对被速率调整器调整过的数据再进行一次的调整而已。当然,最后的2个MCLKO因为经过同步,自然就是MCLKI的时钟了

However, the external clock that provides the input to pin MCLKI, instead of the master clock
output (MCLKO or MCLKO2) from the ACG, must also source the codec’s MCLK.”

你留意,是替代 MCLKO 或者MCLKO2!!!不是替代Frequency Synthesizer

因为TAS1020B是双向的I2S通道,后面默认接的是CODEC而不是单独的DAC+ADC。你查看TAS1020B全部的资料就知道了(一个是CODEC,另一个是AC97 CODEC)

最后一句话的意思是,后面CODEC的MCLK也是和MCLKO或者MCLKO2同步的。
回复

使用道具 举报

 楼主| 发表于 2009-10-23 05:06 | 显示全部楼层
引用第43楼蓝子风于2009-10-23 03:21发表的 :
你留意到图片上MCLKI加入的位置了吗?在输出之前。

ACG的频率输出之后。当然就是同步了I2S的最终时钟输出了~~~~

这也是你说的那段文字的理解呢

但是回馈的频率却还是ACG出的呢

而且,在加入MCLKI后,寄存器里依然可以有ACG的MCK的位置。

你觉得这个是为什么呢?

即使有MCKI,也改变不了TAS1020B原本的特性。

你要记得Frequency Synthesizer的确定,是在MCLKI加入之前的。也就是说,MCLKI是对被速率调整器调整过的数据再进行一次的调整而已。当然,最后的2个MCLKO因为经过同步,自然就是MCLKI的时钟了

However, the external clock that provides the input to pin MCLKI, instead of the master clock
output (MCLKO or MCLKO2) from the ACG, must also source the codec’s MCLK.”

你留意,是替代 MCLKO 或者MCLKO2!!!不是替代Frequency Synthesizer

因为TAS1020B是双向的I2S通道,后面默认接的是CODEC而不是单独的DAC+ADC。你查看TAS1020B全部的资料就知道了(一个是CODEC,另一个是AC97 CODEC)

最后一句话的意思是,后面CODEC的MCLK也是和MCLKO或者MCLKO2同步的。


红字的那句,你原来写的是“再进行一次同步而已”,其实是对的啊,干吗编辑掉呢。

异步USB传输的本质本来就是如此啊,让电脑的传输速率与本地时钟同步,而不是让本地时钟与电脑同步。一个主,一个从,谁来控制,谁受控制的问题。

这里的MCKLI就是主输出时钟,而Frequency Synthesizer负责向电脑传送反馈采样率信息,控制电脑传输的音频数据流量,保证缓存不溢出或者断流。

你费那么大劲绕了半天,不断的自我纠正,最终还不是得到了跟我的解释一样的结论?

现在你还认为异步USB传输对于时钟信号的建立,只是个噱头么?


好了,现在只剩下最后一个矛盾,就是你说的采样率匹配问题,实际也就是如何控制USB传输速率的问题。

你说采样率的匹配必然会造成原始音频数据被破坏了,QB-9这个DAC不是BIT FOR BIT精确的,我觉得这个结论武断了。

因为你不知道AYRE的这个方案中,TAS1020B的固件究竟是怎么编写的。

这个固件的关键功能,就是控制USB传输速率,或者,也就是你说的采样率匹配问题。

当然我也没有这个固件,不知道他们究竟具体是怎么实现控制USB传输速率(采样率匹配)。

但你如果仅凭一句 “而QB9在失真测量上的表现也说明了这点,数据在USB上有经过一定的修整” 就想混过去,是不是也稍微忽悠人了点?



编辑:

哦,我终于知道了。为什么你一直把采样率匹配问题搞的这么严重,原来你一直默认TAS1020B后面接的是AC97 CODEC……
AC97 CODEC 是固定48K采样率的, 那么当然要对原始音频数据进行SRC重采样。
请问这与我们现在讨论的,TAS1020B后面直接接DAC,采样率始终保持不变,是一个情况吗?
早就跟你说过了,不要不顾实际应用环境,只会照着教科书(协议)背书是没用地。
回复

使用道具 举报

发表于 2009-10-23 08:35 | 显示全部楼层
呵呵,LZ有能力反对规范,你就去制定标准嘛 [s:2]
回复

使用道具 举报

发表于 2009-10-23 08:53 | 显示全部楼层
那个啥,,本次辩论结束后,请胜方发表结束陈词,总结一下结论
你们先继续
回复

使用道具 举报

 楼主| 发表于 2009-10-23 09:21 | 显示全部楼层
引用第45楼dcbyan于2009-10-23 08:35发表的 :
呵呵,LZ有能力反对规范,你就去制定标准嘛 [s:2]

说的好,我要有能力制定标准,一定用文言文制定一个,然后让外国人去翻译去。[s:2]
回复

使用道具 举报

发表于 2009-10-23 10:57 | 显示全部楼层
引用第44楼whisky_qz于2009-10-23 05:06发表的 :



红字的那句,你原来写的是“再进行一次同步而已”,其实是对的啊,干吗编辑掉呢。

.......

你到SP上查找同样使用TAS1020B的另外几个DAC,查看下他们的失真,再回来对比下QB9的失真.
回复

使用道具 举报

发表于 2010-1-11 17:03 | 显示全部楼层
嗨,别争了,建议有关同志再认真地研究一下有关规范。
大家都是为了一个共同的目的,把问题搞清楚。
把规范读清楚了,这个问题就不存在了。
有一点可以说说:Ti关于TAS1020的官方代码未支持异步传输模式。
国外网站上说Gordon花了两年功夫解决了这个问题,怪不得Wavelength的东西那么贵啊。
但为何用了2年啊,好长啊,也许外国人不象中国人不分白天黑夜干活的,所以2年也可以理解的。
如果Ti推出一个支持异步传输的官方代码,那该多好,但Wavelength就不值钱了。
回复

使用道具 举报

发表于 2010-1-17 17:38 | 显示全部楼层
这种贴要鼓励争论 边争论边更深入的研究  旁边的人也跟着学习

大家坛已经快要被纯水帖淹没了  搞的都不想来了
回复

使用道具 举报

发表于 2010-1-29 06:30 | 显示全部楼层
好文章,顶了
回复

使用道具 举报

发表于 2010-2-3 12:46 | 显示全部楼层
看了兩位前輩的討論,小弟有些問題想請教一下:



討論中說:
USB 音頻類規定的USB同步傳輸週期為1ms,每隔1ms,USB設備就會收到一次主機傳來的數據,而USB設備會在接收緩存中暫時性的存儲這些數據,

如電腦要播放的是44.1k的音樂,但如第一次的1ms所傳的是200個數據,接著下一個1ms所傳的是600ms,

a)那在這樣的情況下 usb片蕊 所合成的時鐘也是固定44.1k嗎?
b)還是合成時鍾的時脈 是根據 :第一次的1ms所傳的數據大少 (而降) ,接著下一個1ms的數據大少 (而升)?
c)還是合成時鍾的時脈 是根據:第一次的1ms 與 接著下一個1ms 之間的 誤差而 改變?
d)還是不論是 异步传输 或是 自適應模式 下 usb傳輸的數據量都會被usb晶片限制於特定的量,而迎合,合成時鍾的時脈?

我看你們的文章看到頭痛了x.x
謝謝!
回复

使用道具 举报

发表于 2010-4-28 23:24 | 显示全部楼层
好文章,这才叫素质,学校学的都丢了,看过也只懂了50%。我看涉及课程还是很多的,计算机方面多些,另外信号处理二位再加强些,可能有助理解。
回复

使用道具 举报

发表于 2010-5-9 15:19 | 显示全部楼层
这篇帖子很有意思。
最近我公司在给一家著名的hi-end公司(位于丹麦)提供audio player的方案。其中的一部分牵涉到USB audio这块(有device模式,也有Host模式)。

目前我方现有的方案(给另一家欧洲的HIFI公司提供的)采用的是类似adaptive模式。使用了外部的时钟同步器,每隔N个毫秒调整一次clock频率,来适应USB传输速率的变化。然而该方案为那家公司所深恶痛绝,理由是对时钟的调整引入了jitter。显然这两家欧洲公司对音频的要求也是不一样的。

按我的理解,这个分歧其实是由于两家公司对产品的用途侧重点不同。
由于采用异步模式时,电脑是“听”声卡的,让给多少数据就给多少数据。当播放音乐文件时,这并不存在问题。然而当播放的是另一个实时设备传过来的音频流时,问题就来了。由于两个设备各管各的,时钟差异导致PC上的应用软件(或驱动)需要对这个音频流进行插值和合并操作。这对音频的质量是有比较严重的影响的(合并的影响远比插值大的多)。而adaptive播放设备的好处是它听电脑的,电脑给多少数据他就播放多少。它可以通过内置一个SRC或调整它自己的时钟源来做到跟另一个“实时”流设备的同步。由于这个操作并不牵涉对音频数据的合并操作(尤其是后一种调整时钟源的做法,不会对数据进行任何增减),因此它被认为音质更好。而因jitter而引入的噪声可以通过减少对时钟的每秒调整次数来解决(使噪音落入音频范围之外(远低于20Hz))。
由于adaptive播放设备的这个优势,使得它在USB音频应用中具有更好的适应性而受到推崇。这也是我公司现有方案为adaptive的原因。另外,adaptive模式设备相比异步模式设备而言,由于硬件上增加了SRC或时钟同步器,成本相对较高。

至于为什么丹麦的hi-end公司对这种方式不屑一顾呢,其实也很好理解。它的选择是基于对音质的极致追求。它痛恨因时钟调整而引入的额外jitter,而宁可选择放弃更好的支持“实时”流设备。另一个重大原因是现有的时钟同步器的jitter能做到70ps (RMS)的已经被认为是很好的了,而该公司对时钟的要求远高于此。
回复

使用道具 举报

发表于 2010-5-9 17:38 | 显示全部楼层
原理上和我之前猜的差不多,这么详细的分析感谢楼主的分享了! [s:2]
回复

使用道具 举报

发表于 2010-5-12 22:36 | 显示全部楼层
哎。。。。。。。。。。。
有成水贴了!
回复

使用道具 举报

发表于 2010-5-13 15:42 | 显示全部楼层
技术高手对话很精彩
回复

使用道具 举报

发表于 2010-7-30 13:28 | 显示全部楼层
关注,学习了。
回复

使用道具 举报

发表于 2010-7-30 14:17 | 显示全部楼层
进来关注,同时学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | .注册.

本版积分规则

Archiver|手机版|《中华人民共和国增值电信业务经营许可证》粤B2-20120704|耳机大家坛-耳机网 ( 粤icp备09046054号-6 )

粤公网安备 44030602000598号

GMT+8, 2017-6-23 04:44

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表