新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)的嵌入式USB主機(jī)系統(tǒng)的實(shí)現(xiàn)

基于單片機(jī)的嵌入式USB主機(jī)系統(tǒng)的實(shí)現(xiàn)

作者: 時(shí)間:2012-04-11 來(lái)源:網(wǎng)絡(luò) 收藏

0 引言

本文引用地址:http://m.butianyuan.cn/article/171654.htm

對(duì)于大多數(shù)而言,其內(nèi)部存儲(chǔ)器只有ROM和RAM兩種。由于ROM對(duì)數(shù)據(jù)的不易修改性和RAM對(duì)數(shù)據(jù)的掉電易失性,而且它們有限的容量,這極大地限制了在數(shù)據(jù)存儲(chǔ),處理及傳輸方面的應(yīng)用。如今,U盤(pán)已經(jīng)成為使用方便的移動(dòng)存儲(chǔ)設(shè)備,它采用總線接口,支持熱插拔且即插即用,體積小容量大,讀寫(xiě)速度快,可重復(fù)擦寫(xiě)幾百萬(wàn)次,無(wú)需外接電源,易于采購(gòu)和攜帶,有多種容量可供選擇,但是它通常與計(jì)算機(jī)交換數(shù)據(jù),不是很方便。因此就有了脫離 PC機(jī)在U盤(pán)之間交換數(shù)據(jù)的需求。本文為脫離PC機(jī)的U盤(pán)對(duì)拷技術(shù)的研究與設(shè)計(jì),主要任務(wù)是要完成在無(wú)操作的情況下對(duì)的設(shè)計(jì),并完成Mass Storage類(lèi)協(xié)議設(shè)備驅(qū)動(dòng)程序及用戶(hù)程序。最后,結(jié)果為在無(wú)操作環(huán)境下能夠?qū)盤(pán)進(jìn)行文件的讀寫(xiě)操作及FAT文件系統(tǒng)的。

1硬件電路總體設(shè)計(jì)

系統(tǒng)從硬件上區(qū)分主要包括USB控制器和系統(tǒng)主處理器,因此,嵌入式主機(jī)系統(tǒng)的核心就由主CPU和主機(jī)控制器芯片構(gòu)成。組成系統(tǒng)的首要任務(wù)就是選擇合適的主CPU以及USB主機(jī)控制器芯片。另外,為了直觀地顯示系統(tǒng)調(diào)試過(guò)程和運(yùn)行結(jié)果,需要建立一個(gè)人機(jī)界面。若作為一個(gè)獨(dú)立的系統(tǒng),需要另行配置LCD顯示模塊、完整的鍵盤(pán)模塊等。硬件選擇的方案HAI必須綜合考慮系統(tǒng)成本、處理速度、體積、功耗等問(wèn)題。

1.1 系統(tǒng)硬件總體框圖

嵌入式USB主機(jī)系統(tǒng)的核心包括中央處理器和USB主機(jī)控制器,程序存儲(chǔ)容量和處理數(shù)據(jù)速度方面的考慮,外部擴(kuò)充RAM。圖1是系統(tǒng)的總體設(shè)計(jì)框圖。

系統(tǒng)的大致工作流程是(視具體設(shè)計(jì)而定):單片機(jī)系統(tǒng)在完成系統(tǒng)初始化之后,等待USB主控制器的外部中斷或查詢(xún)USB主控制器的狀態(tài),當(dāng)USB設(shè)備插入主機(jī)系統(tǒng)上之后,由USB主控制器通過(guò)外部中斷信號(hào)或相應(yīng)的狀態(tài)值來(lái)通知單片機(jī)系統(tǒng),單片機(jī)與USB主控制器完成設(shè)備的枚舉、配置等操作,并對(duì) Flash閃存進(jìn)行操作,可以建立文件并寫(xiě)數(shù)據(jù),建立文件夾,讀取具體文件中的數(shù)據(jù),修改文件的信息(例如文件的修改時(shí)間,大小等),或者使用通配符對(duì) Flash閃盤(pán)中文件或文件夾等等。預(yù)留擴(kuò)展接口是留給用戶(hù)進(jìn)行具體功能擴(kuò)展時(shí)使用,用于通過(guò)RS-232與PC機(jī)進(jìn)行通信,或控制時(shí)鐘芯片等等。

11.jpg

1.2 系統(tǒng)主處理器的選擇

