基于單片機的嵌入式USB主機系統的實現
0 引言
本文引用地址:http://www.104case.com/article/171654.htm對于大多數單片機而言,其內部存儲器只有ROM和RAM兩種。由于ROM對數據的不易修改性和RAM對數據的掉電易失性,而且它們有限的容量,這極大地限制了單片機在數據存儲,處理及傳輸方面的應用。如今,U盤已經成為使用方便的移動存儲設備,它采用USB總線接口,支持熱插拔且即插即用,體積小容量大,讀寫速度快,可重復擦寫幾百萬次,無需外接電源,易于采購和攜帶,有多種容量可供選擇,但是它通常與計算機交換數據,不是很方便。因此就有了脫離 PC機在U盤之間交換數據的需求。本文為脫離PC機的U盤對拷技術的研究與設計,主要任務是要完成在無操作系統的情況下對嵌入式USB主機系統的設計,并完成Mass Storage類協議設備驅動嵌入式程序及用戶程序。最后,實現結果為在無操作系統的單片機環境下能夠對U盤進行文件的讀寫操作及FAT文件系統的實現。
1硬件電路總體設計
嵌入式USB主機系統從硬件上區分主要包括USB主機控制器和系統主處理器,因此,嵌入式主機系統的核心就由主CPU和主機控制器芯片構成。組成系統的首要任務就是選擇合適的主CPU以及USB主機控制器芯片。另外,為了直觀地顯示系統調試過程和運行結果,需要建立一個人機界面。若作為一個獨立的系統,需要另行配置LCD顯示模塊、完整的鍵盤模塊等。硬件選擇的方案HAI必須綜合考慮系統成本、處理速度、體積、功耗等問題。
1.1 系統硬件總體框圖
嵌入式USB主機系統的核心包括中央處理器和USB主機控制器,基于程序存儲容量和處理數據速度方面的考慮,外部擴充RAM。圖1是系統的總體設計框圖。
系統的大致工作流程是(視具體設計而定):單片機系統在完成系統初始化之后,等待USB主控制器的外部中斷或查詢USB主控制器的狀態,當USB設備插入主機系統上之后,由USB主控制器通過外部中斷信號或相應的狀態值來通知單片機系統,單片機與USB主控制器完成設備的枚舉、配置等操作,并對 Flash閃存進行操作,可以建立文件并寫數據,建立文件夾,讀取具體文件中的數據,修改文件的信息(例如文件的修改時間,大小等),或者使用通配符對 Flash閃盤中文件或文件夾等等。預留擴展接口是留給用戶進行具體功能擴展時使用,用于通過RS-232與PC機進行通信,或控制時鐘芯片等等。
1.2 系統主處理器的選擇
常用的8位單片機體積小成本低,但是一般來說時鐘頻率不很高,且往往一個機器周期需要好幾個時鐘周期,更加導致效率降低。此外,8位單片機的片內資源較少,RAM,ROM容量都比較小,加大RAM就可以解決有大量數據需要處理的系統需求。DSP處理器由于外圍集成的資源比較少,價格又比較昂貴,同樣不適用于本系統。如今市面上流行的32位ARM核微處理器,處理速度快,外圍集成單元齊全,價格適中,更被廣泛應用于工業控制、智能系統等嵌入式設備中,因此如本系統采用ARM作為核心系統處理器可以達到很高的速度和性價比[1]。但是在一些對于速度要求不很高的場合,利用單片機也能達到很好的效果,并且能夠極大的降低系統成本。本設計采用AT89S52單片機作為系統核心處理器,通過對程序的優化,使得對U盤的讀寫速度達到近80KB/S,完全可以滿足一般情況下對U盤讀寫速度的要求。
1.3 U盤接口的選擇
在利用單片機對U盤進行讀寫時,需要增加兩個USB接口,在系統程序的控制下,就可以實現U盤數據拷貝。因此實現單片機對U盤數據的讀寫是問題的關鍵所在。為了實現復雜的USB協議及USB通信,需要使用USB總線接口芯片。本設計中選擇的是CH375芯片,它是USB總線通用接口芯片,支持 USB-HOST主機模式,在本地端CH375具有8位數據總線和讀、寫、片選控制線以及中斷輸出,可以方便地掛接到單片機控制器的系統總線上,且 CH375在USB主機方式下支持常用的USB全速設備,外部單片機可以通過CH375按照相應的USB協議與USB設備通訊,并且CH375支持USB 設備的控制,批量和中斷傳輸。因此只要利用單片機對USB總線接口芯片進行在主機模式下的合理控制,即可實現嵌入式的單片機系統對U盤的讀寫。
2 系統軟件功能模塊
嵌入式USB主機系統不同于PC平臺上的主機系統。由于其系統資源和性能的限制,嵌入式的主機系統只需根據需要實現特定的設備類即可。在USB總線活動的時候,主機系統是根據協議規范按照特定的時序運行。因此,整個系統的軟件設計就可以不依賴于任何操作系統,而只是利用嵌入式的資源即可。在嵌入式 USB主機中,通過系統程序來調度各個任務,從而實現系統的各種功能。
2.1 系統程序流程
系統主程序的流程:首先對系統各部分功能模塊進行初始化,接著根據具體需要完成相應的功能(例如采集數據等等),之后查詢是否有U盤插入,插入之后即可根據具體需要完成相應的文件操作。本設計的應用系統的程序流程圖如圖2所示。
評論