當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]0 引言對于大多數(shù)單片機而言,其內(nèi)部存儲器只有ROM和RAM兩種。由于ROM對數(shù)據(jù)的不易修改性和RAM對數(shù)據(jù)的掉電易失性,而且它們有限的容量,這極大地限制了單片機在數(shù)據(jù)存儲,處理及傳輸方面的應(yīng)用。如今,U盤已經(jīng)成為使

0 引言

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

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

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

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

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

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

 

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

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

1.3  U盤接口的選擇

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

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

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

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

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

對于本課題脫離PC機的U盤對拷技術(shù)的研究與設(shè)計,其具體流程為:首先初始化系統(tǒng)各功能模塊,等待源U盤的插入,源U盤插入之后讀取指定文件,并將數(shù)據(jù)暫存在外部RAM中并提示可以拔下源U盤,接著就等待目的U盤的插入,插入之后將外部RAM中的文件數(shù)據(jù)寫到指定的文件中(可以新建文件,也可以將當(dāng)前系統(tǒng)時間作為當(dāng)前文件的修改時間等等),第一輪循環(huán)結(jié)束,繼續(xù)以下的循環(huán)。其流程圖如圖3所示。  

2.2 協(xié)議的選擇

USB協(xié)議從1.0版本至今,已經(jīng)發(fā)展到2.0版本。在最新的2.0版本中,USB系統(tǒng)開發(fā)商已經(jīng)意識到USB的發(fā)展瓶頸在于無法脫離PC機,而對 USB主機進(jìn)行嵌入又因其協(xié)議的紛繁復(fù)雜而顯得困難重重。因此,系統(tǒng)開發(fā)商推出了OTG版本協(xié)議,其目的就在于實現(xiàn)USB在嵌入式領(lǐng)域中的應(yīng)用,這與本系統(tǒng)設(shè)計的出發(fā)點不謀而合。按照USB2.0的補充版本OTG 1.0規(guī)定,符合USB OTG協(xié)議的設(shè)備可以完全脫離PC機而獨立運行,即它本身即可作主機,也可以作外設(shè),也可以與另一個符合OTG規(guī)范的設(shè)備進(jìn)行互連[2]。

當(dāng)然,OTG解決方案并非盡善盡美,在很多場合并不要求系統(tǒng)即可作主機也可作從機,應(yīng)用OTG方案顯得有點多余;其次,由于OTG是新興技術(shù),在其健壯性上還有待驗證。最后,開發(fā)符合OTG協(xié)議的設(shè)備在當(dāng)前價格還比較昂貴,因此,若想將USB設(shè)備(存儲設(shè)備)應(yīng)用于嵌入式系統(tǒng)中,本文中提出的主機解決方案不失為一種很好的選擇。

2.3 軟件層次劃分

從嵌入式USB主機的軟件層次劃分來看,系統(tǒng)軟件主要包括主控制器驅(qū)動程序、USB核心驅(qū)動程序,以及用戶軟件;從功能劃分來看,系統(tǒng)軟件可分為以下幾個部分:

1.主CPU與各系統(tǒng)模塊的初始化程序設(shè)計

實現(xiàn)主CPU及各系統(tǒng)模塊的初始化,包括實現(xiàn)I2C接口的LED顯示、鍵盤、時鐘芯片以及主CPU與USB主機控制芯片之間的數(shù)據(jù)通信功能。

2.USB主機系統(tǒng)軟件的實現(xiàn)

主要完成核心驅(qū)動程序的功能,具體來說就是實現(xiàn)USB的4種基本數(shù)據(jù)的傳輸方式,實現(xiàn)USB設(shè)備的枚舉過程,并獲取USB設(shè)備的描述符等。這些功能都可以通過讀寫主控制器寄存器來完成。因此,系統(tǒng)中只需分別定義一個讀寄存器函數(shù)和寫寄存器函數(shù),然后以此函數(shù)為基礎(chǔ)來構(gòu)成各功能子函數(shù),實現(xiàn)數(shù)據(jù)傳輸、設(shè)備枚舉以及獲取描述符等各種操作。

3.Mass Storage類協(xié)議的程序設(shè)計

實現(xiàn)Mass Storage設(shè)備類中Bulk-Only傳輸協(xié)議和Mass Storage類中UFI子類的各種請求命令,對設(shè)備進(jìn)行各種訪問和讀寫操作。

4.應(yīng)用程序設(shè)計

主要實現(xiàn)FAT文件系統(tǒng)??筛鶕?jù)FAT文件系統(tǒng)的基本體系,通過Mass Storage類協(xié)議中的UFI子類命令和標(biāo)準(zhǔn)的設(shè)備請求命令與設(shè)備的Flash閃存建立連接關(guān)系,并在USB主機系統(tǒng)中建立磁盤的空間結(jié)構(gòu),定義 MBR, DBR的數(shù)據(jù)結(jié)構(gòu),建立FAT表,F(xiàn)DT表,實現(xiàn)對文件系統(tǒng)進(jìn)行讀取等操作功能即可。

系統(tǒng)的軟件設(shè)計即可按照上述的4個功能模塊來依次構(gòu)建。

3結(jié)束語

本設(shè)計建立了基于單片機的嵌入式USB主機系統(tǒng),該系統(tǒng)實現(xiàn)了USB協(xié)議中的Mass Storage類協(xié)議和精簡的FAT文件系統(tǒng),能夠?qū)盤中的文件數(shù)據(jù)進(jìn)行讀寫,完成相應(yīng)的文件操作等各種功能。結(jié)果表明:利用該嵌入式USB主機系統(tǒng)對具體U盤中的文件進(jìn)行讀操作時,平均速度為60~80KB/S,對之進(jìn)行寫操作時,平均速度為40~50KB/S。該系統(tǒng)真正實現(xiàn)了便攜式,擺脫了PC機對USB設(shè)備的控制,無需PC主機即可對USB設(shè)備進(jìn)行讀寫操作,具有廣闊的應(yīng)用前景。程序主要采用C語言編寫,因此它可以很方便地移植到其它處理器中。

本文創(chuàng)新之處:目前,市場上脫離PC對U盤操作的單純產(chǎn)品很少,而且有些此功能的產(chǎn)品都有一定的應(yīng)用背景。本設(shè)計開發(fā)了U盤對拷器,留有擴展口,可作U盤對拷器用,也可在此基礎(chǔ)上作二次開發(fā)。

參考文獻(xiàn)
[1] 王成儒.USB 2.0原理與工程開發(fā)[M].北京:國防工業(yè)出版社,2004.1
[2] 伊勇,王洪成.單片機開發(fā)環(huán)境uVision2使用指南及USB固件編程與調(diào)試[M]. 北京:北京航空航天大學(xué)出版社,2004.11
[3] 李群芳 張士軍編.單片微型計算機與接口技術(shù)(第2版)[M].西安:電子工業(yè)出版社,2005.1 
[4] 郭文彬 孫智權(quán)等. 基于NiosⅡ的usb接口模塊設(shè)計[J].微計算機信息,2006,10-2:278-279。
 

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