CodeMap

慎言笃行

导航

[转贴]USB簡介

USB簡介
洪紹雄
USB的發展背景
不知道你是否有過這樣的經驗,興沖沖地買了一隻新滑鼠回家,
但過了一個星期後,卻仍舊使用那滾起來摳摳叫的舊老鼠?只因為
你的電腦後面早就被各式各樣的電纜線佔據,想要把電纜線拉出來
,還得特別安排一個下午來打開所有的死結才可以。
個人電腦的發展方向,在功能上是愈來愈強,已經準備取代專業
的工作站了,但是在親和力方面,卻也是越來越接近一般的使用者
。在電腦機殼裡的界面卡,已經有隨插即用裝置,免除了煩瑣的調
整;但是在電腦機殼外面的人機界面系統卻是混亂無比,從鍵盤插
座、滑鼠用的九針序列埠、數據機用的25針序列埠、印表機使用的
平行埠等等,實在是整理電腦時的一大惡夢。
早在1994年底,資訊界的四大門派,康百克、英代爾、微軟加上
日本代表NEC就已經公佈了通用序列埠,也就是Universal	 Serial
Bus的先行標準。可是直到1998年九月,最新的1.1修正版才正式定
案。當然,這時Win98和OS8.5(iMac)這兩個重量級的作業系統才
有正式支援。雖然USB的功能並不強大,但是方便好用的人機界面,
卻讓它在眾家標準之下脫穎而出。
USB從一開始設計就不強調功能強大,只是盡量提供使用者一個親
和的環境,減少使用者使用電腦時的不便罷了。
兩個重要數字
講到USB一定會講到兩個數字,就是12Mbps與127這個裝置。說到
12Mbps其實蠻丟臉的,因為在大家熟知的標準之中,恐怕只有滑鼠
和數據機使用的序列埠之傳輸速度,因為年代久遠之故被它超越,
但是談起127這個裝置,那就真的是無人能比了。
12Mbps裡面的b是小寫,而不是大寫,因為它是指bit,不是Byte
,所以實際上一秒鐘只有1500KByte的傳輸速度,等到扣除各種傳輸
協定佔據的頻寬和控制器的反應時間之後,一秒鐘一個MByte多一些
才是它的平常演出水準。
把所有的USB裝置串起來
USB所用的架構叫做Tiered  Star多層星狀拓樸,長得很像是一棵
大樹,由主機板後面的USB控制器(HOST)作為根部長出去,在每個
分叉的地方,要有一個集線器(HUB),所以要接的裝置太多時,會
有集線器後面接著集線器的狀況出現。為了方便區別起見,USB控制
器的插座我們叫它下游端,USB週邊的插座叫它上游端,所以纜線的
上游接控制器的下游,纜線的下游接週邊的上游。至於集線器裡,
就是一邊上游一邊下游。很像繞口令是不是?不過不用擔心,為苦
難大眾著想的USB把纜線的兩邊接頭做得不一樣,所以根本沒辦法插
錯。
聰明的你可能會想到,就算不會插錯插座,難道怎麼連接都可以
?答對了!連接USB裝置的原則只有一個,就是把他們通通連起來。
不管你怎麼串接你所有的裝置,只要不超過127個,USB系統會負責
把資料正確地送到各個裝置上。
為什麼會串不起來
USB裝置其實還有細分成兩種,高速和低速裝置。而將常講的
12Mbps是指高速裝置,低速裝置只有她的八分之一,低速裝置常見
的有鍵盤和滑鼠。這些東西因為資料傳輸速度實在是太慢了,所以
沒有電磁干擾的問題,因此它的電纜線上面沒有加上一些電磁防護
,成本比較低。萬一有不肖廠商拿低速裝置的線給高速裝置使用,
一碰到電磁波干擾很強大的地方,也許就會出問題了。因為高速和
低速裝置的線材價錢所差無幾,所以建議大家買好一點的線,避免
電腦莫名其妙休假去。
另一種不能說是當機卻不能使用USB裝置的情況是,裝置太多,頻
寬不夠分!這種情況出現在使用者電腦上裝了太多要求“定時傳送
資料”的時候。例如陳老闆想用USB規格的即時攝影機監看他的職員
有沒有偷懶,假設他買的USB攝影機每秒鐘要傳輸200KB的圖檔更新
畫面(定時傳送),那麼他最多只能接七台攝影機,因為八台攝影
機會吃掉1600KB的頻寬,超過系統上限的1500KB,所以,接上第八
攝影機台時,USB的控制軟體會叫它回家睡覺。如果寫該攝影機驅動
程式的工程師忘了這件事,那麼Win98會給你一個很漂亮的藍色畫面
,就是比爾蓋茲展示Win98時全球媒體看到的那個畫面。除非驅動程
式寫得很聰明,可以接受比原先需求還小的頻寬,那麼陳老闆就會
看到跳格畫面,或是模模糊糊的影像。不過之前的七台攝影機因為
頻寬已經獲得保障,所以不會有任何問題。
不但要熱插拔,還要隨插即用
只要運氣不要太背,操作一切正常,驅動程式和作業系統合作愉
快,USB都可以做到其所宣傳的“熱插拔”功能,這也是USB大力宣
傳的特性。
說實在的,熱插拔並不是什麼了不起的技術,不相信的話,讀者
可以把你正在運作中的電腦拔下舊式鍵盤和舊式滑鼠然後,換上另
一套配備,保證不會當機,換裝完畢後電腦還是正常動作,但是搭
配上隨插即用就是個值得大書特書的進步了,因為要做到熱插拔與
隨插即用,代表作業系統必須有下列能力:
1.可以偵測到是否有新裝置出現了?
2.作業系統可以辨認出這是什麼裝置,並且找出對應的驅動程式
。
3.如果沒有對應的驅動程式,作業系統會要求使用者提供。
4.如果有裝置被移除了,自動移除負責的驅動程式。
在USB系統上,其實是以一個很簡單的方法做到熱插拔與隨插即用
。就是每當有新裝置出現時,會讓位於該裝置上游的集線器的下游
插座產生變化電壓,緊張兮兮的集線器會以最快速度通知電腦這件
事,控制系統就透過一連串的協定開始“詢問”新裝置,叫它交出
它的身分證明,外帶祖宗三代是那家廠商、專長與族譜排行通通都
要知道。詢問完畢後,滿意的話會給她一個地址居住下來,作業系
統就靠著剛剛拿到的資料回頭去程式庫挑個和它最速配的驅動程式
好把這對新人送進洞房。
USB聯盟為了做到這點,花費了相當多的時間來制訂各種規格,包
括要怎麼問怎麼答,不滿意的話要怎麼翻臉都寫得清清楚楚的。除
此之外,還給每個廠商一個代碼,每種產品又是一種代碼,連電話
機和DJ用的混音器都有代碼。
誰來控制這一大串USB裝置
讀者若仔細觀察一下本文前節中USB控制器檢查新裝置名稱的過程
,會發現做事的人還真不少呢!是的,嚴格說起來一個最簡單的USB
系統需要有六個部門分工合作,舉例來說;
正在用Netterm玩BBS的阿呆,在他的USB鍵盤上敲了“A”鍵一下
,鍵盤控制IC就把“A”丟給USB界面IC,其實那個USB界面IC是個小
小的CPU,裡面有個小程式控制USB的類比界面,一有機會就會把“A
”透過USB電纜線丟給PC上的USB控制器。
既然“A”字元已經傳回電腦了,就可以拿來使用了?不不不!他
只是傳回USB控制器而已,你還需要一個USB鍵盤驅動程式把這個“A
”字元認領回家,等待作業系統召見,不然當USB裝置接了一狗票時
,鍵盤傳回的信號被作業系統誤認為滑鼠傳回來的信號,那怎麼得
了。
“A”字元最後的歸宿當然是由作業系統分派給Netterm處理,結
束他的皮球生涯,至於遠在網路另一端的美眉,什麼時候看到這個
“A”那就不在我們的討論範圍了。
除了封包,還是封包
最後,我們來講講USB的傳輸協定,這個協定讓他可以正確無誤地
把各家訊息傳遞到正確的裝置上,但是也造成了一些瓶頸。要讓不
同的資訊使用同一條道路,最簡單又安全的方法就是像郵局一般,
把每個資訊包起來,寫上位址和收信人,當然也要標明白發信人和
這封信的種類。
USB使用NRZI編碼方式運作,所有的運作通通是由PC上的USB控制
器來決定,苦命的裝置們出了問題,最多只能罷工抗議,要等系統
發現裝置已經攤平躺在路邊了才會去處理。
所有的資訊通通都要用封包打包起來,其中定址用的封包檔頭有
七位元的位址,所以可以操作127個裝置(位址如果是零,代表USB
控制器還沒把這個小孩子領回家,有些人以為位置零代表PC本身,
這種說法是不對的)。
這些封包又構成了四種傳輸的方式:
1.Control控制傳輸,這是控制系統用的。
2.Interrupt中斷傳輸,不同於一般的PC裝置,USB不支援周邊中
斷,它都是靠系統定時查詢的方式辦到的。慢速裝置被嚴格要
求只能使用第一和第二種傳輸方式,避免拖累了大家的表現。
3.Isochronous同色傳輸,例如前面提到的攝影機,在整個頻寬裡
面劃一塊起來據地為王。
4.Bulk塊狀傳輸,印表機和掃描器的最愛,一次傳送一大塊資料
,不過最大也只能大到1023個byte。所以使用塊狀傳輸時,資
料是被拆成許多部份傳送的,在印表機傳送塊狀資料的同時,
  也許USB控制器還偷偷地讓滑鼠傳送了幾次資料也說不定。
上述的說明,都是關於USB的一些基本概念,我們殷切地期望讀者
們能夠藉由以上簡單而輕鬆的介紹方式,讓您對「USB」能有基本的
瞭解,並且對它不再感到恐懼,轉而去親近、使用它,並且懂得更
進一步去善加利用它。

posted on 2006-11-13 10:27  wqlblogger  阅读(259)  评论(1编辑  收藏  举报