《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 一種嵌入式USBMiniHost系統(tǒng)設(shè)計與實現(xiàn)
一種嵌入式USBMiniHost系統(tǒng)設(shè)計與實現(xiàn)
電子設(shè)計工程
梁寶娟,孫少波
摘要: 設(shè)計并實現(xiàn)了一個嵌入式USB主機系統(tǒng)的硬件和軟件,用于解決USB設(shè)備不能脫離PC主機的問題。并在設(shè)計的硬件和軟件基礎(chǔ)上利用嵌入式C語言編制了具有USBHost功能通用固件庫。并利用這個固件庫實現(xiàn)一個具有并口到USB接口的打印轉(zhuǎn)換器。
Abstract:
Key words :

USB的拓?fù)錂C構(gòu)中居于核心地位的是主機(Host),任何一次USB的數(shù)據(jù)傳輸都必須由主機來發(fā)起和控制,所有USB設(shè)備都只能和主機建立連接,任何兩個外設(shè)之間或是兩個主機之間無法直接通信。而目前,大量扮演主機角色的是個人電腦PC。目前所買到和使用的USB設(shè)備基本都是只具備USB設(shè)備的功能而不具備主機功能,比如USB接口的移動硬盤、數(shù)碼相機、打印機等。所有這些設(shè)備都只能在USB Host上使用,也就是通常只能通過PC來進(jìn)行相互的文件和數(shù)據(jù)交換。沒有了PC主機,這些設(shè)備是不能互聯(lián)的。

1 USB系統(tǒng)模型和拓?fù)浣Y(jié)構(gòu)
最簡單的USB系統(tǒng)模型組成是以USB主機為核心,以外圍的USB設(shè)備為特定功能的設(shè)備模塊。即USB提供的是主機和設(shè)備中間的一種數(shù)據(jù)通信服務(wù)。此外,為了構(gòu)建更復(fù)雜的USB系統(tǒng),還需要加上USB集線器(Hub)。
USB主機包括PC或嵌入式系統(tǒng)兩種類型,每一次USB數(shù)據(jù)通信都必須是由USB主機來發(fā)起的(遠(yuǎn)程喚醒模式除外),主機管理著每個USB設(shè)備。即使新興的USB On-The-Go設(shè)備,其核心部分仍然是嵌入了USB主機的功能。本方案主要是基于嵌入式USB主機的USB系統(tǒng)模型。
USB的拓?fù)潴w系由3種元素組成:主機、Hub和設(shè)備,通過Hub的級聯(lián),構(gòu)成了層次化的星形結(jié)構(gòu)。USB的拓?fù)浣Y(jié)構(gòu)如圖1所示。

a.JPG



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所示。

b.JPG


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所示。

c.JPG

2.3 MCU程序下載電路
由RS232端口來下載MCU程序,對應(yīng)的電路圖如圖4所示。

d.JPG


DR9插座和MAX232置于單獨的下載板上,利用8PIN插座和主板(SPP/USB轉(zhuǎn)換主板)來連接。異步串行接口下載程序時,各管腳設(shè)置如下所示:
P60=‘L’,P61=‘L’;
MD0,MD1,MD2=‘HHL’。
2.4 Reset電路
在MB90F337內(nèi)部有上電復(fù)位(power on reset)功能,在外部reset電路發(fā)生外部reset請求。外部reset電路的初步想法如圖5所示。使用的復(fù)位芯片(reset chip)是PST9231。reset時間利用外部電容,設(shè)置為40~50 ms之間。

e.JPG



3 USB Host庫設(shè)計
MiniHost部分負(fù)責(zé)USB Host部分的操作,它將完成如下功能:初始化MiniHost部分電路;支持USB 2.0高速和低速設(shè)備;注冊回調(diào)函數(shù);設(shè)備的枚舉,包括BUS Reset、SETADDRESS請求以及設(shè)定控制端點的最大包的大小:SETUP請求操作;Bulk傳輸請求操作。
3.1 Time Module部分
設(shè)置一個PWCTimer,使其再0.1ms中斷一次,在這個中斷處理程序中對記錄時間的全局變量加1,也就是說系統(tǒng)中時間的單位是0.1ms。如果記錄時間的全局變量溢出,則將這個變量的值設(shè)置為0。


初始化定時器代碼如下:
f.JPG
3.2 MiniHost部分
MiniHost Module主流程圖如圖6所示。

