The Realization of the Embedded USB Host System based on SCM
摘 要:在無操作系統(tǒng)的單片機系統(tǒng)中實現(xiàn)USB主機系統(tǒng)功能,對U盤進行文件的讀寫,并在U盤上實現(xiàn)FAT格式文件系統(tǒng),使U盤成為單片機應(yīng)用系統(tǒng)的存儲設(shè)備,這極大的方便了單片機在數(shù)據(jù)采集,存儲以及傳輸方面的應(yīng)用。最后,實現(xiàn)了脫離PC機的對U盤操作的功能,數(shù)據(jù)能夠脫離PC機在U盤之間方便簡潔的交換。
關(guān)鍵字:USB主機系統(tǒng);U盤;FAT文件系統(tǒng);人機接口
Abstract: It implements USB host system function in application system of the Single Chip Microcomputer without operating system, and establishes FAT file system on USB flash disk, implements the read and write file in USB flash disk and makes USB flash disk be the storage of the application of SCM, which greatly facilitates the application of SCM in the data acquisition, memory, processing, and transmission aspect. And on this basis, procedure can be slightly modified to implement brief exchange of data between USB flash disk without computer.
Keywords:USB Host System, USB Flash Disk, FAT File System, Man-Machine Interface
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ū)盤進行文件的讀寫操作及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閃存進行操作,可以建立文件并寫數(shù)據(jù),建立文件夾,讀取具體文件中的數(shù)據(jù),修改文件的信息(例如文件的修改時間,大小等),或者使用通配符對Flash閃盤中文件或文件夾等等。預(yù)留擴展接口是留給用戶進行具體功能擴展時使用,用于通過RS-232與PC機進行通信,或控制時鐘芯片等等。

圖1 系統(tǒng)總體設(shè)計框圖
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盤進行讀寫時,需要增加兩個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總線接口芯片進行在主機模式下的合理控制,即可實現(xiàn)嵌入式的單片機系統(tǒng)對U盤的讀寫。