常用的8位單片機(jī)體積小成本低,但是一般來(lái)說(shuō)時(shí)鐘頻率不很高,且往往一個(gè)機(jī)器周期需要好幾個(gè)時(shí)鐘周期,更加導(dǎo)致效率降低。此外,8位單片機(jī)的片內(nèi)資源較少,RAM,ROM容量都比較小,加大RAM就可以解決有大量數(shù)據(jù)需要處理的系統(tǒng)需求。DSP處理器由于外圍集成的資源比較少,價(jià)格又比較昂貴,同樣不適用于本系統(tǒng)。如今市面上流行的32位ARM核微處理器,處理速度快,外圍集成單元齊全,價(jià)格適中,更被廣泛應(yīng)用于工業(yè)控制、智能系統(tǒng)等嵌入式設(shè)備中,因此如本系統(tǒng)采用ARM作為核心系統(tǒng)處理器可以達(dá)到很高的速度和性?xún)r(jià)比[1]。但是在一些對(duì)于速度要求不很高的場(chǎng)合,利用單片機(jī)也能達(dá)到很好的效果,并且能夠極大的降低系統(tǒng)成本。本設(shè)計(jì)采用AT89S52單片機(jī)作為系統(tǒng)核心處理器,通過(guò)對(duì)程序的優(yōu)化,使得對(duì)U盤(pán)的讀寫(xiě)速度達(dá)到近80KB/S,完全可以滿(mǎn)足一般情況下對(duì)U盤(pán)讀寫(xiě)速度的要求。

1.3 U盤(pán)接口的選擇

在利用單片機(jī)對(duì)U盤(pán)進(jìn)行讀寫(xiě)時(shí),需要增加兩個(gè)USB接口,在系統(tǒng)程序的控制下,就可以U盤(pán)數(shù)據(jù)拷貝。因此實(shí)現(xiàn)單片機(jī)對(duì)U盤(pán)數(shù)據(jù)的讀寫(xiě)是問(wèn)題的關(guān)鍵所在。為了實(shí)現(xiàn)復(fù)雜的USB協(xié)議及USB通信,需要使用USB總線接口芯片。本設(shè)計(jì)中選擇的是CH375芯片,它是USB總線通用接口芯片,支持 USB-HOST主機(jī)模式,在本地端CH375具有8位數(shù)據(jù)總線和讀、寫(xiě)、片選控制線以及中斷輸出,可以方便地掛接到單片機(jī)控制器的系統(tǒng)總線上,且 CH375在USB主機(jī)方式下支持常用的USB全速設(shè)備,外部單片機(jī)可以通過(guò)CH375按照相應(yīng)的USB協(xié)議與USB設(shè)備通訊,并且CH375支持USB 設(shè)備的控制,批量和中斷傳輸。因此只要利用單片機(jī)對(duì)USB總線接口芯片進(jìn)行在主機(jī)模式下的合理控制,即可實(shí)現(xiàn)嵌入式的單片機(jī)系統(tǒng)對(duì)U盤(pán)的讀寫(xiě)。

2 系統(tǒng)軟件功能模塊

嵌入式USB主機(jī)系統(tǒng)不同于PC平臺(tái)上的主機(jī)系統(tǒng)。由于其系統(tǒng)資源和性能的限制,嵌入式的主機(jī)系統(tǒng)只需根據(jù)需要實(shí)現(xiàn)特定的設(shè)備類(lèi)即可。在USB總線活動(dòng)的時(shí)候,主機(jī)系統(tǒng)是根據(jù)協(xié)議規(guī)范按照特定的時(shí)序運(yùn)行。因此,整個(gè)系統(tǒng)的軟件設(shè)計(jì)就可以不依賴(lài)于任何操作系統(tǒng),而只是利用嵌入式的資源即可。在嵌入式 USB主機(jī)中,通過(guò)系統(tǒng)程序來(lái)調(diào)度各個(gè)任務(wù),從而實(shí)現(xiàn)系統(tǒng)的各種功能。

2.1 系統(tǒng)程序流程

系統(tǒng)主程序的流程:首先對(duì)系統(tǒng)各部分功能模塊進(jìn)行初始化,接著根據(jù)具體需要完成相應(yīng)的功能(例如采集數(shù)據(jù)等等),之后查詢(xún)是否有U盤(pán)插入,插入之后即可根據(jù)具體需要完成相應(yīng)的文件操作。本設(shè)計(jì)的應(yīng)用系統(tǒng)的程序流程圖如圖2所示。

12.jpg

linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)

上一頁(yè) 1 2 3 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