ajax异步传输输中怎么算信息传输速率和传输效率

[推荐]浅谈数据容灾系统中的网络带宽与延迟的关系以及计算方法
本文节选自著名存储专家即将4月份出版的《大话存储2》一书,希望大家到时支持这本书。 & 100Mb/s,这个速率意味着什么呢?有人说,每秒可以传输10MB的数据(8/10b 编码下)。通常情况下,这种说法是对的。但是如果发送方与接收方之间的距离变得很远,比如数百公里甚至一千公里,那么这种说法,你会发现根本不成立。我们现在就来分析一下。 大家知道,光或者电信号的传输是有固定速度的,即近似每秒30万公里(其实远未达到,光在光缆中的传播速率只有20万公里每秒,电信号在电缆中的传播速率则近似21万公里每秒。基本上是光在真空或者空气中速率的三分之二)。如果两点之间距离为1000公里,那么信号传一个来回(传到对端,然后对端给以ACK应答)所耗费的时间就是×2≈6.6ms。什么概念呢?也就是你想把1bit的数据传输到一千公里之外的地方,那么至少你要耗费6.6ms。那么传输10bit、100bit、1Kb、100Mb,需要多长时间呢?首先想到的是,至少比传1bit要慢。到底需要多长时间?来看这个公式:传输来回时间=(数据量÷链路速率×2)+(传输距离÷光速×2)。数据在传输的时候,是首先会被通过编码电路将数据串行化编码然后放到电路或者光路上传输,这个编码速率,就是链路带宽,100Mb/s的带宽与1000Mb/s的带宽,区别就在于后者在单位时间内可以编码相当于前者10倍量的数据,但是不管链路带宽有多少,数据被编码之后,数据在电路上的传输所耗费的时间对各种速率的链路来讲都是一样的,因为传输的时候已经与链路编码速率(带宽)无关了,传输到对方之后,对方还需要解码(所以编码所耗费的时间也要乘以2),同样也是取决于链路带宽。 所以,当两点之间传输距离很近的时候,比如1千米,那么传输时延≈0.0066ms,基本上可以忽略了。所以那个公式变为:传输时间=(数据量÷链路速率)。所以说,链路速率越大,只代表其编码速度越快,而不代表传输速度越快,传输速度是固定的,都是光速。再打个比喻,有一辆长途车,50个人排队上车,排队上车需要120s,汽车行驶需要60000s,50个人排队下车需要120s。50个人被排队送上车,就好比数据被串行编码放到电路上传输,汽车行驶相当于电路信号从一端传递到另一端,50个人被排队下车,就好比对端的解码过程了,然而到此还没有结束,当汽车抵达目的地之后,司机必须在返回出发点进行报信,这就好比TCP协议在收到数据之后发送给源端的ACK应答一样。可以司机空着车跑回去报信(单独发送ACK应答包),也可以在目的端捎带着一些回程客人返回去报信(TCP可以在反向流量中夹带ACK应答信息以提高效率)。但是在容灾系统中,数据总是从源端流向目的端的,或者在灾难回切的时候从目的端流向源端的,总之只有一个方向有实体数据流动,那么此时回程ACK都是独立的ACK应答包(独立ACK包很小所以其编解码所耗费的时间也忽略掉即可)。 另外,一辆汽车能承载的人数是有限的,也就是说,得一趟一趟的拉,这就好比TCP每次所发送的最大数据长度,也就是TCP的滑动窗口长度,TCP得分批把用户数据传送出去,每次的发送量必须小于TCP滑动窗口的长度,每次传输之后均需要对方发送一个ACK(这里不考虑ACK合并等特殊情况)。每批数据虽然到了底层可能被切分,比如TCP的MSS(Max Segment Size)切片,一般等于底层链路的MTU,底层链路再用MTU的值来切片,但是这些底层的切片在被传输到对端之后,并不需要对端底层协议的应答,只有对端的TCP在完整的收到TCP发送的一批数据之后,才会应答。 那么我们来算算在相隔1000千米的两点之间,每秒到底能够传送多少个来回:1000ms÷6.6ms=151个来回。如果按照TCP的典型滑动窗口即16KB来计算的话(每次发送16KB数据然后就等待应答,不考虑延迟应答或者合并应答等特殊情况),那么每秒吞吐量仅为151×16KB=2416KB,也就是2.4MB每秒。夸张么? 当然,上述算式是忽略了编解码所耗费的时间以及整个链路上各种中继、转发或者协议转换设备所带来的处理延迟,如果算上这两者,则吞吐量会更低。更加准确的实际数据传输吞吐量计算公式为V=TCP Window Size÷2(TCP Window Size÷链路带宽+距离÷光速+链路设备处理延迟)。总之,距离越远,实际传输吞吐量就越低,在实际应用中一定要有底。
距离很短时,可以忽略距离带来的延迟,此时显然谁带宽高谁传的就快;而距离很长时,此时带宽再高也无济于事,因为大头都被距离给耗掉了。另外,即便是底层链路的带宽相同,距离也相同的情况下,使用不同的协议进行传输,所带来的延迟也是不同的。但是设想一下,不管链路跨越了多长的距离,如果这条链路上永远都有数据在传着,那么发送方与接收方就可以以链路带宽的原生速率来收发信息,只不过有时延,就像卫星电视那样,此时传输速率并不会打折,如果做到这一点,那么对于一个容灾系统来讲是非常好的事情,充其量只会丢失几毫秒之内的数据。但是,事实却并非如此。超远距离传输,怕的就是数据流的卡壳,卡一次两次不要紧,频繁卡壳,那就根本无法利用起链路带宽了。这就好比磁盘寻道操作一样,本来磁头能以很高的速度读写盘片上的数据,但是没办法,必须换道,这一换道,外部速率骤降。碰巧的是,15K转每秒的SAS盘其平均寻道时间为5.5ms,而一千公里距离的传输时延为6.6ms,这两个值倒是接近而且还挺有意思。
传输协议无法避免“卡壳”,因为总要传一段歇一段来等待对方吱个声,看看收到没有。比如TCP,这样就平白无故的浪费了底层链路时隙;再加上长距离下的高传输延迟,一来一回更浪费了大量时间,所以会出现上文中的即便是千兆链路下,1000公里的距离每秒也只能传输2.4MB的理论值,实际值将会更低了。
另外,如果在长距离下使用诸如iSCSI等协议的话,那将更是一笔惊人的浪费。大家知道SCSI层本身就有传输保障机制,人家自己有ACK那一套,而底层TCP再来这一套显然就显得多此一举了。按理说有了SCSI层的传输保障机制,其下层协议栈就应该是个无状态的类似链路层协议了,应该直接将数据一股脑传过去,但是现实是它非得传一段,停一段,等待对方说个OK,然后再传再停,慢慢腾腾;不仅如此,再加上SCSI也要传传停停,那就是变本加厉。所以长距离上跑诸如FCP、iSCSI等这种SCSI协议与FC/TCPIP协议的合体协议,将会是个梦魇。
降低不必要的ACK数量,增加滑动窗口,这些都是广域网加速的技术,对传输速率会有一定程度的提高。但是最终解决办法,还是要尽量缩短两地距离,或者开发专用优化的协议了。&&&
说到私有协议,这里就展开讲一下。上述所有场景,均建立在两点之间只有单TCP连接,即单流的场景下,此时的链路带宽当然无法被充分利用,而且也提过,如果底层链路一刻也不闲着,那么其有效带宽就可以更高的被利用,怎么办呢?显然,通过提高并发连接的数量,就可以充分利用起底层链路的时隙。关于这个思想,在磁盘阵列控制器如何充分利用起后端FCAL环路的带宽方面也是类似的,大家可以阅读附录1中的第5问。 大家知道iSCSI里有个Multi Connection Per Session的概念,使用Microsoft的软iSCSI Initiator的话,里面就可以进行设置,让Initiator端可以同时与iSCSI Target端建立多条并发的TCP连接,从而提高远距离传输时的效率,当然这个特性需要iSCSI Target端的支持配合。但是对于FCP来讲,就没有这种特殊考虑的并发连接设计了。经过考量设计的可并发连接的私有协议可以极大提高远程数据传输的效率。
既然说到了多流并发,那么索性就再展开一些。对于一个异步模式的数据容灾复制系统,最起码要保证的是灾备端数据的一致性,而数据一致性又有多个层面,最底层的一致性就是所谓“时序一致性”,灾备端起码要保证每个IO都按照其在源端被执行的顺序刷入灾备端数据集中。如果使用单流TCPIP则可以保证时序,但是传输效率很低;但是在多流并发的情况下,因为原本流与流之间是无关联的,可能在源端先执行的IO被传送到对端之后却被后执行了,此时就需要引入更复杂的逻辑来保证同步过去的数据被按照顺序执行。这里又有两种办法可以考虑,一种是保证RPO,在多个流之间维护强一致性,将多个流强制关联以保证收发顺序,此时灾备端可以立即将收到的IO数据刷入底层数据集;第二种则是牺牲RPO,主备站点之间之间采用端到端的一致性组技术,在数据批与数据批之间保证时序性,而不是每个IO之间。此时灾备端不能在收到数据后立即刷入,比如等待一批数据全部收到之后才可以刷入。这么做虽然可能导致丢失一批数据而不是几个IO,但是可以方便的保证数据一致性。本文节选自尚未出版的《大话存储2》,发出来让大家先睹为快。同时欢迎提出错误和建议,谢谢!
权限:公开&&&来自:labs
本文仅代表作者个人观点。其原创性及文中表达的意见、判断、数据、观点和陈述文字等内容均与中国移动研究院无关。移动Labs博客致力于为ICT领域的研究者及从业者提供技术和业务交流的网络平台,对本文中全部或部分内容的真实性、完整性不作任何保证或承诺,仅供读者参考交流。
阅读全文:3713 | 转发(0) | 评论
Labs推荐给你的相关资讯
看过此博文的还看过
总访问量:2058458
京公网安备 |
中国移动通信研究院版权所有一个数据在TCP IP协议中从信源到信宿是怎样传输的一个数据在TCP IP..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
一个数据在TCP IP协议中从信源到 信宿 是怎样传输的
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
数据通信原理习题集答案
下载积分:975
内容提示:数据通信原理习题集答案,数据通信,原理,习题集,答案
文档格式:DOC|
浏览次数:52|
上传日期: 04:34:48|
文档星级:
该用户还上传了这些文档
数据通信原理习题集答案
官方公共微信您尚未  &
Pages: ( 1/7 total )
本页主题: 我来说说究竟什么是“USB异步传输” (Asynchronous USB)吧
级别: 侠客
在线时间:1131(小时)
我来说说究竟什么是“USB异步传输” (Asynchronous USB)吧
废话不多说,直奔主题吧。对于USB音频传输,有一个规范,叫做“标准USB音频规范”。这个规范有什么用处和好处?它的用处就在于,实现了以USB接口实时传输音频信号。(汗)它的好处就在于,直接集成在WINDOWS系统内,也就是说,只要符合这个规范的USB音频产品,WINDOWS系统内的集成驱动就能直接支持,而不用厂商另外开发驱动程序。相反,如果某款USB音频产品有自己的驱动程序,那么它就是不支持这个规范的。(但不表示这个产品就不好,自己开发驱动本身是有研发实力的表现。)在这个标准USB音频规范下,有三种传输模式:同步、自适应,和异步。同步:标准的同步模式其实很少见,基本不太用到的,这里省略。自适应:大多数的产品(比如TI PCM270X、PCM290X系列)都是用的自适应传输模式。异步:这里的异步,才真正是AYRE QB9所大肆宣传的异步USB传输模式。所以严格来说,所谓“异步USB传输”,有个大前提,就是在标准USB音频规范下而言。那么自适应传输模式和异步传输模式到底有何区别呢?这里先要了解一下USB音频处理的大致流程。电脑通过USB接口将音频数据流传递给DAC上的USB接收芯片,USB接收芯片一边接收数据,一边合成时钟信号,然后转化为标准的I2S或者SPDIF信号,再传递给后面的数据接收芯片,再之后的流程与一般的DAC就没有分别了。而在这个过程中,影响USB音频音质的关键,就是USB接收芯片所合成的时钟信号。在自适应模式下,USB接收芯片,在合成时钟信号的过程中,会根据USB传输速率的变化,对时钟信号进行实时的调整。也就是说,在这种情况下,USB传输速率的变化,会直接影响到合成的时钟信号。举个夸张点的例子:比如现在播放一段44.1K的音频,当然就要求USB接收芯片合成一个44.1K的时钟。而这个44.1K的时钟,对应于USB传输的速率,比如,胡乱说一个,是200个数据包每秒。也就是说,如果要让USB接收芯片稳定的合成44.1K 的时钟,USB传输速率,也必须稳定在200个数据包每秒。但现在的问题是,USB传输的速度不可能这么稳定,也许这一秒传递了200个数据包,而下一秒,突然增加到了400个。而这个时候,USB接收芯片会怎么做?它会把实际合成的时钟,提高到88.2K。如果再下一秒的USB速率又变为100个数据包每秒,那么相应的合成时钟就变成了22.05K。当然,这是一个极端夸张的例子。可是为什么USB接收芯片要这么做?很简单。因为如果USB接收芯片只是单纯的合成44.1K的时钟,每秒处理200个数据包,那么一旦真的收到了400个或者100个数据包,缓存就会溢出,或者断流。所以,在自适应模式下,USB接收芯片所合成的时钟信号,是随USB口的传输速率实时变化的,传输速率是主,时钟信号为从,USB传输速率的变化直接影响到合成的时钟信号。那么可想而知,这个时钟信号的JITTER有多大。从而你也可以理解,为什么有人会说,换质量好的USB线能提高音质。那么异步传输是怎么工作的呢?说起来更简单,USB接收芯片现在只需要稳定的合成44.1K的时钟,也就是说,现在这个时钟与USB传输速率无关了。可是如果这样的话,缓存的问题怎么解决?答案是,软件控制。通过一套软件,根据缓存的负载情况,实时的控制USB口的传输速率,从而保证缓存不会溢出或者断流。在这种情况下,时钟信号为主,传输速率为从,时钟信号不受传输速率变化的影响,理论上这时的JITTER源,就只有工作晶振本身的误差了。这个方案,就是AYRE QB9所大肆宣传的“异步USB传输”模式。它的实现方式,就是通过TAS1020B这块芯片,配合本地的6M晶振,还有关键的控制传输速率的固件,来完成。而TAS1020B这块芯片,是一块可编程的芯片,并不是说用了这块芯片就一定是异步USB传输。DAC1 USB,DA11用的也是这块芯片,但都只用到了它 的自适应模式,关键还是看固件怎么写。所以从某种程度上来说,现在的DAC设计,比拼的已经不是硬件,而是软件了。
本帖最近评分记录:威望:+10(学习的人) 详细的技术贴
真正河蟹的社会无需提河蟹
级别: 城市猎人
发帖: 7454
威望: 2194
金钱: 8350
耳机:???
音源:???
耳放:从来没有买过二房
在线时间:1381(小时)
路过,纯路过。偶已经对USB音频及其技术不感兴趣。。。
级别: 骑士
在线时间:78(小时)
学习了,另外,说明LS的老了
级别: 骑士
发帖: 1017
耳机:007psk800T1KK...
音源:dCSWeissANnaim...
耳放:p1u717rpx35auditor..
在线时间:2829(小时)
原来是源自另一贴[ 此贴被leta在 20:04重新编辑 ]
级别: 侠客
耳机:DT990 W3  EC7
音源:hifidiyHDplayer IPC
耳放:仿A1 mini usb dac
在线时间:691(小时)
顶~学习了~
主区650党前主席
级别: 蝙蝠侠
发帖: 3590
金钱: 4177
耳机:HD800
在线时间:1838(小时)
很受教育,讲得很清楚,解决了不少疑惑。
级别: 骑士
发帖: 1139
金钱: 1121
在线时间:1432(小时)
帖子很有营养,楼主语言很规范,顶,学习,希望有达人进来做更详细讲解
主区650党前主席
级别: 蝙蝠侠
发帖: 3590
金钱: 4177
耳机:HD800
在线时间:1838(小时)
那再请教楼主,乐之邦01USD是否算“USB异步传输”呢?
级别: 蜘蛛侠
发帖: 4139
威望: 1156
金钱: 4454
耳机:HD600
音源:Impact Twin
耳放:CENSE BE-1
在线时间:3410(小时)
USB声卡的播放流程是这样的在主机应用程序中播放音乐前,USB声卡就会从主机端收到如下的两个包:Setup包 和 控制数据包  根据USB音频类协议分解Setup包,可以得知,本次控制传输的作用是设置USB声卡的采样频率,那么在播放音乐前,必须把I2S控制器的采样频率做相应的设置。才能和主机端保持同步。这是在主机开始播放音乐时做的事。然后在播放过程中USB音频类规定的USB同步传输周期为1ms,每隔1ms,USB设备就会收到一次主机传来的数据。而USB设备会在接收缓存中暂时性的存储这些数据。(TAS1020B的接受缓存刚好能存储24BIT/96K的数据)然后再进行处理,然后送到I2S控制器。在这个过程中,USB1.1因为带宽和优先度的原因,系统其他操作比较繁忙的时候容易出现丢包的状况,在丢包的状况下,USB芯片会把生成一个空数据包(就是全部都是0000000)。因此USB1.1的USB声卡经常出现小爆音。异步模式的USB DAC中,I2S控制器自己生成时钟,然后向USB芯片发出反馈,USB芯片再对音频数据流进行采样的转换(SRC),转换成I2S控制器所需要的采样,再发给I2S控制器。这时I2S控制器的时钟是自己生成的。没有和USB总线时钟同步,所以很在接收USB处理后的数据时,容易受时钟误差和抖动等影响。在《USB协议及规范》中这样的处理是十分不推荐的。“Such slips/stuffs will cause audible degradation in audio applications. ”自适应模式的USB DAC中,USB芯片会对数据包进行处理,根据播放开始前主机端发来的采样信息,加进数据包中,而I2S信号控制器在读取数据包后,会根据采样信息建立相应的时钟,并解包,装载音频数据。就从USB本身的协议来看,作为“目的”端来说,自适应模式无疑比异步模式更加适合音频。从电路上来看,QB9是通过FPGA读取播放前主机发来的采样格式信号,然后选择相应频率的时钟,在FPGA上对TAS1020B输出的信号进行时钟重整。而TAS1020B异步模式时所采用的时钟依然是内置的时钟。参考资料:《USB协议及规范》《USB Audio Class协议规范》同步类型& & & & & ——异步:不同步、但目的(sink)能提供数据速率反馈& & & & & ——同步:同步到USB的SOF时钟& & & & & ——可调:用反馈或feed forward 的数据速率信息实现同步[ 此贴被蓝子风在 23:34重新编辑 ]
socialgreen
级别: 禁止发言
在线时间:531(小时)
讲得清楚,便于学习,多谢了。
级别: 侠客
在线时间:1131(小时)
Quote:引用第7楼frui于 22:05发表的& :那再请教楼主,乐之邦01USD是否算“USB异步传输”呢?AYRE QB9的异步USB传输,是指在标准USB音频规范下的异步传输模式。01USD本身不属于这个规范。但是它在处理音频数据的过程中,有用到FPGA以本地时钟对音频数据进行整理,从这个角度来说,可以说它是异步的。但是这个异步,与QB9的异步USB传输,是两件不同的事,不同的概念。
级别: 蜘蛛侠
发帖: 4139
威望: 1156
金钱: 4454
耳机:HD600
音源:Impact Twin
耳放:CENSE BE-1
在线时间:3410(小时)
我不知LZ是因为商业原因还是什么原因,这么推崇所谓的异步模式.而打压传统的自适应模式.只是说一下,这样误导人是很不对的“在自适应模式下,USB接收芯片,在合成时钟信号的过程中,会根据USB传输速率的变化,对时钟信号进行实时的调整。也就是说,在这种情况下,USB传输速率的变化,会直接影响到合成的时钟信号。&红色的字完全就是误导呢。USB接收芯片在把音频数据包传给I2S转换器的时候,会加入该音频数据的采样等信息,不过这个信息不是随着USB传输速率的变化而变化的。而是取自开始接收音频流前主机发来的一个SETUP包。所以只要这个音频流不结束,那么I2S转换器合成时钟信号的频率就是固定的。还有就是USB的缓存主要是来自USB接口上的缓存,因为USB接收芯片收到数据后,第一件事就是把它放在接收缓存上,然后再交给USB处理器处理。那么异步传输是怎么工作的呢?说起来更简单,USB接收芯片现在只需要稳定的合成44.1K的时钟,也就是说,现在这个时钟与USB传输速率无关了。异步模式就更简单了,I2S转换器自己决定工作在什么模式下,合成什么样的时钟,而把采样率转换的问题交给USB处理器去处理,比如电脑送来的是44.1K的音频数据流,而I2S转换器一定要工作在96K下,那么USB处理器根据I2S转换器的这个反馈(根据USB音频类规范,这个反馈的采样精度要在1HZ,也就是说,根据实际时钟的精度,可能会是96001HZ或者95999HZ)启用速率匹配器,在每个服务周期的数据里进行插入一个采样,或者将2个采样合并为一个,总之就是将服务周期内缓存的音频数据处理处理成I2S转换器反馈中所需要的采样频率。而根据《USB协议及规范》中,这样的处理在音频类应用中会带来可闻的声音质量下降。Such slips/stuffs will cause audible degradation n audio applications.另外,再说一下异步模式出现的另一个方式。就是和其他USB设备竞争同步控制权失败,就会被迫转为异步模式。从某种意义上来说,异步模式是一个妥协产物USB的传输模式有4种,USB的时采样率同步模式有3种。这是《USB协议及规范》是基本之基本,其他所有的细化规范都是建立在这个大的基础之上的。
级别: 侠客
在线时间:1131(小时)
Quote:引用第11楼蓝子风于 08:07发表的& :我不知LZ是因为商业原因还是什么原因,这么推崇所谓的异步模式.而打压传统的自适应模式.只是说一下,这样误导人是很不对的.......我也不知你究竟是因为OO原因还是XX原因,给我戴这样或那样的帽子,还什么商业原因,汗。提醒你,我这贴只欢迎纯粹的以共同学习为目的的友好交流。在USB音频规范下,异步模式相对于自适应模式,理论上本身就是更合理的,实现起来也更困难的(固件编程)。推崇也好,打压也罢,你说我杀人放火我也不能封了你的嘴。但事实本身如此,自适应模式相对于异步模式,是一种更廉价、易用的妥协方案。Quote:引用第11楼蓝子风于 08:07发表的& :红色的字完全就是误导呢。USB接收芯片在把音频数据包传给I2S转换器的时候,会加入该音频数据的采样等信息,不过这个信息不是随着USB传输速率的变化而变化的。而是取自开始接收音频流前主机发来的一个SETUP包。所以只要这个音频流不结束,那么I2S转换器合成时钟信号的频率就是固定的。还有就是USB的缓存主要是来自USB接口上的缓存,因为USB接收芯片收到数据后,第一件事就是把它放在接收缓存上,然后再交给USB处理器处理。.我不知道是你真的没看懂我的话,还是故意假装不懂。但不管怎样,你都在歪曲我的本意。音频数据的采样率,当然是固定不变的,一段44.1K的音频,不可能放着放着突然变成48K。我这里说的是USB接收芯片实际合成的时钟。虽然理论上,理想状态下,这个时钟本应该是恒定不变的44.1K,但实际情况根本不是这样。实际情况是,在自适应模式里,USB传输口以毫秒为单位发送数据包,而USB接收芯片,则以毫秒为单位,以USB传输速率为参考,实时地调整合成时钟。也就是说,实际合成的时钟,是以44.1K为基准,以1KHZ的频率做微小的抖动。Quote:引用第11楼蓝子风于 08:07发表的& :异步模式就更简单了,I2S转换器自己决定工作在什么模式下,合成什么样的时钟,而把采样率转换的问题交给USB处理器去处理,比如电脑送来的是 44.1K的音频数据流,而I2S转换器一定要工作在96K下,那么USB处理器根据I2S转换器的这个反馈(根据USB音频类规范,这个反馈的采样精度要在1HZ,也就是说,根据实际时钟的精度,可能会是96001HZ或者95999HZ)启用速率匹配器,在每个服务周期的数据里进行插入一个采样,或者将2个采样合并为一个,总之就是将服务周期内缓存的音频数据处理处理成I2S转换器反馈中所需要的采样频率。而根据《USB协议及规范》中,这样的处理在音频类应用中会带来可闻的声音质量下降。.老实说我不知道你这段究竟在讲什么。异步传输模式跟采样率转换有什么关系?还有请你先搞清楚,我们现在讨论的自适应、异步模式,都是在标准USB音频规范下。不要把你说的通用USB规范扯进来。一个是《USB Audio Class Specification》,一个是《USB Specification》。后者与本文讨论的内容没有直接关系。编辑:仔细想了一下,你是不是把“异步传输” (Asynchronous& transmission),和“异步采样率转换”(Asynchronous Sample Rate Convert) 这两个概念混淆起来了?[ 此贴被whisky_qz在 10:00重新编辑 ]
级别: 蜘蛛侠
发帖: 4139
威望: 1156
金钱: 4454
耳机:HD600
音源:Impact Twin
耳放:CENSE BE-1
在线时间:3410(小时)
在USB音频规范下,异步模式相对于自适应模式,理论上本身就是更合理的,实现起来也更困难的(固件编程)。推崇也好,打压也罢,你说我杀人放火我也不能封了你的嘴。但事实本身如此,自适应模式相对于异步模式,是一种更廉价、易用的妥协方案。我参考的证据有2个《USB协议及规范》以及《USB Audio Class协议规范》(英文全名是叫《USB Device Class Definition for Audio Devices》)这两个才是真正的USB设备规范,对比了《USB Device Class Definition for Audio Devices》才确定Asynchronous(异步),Synchronous(同步),Adaptive(自适应)模式对应的就是《USB协议及规范》中的Asynchronous(异步),Synchronous(同步),Adaptive(可调)而《USB Device Class Definition for Audio Devices》和《USB协议及规范》中都是说明Asynchronous模式是对声音有影响的。如果你要坚持你的论点,那请拿出相应的证据来吧。我说的2个规范在网上都可以查到的。Quote:引用第11楼蓝子风于 08:07发表的& :红色的字完全就是误导呢。USB接收芯片在把音频数据包传给I2S转换器的时候,会加入该音频数据的采样等信息,不过这个信息不是随着USB传输速率的变化而变化的。而是取自开始接收音频流前主机发来的一个SETUP包。所以只要这个音频流不结束,那么I2S转换器合成时钟信号的频率就是固定的。还有就是USB的缓存主要是来自USB接口上的缓存,因为USB接收芯片收到数据后,第一件事就是把它放在接收缓存上,然后再交给USB处理器处理。.我不知道是你真的没看懂我的话,还是故意假装不懂。但不管怎样,你都在歪曲我的本意。音频数据的采样率,当然是固定不变的,一段44.1K的音频,不可能放着放着突然变成48K。我这里说的是USB接收芯片实际合成的时钟。虽然理论上,理想状态下,这个时钟本应该是恒定不变的44.1K,但实际情况根本不是这样。实际情况是,在自适应模式里,USB传输口以毫秒为单位发送数据包,而USB接收芯片,则以毫秒为单位,以USB传输速率为参考,实时地调整合成时钟。也就是说,实际合成的时钟,是以44.1K为基准,以1KHZ的频率做微小的抖动。你是真不懂还是装懂?异步模式下,音频流传输前USB设备收到的SETUP包里包含着采样信息,根据采样信息可以确定所需要的时钟频率,而采样信息是在USB处理把音频流开始之前SETUP中的采样信息加在传输给I2S转换器的数据包里,即使接收时发生丢包,传输给I2S转换器的数据包里依然还会,一个设备服务周期发送一次,而I2S转换器根据收到加载的采样信息后根据采样信息进行相应的时钟。只要音频流没结束,加载的采样信息是固定不变的。而I2S合成器合成会判断采样是否改变,如无改变就不变更时钟,不会发生抖动。记得,不是以传输速率作为参考,而是以传输数据中的采样信息作为参考!!这是你说法中最大的错误!还有一点就是,USB音频设备内的服务周期是10MS,以一个服务周期为单位来确认采样信息是否改变,是否需要修改当前合成时钟。Quote:引用第11楼蓝子风于 08:07发表的& :异步模式就更简单了,I2S转换器自己决定工作在什么模式下,合成什么样的时钟,而把采样率转换的问题交给USB处理器去处理,比如电脑送来的是 44.1K的音频数据流,而I2S转换器一定要工作在96K下,那么USB处理器根据I2S转换器的这个反馈(根据USB音频类规范,这个反馈的采样精度要在1HZ,也就是说,根据实际时钟的精度,可能会是96001HZ或者95999HZ)启用速率匹配器,在每个服务周期的数据里进行插入一个采样,或者将2个采样合并为一个,总之就是将服务周期内缓存的音频数据处理处理成I2S转换器反馈中所需要的采样频率。而根据《USB协议及规范》中,这样的处理在音频类应用中会带来可闻的声音质量下降。.老实说我不知道你这段究竟在讲什么。异步传输模式跟采样率转换有什么关系?还有请你先搞清楚,我们现在讨论的自适应、异步模式,都是在标准USB音频规范下。不要把你说的通用USB规范扯进来。一个是《USB Audio Class Specification》,一个是《USB Specification》。后者与本文讨论的内容没有直接关系。编辑:仔细想了一下,你是不是把“异步传输” (Asynchronous& transmission),和“异步采样率转换”(Asynchronous Sample Rate Convert) 这两个概念混淆起来了?你不要偷换概念了,USB设备传输模式中没有异步传输的,Bulk,实时,中断,控制。USB设备中只有这4种传输方式。不懂的话,就老实说不懂,不要自己创造莫须有的模式来证明的。USB音频类的规范我也查询过的。都是基于USB规范基础之上的,不会创造什么USB规范不允许,或者没有定义的东西的,只是对音频方面进行细化规范USB设备内拥有不同时钟时,才需要采样率同步。不知为什么你会理解成异步传输呢?是要转移重点么?还是要偷换概念。3种同步方式中Asynchronous(异步)是由设备自己决定采样率(时钟),也按照自己的周期读取缓冲内的数据,不过会发送一个反馈给USB控制器,我现在的多少采样下,你要发送这个采样率下的数据过来。所以USB控制器会使用采样匹配器对从主机收到的数据进行采样率匹配,对数据进行插值或者合并等处理,让最终送到I2S转换器缓冲内的数据符合I2S转换器所需要的采样率。Synchronous(同步)读取音频流的采样信息,确定一个系统服务周期内读取缓冲内应该有多少数据,然后根据结果读取(一个系统服务周期读取一次)。再根据采样信息进行合成相应的音频串行数据流Adaptive(可调)USB控制器会把采样信息加载在发送至I2S转换器的数据包中,然后I2S转换器根据加载的采样率数据对比当前的采样率,如果不同,就改变采样率和时钟,如果相同,就不进行改变。这样说总该明白了吧,时钟的异步模式并不适合音频回放。而作为录音设备来说是OK的。纵观各家所出的USB芯片,基本都是录音通道支持异步模式,而回放通道却是自适应模式。这是有一定理由的。而且说到技术,TI的技术远比Wavelength Audio's 要高,会这样处理是有其原因的PS,上面的话说太重了,不应该直接盖上商业目的的帽子,这里道歉。欢迎共同讨论。关于Adaptive的翻译,我更赞同的是可调,因为作为“源”来说的话,是可以通过控制指令来调整它的采样率,来输出所需要的数据流的。而对于“目的”来说,是可以调整自身的采样率来适应USB控制器传输来的数据。
级别: 蜘蛛侠
发帖: 4139
威望: 1156
金钱: 4454
耳机:HD600
音源:Impact Twin
耳放:CENSE BE-1
在线时间:3410(小时)
TAS1020B的资料,上面可以下载到PDFOn-chip adaptive clock generator (ACG) supports asynchronous, synchronous and adaptive synchronization modes for isochronous endpoints 芯片自带的可调时钟发生器(ACG)可以支持终端的异步,同步和自适应同步模式
级别: 侠客
在线时间:1131(小时)
Quote:引用第13?nogroups楼蓝子风于 11:10发表的& :在USB音频规范下,异步模式相对于自适应模式,理论上本身就是更合理的,实现起来也更困难的(固件编程)。推崇也好,打压也罢,你说我杀人放火我也不能封了你的嘴。但事实本身如此,自适应模式相对于异步模式,是一种更廉价、易用的妥协方案。我参考的证据有2个《USB协议及规范》以及《USB Audio Class协议规范》(英文全名是叫《USB Device Class Definition for Audio Devices》)这两个才是真正的USB设备规范,对比了《USB Device Class Definition for Audio Devices》才确定Asynchronous(异步),Synchronous(同步),Adaptive(自适应)模式对应的就是《USB协议及规范》中的Asynchronous(异步),Synchronous(同步),Adaptive(可调)而《USB Device Class Definition for Audio Devices》和《USB协议及规范》中都是说明Asynchronous模式是对声音有影响的。如果你要坚持你的论点,那请拿出相应的证据来吧。我说的2个规范在网上都可以查到的。.......哎,累啊。 一点点来说吧。1、首先我在《USB音频规范》里并没有看到说异步模式会影响声音的说法。你说有,那么请你指出具体在哪。第几页,第几段。然后,你说你在《USB规范》里也看到说异步传输会影响音质。那我问你,那句话的具体硬件环境是什么?软件环境是什么?影响声音的原理又是什么?与现在我们讨论的“异步USB传输”的情况相同么?这些你都没考虑,光凭这句话能说明什么问题?《USB规范》是什么东西?是一个最基本的、大纲性质的文件。你在完全没考虑具体实施环境的情况下,随便从中拉出一句话,然后就凭这句话否定一个实际方案,我不认为这是严谨的做法。2、《USB规范》中定义的USB设备传输模式有4种:爆发,实时,中断,控制。这没有错。《USB音频规范》,则都是基于这4中模式里的“实时”模式。而“实时”传输模式中又分3种:同步、异步、自适应。为什么我一直强调,讨论异步USB传输,一定要在《USB音频规范》下,就是这个道理。而为什么我说你不要把《USB规范》扯进来,也是这个道理。所以,我从头到尾都没有“偷换”什么东西,更没有“创造”什么东西,而是你在硬给我扯进来这些东西。3、你对这三种传输模式,或者按你的话说,同步模式,解释的很到位。不过我左看右看,最终发现。。。不是跟我说的是一回事么?在异步模式下,源文件采样率为44.1K,这是不变的。 USB接收芯片以本地独立时钟合成44.1K的时钟信号,同时,由软件实时控制USB传输速率(发送多少数据过来)。在自适应模式下,源文件同样是44.1K,但是由于USB传输速率的不稳定,实际传输的数据不可能恰好满足44.1K的采样率。于是时钟合成器就根据当前的实际采样率,调整合成时钟。请问你的解释与我的解释有矛盾么??另外从你的解释中我也看不出来,你是怎么得到“异步模式不适合音频回放” 这个结论的。
级别: 侠客
在线时间:1131(小时)
Quote:引用第14楼蓝子风于 12:26发表的& :TAS1020B的资料,上面可以下载到PDFOn-chip adaptive clock generator (ACG) supports asynchronous, synchronous and adaptive synchronization modes for isochronous endpoints .......谢啦,早就看过了。编辑: 另外我发现你在讨论“异步”模式的时候,总是要牵扯到采样率的转换、匹配,我觉得很奇怪。所谓“异步”模式,只是说作为USB传输的接收端,其工作时钟与其源端设备的时钟不直接发生关系。但这并不表示,非要把一个44.1K采样率的文件以另外一个不相关的96K的采样率来播放啊?!所以我说,你是不是把“异步传输” 和 “异步采样率转换” 这两个概念混淆了?[ 此贴被whisky_qz在 13:46重新编辑 ]
级别: 蜘蛛侠
发帖: 4139
威望: 1156
金钱: 4454
耳机:HD600
音源:Impact Twin
耳放:CENSE BE-1
在线时间:3410(小时)
Quote:引用第15楼whisky_qz于 13:34发表的& :哎,累啊。 一点点来说吧。1、首先我在《USB音频规范》里并没有看到说异步模式会影响声音的说法。你说有,那么请你指出具体在哪。第几页,第几段。....... 这个是《Universal Serial Bus Device Class Definition for Audio Devices》的下载,来自USB.ORG。是官方的USB音频类应用规范。这个是所有USB音频设备的官方规范。其中关于同步,异步,自适应模式的描述来自第19页,关于3种模式的描述,都是说到是时钟方面的规范,也就是采样率方向的规范,比如要锁定到哪,要如何调整时钟这是USB规范1.1版,TAS1020B只支持到USB1.1呢。所以以这个为根据其中USB数据流模型是第5章。这个是翻译过来的《USB协议及规范-USB数据流模型》你留意下其中对于同步,异步,可调的描述。在对比《Universal Serial Bus Device Class Definition for Audio Devices》中的描述。这里就有说到异步模式对声音的影响了。是属于廉价级的东西呢。自适应模式下,采样率是以隐式的信息加载在USB控制器发送到I2S端点上的,而这个信息是在USB控制器上加上的。每隔一个服务周期加载一次。异步嘛~~~等你研究完这2部标准的规范再说吧~~~另外提供一个USB转I2S的开发实例,里面有说到USB播放时的实际流程,很容易看得懂的。期待您能拿出您所依凭的《USB音频规范》来,一起研究研究~~~~
级别: 侠客
耳机:BoseOE
音源:ipod touch
在线时间:176(小时)
実妹はこの世で最も萌えな存在
级别: 骑士
发帖: 1764
金钱: 1438
耳机:##屏蔽##
音源:##屏蔽##
耳放:##屏蔽##
在线时间:591(小时)
这里怎么开战了。。。。。。。
Pages: ( 1/7 total )
>> 行业资讯
&|- 行业信息
>> 耳机论坛
&|- 新手入门
&|- 耳机论坛
&|- 高端耳机系统讨论区
&|- 耳塞/随身听综合区
&|- 随身音频/视频播放器
&|- 耳机论坛精华区
>> 国际著名耳机品牌专区
&|- DENON天龙
&|- AKG爱科技
&|- SENNHEISER
&|- audio-technica 铁三角
&|- 创新科技 CREATIVE
&|- beyerdynamic 拜亚动力
&|- Fidelio
>> 行业品牌专区
&|- Zephone泽丰科技
&|- 钰龙韵电子 YULONG Audio
&|- 小不点 Little Dot
&|- 达音科 DUNU
&|- 七彩虹colorfly
&|- 享声音响
&|- SNM 瀛賽拉
&|- 节奏音频
&|- 丹娜弗瑞普斯
&|- 斯巴克音响
&|- MAGIC SNAKE 撒哈拉魔蛇
&|- 馨睿科电子 Shinrico
&|- 欧博Opera
&|- 旷世音响专区
&|- AURALiC 声韵音响
&|- 紫金之韵 VTC
>> 商业品牌专区
&|- Jaben中国
&|- 欣韵耳机专营店 SINYUN
&|- 【香港亦轩耳机/ 数码音响专门店】【香港亦轩全国推广耳机文化计划】
&|- 天津联动印象耳机俱乐部Linkimage
&|- 圆声带/Soundluck
&|- 雪马Man Show(男人秀)
&|- 香港恒源数码及LEAR品牌专区
&|- 上海知音堂
&|- 无锡百胜百BSB
&|- 重庆飞翔HIFI馆
&|- 北京三鼎创新
&|- 讯禾 écouteurs &我们喜欢耳机&
&|- 壹视听
&|- 北极声(HIFI 数字影音馆)
&|- DMA 泛音(香港個人音樂產品專門店)
&|- 电脑音频
&|- 台式CD/音箱区
>> DIY精品区
&|- DIY及技术讨论区
&|- 家电维修
>> 音乐论坛
&|- 音乐综合区
&|- 古典音乐
&|- ACG音乐
&|- 二手交易与购买咨询区
&|- 杂货铺
&|- 音乐唱片交易区
&|- 二手交易中介区
&|- 商业信息区
&|- 耳放/DIY卖场
&|- 团购区
&|- 个人DIY卖场【未认证】
>> 谈天说地
&|- 休闲版[自动转到shui.erji.hk]
&|- 摄影/旅游
&|- 各地交流
>> 建议与投诉区
&|- 建议与投诉区
Powered by
网友所发文章不代表本站立场,耳机大家坛版权所有,未经许可不得转载。 www.erji.net
深圳市恒之瑞科技有限公司
《中华人民共和国增值电信业务经营许可证》粤B2-
耳机大家坛成立于2002年&
《耳机大家坛》图形LOGO及文字均为注册商标

我要回帖

更多关于 atm异步传输模式 的文章

 

随机推荐