h.JPG


當(dāng)一個新的傳輸請求開始處理時,將會執(zhí)行如圖7所示流程。

i.JPG

1)發(fā)送SETUP階段請求;
2)發(fā)送塊請求(BULK Request);
當(dāng)一個傳輸請求在一個階段處理不完時,將會執(zhí)行圖8所示流程。比如控制傳輸(Control Transfer)需要3個階段。
3)控制傳輸(Control Transfer)結(jié)束,向EndPoint結(jié)構(gòu)體中寫入傳送完成的結(jié)果,并根據(jù)傳輸?shù)念愋妥鱿鄳?yīng)處理。
4)塊傳輸(BULK Transfer)結(jié)束,向EndPoint結(jié)構(gòu)體中寫入傳送完成的結(jié)果,并向并口上發(fā)送ACK BUSY信號。

4 并口到USB接口打印轉(zhuǎn)換器實現(xiàn)
4.1 打印轉(zhuǎn)換器功能描述
利用上述系統(tǒng),設(shè)計一個能夠把并口轉(zhuǎn)換為USB接口的打印轉(zhuǎn)換器,這個轉(zhuǎn)換器只是把從并口收到的數(shù)據(jù)轉(zhuǎn)發(fā)到USB接口上,然后根據(jù)USB接口規(guī)范,把數(shù)據(jù)重新包裝后發(fā)送給USB打印機,轉(zhuǎn)換器中并不需要對并口的數(shù)據(jù)內(nèi)容進(jìn)行解釋,只是轉(zhuǎn)發(fā)。
4.2 并口打印機數(shù)據(jù)傳輸過程
并口打印機采用IEEE1284標(biāo)準(zhǔn)進(jìn)行通訊。IEEE1284標(biāo)準(zhǔn)為PC和外設(shè)之間的通訊定義了雙向通訊協(xié)議,通過該協(xié)議PC和外設(shè)之間的雙向數(shù)據(jù)傳輸率可以比以前提高20到50倍,同時該協(xié)議保持了軟件的向下兼容性。IEEE1284標(biāo)準(zhǔn)一共定義了5種數(shù)據(jù)傳輸模式,即正向傳輸模式(兼容模式),兩種反向傳輸模式(半字節(jié)模式和字節(jié)模式),兩種雙向傳輸模式(EPP模式一高速增強并行端口和ECP模式-擴(kuò)展并行端口)。
打印電纜我們采用D25接口,并行口一般有25個引腳,其中包括8位數(shù)據(jù)線,5位打印機狀態(tài)線,4位控制線。
4.3 USB接口打印機數(shù)據(jù)傳輸過程
打印設(shè)備它們能夠把頁面描述語言(PDL)轉(zhuǎn)換為人們能夠讀懂的打印頁面。因此需要制定打印機如何來接收這些PDL格式的數(shù)據(jù),如何能夠返回打印機的狀態(tài)信息。常規(guī)的并口打印機用一個雙向打印端口來只認(rèn)識這些語言。USB用一個Bulk OUT端點來發(fā)送這些數(shù)據(jù)到打印機,并用一個Bulk IN端點來發(fā)送狀態(tài)信息或其他數(shù)據(jù)。對于現(xiàn)已存在的方式來說,能夠在主機中通過Bulk IN端點使用查詢機制來檢索并口的狀態(tài)信息。一些PDL允許打印機返回大量的數(shù)據(jù),諸如一些字體定義等信息。如果打印機實現(xiàn)了這個功能,它將使用用于傳送回狀態(tài)信息的Bulk IN端點來傳送回這些數(shù)據(jù)。
4.4 功能設(shè)計
1)并口部分功能
①為了方便處理打印并口只支持IEEE 1284-1994 SPP模式。
②打印數(shù)據(jù)只支持單方向(數(shù)據(jù):PC→轉(zhuǎn)換器)。
③BUSY和ACK的信號時序類型為A-B(Ack-in-Busy)。
2)USB打印機接口功能
①支持USB Ver2.0 Full Speed。
②符合Universal Serial Bus Specification 2.0。
③符合Universal Serial Bus Device Class Definition for Printing Devices規(guī)范。
④控制傳送的數(shù)據(jù)最大值為64字節(jié)。
⑤批量(Bulk)傳送的數(shù)據(jù)最大值為64字節(jié)。
⑥不處理USB Hub。
3)內(nèi)部功能
①定期取得打印機的狀態(tài)(以1秒為單位),反映到并口信號線中(利用USB控制傳送的GET_PORT_STATUS)。
②并口的收信緩沖存儲為64字節(jié),接收到64字節(jié)后由USB接口傳送給打印機。
③并口的收信處理中設(shè)置了超時(1秒),一旦超時發(fā)生,接收到的數(shù)據(jù)由USB接口傳送給打印機。
4.5 并口模塊
負(fù)責(zé)和并口相關(guān)的工作。從并口讀取數(shù)據(jù)放入數(shù)據(jù)緩沖區(qū)。設(shè)置和讀取并口狀態(tài)和控制端口。通過讀取時間,來生成并口的時序。使用中斷(Interrupt)對并口的InputPrime信號進(jìn)行相應(yīng)的處理。使用中斷(Interrupt)對并口的nStrobe信號進(jìn)行相應(yīng)的處理。
4.6 主模塊(Main Module)
主模塊負(fù)責(zé)初始化整個系統(tǒng),包括Parallel Module,MiniHost Module以及整個系統(tǒng)的變量。編寫一個回調(diào)函數(shù),此函數(shù)在設(shè)備狀態(tài)(連接或斷開)改變時調(diào)用。在檢測到設(shè)備連接后,調(diào)用MiniHost Module枚舉功能,枚舉打印機,并把打印機設(shè)置為某種模式。檢查是否要發(fā)送的控制或批量傳送。如果要,則把它們發(fā)送出去。

