2011年4月10日 星期日

USB Audio Synchronous / Asynchronous

在Digital Audio的傳輸過程中主要的資料是音量跟頻率,

而且人的耳朵在聆聽音樂的時候,斷斷續續的聲音比稍微一點點失真的聲音更容易被察覺;


斷斷續續的聲音像是從有聲音變成完全沒聲音又突然有聲音,這種差異是很明顯也很衝突,

而稍微失真類似於音量大1%或是key高了2Hz之類的變化,人的耳朵其實並不那麼容易察覺。

所以一般的USB Audio 會使用Isochronous Transfers的方式去傳輸聲音,

是因為Isochronous的傳輸特性是允許錯誤但是傳輸不能中斷。


使用Isochronous Transfers的USB Audio有兩種常見的設定Synchronous跟Asynchronous

Synchronous : USB Device參考USB Host傳輸過程使用的NRZI解調出時脈(Clock),再使用解調出來的時脈(Clock)對資料(Data)做解碼

Asynchronous : USB Device使用自己的時脈(Clock)做資料(Data)的解碼,這種方式比較不容易因為傳輸過程中造成時序上的偏移(Jitter)而解調出不夠精準的時脈(Clock)然後去解碼出錯誤的資料



以下是一些文件跟名詞解釋的延伸閱讀


USB wiki (英文)

USB wiki (繁中)

USB 簡介 (繁中)

Isochronous : USB 2.0 Spec. #5.12.4 Isochronous Devices


USB Host好比USB的伺服器,管理掛載在他下面的裝置(Device),理論上一個USB Host可以掛載127個Device

USB Host wiki (英文)

USB Host wiki (繁中)


因為時脈(Clock)要從NRZI上解調出來,為了避免長時間沒有準位的變化再加上時序上的偏移(Jitter)而造成解調出更不精準的時脈(Clock)

所以傳輸過程如果連續6個high準位就會做Bit-stuffing,也就是塞一個low準位去強制改變NRZI的準位

NRZI wiki (英文)

NRZI wiki (繁中)

NRZI Beeway USB Blog (繁中)


Jitter wiki (英文)

Jitter wiki (繁中)


SPDIF使用的是NRZ編碼

NRZ wiki (英文)

NRZ wiki (繁中)


對USB Specification有興趣的朋友可以到這裡下載

USB Specification


我很喜歡去维基百科找資料,用字比較精準,敘述的方式比較容易閱讀,英文跟繁中的網頁都有找到,可以的話建議看英文的,通常英文的頁面講的比較完整

沒有留言:

張貼留言