一種嵌入式USB MiniHost系統(tǒng)設(shè)計與實現(xiàn)
摘要:設(shè)計并實現(xiàn)了一個嵌入式USB主機(jī)系統(tǒng)的硬件和軟件,用于解決USB設(shè)備不能脫離PC主機(jī)的問題。并在設(shè)計的硬件和軟件基礎(chǔ)上利用嵌入式C語言編制了具有USB Host功能通用固件庫。并利用這個固件庫實現(xiàn)一個具有并口到USB接口的打印轉(zhuǎn)換器。
關(guān)鍵詞:嵌入式系統(tǒng);通用串行總線(USB);USB主機(jī);USB設(shè)備
在USB的拓?fù)錂C(jī)構(gòu)中居于核心地位的是主機(jī)(Host),任何一次USB的數(shù)據(jù)傳輸都必須由主機(jī)來發(fā)起和控制,所有USB設(shè)備都只能和主機(jī)建立連接,任何兩個外設(shè)之間或是兩個主機(jī)之間無法直接通信。而目前,大量扮演主機(jī)角色的是個人電腦PC。目前所買到和使用的USB設(shè)備基本都是只具備USB設(shè)備的功能而不具備主機(jī)功能,比如USB接口的移動硬盤、數(shù)碼相機(jī)、打印機(jī)等。所有這些設(shè)備都只能在USB Host上使用,也就是通常只能通過PC來進(jìn)行相互的文件和數(shù)據(jù)交換。沒有了PC主機(jī),這些設(shè)備是不能互聯(lián)的。
1 USB系統(tǒng)模型和拓?fù)浣Y(jié)構(gòu)
最簡單的USB系統(tǒng)模型組成是以USB主機(jī)為核心,以外圍的USB設(shè)備為特定功能的設(shè)備模塊。即USB提供的是主機(jī)和設(shè)備中間的一種數(shù)據(jù)通信服務(wù)。此外,為了構(gòu)建更復(fù)雜的USB系統(tǒng),還需要加上USB集線器(Hub)。
USB主機(jī)包括PC或嵌入式系統(tǒng)兩種類型,每一次USB數(shù)據(jù)通信都必須是由USB主機(jī)來發(fā)起的(遠(yuǎn)程喚醒模式除外),主機(jī)管理著每個USB設(shè)備。即使新興的USB On-The-Go設(shè)備,其核心部分仍然是嵌入了USB主機(jī)的功能。本方案主要是基于嵌入式USB主機(jī)的USB系統(tǒng)模型。
USB的拓?fù)潴w系由3種元素組成:主機(jī)、Hub和設(shè)備,通過Hub的級聯(lián),構(gòu)成了層次化的星形結(jié)構(gòu)。USB的拓?fù)浣Y(jié)構(gòu)如圖1所示。
2 硬件設(shè)計
2.1 電源電路
電源電路的組成如下:
系統(tǒng)采用雙電壓給電方式;觸發(fā)器采用3.3 V給電;1284收發(fā)器采用5 V和3.3 V的雙電壓給電方式。在交流適配器中將干擾過濾后,提供5 V直流電壓。3.3 V直流電壓由固定輸出電源模塊來提供。電源系統(tǒng)結(jié)構(gòu)如圖2所示。
2.2 USB接口電路
為了給USB總線安全的提供電源,采用電源管理芯片,利用MCU來管理USB總線的電源。系統(tǒng)reset時,為了使與其連接的USB設(shè)備不進(jìn)行誤操作,關(guān)閉USB電源;總線電路異常而導(dǎo)致過流(over current)時,系統(tǒng)自動關(guān)閉電源并通知MCU。并且還采用壓敏電阻(vatistor)來防止靜電(ESD);采用共模軛流線圈(Common Mode Choke Coil)來減少對總線差模數(shù)據(jù)的干擾。USB Host接口部分的電路如圖3所示。
評論