5 結(jié)束語
本論文設(shè)計了一種嵌入式USB主機系統(tǒng),并完成了該系統(tǒng)的硬件和固件的實現(xiàn)和調(diào)試。為了驗證系統(tǒng),實現(xiàn)了打印機IEEE 1284中的SPP模式協(xié)議到USB打印設(shè)備類協(xié)議轉(zhuǎn)換器。在硬件設(shè)計中,系統(tǒng)采用富士通90330系列MCU中的MB90F337完成中央控制器和USB Host控制器,電路設(shè)計簡潔。文章為其他嵌入式USB Host設(shè)備的開發(fā)提供了設(shè)計參考。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产偷自视频区视频一区二区 | 午夜免费日韩视频| 亚洲毛片在线免费观看| 亚洲日韩欧美视频一区| 欧美中文字幕视频| 欧美综合二区| 久久精品国产亚洲一区二区| 欧美一区二区三区免费观看视频| 亚洲欧美精品伊人久久| 亚洲自啪免费| 亚洲欧美日韩国产一区| 亚洲欧美另类在线观看| 亚洲摸下面视频| 午夜在线观看免费一区| 欧美亚洲一区| 久久精品欧美日韩| 亚洲第一在线| 亚洲区一区二| 在线亚洲自拍| 亚洲男人第一网站| 欧美一区二区三区精品| 久久精品日产第一区二区| 久久久久国产成人精品亚洲午夜| 久久久久久久高潮| 久久夜色精品一区| 欧美成人激情视频免费观看| 欧美欧美在线| 伊大人香蕉综合8在线视| 一本一本大道香蕉久在线精品| 久久精品人人做人人爽电影蜜月| 欧美在线精品一区| 久久九九99视频| 另类天堂av| 欧美日本不卡| 国产精品人人爽人人做我的可爱| 国产女人18毛片水18精品| 国产一区二区三区久久悠悠色av | 影音先锋亚洲视频| 亚洲破处大片| 亚洲天堂黄色| 久久精品免费观看| 99精品国产高清一区二区| 亚洲摸下面视频| 久久香蕉国产线看观看av| 欧美激情第一页xxx| 国产精品成人免费视频| 国产视频一区欧美| 亚洲激情第一区| 亚洲免费在线观看| 亚洲国产一成人久久精品| 亚洲视频中文| 久久久久久久一区二区三区| 欧美精品国产精品日韩精品| 国产精品久久午夜夜伦鲁鲁| 国内精品久久久久影院优| 亚洲精品视频免费在线观看| 亚洲欧美日韩一区二区| 亚洲精品极品| 香蕉精品999视频一区二区| 免费不卡视频| 国产精品亚洲综合| 亚洲欧洲综合另类在线| 欧美一级黄色网| 一区二区日韩免费看| 久久激情视频久久| 欧美日韩在线三区| 黄色另类av| 亚洲曰本av电影| 亚洲理论在线| 久久久久国产一区二区| 欧美午夜久久久| 在线看片一区| 亚洲一级片在线观看| 一区二区欧美亚洲| 亚洲国产日日夜夜| 欧美一区二区三区的| 欧美精品一区二区精品网| 国产丝袜一区二区三区| 日韩一二三区视频| 亚洲人午夜精品| 久久精品99无色码中文字幕| 欧美日韩在线视频一区| 亚洲第一在线| 欧美一区二区三区精品电影| 中文欧美日韩| 欧美成人精品一区| 国产欧美一区二区三区久久| 日韩午夜在线观看视频| 亚洲国产三级| 久久久女女女女999久久| 国产精品日本| 在线视频亚洲一区| 一区二区三区日韩欧美精品| 欧美成人精品福利| 伊人狠狠色丁香综合尤物| 亚洲永久免费观看| 亚洲天堂男人| 欧美激情中文字幕一区二区| 国内精品国产成人| 午夜精品一区二区三区四区 | 久久国产精品毛片| 午夜精品久久| 欧美体内谢she精2性欧美| 在线观看日韩国产| 久久国产毛片| 欧美在线一二三| 国产精品久久久久免费a∨大胸 | 国产日韩在线视频| 亚洲在线不卡| 亚洲欧美精品| 亚洲婷婷综合色高清在线| 国产精品毛片a∨一区二区三区| 在线国产日韩| 亚洲高清视频的网址| 欧美有码视频| 国产伦精品一区二区三区四区免费| 一本久久青青| 亚洲制服欧美中文字幕中文字幕| 欧美理论在线播放| 亚洲精品在线电影| 亚洲精选在线观看| 欧美紧缚bdsm在线视频| 亚洲国产精品尤物yw在线观看 | 永久免费精品影视网站| 久久精品国产一区二区三区免费看| 欧美一区二区三区免费大片| 国产精品久久久久久亚洲毛片| 一区二区三区四区五区视频| 亚洲一区二区三区在线视频| 欧美日韩三级视频| 一本一道久久综合狠狠老精东影业| 午夜视频在线观看一区| 久久精品人人爽| 狠狠色狠狠色综合人人| 亚洲大胆av| 欧美 日韩 国产一区二区在线视频| 有码中文亚洲精品| 亚洲精品视频免费观看| 欧美激情第8页| 亚洲美女av网站| 亚洲欧美另类国产| 国产欧美va欧美va香蕉在| 欧美亚洲免费电影| 久久久久久久久久久久久久一区 | 狠狠狠色丁香婷婷综合久久五月 | 一区视频在线看| 亚洲三级影院| 欧美日韩国产页| 亚洲午夜久久久久久久久电影院 | 久久黄色网页| 免费视频一区二区三区在线观看| 在线日韩视频| 一区二区三区日韩| 国产精品欧美一区二区三区奶水| 性做久久久久久免费观看欧美| 美女免费视频一区| 亚洲精品九九| 午夜精品区一区二区三| 韩日精品在线| 亚洲剧情一区二区| 国产精品乱人伦中文| 欧美制服丝袜| 欧美日韩xxxxx| 亚洲资源在线观看| 你懂的国产精品永久在线| 一区二区av| 久久―日本道色综合久久| 亚洲激情网站免费观看| 亚洲综合第一页| 伊人成人在线| 亚洲男女自偷自拍| 一区二区三区在线不卡| 99这里有精品| 国产亚洲女人久久久久毛片| 亚洲精品影视| 国产欧美在线| 欧美一区二区三区精品| 欧美日韩成人免费| 亚洲欧美国产视频| 欧美精品一区二区三区视频 | 妖精成人www高清在线观看| 国产乱理伦片在线观看夜一区| 亚洲国内自拍| 国产精品第2页| 亚洲国产精品精华液2区45| 欧美午夜精品一区| 亚洲国产小视频| 国产精品日韩| 99在线|亚洲一区二区| 红桃视频欧美| 亚洲在线日韩| 亚洲第一免费播放区| 性欧美超级视频| 亚洲日本成人| 久久精品视频在线观看| 日韩天天综合| 免费在线一区二区| 午夜久久黄色| 国产精品二区在线观看| 亚洲精品久久久久久久久|