Re: [問題] 1394、USB或是PCI-E數位輸出?

看板Headphone (耳機)作者 (調適生活)時間17年前 (2009/02/01 15:58), 編輯推噓10(1008)
留言18則, 10人參與, 最新討論串5/5 (看更多)
醜人獻曝一下... 小弟最近的工作正好需要研讀USB的技術與規格, 不過由於對Audio的部分了解並不多,只是看到有人提到USB傳送的"數位訊號", 所以想跟大家分享一下USB傳送的數位訊號是什麼樣的型式, 有錯還請大家幫忙指正! USB是一種Host-Device型式的傳輸介面,首先一定要有一個Host端, 由Host端去辨認連接的Device為何並去控制存取,只有兩個Device連結是無法傳輸的 (IEEE 1394是Peer-to-Peer,任何連接的節點都可以是Host或Device) (USB On-The-Go解決了兩個Device互連的傳輸問題,所以1394的優勢愈來愈小) 如同許多傳輸介面(I2C,LVDS...etc), USB也是差動傳輸處理,由D+與D-這樣的一對data line來傳送資料, 通過pull-up/down電阻將D+或D-上的電壓準位拉至一定程度,用來產生等效的差動電壓, 來達到高或低的電壓準位,方便USB Host去辨認連接的Device為Low-speed, Full-speed或High-speed裝置,並去控制、通訊等等 所以USB cable上的時間延遲會是個問題, 故USB選擇的傳輸編碼方式是Non-Returned to Zero Inverted, NRZI, NRZ編碼的一種 NRZ指的是"不歸零",只有"0"與"1"兩種電壓準位狀態, 沒有介於0和1中間的狀態 NRZI的編碼方式為: 想要傳送"1"時,保持data line的電壓為原來的電壓準位 想要傳送"0"時,將data line上的電壓準位反轉 (注意,只需反轉,電壓能到多少Volt一點關係也沒有,接收端認的是"有沒有"反轉, 而不是反轉前後的電壓) 這樣的編碼方式不需靠同步的時脈訊號也能做到同步的資料傳輸, 而是藉由每一次的電壓反轉的時間來對本身的時脈作同步調整, 再用已同步調整後的時脈去解碼資料 而連續傳送"0"時,因為data line上的電壓準位不斷被反轉, 所以本身的時脈訊號也會跟著不斷被同步調整,對於同步資料處理上會有很大的好處, 故USB一開始會傳送一組"同步序列",內容為七個"0"與一個"1" 00000001 前七個"0"用來同步時脈,後一個"1"來表示"同步序列"結束,開始傳送"資料序列" 但是碰到連續的"1"時,data line的電壓準位不會被反轉,一直維持在同樣的準位, 接收方一直沒得到電壓反轉的時間,本身的時脈也不會被同步調整, 所以過長的連續"1"會造成時脈同步不佳,甚至根本沒有同步 為了解決此問題,USB在NRZI的編碼上作了"位元充填"(Bit-stuffing), 當連續傳送6個"1"後,一定會在下一個位元塞一個"0",強迫電壓準位反轉, 以同步時脈 由此可以看到,USB不會像LVDS或I2C介面那樣將資料與時脈一起傳送, 而只傳送資料,並利用NRZI編碼來造成電壓反轉,並用電壓反轉的時間去同步時脈 如果一切都很理想,那麼USB的資料同步化是很好的, 而且不用去理會jitter 不過實際上jitter仍然是個問題,因為電壓反轉也是要時間的, 電壓反轉的時間一旦延遲,前面大家討論到jitter的影響多多少少一定出現 (電壓反轉所需的時間:把data line上的pull-up電阻斷開-->把pull-down電阻接上) 為何不作De-jitter? 只能說USB可不是為了Hi-end音響使用者所設計的, 或者這麼說,USB從來就不是因為音響需求發展的東西, De-jitter對於大多數,或者90%以上的USB用途, 不但增加成本,而且對於使用上的改進效益可能不到增加成本的1% 而IEEE 1394為什麼不受青睞也是如此, 速度已經逐漸要被USB追上,成本比USB貴, Peer-to-peer的優點也隨著USB OTG技術出現而沒有優勢 頻寬...以電腦效能的進步,這東西會愈來愈感覺不出來 而且Device也不需要額外外接電源 IT產業畢竟是個成本效益至上的環境, 各位Hi-end使用者小弟認為還是玩光纖或同軸吧! -- 參考文獻: http://www.usb.org/ USB的規格書 很多網頁或書本也有相關內容,不過多多少少會有錯, 這時找找最根本的來源是比較好的選擇 跟Audio相關的在 http://www.usb.org/developers/devclass_docs 看Audio class的部分,不過小弟目前仍然在研讀中@@ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.66.245.169

02/01 16:09, , 1F
push
02/01 16:09, 1F

02/01 16:18, , 2F
SPDIF也是這種編碼方法 數位傳輸絕對不是只有0101
02/01 16:18, 2F

02/01 16:27, , 3F
電位差是最原始的原理(說明觀念用),根據不同應用層面才會
02/01 16:27, 3F

02/01 16:29, , 4F
衍伸出一堆更複雜的作法
02/01 16:29, 4F

02/01 16:32, , 5F
SPDIF是Biphase mark code,這跟NRZI有一個關鍵不同
02/01 16:32, 5F

02/01 16:32, , 6F
就是Biphase mark code是帶有時脈資訊的
02/01 16:32, 6F

02/01 16:33, , 7F
當電壓準位要反轉時,必需在一個時脈週期裡做
02/01 16:33, 7F

02/01 16:34, , 8F
NRZI則完全不管時脈週期,另外SPDIF不是差動傳輸的型式
02/01 16:34, 8F

02/01 17:17, , 9F
感謝樓上大大賜教m(_ _)m 小弟再去仔細看清楚協定內容
02/01 17:17, 9F

02/01 17:32, , 10F
推一個 真的是看耳機版長知識
02/01 17:32, 10F

02/01 18:11, , 11F
快推 不然人家會認為我看不懂
02/01 18:11, 11F

02/01 19:57, , 12F
感謝分享 :)
02/01 19:57, 12F

02/01 20:15, , 13F
長了許多知識,一定要推一個
02/01 20:15, 13F

02/01 21:02, , 14F
h兄抱歉!下次小弟會想辦法用更容易懂的方式說明@@
02/01 21:02, 14F

02/01 21:03, , 15F
好像太多專有名詞@@...以後想想有什麼說法比較好懂
02/01 21:03, 15F

02/01 22:22, , 16F
38啦 是我自己知識淺薄 不關你的事 我真淺 唉
02/01 22:22, 16F

02/01 23:24, , 17F
推!
02/01 23:24, 17F

02/02 10:47, , 18F
光纖同軸小弟都有用,不過沒hi-end的感覺,玩真空管比較實際
02/02 10:47, 18F
文章代碼(AID): #19XLOSv8 (Headphone)
文章代碼(AID): #19XLOSv8 (Headphone)