|
|
互動區: |
USB DIY 講座 (二) --- USB 特質 ------------------------------------------------------------------------------------------------------------------------- 接下來,我繼續先說明有關USB 的基本認知,或許,您想作的東西,跟我的內容不是很相稱,對不起,我也不知該如何滿足您,說真的, 技術的東西,怎麼講也講不完的,也不可能涵蓋所有的東西,但我相信這些基本的概念,至少讓我做一些相關的東西時,卻是得心應手 ,我不是很厲害,厲害的是訂出規格的人,用這樣一個簡單的規格,卻能讓我們玩出這麼多花樣, 才是真正厲害的人。所以,我常建議有理想有抱負的年輕人,您若有機會出去國外走走或甚至 唸書,請不要客氣。可別只為了貪圖眼前的股票紅利喔。 --------------------------------------------------------------------------------------------------------------------------- 特質三:USB 到底可以多快? (我才不要講規格的東西,眼見為憑!)
我們是工程師,講的事事求是的精神,上圖是一個 Bulk Out 傳輸內容,兩個SOF (見下面特質6的說明)的間隔是 1mSec ,我們傳了 17 個 Packets ,所以是:17x64 Bytes/1mSec = 1.088 MB/Sec = 8.704 Mbps <12 Mbps,為什麼會小於 12Mbps 呢?因為在傳輸過程中,還要塞進 PID/ACK/CRC 等這些Token ,所以,以我們要傳的資料內容來說,是不可能達到 12 Mbps 的。 您不要看我上面的傳輸的很漂亮,連一個NAK 都沒出現。您知道嗎?只要您 USB Device 的 MCU (如8051 不管是12 T 或 4T) 只要有任何一點遲疑的話,我指的是像去 Movx 一個Registers 時,就會塞進好幾個 NAK ,您傳輸的速度,當場就會被拉下來,因為USB 的Protocol 是不等您的。這樣您就會瞭解,人家說USB 控制器內的MCU 性能是一項很重要的關鍵了。另外一點是,像我上圖的內容來說:Bulk out 是PC將資料往外傳,如果您 USB Device 的 Data Buffer 不夠大的話,您也勢必要先對USB 喊暫停(回NAK),再用MCU把資料移走或處理掉,否則,您又會對USB 這條高速公路造成塞車。明顯的,除了USB 內的控制器的MCU 執行速度的快慢會影響USB 速度外,您USB 控制器內的Buffer 容量也是一個重要關鍵。所以,您不真的一味的聽信說:USB 2.0 很快。如果以我上述的問題關鍵您視而不見的話,您還是開一台破車在一條筆直的戰備道上。同理,若您的傳輸方向的Bulk In (PC跟您的 USB Device 要資料),您USB Device 的資料若處理來不及給USB 來抓走的話,也是一樣。PC USB來問完就走了。因為您一定得回NAK,叫他等一等,這樣子,您覺得您可以怪USB 太慢嗎?
---------------------------------------------------------------------------------------------------------------------------- 特質四:An Endpoint Is an addressable FIFO
特質五:USB Supports Four Transfer Types
-------------------------------------------------------------------------------------------------------------------------------------- 特質六:USB Transfers Occur in 1ms Frames (USB 1.1)
|
|
Telephone : 886-3-5439918 FAX : 886-3-5437632 Copyright(C) 2005 . ChamberPlus System Level Studio All rights reserved. Last Update: 2008年01月18日。 |