Re: [討論] USB DAC的架構
分兩個部分講...
==
嚴格來說,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
06/06 11:31, 1F
推
06/06 12:23, , 2F
06/06 12:23, 2F
→
06/06 12:25, , 3F
06/06 12:25, 3F
推
06/06 12:47, , 4F
06/06 12:47, 4F
討論串 (同標題文章)
Headphone 近期熱門文章
PTT數位生活區 即時熱門文章