在早期,USB接口的出現似乎僅僅是要解決一些簡單外設諸如鼠標、鍵盤之類的設備與電腦的連接問題,很顯然,這些外設所產生的數據量是極低的,所以,USB規范所定義的數據速率是1.5Mbps,數據還是雙向分時傳輸的,PC主機采用輪詢的方式和各個外設進行通訊,只有被點到名的外設才能進入傳輸狀態。這是USB 1.0的規格,它成文于 1996年。
提速以后的USB 1.1規范發布于 1998年,其數據傳輸速率為12Mbps,我在這個時候還在一家從事有線電視監控系統和路橋收費系統的香港公司工作。有一次,被我們稱為譚董事的業務負責人帶了幾位客人來公司參觀,參觀的重點是通過電話線傳輸視頻信號,客人能在電腦顯示屏上看到的信號以今天的標準來看那是慘不忍睹的,但是客人卻對此表示滿意,因為他們知道那已經是最好的效果了。(這段話中提到的譚董事真的姓譚,也是公司董事,是個業務高手,但他的特長并不在電子領域,而是一位財經分析師,是證券投資顧問,是我很喜歡的一位公司領導。)
2000年,USB 2.0發布,數據傳輸速率被提升至480Mbps。也就是在這一年的8月28日,我第三次踏上深圳的土地,進入一家芯片分銷商工作。我在這份工作中最先接觸到的應用是DVD播放器,然后是數碼相機和采用USB接口的攝像頭,這應該是我最早接觸到的USB外設了。在這個時期,我們的客戶所生產的相機,30萬像素的就算是好產品了,攝像頭則只有10萬像素,可在屏幕上現出一個小小的圖像框,用今天的標準來看就是不清不楚的,但這已經是高技術了,大家玩得不亦樂乎。這個時期的數碼相機所拍攝的數碼相片還不是存儲在像今日的存儲卡所采用的閃存里的,它們直接被存儲在一掉電就會丟失數據的存儲器中,所以需要在拍照以后盡快通過USB接口將相片導入電腦里,很顯然,這樣的設計是有很大風險的,但也沒有辦法,行業的技術發展就處于這個狀態。在我后來支持的一個客戶那里曾經聽來一個故事,他們曾經生產的一批數碼相機就有客戶遇到了丟數據問題,這個問題導致他們被消費者告上了法庭,法庭認為他們的產品導致客戶丟掉了自己的記憶,因而應當為消費者的記憶丟失負責。記憶的價值到底有多大呢?這很顯然是一個無法計量的數據,因為如此,他們付出了一筆巨大的費用,還不得不將這些產品全部回收,給公司帶來了巨大的損失。
USB是通用串行總線的簡稱,除了完成通訊功能,它還能夠傳輸電源為外設供電。為此,它采用了4根導線的電纜,還制訂了A型和B型的連接器接口。
這就是最初的接口的外形圖。其中的A型連接器只是出現在PC主機或是集線器一側,B型連接器只出現在外設一側。之所以要使用兩種不同的連接器,是為了避免插接錯誤。需要說明的是,主機端的端口被命名為下行端口,因為從它這里流出來的數據總是向下進入外設中,與此相應的就是上行端口了,它處于外設上。通常,一個外設只會有一個上行端口,但一臺主機則可以有多個下行端口。集線器作為承上啟下的設備,它必須具有一個上行端口,下行端口則可以有一個或多個。
這是標準的USB電纜的樣貌,它的兩端都有插頭,可分別插入主機和外設的插座上將兩者連接起來。有一些外設是自帶電纜的,這時候就只有一端有插頭了,像我們常用的USB鼠標就是這樣的。
細心的讀者和使用者應該可以看到電纜的插頭上都有USB的標識符,這個標識符的樣貌是有嚴格規定的,它以浮雕的形式呈現在一塊凹陷下去的坑里。這個符號被要求放在插頭的頂部一側,與之相應的是擁有USB插座的主機和外設也要印上此標志,在插接時只要將插頭上的這一標識符和機器上的標識符對上就可以順利地插入了。關于這一點,我想是規范制訂者的一片好心,但我發現我從未利用過這一標識,這是因為我不知道,我相信大多數用戶都是不知道的,否則又怎會有遠高于50%的插錯幾率呢?
要在USB電纜中傳遞數據和電源,這兩者的傳輸線自然是應該不同的,因為它們的特性并不相同。數據的傳輸使用了不歸零反相(NRZI)編碼方法,此編碼方法中已經含有時鐘信號,因而利用信號本身就可以提取出時鐘信號實現收發之間的同步。相應的電纜內部結構和編碼方法示意如下圖所示:
為了能將盡可能多的外設納入USB接口中來使用,USB規范定義了如下圖所示的多達7層的可級聯星形拓撲結構:
依靠這種以集線器為中心的可以級聯擴展的拓撲,一個USB主機可以連接最多達127個外設。在規范中,這種外設也可被稱為Function。實際上,一臺設備中是可以有多個Function的,例如你可以把鍵盤和鼠標整合在一臺機器中,它們在總線上就表現為兩個Function,當主機上分別安裝了這兩種Function的驅動程序時,作為使用者是不用去區分它們的。
依我的看法,USB這種既供電又傳數據,還能支持多外設同時使用的做法實在是太方便了,這就導致大量的外設要往這一接口上靠,然后就會出現數據傳輸速率不足的問題,這就逼得規范需要被不斷修改以提升其應用的性能,這又會促進更多的應用往上面靠,從而形成一個不斷升級的局面。
USB 2.0是在兼容此前USB 1.X 規范的基礎上于2000年推出的,除了速度的提升,我認為其變化并不大,但其對應用的影響是巨大的。在這個時期,其他的技術也在發生突飛猛進的發展,作為一個局外人,我能夠感受到的是硬盤技術的發展,高速度、大容量、小體積的硬盤開始出現,于是市場上出現了移動硬盤。很顯然,早期的B型接口用在像移動硬盤這樣的小設備上是不太匹配的,這時候就有了小型USB接口mini-B的出現,現在我手里還有的幾個移動硬盤就全是這種接口,甚至去年買的車載攝像頭也還在使用這樣的插座。
按照標準的設計,如果我想將數碼相機里存儲的照片放入移動硬盤,我需要將數碼相機和移動硬盤都與電腦主機連接起來,這樣才能完成相片的轉移過程,而在此過程中電腦只是起到了中轉的作用,可是這對一個旅行者來說實在是太費事了。怎么辦?這就有了USB On-The-Go的誕生,它被簡稱為OTG。OTG賦予一臺本來的外設以主機的功能,它就能像主機那樣工作了,其他外設就可以連上去完成該外設想完成的事情。而當它和一臺主機連接的時候,它仍然是一臺外設。所有的OTG設備都是為某些特定目的而設計的,所以,當OTG設備作為主機的面目出現時,它并不需要像PC那樣擁有可以和各種外設連接的能力,因而其設計可以是簡化的,可以和其連接的外設也很有限,它們可以被列入一份目標外設清單中。
OTG是USB的一個擴展,它總是被設計為只有一個單獨的USB插座,但使用的是同時兼容Micro-A型插頭和Micro-B型插頭的Micro-AB型插座,這些插頭座也是USB的一項擴展。Micro-AB型插座比其他的插座多了一個ID端,其狀態可以由插入的插頭決定。當插入的插頭是Micro-A型時,意味著該OTG設備被確定為A型設備,即它被確定為主機。當插入的插頭是Micro-B型時,意味著該OTG設備被確定為B型設備,即它被確定為外設。如果沒有插頭插入,該OTG設備的預設狀態就是一臺外設(假如它是自供電的)。假如應用中的B設備需要擁有主機的角色,這時候可以通過軟件協議使其角色發生轉變,很顯然,這樣的設計在將兩臺OTG設備連接在一起的時候是很有用的。
USB的主機是需要為連接進來的外設供電的,所以,OTG設備需要進行相對比較復雜的電源管理工作。立锜有投資成立一家名為立敏(RichNex)的公司,他們就有專門提供支持OTG應用的USB接口芯片。與標準的主機不同,用于USB OTG應用的接口芯片通常只提供最多100mA的電流輸出,因為關于OTG的規范就是這樣定義的。如果要供應更大的電流,就需要像我們這樣的專門提供電源管理的公司來提供方案。當我寫到這里的時候,回憶起多年前為那些制作移動硬盤的公司提供方案支持的經歷,心中仍然是有些波瀾的,因為這樣的方案并不好做,而我并未見過比我所做更好的東西,可是我對好東西的渴望似乎總是存在的。
按照規范,USB2.0以前的接口能夠提供的最大電流是500mA,而每一臺電腦上居然都有USB接口,所以在USB接口被用于數據交換的同時催生了一項應用:為移動設備充電。這一發展一定是出乎USB規范制定者的初衷的,否則它們從一開始可能就不會做出那么多的限制了。例如,當USB總線處于掛起狀態時(這時候數據線上沒有數據進行傳遞,是不活動的),一臺外設能夠吸取的電流僅僅是2.5mA(平均值)。當外設接入總線但還未完成配置以前(也沒有處于掛起狀態),一臺外設可以吸取的電流是100mA。500mA的電流是在外設完成和主機的連接以后才容許吸取的(當然也需要總線沒有掛起)。可是由于USB在使用上的方便性,大量的移動設備采用了USB接口并且通過這一接口來完成供電和充電,這就導致了一個新的輔助標準的誕生:USB BC1.2。在這個標準出現以前就已經有很多公司利用USB接口來為其產品供電、充電了,而它們的充電器也利用了這一接口,所以,BC1.2中就納入了很多特別的概念,例如DCP(專用充電端口)、SDP(標準下行端口)、CDP(充電下行端口)等等。另外,世上歷來就有一些公司是喜歡自行其事的,他們會按照自己的意愿去確定自己的充電器的設計。當一臺設備接入這些不同的端口或是不同的充電器時,被容許吸取的電流是不一樣的,這就導致這樣一個問題:設備的設計者應當如何設計自己的產品呢?他應當如何確保自己的產品在被插入這些充電端口時能夠知道該吸取多大的電流呢?BC1.2就是為了解決這個問題而生的,它制訂了一些方法去適應這些不同的狀況,使得大家有一個共同的標準可以參照,而那些采用了這種標準的器件也可以宣稱自己符合這一標準了。宣稱符合這一標準的器件示例如下圖所示,這款器件的型號是RT9485,是立锜的一款全新的移動電源方案,它已包含移動電源控制部分的全部功能,而且它是全智能化的,其內部集成的ARM內核容許進行自由的編程設計,這樣就可以根據不同的應用需求進行重新設計。作為一個實例,你將很快看到我們是如何讓它支持USB Type-C接口的,有興趣的讀者可在3月份的上海慕尼黑電子展上看到實物,那將是它的處女秀。
對于一個有經驗的工程師來說,他/她在考慮一項設計的合理性的時候是需要在產品的全壽命周期內進行思考的。在這方面,我曾經有過一次很深刻的教訓。那是在鋰離子電池開始普遍應用的早期,專門用于鋰離子電池充電管理的IC還是稀有產品,我不得不將多顆IC組成一個系統方案為我們的客戶服務。在某一次設計的方案中,我忽略了電池沒電以后的系統狀態,結果造成系統無法被充電,因為這時候的充電通道無法被啟動,這個問題逼得我建議客戶加入一個由二極管加電阻構成的啟動電路才把問題解決。由于這項產品已經進入生產階段,對客戶的影響無疑是巨大的,好在這家客戶的老板是我初入行時就認識的,我們之間早已建立了很深的友誼,他在遇到難以解決的問題時都會找我提供建議和方案,我們也能夠相互理解對方的困難,難題就這樣被輕易地解決了,但這對我無疑是有影響的。
像我這樣所遇到的問題,在BC 1.2中也被納入了考慮范疇。當電池沒電或是電量不足的時候,一個系統在受限的供電條件下很可能是無法啟動的,它必須被充電至一定的程度以后才能進入正常的狀態,這個時候,BC 1.2就提供了一種機制,它容許你在充入一定的電量以后再按常規來對你進行考核,從而拓寬了標準的覆蓋范圍。
USB的供電能力限制還曾經創造過一個巨大的市場,那就是為Nokia的手機充電的應用。這個事件的起因是Nokia的手機都依靠充電器的限流能力結合其內部采用的開關用脈沖電流為電池充電,它要求其充電器的供電電壓在空載時高于5V,在限流時電壓可以低到內部電池電壓甚至是0V。當采用USB端口為之充電的時候,為了符合USB規范,就需要采用輸入電流能夠得到限制、輸出電壓也需要得到限制的轉換器,可惜那時候沒有好用的器件,我不得不采用一些特殊的設計來完成此功能,甚至為了滿足客戶的需要而將兩顆IC封裝在一起形成一個具有特定功能的器件。后來,為了實現低成本,不得不開始新IC的規劃,但可惜我們的報價沒有被客戶接受,讓另外一家供應商得到了機會。在后來的日子里,這家客戶用40%的資源投入這項產品的生產中,而獲得的利潤卻是全公司利潤的70%,之所以有這么大的收獲,是因為Nokia的所有這類產品都是由這家公司生產的。
就在進行這項應用開發的時候,Micro-USB接口開始進入市場,這就是我們今天看到的大部分智能手機上的接口的樣子。但是,用過這類接口的人如果再用上蘋果的iPhone,那就知道iPhone所使用的接口會讓人感覺更好,而USB的規格也將慢慢地走上一條類似的軌道,這就是Type-C時代的來臨。今天的你我,就正站在Type-C時代的入口上。
-
usb
+關注
關注
60文章
7950瀏覽量
264869 -
數據傳輸
+關注
關注
9文章
1912瀏覽量
64640
發布評論請先 登錄
相關推薦
評論