《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)的存儲(chǔ)設(shè)備轉(zhuǎn)儲(chǔ)器
基于單片機(jī)的存儲(chǔ)設(shè)備轉(zhuǎn)儲(chǔ)器
電子設(shè)計(jì)工程
畢浩洋,毛曉波,劉一飛,冉臻昀
摘要: 介紹一款單片機(jī)存儲(chǔ)設(shè)備轉(zhuǎn)儲(chǔ)器,以C8051F040為核心控制模塊,通過外接兩個(gè)CH375U盤模塊、液晶顯示模塊及鍵盤模塊等實(shí)現(xiàn)兩個(gè)U盤之間數(shù)據(jù)的相互轉(zhuǎn)儲(chǔ),很好地解決了U盤內(nèi)容轉(zhuǎn)儲(chǔ)離不開電腦而帶來的不便以及容易感染病毒等弊端。C8051F040通過CH375按照相應(yīng)的USB協(xié)議與USB設(shè)備通訊,通過調(diào)用CH375提供的子程序庫(kù)來直接讀取U盤中的數(shù)據(jù),實(shí)現(xiàn)了普通單片機(jī)與U盤的通訊,支持常用的12Mb/s全速USB設(shè)備和1.5Mb/s低速設(shè)備。該設(shè)計(jì)方案具有低成本、低功耗、操作簡(jiǎn)單等特點(diǎn),將會(huì)有廣闊的應(yīng)用前景。
Abstract:
Key words :

目前U盤以其體積小、易攜帶、容量大、使用方便等特點(diǎn)成為最常用的移動(dòng)存儲(chǔ)設(shè)備之一。但是一直以來人們對(duì)U盤的使用僅限于U盤與計(jì)算機(jī)之間的通訊。如果要實(shí)現(xiàn)多個(gè)U盤的內(nèi)容相互轉(zhuǎn)儲(chǔ)必須通過計(jì)算機(jī)問接完成,比較麻煩,且無法滿足人們出門在外需要隨時(shí)隨地轉(zhuǎn)儲(chǔ)數(shù)據(jù)的要求。本文針對(duì)這一需求,設(shè)計(jì)了一款以C8051FD40單片機(jī)為核心的U盤轉(zhuǎn)儲(chǔ)器,實(shí)現(xiàn)不通過計(jì)算機(jī)直接完成兩個(gè)U盤之間的數(shù)據(jù)交換,具有體積小、傳輸速度快、操作方便、硬件綜合成本低等優(yōu)點(diǎn)。

1 系統(tǒng)硬件設(shè)計(jì)
1.1 系統(tǒng)總體結(jié)構(gòu)與工作原理
  
系統(tǒng)由電源模塊、USB接口轉(zhuǎn)儲(chǔ)模塊、控制模塊、鍵盤模塊和液晶顯示模塊等組成,如圖1所示。C8051F040微控制單元外接兩個(gè)CH375 U盤模塊,通過在單片機(jī)內(nèi)部開辟一個(gè)數(shù)據(jù)緩沖區(qū),直接調(diào)用子程序庫(kù),負(fù)責(zé)將一個(gè)U盤中選中的文件數(shù)據(jù)傳送到另一個(gè)U盤中。液晶和外部鍵盤實(shí)現(xiàn)人機(jī)接口,通過鍵盤的上翻、下翻、選擇、復(fù)制等按鍵,選中要轉(zhuǎn)存的文件,并在液晶模塊中顯示文件名、文件大小等相關(guān)信息。人
機(jī)交互界面友好、操作簡(jiǎn)便。


1.2 CH375 U盤模塊
   
采用振南電子開發(fā)的CH375 U盤讀寫模塊,該模塊體積小巧,僅3.3x2.0 cm2。模塊供電為5 V,配有指示燈,工作時(shí)指示燈被點(diǎn)亮。模塊使用USB主從機(jī)控制器CH375B,采用并行方式驅(qū)動(dòng),可以實(shí)現(xiàn)U盤的讀寫。共需要13根信號(hào)線(5根控制線8根數(shù)據(jù)線)。
    通過該模塊提供的znFAT,一種單片機(jī)上的FAT32文件系統(tǒng)解決方案,能夠輕松地實(shí)現(xiàn)U盤上的各種文件級(jí)的應(yīng)用。主要包括文件扇區(qū)的定位、文件打開、信息修改、文件關(guān)閉、文件刪除、文件讀、文件寫、磁盤信息查詢等一些對(duì)文件的基本操作。該模塊具有體積小,價(jià)格較低,使用方便的特點(diǎn)。通過該模塊很容易通過單片機(jī)實(shí)現(xiàn)對(duì)兩個(gè)U盤中的相關(guān)文件的轉(zhuǎn)移。
    CH375 U盤讀寫模塊與C8051F040單片機(jī)的連接如圖2所示。C8051F040通過CS選中U盤模塊,U盤模塊則通過INT以中斷方式與單片機(jī)進(jìn)行通信。DO~D7為CH375 U盤模塊與單片機(jī)的并行通信數(shù)據(jù)線,單片機(jī)通過AO、RD、WR控制信號(hào)控制CH375U盤模塊。D+、D-為CH375 U盤模塊與 USB存儲(chǔ)設(shè)備的串行接口。通過CH375 U盤模塊可以很容易地實(shí)現(xiàn)單片機(jī)與USB存儲(chǔ)設(shè)備直接的數(shù)據(jù)轉(zhuǎn)儲(chǔ)。


