作者aztec1234 (调适生活)
看板Headphone
标题Re: [问题] 1394、USB或是PCI-E数位输出?
时间Sun Feb 1 15:58:19 2009
丑人献曝一下...
小弟最近的工作正好需要研读USB的技术与规格,
不过由於对Audio的部分了解并不多,只是看到有人提到USB传送的"数位讯号",
所以想跟大家分享一下USB传送的数位讯号是什麽样的型式,
有错还请大家帮忙指正!
USB是一种Host-Device型式的传输介面,首先一定要有一个Host端,
由Host端去辨认连接的Device为何并去控制存取,只有两个Device连结是无法传输的
(IEEE 1394是Peer-to-Peer,任何连接的节点都可以是Host或Device)
(USB On-The-Go解决了两个Device互连的传输问题,所以1394的优势愈来愈小)
如同许多传输介面(I2C,LVDS...etc),
USB也是差动传输处理,由D+与D-这样的一对data line来传送资料,
通过pull-up/down电阻将D+或D-上的电压准位拉至一定程度,用来产生等效的差动电压,
来达到高或低的电压准位,方便USB Host去辨认连接的Device为Low-speed,
Full-speed或High-speed装置,并去控制、通讯等等
所以USB cable上的时间延迟会是个问题,
故USB选择的传输编码方式是Non-Returned to Zero Inverted, NRZI,
NRZ编码的一种
NRZ指的是"不归零",只有"0"与"1"两种电压准位状态,
没有介於0和1中间的状态
NRZI的编码方式为:
想要传送"1"时,保持data line的电压为原来的电压准位
想要传送"0"时,将data line上的电压准位反转
(注意,只需反转,电压能到多少Volt一点关系也没有,接收端认的是"有没有"反转,
而不是反转前後的电压)
这样的编码方式不需靠同步的时脉讯号也能做到同步的资料传输,
而是藉由每一次的电压反转的时间来对本身的时脉作同步调整,
再用已同步调整後的时脉去解码资料
而连续传送"0"时,因为data line上的电压准位不断被反转,
所以本身的时脉讯号也会跟着不断被同步调整,对於同步资料处理上会有很大的好处,
故USB一开始会传送一组"同步序列",内容为七个"0"与一个"1"
00000001
前七个"0"用来同步时脉,後一个"1"来表示"同步序列"结束,开始传送"资料序列"
但是碰到连续的"1"时,data line的电压准位不会被反转,一直维持在同样的准位,
接收方一直没得到电压反转的时间,本身的时脉也不会被同步调整,
所以过长的连续"1"会造成时脉同步不佳,甚至根本没有同步
为了解决此问题,USB在NRZI的编码上作了"位元充填"(Bit-stuffing),
当连续传送6个"1"後,一定会在下一个位元塞一个"0",强迫电压准位反转,
以同步时脉
由此可以看到,USB不会像LVDS或I2C介面那样将资料与时脉一起传送,
而只传送资料,并利用NRZI编码来造成电压反转,并用电压反转的时间去同步时脉
如果一切都很理想,那麽USB的资料同步化是很好的,
而且不用去理会jitter
不过实际上jitter仍然是个问题,因为
电压反转也是要时间的,
电压反转的时间一旦延迟,前面大家讨论到jitter的影响多多少少一定出现
(电压反转所需的时间:把data line上的pull-up电阻断开-->把pull-down电阻接上)
为何不作De-jitter?
只能说USB可不是为了Hi-end音响使用者所设计的,
或者这麽说,USB从来就不是因为音响需求发展的东西,
De-jitter对於大多数,或者90%以上的USB用途,
不但增加成本,而且对於使用上的改进效益可能不到增加成本的1%
而IEEE 1394为什麽不受青睐也是如此,
速度已经逐渐要被USB追上,成本比USB贵,
Peer-to-peer的优点也随着USB OTG技术出现而没有优势
频宽...以电脑效能的进步,这东西会愈来愈感觉不出来
而且Device也不需要额外外接电源
IT产业毕竟是个成本效益至上的环境,
各位Hi-end使用者小弟认为还是玩光纤或同轴吧!
--
参考文献:
http://www.usb.org/
USB的规格书
很多网页或书本也有相关内容,不过多多少少会有错,
这时找找最根本的来源是比较好的选择
跟Audio相关的在
http://www.usb.org/developers/devclass_docs
看Audio class的部分,不过小弟目前仍然在研读中@@
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.66.245.169
1F:推 wwwea:push 02/01 16:09
2F:推 ckm0089:SPDIF也是这种编码方法 数位传输绝对不是只有0101 02/01 16:18
3F:推 znew1219:电位差是最原始的原理(说明观念用),根据不同应用层面才会 02/01 16:27
4F:→ znew1219:衍伸出一堆更复杂的作法 02/01 16:29
5F:→ aztec1234:SPDIF是Biphase mark code,这跟NRZI有一个关键不同 02/01 16:32
6F:→ aztec1234:就是Biphase mark code是带有时脉资讯的 02/01 16:32
7F:→ aztec1234:当电压准位要反转时,必需在一个时脉周期里做 02/01 16:33
8F:→ aztec1234:NRZI则完全不管时脉周期,另外SPDIF不是差动传输的型式 02/01 16:34
9F:推 ckm0089:感谢楼上大大赐教m(_ _)m 小弟再去仔细看清楚协定内容 02/01 17:17
10F:推 easybluea:推一个 真的是看耳机版长知识 02/01 17:32
11F:推 handoluslash:快推 不然人家会认为我看不懂 02/01 18:11
12F:推 mdisy:感谢分享 :) 02/01 19:57
13F:→ johnnycgi:长了许多知识,一定要推一个 02/01 20:15
14F:→ aztec1234:h兄抱歉!下次小弟会想办法用更容易懂的方式说明@@ 02/01 21:02
15F:→ aztec1234:好像太多专有名词@@...以後想想有什麽说法比较好懂 02/01 21:03
16F:推 handoluslash:38啦 是我自己知识浅薄 不关你的事 我真浅 唉 02/01 22:22
17F:推 Zenta:推! 02/01 23:24
18F:推 yugif:光纤同轴小弟都有用,不过没hi-end的感觉,玩真空管比较实际 02/02 10:47