Re: [交易]徵-高雄 純銀USB線
看板Audiophile (電腦喇叭 音響系統)作者john0312 (Chen John L)時間15年前 (2011/04/04 01:49)推噓9(9推 0噓 29→)留言38則, 12人參與討論串3/5 (看更多)
本篇可能對非電資科系的朋友上會有閱讀困難, 在此致歉.
結論於最尾端.
Tosca兄提出的網站http://www.jitter.de/english/engc_navfr.html
其中參考一篇Paper: http://www.jitter.de/pdfextern/jitter92.pdf
這篇是1992年AES Convention的Paper, 確實詳細的說明了許多Jitter
的來源與數學模型.
然而1992年沒有USB. 當時大多也沒有超過48kHz/16bit, 因此
不需要很高的傳輸速度, 然而到了現在, USB 2.0由於需要以高速
來傳輸數據, 其訊號在線中的波長已經不會遠大於線的長度,
因此需要用所謂的傳輸線模型(Transmission Line Model),
也就是該Paper中提到更複雜的模型.
當然, 我們仍然可以照Paper中的數學模型去分析, 取得
一個大致上準確的結果, 作為參考, 這個模型會大致準確
的原因是USB下我們有做到阻抗匹配, 因此不會有很大的住波.
首先我們考慮一個一階線路, 作為USB傳輸線路的模型:
R
Vin ---/\/\/\/\---+----Vout
|
---
--- C
|
V (偷懶一下, 用V代替三角形接地符號)
對於一個Step Function輸入: Vin = 0 for t < 0
V0 for t >= 0
Vout = (1-e^(-t/(RC)))*Vo
其中, R = 45 Ω [1], 為USB訊號驅動線路的輸出組抗.
C <= 10 pF [2], 為線路與接收傳輸晶片的電容.
V0 = 400mV [1], 為USB 2.0 High Speed的高態訊號, 由於
低態為-400mV, 所以總共差距為800mV.
一條最好的線, 根據該論文的模型, C該為最小, = 0,
因此, 這種情況下, Vin = Vout, 所以完全沒有Jitter.
然而考慮一條C = 10pF, 勉強符合USB標準的線, 對於
上一個波時間為1/(480MHz), 與時間趨近於無限大, 的
狀況的反應. 這種狀況是能產生最大Jitter的情況.
時間為: 1/(480MHz)
Vinitial = (800mV * e^(-(1/(480*10^6))/(R*C)))
~= 7.806698116174247 mV
=> V0' = 800mV - Vinitial ~= 792.1933018838257 mV
=> Vout = ( 1 - e^(-t/(RC)) ) * V0' + Vinitial
求解輸出電壓為400mV (中間值)之時間,
Vout = 400mV = ( 1 - e^(-t/(RC)) ) * V0' + Vinitial
=> t ~= 3.16373*10^-10 s
時間趨近無限大:
Vout = 400mV = ( 1 - e^(-t/(RC)) ) * V0
=> t ~= 3.11916*10^-10 s
相减其差距為Jitter:
ΔTusb ~= 4.45654*10^-12 s = 4.45654 ps
現在考慮, 假設DAC運作於Asynchronous Mode, 那這時Jitter不影響,
因為USB的Clock跟DAC的Clock完全沒有關係.
所以我們假設DAC運作於Synchrounous Mode, DAC的Clock由USB的
1kHz Frame導出, 因此DAC受USB影響. 此時, 由於我們只考慮
與線有關的Jitter ( Line Induced Jitter ), 所以我們在
考慮兩個1kHz Frame之間的Jitter時, 我們要考慮, 開始與結束
的兩個bit的Jitter加總.
Jitter = (ΔTusb * 2 )/(1/(1kHz))
= ( 4.45654 ps * 2 ) / ( 1ms )
= 8.91307 * 10^-9
= 8.91307 ppb ( parts per billion )
考慮DAC輸出48kHz, 每個Sample之間的Jitter為:
ΔTdac = (1/(48kHz)) * 8.91307 ppb
~= 1.85689*10^-13 s
= 0.185689 ps
這已經遠小於你的石英震盪器的Jitter,
因此不會造成影響.
-----------------------------------------------------------
由於在1992, 大多數位音訊傳輸方式都是透過Synchronous的方式.
(註: 這裡的Synchrounous不是USB的那個)
也就是說有一個Clock, 所有訊號都是在這個Clock的Transition
進入目標IC的, 這種狀況Clock訊號線的Jitter當然會顯相當
重要. ( SPDIF屬於這類 ) 然而USB不是這樣的架構, 因此
這樣的模型對於USB不是很適用, 反而1kHz Jitter造成的
大多來源是系統Scheduling無法在正確時間給出Frame.
對於USB線的Jitter Modeling, 我個人認為從阻抗不匹配
還有▽ε != 0 ( Poisson's Equation的前提 )著手計算
會比較正確. 不過這部分我還沒做詳細的分析.
原因是如剛剛所說的, USB的Jitter大多來自一個封包
在不正確的時間被傳送, 而不是一個位元傳送時間不正確.
前者來自電腦作業系統Scheduler的缺陷, 後者來自
電路的Line Induced Jitter以及Transciever Jitter
( 也就是上一段沒有仔細分析的項目 )
但, 其中USB有規範後者的容許值, 約在15% of UI [3].
這些種種Jitter都是USB的, 這些Jitter要影響到
DAC的運作的前提是, USB的Clock要與DAC的Clock
有關聯, 其中Synchronous與Self Adaptive是有這樣
的關聯的. Synchronous的上面已經解釋了, Self Adaptive
的Clock是透過觀察電腦傳輸資料的速度作為Clock, 因此
受影響. 而對於Asynchronous來說, USB的Jitter一點
都沒有影響, 就好像同一張CD是空運還是海運來台不影響
音質.
-----------------------------------------------------
推 ultimatevic:好奇如果USB真的是在資料傳送上有差異...那外接硬碟.. 04/03 20:07
→ ultimatevic:傳一次檔案就少一點資料...多傳幾次就... 04/03 20:08
好問題, 我最愛好問題了.
首先, 任何電子設備都會有錯誤, 寫1到記憶體, 他有一定
的機率會變成0, 這機率很小, 小於10^-12 [4]. 這樣來說,
如果你沒有一秒幾十萬MB上下的話, 你恐怕沒有幸運到
會碰到一個這樣的錯誤.
當然剛剛那是說記憶體錯誤, 然而USB硬碟跟DAC
也會有這種問題, 只是他們的機率更大, 所以你更
容易遇到. 這你知, 我知, USB的開發者也知,
因此他們在傳送的封包中做了偵錯的動作[5],
降低了錯誤的機率.
如果所有USB封包都做了偵錯, 那就好了,
不過沒有. 我們都知道, USB有: Control,
Bulk, Isochronous, Interrupt, 四種傳輸方式,
其中USB Audio是使用Isochronous, 硬碟是使用
Bulk. Isochronous傳輸*沒有*偵錯, Bulk有.
所以, USB Audio的錯誤率會比USB硬碟的錯誤率高.
我是沒看到USB的Spec跟我Quote說那錯誤率是多少,
不過他們說不用擔心, 不會造成任何問題[6].
這與我的觀察相符, 我個人USB用到現在沒遇過
他Retry (至少沒被我觀察到).
如果擔心的話, 建議還是全部用Bulk,
甚至自己加偵錯碼. ( 假設USB DAC你是自己DIY的 )
----------------------------------------------------------
結論:
USB線的更換是不該造成任何差別的,
如果有差別, 造成的原因應該如下:
1. 非Asynchronous Mode的DAC.
2. 環境雜訊太多.
所以我建議, 如果你有聽到任何USB線的
差別, 你應該:
1. ABX測試確認不是心理作用.
2. 升級你的DAC, 使用Asynchronous DAC
3. 改寫你的DAC的韌體與驅動, 採用Bulk傳輸模式與額外的偵錯碼.
4. 把所有沒有FCC標誌的電子產品丟出窗外.
謝謝配合.
至於USB線影響傳輸速率, 那很明顯是那條線
不符合USB的標準, 所以去換一條符合USB標準的即可.
[1] USB-IF, USB 2.0 Specification, 7.1.1.3 Pg 129
[2] USB-IF, USB 2.0 Specification, 7.1.6.2 Pg 144
[3] USB-IF, USB 2.0 Specification, 7.1.2.2 Pg 133
[4] Bernd Panzer-Steindel, CERN/IT, Data integrity, Pg 2
[5] USB-IF, USB 2.0 Specification, 4.5 Pg 19
[6] USB-IF, USB 2.0 Specification, 4.7.4 Pg 21
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.134.19.219
→
04/04 01:55, , 1F
04/04 01:55, 1F
→
04/04 01:57, , 2F
04/04 01:57, 2F
→
04/04 01:58, , 3F
04/04 01:58, 3F
→
04/04 01:58, , 4F
04/04 01:58, 4F
→
04/04 01:58, , 5F
04/04 01:58, 5F
→
04/04 01:59, , 6F
04/04 01:59, 6F
→
04/04 02:01, , 7F
04/04 02:01, 7F
→
04/04 02:01, , 8F
04/04 02:01, 8F
→
04/04 02:01, , 9F
04/04 02:01, 9F
→
04/04 02:06, , 10F
04/04 02:06, 10F
→
04/04 02:07, , 11F
04/04 02:07, 11F
→
04/04 02:08, , 12F
04/04 02:08, 12F
→
04/04 02:08, , 13F
04/04 02:08, 13F
→
04/04 02:08, , 14F
04/04 02:08, 14F
→
04/04 02:11, , 15F
04/04 02:11, 15F
→
04/04 02:11, , 16F
04/04 02:11, 16F
→
04/04 02:14, , 17F
04/04 02:14, 17F
推
04/04 02:21, , 18F
04/04 02:21, 18F
推
04/04 02:23, , 19F
04/04 02:23, 19F
→
04/04 02:23, , 20F
04/04 02:23, 20F
→
04/04 02:25, , 21F
04/04 02:25, 21F
來看一個方波訊號:
V 9 7
^ <-------><----->
| ***** *** ****
|
| ...
|
| **** **** ****
+--------------------------------------------------------------------> t
123456789123456789
假設平均你每個週期是8, 那我們看到一個波形週期為9, 那這邊
ΔT = 1
我們又看到第二個週期為7, 所以
ΔT = -1
我們累積一段時間之後, 我們看所有週期的ΔT,
然後找最大跟最小的, 例如說
最大ΔT = 2
最小ΔT = -2
那Peak to Peak Jitter = 2 - (-2) = 4
※ 編輯: john0312 來自: 220.134.19.219 (04/04 02:33)
→
04/04 02:29, , 22F
04/04 02:29, 22F
→
04/04 02:29, , 23F
04/04 02:29, 23F
→
04/04 02:35, , 24F
04/04 02:35, 24F
→
04/04 02:36, , 25F
04/04 02:36, 25F
→
04/04 02:36, , 26F
04/04 02:36, 26F
→
04/04 02:37, , 27F
04/04 02:37, 27F
→
04/04 02:38, , 28F
04/04 02:38, 28F
推
04/04 08:01, , 29F
04/04 08:01, 29F
推
04/04 08:19, , 30F
04/04 08:19, 30F
推
04/04 09:10, , 31F
04/04 09:10, 31F
推
04/04 12:45, , 32F
04/04 12:45, 32F
→
04/04 13:31, , 33F
04/04 13:31, 33F
推
04/04 13:43, , 34F
04/04 13:43, 34F
推
04/04 14:16, , 35F
04/04 14:16, 35F
→
04/04 14:18, , 36F
04/04 14:18, 36F
推
04/05 14:58, , 37F
04/05 14:58, 37F
→
04/05 16:28, , 38F
04/05 16:28, 38F
討論串 (同標題文章)
Audiophile 近期熱門文章
PTT數位生活區 即時熱門文章