USB主機(jī)方式在嵌入式系統(tǒng)的應(yīng)用
USB 就是指通用串行總線(Universal Serial Bus),是計算機(jī)外圍設(shè)備通訊的總線標(biāo)準(zhǔn)。USB 能夠?qū)崿F(xiàn)從出現(xiàn)迅速發(fā)展到普遍應(yīng)用,其主要的原因是其具有高速、穩(wěn)定、廉價、方便的特點。在嵌入式系統(tǒng)中USB技術(shù)主要有兩種應(yīng)用方式,一種是USB總線設(shè)備的USB設(shè)備方式,一種是USB主控制器的嵌入式USB主機(jī)。USB 設(shè)備已經(jīng)得到了廣泛的使用,但是USB 主機(jī)實現(xiàn)其復(fù)雜性卻沒有很多應(yīng)用實例。文章主要研究了USB應(yīng)用領(lǐng)域中,采用低端控制器的嵌入式系統(tǒng)如何實現(xiàn)有限的USB主機(jī)功能。
由于其良好的特性,USB 總線的應(yīng)用范圍已經(jīng)開始從計算機(jī)外圍設(shè)備向嵌入式系統(tǒng)擴(kuò)展,在嵌入式系統(tǒng)中USB總線協(xié)議的完整性與復(fù)雜性使得它的應(yīng)用方式多種多樣。
1 USB 總線簡介
1.1 USB總線拓?fù)浣Y(jié)構(gòu)
USB主機(jī)(USB HOST)、USB 設(shè)備(USB DECICE)、USB集線器(USBHUB)是USB系統(tǒng)中的三個硬件設(shè)備。USB 主機(jī)是每一個USB 系統(tǒng)中都必須包含的,在整個系統(tǒng)中其占據(jù)主導(dǎo)地位。USB 設(shè)備主要有兩個類型,一個是為USB 總線提供接入口的集線器,另一個是鼠標(biāo)、打印設(shè)備、存儲設(shè)備等具有特定功能的設(shè)備。
1.2 USB總線特征
(1)使用方便。USB 總線能夠即插即用,為終端用戶的使用提供方便,主要是由于接口方式統(tǒng)一、電氣方面有總線供電和設(shè)備自供電、自動識別設(shè)備、外圍設(shè)備動態(tài)鏈接與重新配置。
(2)適用于不同應(yīng)用范圍。USB總線的速度模式與數(shù)據(jù)流傳輸模式具有多樣性,能夠滿足不同應(yīng)用范圍的需求,使USB總線能夠被廣泛地使用。
2 USB 主機(jī)方式在嵌入式系統(tǒng)的應(yīng)用
2.1 嵌入式USB 主機(jī)應(yīng)用
2.1.1 嵌入式USB 主機(jī)應(yīng)用中的問題
USB主控的集成能夠使嵌入式產(chǎn)品與各種低價、便捷的外部設(shè)備連接。便攜移動設(shè)備的發(fā)展對USB 主控裝置有著越來越大的需求。
從根本上來說,USB就是PC總線的外部擴(kuò)展,PC為其提供了豐富的系統(tǒng)資源,而PC 中的Microsoft Windows 操作系統(tǒng)原本就可以支持USB.USB主控體系結(jié)構(gòu)由于系統(tǒng)資源與軟件支持成為了PC應(yīng)用中理想的解決方案,但是嵌入式系統(tǒng)中并沒有這些優(yōu)勢。
嵌入式USB主機(jī)應(yīng)用中問題主要體現(xiàn)在: 嵌入式系統(tǒng)有限的系統(tǒng)資源容量與能力; USB固件的添加會使嵌入式應(yīng)用的復(fù)雜性加大,影響嵌入式應(yīng)用及時響應(yīng)實時事件的功能; 嵌入式市場處理器與實時操作系統(tǒng)繁復(fù),USB固件的開發(fā)與移植需要大量的時間,典型嵌入項目的設(shè)計學(xué)習(xí)過長、過于艱辛。
2.1.2 嵌入式USB 主機(jī)應(yīng)用相關(guān)問題的對策
要解決嵌入式裝置中USB主控設(shè)計復(fù)雜的問題,其中一個方法就是在USB 主端控制器中揉入USB 即插即用的能力智能。具體的操作辦法有:在控制器硬件中嵌入USB 主控棧與器件驅(qū)動的功能共用組件;將USB主控功能壓縮到語族與ANSI C兼容的API(被系統(tǒng)用來獲取USB主控制器中的USB主控功能)中。
2.2 U盤讀寫系統(tǒng)中的USB主機(jī)應(yīng)用
U 盤是一種移動存儲設(shè)備,雖然在PC領(lǐng)域中應(yīng)用廣泛,但是在嵌入式系統(tǒng)中的潛力卻并沒有體現(xiàn)出來。U 盤良好的通用性決定其能夠在嵌入式系統(tǒng)中應(yīng)用,一來U 盤的使用不僅僅局限一臺主機(jī),二來U盤是一種低價、便捷的數(shù)據(jù)采集存儲媒介;最后U盤具有較好的抗震性與穩(wěn)定性,能夠在特殊環(huán)境中使用。
2.2.1 U 盤的工作原理
U盤是一種基于USB總線的移動存儲設(shè)備,符合USB大容量存儲類協(xié)議,在U 盤的內(nèi)部有USB 設(shè)備接口引擎、微控制器,兩者共同工作處理主機(jī)命令并管理存儲設(shè)備。
2.2.2 U盤標(biāo)準(zhǔn)描述符
設(shè)備識別與設(shè)備枚舉的依據(jù)就是設(shè)備的標(biāo)準(zhǔn)描述符,當(dāng)U盤插入到主機(jī)之后,主機(jī)會要求U盤報告其標(biāo)準(zhǔn)描述符,主要涉及到的有:設(shè)備描述符(Device Descriptor),對設(shè)備的類型與子類型、版本號、協(xié)議代號等進(jìn)行定義;配置描述符(ConfigurationDescriptor)對接口的數(shù)量、設(shè)備的供電模式與供電量進(jìn)行定義;接口描述符(Interface Descriptor);端點描述符(EndpointDescriptor)。
2.2.3 BULK-LNLY 傳輸方式
USB會在U盤插入后對其進(jìn)行搜索,要求U 盤提供描述符。USB Host 得到描述符就可完成配置,識別基于BULKLNLY傳輸?shù)拇笕萘看鎯υO(shè)備,進(jìn)入BULK-LNLY 傳輸方式,對命令塊包、狀態(tài)塊包、普通數(shù)據(jù)三類數(shù)據(jù)進(jìn)行USB與U 盤之間的傳輸。
2.2.4 U 盤與主機(jī)的數(shù)據(jù)傳輸
主機(jī)(基于Bulk-Only 傳輸協(xié)議)與U 盤之間的數(shù)據(jù)傳輸都是由主機(jī)發(fā)起的,主機(jī)向設(shè)備發(fā)送包含操作命令代碼的命令塊包,設(shè)備接收之后,對命令塊包進(jìn)行檢查與解讀,根據(jù)命令來進(jìn)行操作,并將執(zhí)行的狀況報告給主機(jī)。
3 結(jié)語
相對于傳統(tǒng)的串行接口來說,USB總線更加方便使用、高速穩(wěn)定、靈活快捷,受到了用戶的一致的好評與歡迎,得以迅速的發(fā)展。本文對USB 總線的特征與發(fā)展?fàn)顩r進(jìn)行了分析,總結(jié)出了USB 總線的優(yōu)勢。在對USB 總線協(xié)議分析的基礎(chǔ)上,對USB技術(shù)在嵌入式系統(tǒng)中的應(yīng)用研究,對USB 應(yīng)用模式中的USB主機(jī)的實施方案進(jìn)行了具體研究。