1. 3 液晶顯示模塊
   
本系統(tǒng)使用122x32點(diǎn)陣的MGLS12232液晶顯示模塊,模塊內(nèi)置兩塊2.560位的RAM和兩片SED1520控制器,分別由E1、E2兩個(gè)選通信號(hào)控制左右兩半屏的顯示。圖形液晶顯示模塊有兩種連接方式:一種為直接訪問方式,另一種為間接控制方式。本系統(tǒng)是采用直接控制方式,該方式將液晶顯示模塊的接口作為存儲(chǔ)器或I/O設(shè)備直接掛接在單片機(jī)總線上。該模塊體積小、價(jià)格較低且通過該液晶模塊能夠滿足對(duì)一般文件夾名、文件名和文件信息的顯示。
1.4 鍵盤模塊
   
鍵盤模塊是3x3矩陣式鍵盤結(jié)構(gòu),采用Button按鍵,分別定義了上電、復(fù)位、上翻、下翻、選擇、復(fù)制、粘貼等按鍵,以最少的按鍵實(shí)現(xiàn)文件轉(zhuǎn)儲(chǔ)的各種操作。
1.5 C8051F040單片機(jī)控制模塊
   
C8051F040單片機(jī)控制模塊是本系統(tǒng)的核心控制模塊。該單片機(jī)具有豐富的片內(nèi)資源和強(qiáng)大的控制功能:與8051完全兼容,最大系統(tǒng)時(shí)鐘頻率為24 MHz,70%指令的執(zhí)行時(shí)間為1或2個(gè)系統(tǒng)時(shí)鐘周期。豐富的中斷源,擴(kuò)展的中斷系統(tǒng)向CIP-51提供20個(gè)中斷源,一個(gè)中斷驅(qū)動(dòng)的系統(tǒng)需要較少的MCU干預(yù),因而有更高的執(zhí)行效率,這么多的中斷源完全能滿足本系統(tǒng)的所有外設(shè)。通用串行總線(USB)功能控制器,有8個(gè)靈活的端點(diǎn)管道,集成收發(fā)器和1K FIFO RAM;片內(nèi)存儲(chǔ)較大,CIP-51的SFR地址空間可包含多達(dá)256個(gè)SFR頁(yè),通過SFR分頁(yè),CIP-51MCU可以控制大量用于控制和配置片內(nèi)外設(shè)所需的SFR。串口資源豐富,具有兩個(gè)增強(qiáng)型全雙工UART、一個(gè)增強(qiáng)型SPI總線和SMBus/I2C。每種串行總線都完全用硬件實(shí)現(xiàn),都能向CIP-51產(chǎn)生中斷,因此需要很少的CPU干預(yù)。這些串總線不“共享”定時(shí)器、中斷或端口I/O等資源,可以使用任何一個(gè)或同時(shí)使用多個(gè)。
    該模塊的功能是:通過在單片機(jī)內(nèi)部開辟一個(gè)數(shù)據(jù)緩沖區(qū)緩存兩個(gè)U盤之間要轉(zhuǎn)移的文件數(shù)據(jù),并通過兩個(gè)CH375 U盤模塊控制U盤文件的打開、讀取、寫入和關(guān)閉,實(shí)現(xiàn)文件數(shù)據(jù)的轉(zhuǎn)移工作。該控制單元還可以將外圍鍵盤發(fā)來的中斷信息進(jìn)行處理,以實(shí)現(xiàn)文件的選擇等對(duì)單片機(jī)的控制。通過控制一個(gè)MGLS12232液晶顯示模塊來顯示一些相關(guān)的文件信息。

2 系統(tǒng)軟件設(shè)計(jì)
2.1 外設(shè)控制方式

    本系統(tǒng)采用CH375 U盤模塊,該模塊附帶znFAT,單片機(jī)上的FAT32文件系統(tǒng)解決方案。從而減少了繁雜的Fat32文件系統(tǒng)方面的編程,由于CH375 U盤模塊配帶文件系統(tǒng)及文件操作子程序,通過單片機(jī)主程序調(diào)用比較容易實(shí)現(xiàn)文件名、文件信息的液晶顯示,以及文件的選擇與轉(zhuǎn)移操作。
    由于C8051F040單片機(jī)的中斷資源豐富,并且中斷具有以下優(yōu)點(diǎn):
    1)分時(shí)操作。CPU可以分時(shí)為多個(gè)I/O設(shè)備服務(wù),提高了計(jì)算機(jī)的利用率。
    2)實(shí)時(shí)響應(yīng)。CPU能夠及時(shí)處理應(yīng)用系統(tǒng)的隨機(jī)事件,系統(tǒng)的實(shí)時(shí)性大大增強(qiáng)。
    3)可靠性高。CPU具有處理設(shè)備故障及掉電等突發(fā)事件的能力,從而使系統(tǒng)的可靠性提高。
    綜上所述,本系統(tǒng)的所有外設(shè)鍵盤均采用中斷控制方式,文件轉(zhuǎn)移也用中斷方式控制。這樣C8051F040的系統(tǒng)資源利用效率有了很大的提高。
