Re: [討論] USB DAC的架構

看板Headphone (耳機)作者 (調適生活)時間16年前 (2009/06/06 11:27), 編輯推噓3(301)
留言4則, 3人參與, 最新討論串3/4 (看更多)
分兩個部分講... == 嚴格來說,USB <--> USB之間的Jitter不是問題, 因為USB的NRZI編碼方式等同於讓Receiver端根據傳送過來的資料去調整clock 真正的問題是發生在, USB怎麼去做Clock Synchronization, 而不是專注在USB傳輸中的Jitter (USB傳輸的Jitter容忍度很高,數百ps就可以通過USB-IF的認證) USB系統裡的Clock有三種,一是Service Clock,用於USB與系統軟體間, 一是Frame Clock,每一次的USB傳輸會用一個Frame把要傳輸的資料包起來, Frame Clock可視為每次傳輸的開頭的速率,而非Data Rate 另一是Sampling Clock,這是USB設備端取樣的頻率 USB的Clock Synchronization有三種方式: 1. Synchronous: 根據Frame Clock去同步,若是Full-speed傳輸,就是以1kHz為單位 以High-speed傳輸就是以8kHz 2. Adaptive: 根據資料傳送過來的快慢作一些運算得到Clock的速率,例如接受數筆 資料後作平均 3. Asynchronous: 根據資料傳送過來的快慢,告知傳送端要如何調整資料傳送的速度, 這是理論上最佳的同步方案 而很不幸的,第三種對USB硬體設計來說有所難度,儘管目前已有產品出現, 價格仍然偏高 絕大多數的USB Audio產品用的是第二種 所以問題就在,接收端算出來的Clock與發送端的Clock不完全一樣, 因而造成類似音響上Jitter的影響,但是成因跟大家熟知的並不相同 這也是為何不同的USB的傳輸線不會造成很大差異的原因 == 再來是isochronous mode與bulk mode Isochronous mode如同前面說的,保證頻寬,但是沒有Error Correction 不過其實它是會去做Error Detection的 為何不做Error Correction?因為一做下去,接收端與發送端的資料 200%不會同步,而且會有一般人意想不到的延遲 (這樣就不是同步傳輸了) 再來是Data Loss的問題,對Audio或Video來說, Data Loss可以用內插等方式去解決,這點其實還好 啥?你說內插會失真? 事實上所有的Audio DAC只要是用Delta-Sigma的架構, 第一級輸入就是一個內插電路,想避也避不掉 以及USB發生Data Loss的機率---假設你一直不間斷去用USB同步傳輸播放音樂, 平均一個月Loss掉一個Bit (有誰會一個月音樂都放不停的嗎...) 再來是Bulk Mode Bulk mode的特點是不保證頻寬,但是保證資料正確性 Bulk mode分到的頻寬是根據主機的使用狀況決定的, 所以直接用bulk mode會碰到一個問題---主機端的歌詞都已經跳到下一段了, 設備端還在放副歌XD 發現為何bulk mode的DAC價格比較高的原因嗎? 沒錯,他們不只是要處理bulk mode的運算, 還要想辦法解決傳送接收端不同步的問題 這也是bulk mode DAC價高卻還沒辦法完善的原因, Bulk mode本來就不是為了這個用途設計的,硬要使用通常會碰到很多困難點, 在這上面鑽牛角尖還不如換一個介面比較快 == 最後是1394會不會有類似的問題, 會,不過1394的頻寬大, 所以發生的機率比較低 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.57.217.117

06/06 11:31, , 1F
推專業文 看完長知識 謝謝原po (_^_)
06/06 11:31, 1F

06/06 12:23, , 2F
good 終於有人來說明比較核心的部分了XD
06/06 12:23, 2F

06/06 12:25, , 3F
這樣看起來..dac1算是用硬幹的方法去解決clock問題的感覺
06/06 12:25, 3F

06/06 12:47, , 4F
文章代碼(AID): #1AAU8w8F (Headphone)
討論串 (同標題文章)
文章代碼(AID): #1AAU8w8F (Headphone)