2011年11月27日 星期日

各種DAC的輸入介面比較

首先提一下,理論是一回事,實作是另一回事,二者不可偏廢,總和才是最後的結果。

理論上,也就是技術上的瓶頸,
S/PDIF與AES/EBU,這二者大體相同,
其設計的目的是為了避免轉盤與DAC的clock有差異,跑一段時間後buffer overflow或underflow,產生爆音,
因此S/PDIF與AES/EBU將clock編碼進資料流中,讓DAC去跟隨轉盤的clock;
遺憾的是用PLL去鎖這clock雖然可以確保長時間DAC的clock與轉盤的clock沒差異,但PLL又會引入jitter,
例如很常用的那個receiver IC CS8416的datasheet上寫著典型的jitter 200ps!
當然,別忘了前端送過來的訊號本身也會帶jitter。
有些轉盤與DAC都能吃外接clock,由獨立clock同時送給轉盤與DAC,那就避開S/PDIF receiver的PLL;
有些採取的是二級PLL,第一級能容許的誤差範圍比較大(因此輸出jitter也高些),第二級比較小(輸出jitter就較低);
有個特別是ESS Sabre這個DAC IC( http://records2ear.blogspot.com/2010/01/ess-dac-sabre.html ),有獨特的壓低jitter的能力;
另一個是Lavry這專業廠牌,也有類似的手法;
還有一個是Chord的DAC64,則是採用大buffer避開overflow或underflow再外加獨立clock處理。

S/PDIF有個好處,用光纖那麼轉盤與DAC間就沒有電氣導通,排除轉盤常見的嚴重電路雜訊;
用同軸電纜,通常也是經過變壓器,也有同樣效果。

USB上可以跑很多種形式,bulk/isochronous、adaptive/asynchronous...
最常見的是adaptive,這是由host端(通常是PC或Mac)自己控制,每秒丟等同於sampling rate的資料量給DAC,DAC再根據這資料量去產生clock(細節我還沒查到);
因為PC或Mac是以軟體控制丟資料的頻率,加上PC或Mac總是很忙,都資料的頻率變異率很大,
因此DAC端的clock的jitter就很嚴重。
adapative被大量採用可能是因為IC廠商為了PC市場而開發,採取的是盡量壓低成本不計音效的手法。
這方式通常不用掛driver。

asynchronous則是DAC主控,內部有個sampling rate的clock,每隔一段時間向host端要一筆資料,再根據自己內部的clock轉成類比;
這作法因為clock是自己的,自己能控制其精準度,因此能有較低的jitter。
這方式可以不用掛driver,不過大半的還是要。

還有些跑的不是以上這二種為了audio製作的方式,而是用類似隨身碟的bulk mode,
這該可以做到與asynchronous相同的效果,不過得掛driver。

USB的大問題在接地造成的電氣雜訊,PC/Mac端本是個大雜訊源,會影響DAC的電源,細節請看 http://records2ear.blogspot.com/2011/08/blog-post_17.html
幾家HiFi廠也都知道這問題,因此加上了磁或光的隔離元件,只不過不知為何,目前聽來還是未能完全排除這問題。

1394並不是host/device這種架構,而是daisy chain,因此也是asynchronous,
應該也會有電氣雜訊問題。

HDMI,這是由發送端主動丟資料,控管頻率,因此狀況類似USB adpative;
應該也會有電氣雜訊問題。

2012/4/4補述:
談了那麼多,簡單的概說,
1394與async USB架構最好,adaptive USB最爛,光纖與同軸隨前端訊號而定,但不會好過1394/async USB。
注意,這是說架構,也就是理論上,實際製作的品質當然是case by case。

4 則留言:

  1. 該怎麼稱呼呢? 貓大嗎? :)

    拜讀大作後,深覺各論壇上為了一條數位線爭論不休的各網友應該先來您這兒學習學習.

    關於文中提到USB audio加上了磁或光的隔離元件還是未能避開接地干擾的問題,想跟貓大進一步請教. 如果是以一外接式USB to SPDIF Transport,在最後的輸出端加上TOTX或脈衝變壓器,感覺上這跟CD player的SPDIF輸出情況很接近. 為甚麼CD player可以解決地雜訊的問題,USB Transport卻不行? 不知貓大有沒有猜想出甚麼可能性?

    回覆刪除
  2. 你說這個例子中,S/PDIF TX -> RX這二者間當然沒有地線雜訊問題,
    但PC -> USB S/PDIF TX之間有啊~
    S/PDIF訊號唯一的問題就是jitter,一般這種USB S/PDIF TX又都是吃bus power,那當然髒死了,
    老友胖子說USB規格上寫的是+-10%的電壓誤差都符合規範,夠髒吧?

    回覆刪除
  3. 那您認為spdif輸出加個3.3V buffer,以LDO單獨給電,是否可以解決電源很髒這個問題?

    回覆刪除
  4. 這當然有效,但並未解決地線會浮動這問題,
    得要用common mode choke之類的手法處理

    回覆刪除