※ 引述《mtskyoko (千草)》之銘言:
: 月經文來了
: 戰!!!!!!!!!
: USB傳送的數位訊號就只是0跟1 那些發燒線都是騙人的!!
: ==============================================================================
小弟對usb有粗淺的了解
一般來說 usb在定spec時後 就預想了把會用usb的裝置分成3種
但有4種傳輸模式
1. control 2. interrupt 3. mass storage
4. isochornous
第一種模式 control 是所有usb裝置必有的傳輸模式
他一插入時就要告訴host(例如 電腦主機) 他是什麼裝置 他有哪些傳輸模式
OS要怎麼掛起他的driver等 (這個階段 通常稱為enumeration)
等driver 掛起來後 通常就是用2, 3, 4的傳輸模式
2 跟 3原理沒有差很多 但差別在他們的頻寬
interrupt 傳輸模式由於資料傳輸不多 所以host大概久久才會來跟你要資料一次
不過久久也不是幾秒種這麼久 大概是微秒等級 (ms)
常用的鍵盤滑鼠就是屬於這種傳輸模式
如果是mass storage的裝置(像是隨身碟) host就會幫你預留很大的頻寬給你用
讓你能資料能優先傳完
為什說2、3原理很像 因為這兩種都有除錯機制 例如CRC 等
通常若一兩個位元錯 直接補正 若是錯太多 host就會叫device重傳
也就是這樣 這兩種傳輸模式肯定不會傳錯
否則你的報告透過usb存一下就會錯掉 不是很可怕嗎?
原文說的傳輸模式 應該是第4種 isochronous
在這種傳輸模式下時 host會每個frame幫你保留固定頻寬 (enumeration 時會說好)
這種傳輸模式應該比mass storage 更優先
但當初定這模式時 就是要給同步AV使用的 例如像電視卡這類的即時裝置
因為看電視時 總不能傳錯就重傳 不然會delay
而且一般人看電視 也不會要很精確的每個frame都要對
一秒24frame的卡通 普通人哪看的到其中幾張出錯?
所以在進行isochronous傳輸時 是不會重傳 傳錯就傳錯
即時(real-time)才是重點
接下來討論dac 如果是同步dac 我認為 很有可能是isochronous傳輸
傳錯的確是很有可能的
但如果是非同步dac 裡面又有processor 小弟懷疑也有可能是 mass storage的傳輸
processor這邊先預存一大筆正確的資料之後 再播音樂
原因是 單純傳音檔 不比影音都傳 頻寬來的大 不用isochronous模式也應付的來
否則為何要特別強調非同步
小弟的一點淺見 但如果由例如diy dac那些行家說明會比較準