先來研究為什麼會設計成這樣(我的理解):
- Serial介面:這個應該是硬體設計思維。Parallel介面在高速的clock之下很難維持資料的同步,所以用serial傳輸會省掉一些麻煩。
- BUS架構:因為USB支援Plug and Play,所以設計成BUS架構很合理,擴充容易。
看起來沒有很厲害啊?是的,但是它堪用。一個東西能不能成功,往往不是一個因素或是技術很厲害造成的。USB過去跟現在之所以流行,我認為其實是很多因素造成的:
- 它不需要授權金
- 規格公開
- Windows支援
- balabala
這幾個理由就夠人家試試看了。至於價格便宜,那是後話了(台灣IC設計所賜)。
USB架構
USB是Master-Slave架構。USB Host一定是Master。通常USB Host就是指PC,但是現在行動裝置流行,也有可能是ㄧ些支援USB Host的行動裝置。而Slave就是指USB裝置,最有名的代表就是隨身碟(我討厭大陸用語[大拇哥],Mass Storage還比較有科技感)。這邊先講一些基本知識,免得雞同鴨講。其實這些知識都是[計算機概論]或[計算機結構]課程的一部分,沒讀過或是懶得讀的也可以用google查到。
Master-Slave架構的特點如下:
- Master才能發起一個Request。
- Slave只能回應Master發出的Request。
至於BUS的特點:
- 大家共用線路。最大的優點是省線路,在很早以前能省線路就是省錢的年代,這個很重要。
- 沒了。
BUS架構很簡單對不對,但是衍生的問題很多。
第一,共用線路代表同一時間只能有一個裝置可以用到線路。所以如何讓BUS的使用率到達最高,是個很難的問題。你可以想像如果有個慢速裝置在BUS上傳一筆很大的資料,這樣的BUS使用率會有多糟。
第二,如果有裝置不遵守規矩怎麼辦?所以BUS會制訂它專屬的通訊協定,讓這件事情比較容易偵測。但是如果一個裝置真得要亂搞,也真的沒辦法。如果你知道Ethernet的CSMA/CD(Carrier Sense Multiple Access/Collision Detection)的話,你大概會知道可以在偵測到網路碰撞時,讓等待時間最小化,如此你的網路卡表現就可以比別人好。這樣是不合規範的,可是還真的沒辦法防止。
USB針對BUS架構的缺點,提出了它的解決方式,這也是大多是BUS架構的解決方式,就是Master-Slave架構。因為Master-Slave架構可以有效解決BUS使用率的問題,並且有限度的防止惡意裝置亂搞。用一句話就可以說明:你們這些USB裝置通通聽USB HOST命令,一個口令一個動作。
這邊不談OTG(USB On-The-Go),它是個變種。
No comments:
Post a Comment