2.2 文件轉(zhuǎn)儲(chǔ)方案
   
首先在C8051F040單片機(jī)內(nèi)部開辟一個(gè)緩沖區(qū),當(dāng)需要轉(zhuǎn)存文件時(shí),首先選中一個(gè)U盤中的文件,當(dāng)單擊復(fù)制及粘貼按鍵后,會(huì)通過中斷自動(dòng)調(diào)用相關(guān)的程序,想將該文件打開,并讀取文件的數(shù)據(jù)與開辟的緩沖區(qū)中,然后把緩沖區(qū)的數(shù)據(jù)存儲(chǔ)到另一個(gè)U盤相應(yīng)目錄下的新建的同名文件中。
    系統(tǒng)總流程圖如圖3所示。系統(tǒng)上電后,對(duì)C8051F040單片機(jī)內(nèi)部開辟的緩沖區(qū)進(jìn)行初始化,并使液晶屏顯示初始界面,之后進(jìn)入等待U盤插入的狀態(tài),當(dāng)?shù)却欢螘r(shí)間后,若沒用U盤插入,則顯示“請(qǐng)插入U(xiǎn)盤”的提示信息。當(dāng)U盤個(gè)數(shù)為一個(gè)或兩個(gè)時(shí),開始讀取U盤信息,并在液晶屏上顯示基本的U盤信息。之后,C8051F040單片機(jī)等待鍵盤操作,根據(jù)鍵盤輸入的編碼調(diào)用相應(yīng)的中斷程序,處理完后,繼續(xù)等待鍵盤的中斷信號(hào)。



3 聯(lián)機(jī)調(diào)試
   
在USB轉(zhuǎn)儲(chǔ)器的兩個(gè)USB接口分別接甲、乙兩個(gè)U盤,液晶顯示屏能夠顯示甲U盤里的文件,通過手動(dòng)操作轉(zhuǎn)儲(chǔ)器上的鍵盤按鈕可以選擇甲U盤里的文件,并可將其轉(zhuǎn)移到乙U盤里。在這次USB轉(zhuǎn)儲(chǔ)器的制作過程中比較難的是對(duì)設(shè)備端的程序進(jìn)行調(diào)試。由于USB協(xié)議有嚴(yán)格要求,這就使程序必須在有效的時(shí)間內(nèi)對(duì)某些請(qǐng)求或者狀態(tài)進(jìn)行,否則USB將無法正常工作。因此在調(diào)試過程中,較多的借助串口輸出程序輸出的一些信息來輔助調(diào)試,定位問題所在。
    調(diào)試工作主要分為兩步,首先是要能顯示U盤里面的文件,借助PC調(diào)試軟件(從網(wǎng)上下載的Bus Hound)將設(shè)備端的USB協(xié)議調(diào)通,然后加上U盤寫入U(xiǎn)盤顯示程序,在液晶屏里可以看到U盤里的文件名;第二步是轉(zhuǎn)儲(chǔ),在單片機(jī)里寫入轉(zhuǎn)儲(chǔ)程序進(jìn)行調(diào)試。通過鍵盤按鈕選擇可以實(shí)現(xiàn)轉(zhuǎn)儲(chǔ)文件。

4 結(jié)束語(yǔ)
   
目前市場(chǎng)上雖有單片機(jī)讀寫U盤的功能模塊,但只能夠?qū)崿F(xiàn)簡(jiǎn)單的讀功能,還不能夠?qū)崿F(xiàn)兩個(gè)U盤之間的直接相互傳輸和顯示。本文設(shè)計(jì)的U盤轉(zhuǎn)儲(chǔ)器經(jīng)實(shí)驗(yàn)表明具有很強(qiáng)的實(shí)用性和可操作性,人們可以在戶外不借助計(jì)算機(jī)很方便地完成一個(gè)U盤到另外一個(gè)U盤的文件轉(zhuǎn)儲(chǔ)。由于采用USB接口傳輸速度非??欤耆軌驖M足普通用戶的需要。系統(tǒng)采用STM封裝,具有外形小巧、方便佩戴等優(yōu)點(diǎn),是一款廉價(jià)實(shí)用的電子產(chǎn)品。本系統(tǒng)目前的不足是能管理的USB存儲(chǔ)設(shè)備只有兩個(gè),這是本系統(tǒng)將來需要進(jìn)一步完善的地方。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。