SD卡(secure digital memory card,安全數碼卡)是一種基于半導體快閃記憶器的新一代記憶設備,它被廣泛地于便攜式裝置上使用,例如數碼相機、個(gè)人數碼助理(PDA)和多媒體播放器等。SD卡由日本松下、東芝及美國SanDisk公司于1999年8月共同開(kāi)發(fā)研制。大小猶如一張郵票的SD記憶卡,重量只有2 g,但卻擁有高記憶容量、快速數據傳輸率、極大的移動(dòng)靈活性以及很好的安全性。 本文正是通過(guò)AVR單片機經(jīng)過(guò)軟硬結合的設計方案,來(lái)讀取SD卡上FAT32文件系統中的數據,FAT32是微軟公司開(kāi)發(fā)的新一代的文件系統,支持更大的存儲容量和長(cháng)達255個(gè)字符的文件名,也可以通過(guò)串口轉USB接口芯片通過(guò)計算機來(lái)訪(fǎng)問(wèn)存儲器中的數據,從而實(shí)現多渠道的立體的訪(fǎng)問(wèn)方式,進(jìn)一步提升了資源的利用率。 1 文件系統 1.1 FAT文件系統簡(jiǎn)介 文件配置表(FAT)是一種由微軟公司發(fā)明的并帶有部分專(zhuān)利的文件系統,供MS-DOS使用,也是非NT內核的微軟窗口使用的文件系統。FAT文件系統考慮當時(shí)計算機效能有限,所以未被復雜化,因而被幾乎所有個(gè)人計算機的操作系統支持。這些特性使它成為理想的軟盤(pán)和記憶卡的文件系統。但FAT有一個(gè)嚴重的缺點(diǎn):當文件被刪除并且在同一位置被寫(xiě)入新數據,他們的片段通常是分散的,減慢了讀寫(xiě)速度。磁盤(pán)碎片重整是一種解決方法,但必須經(jīng)常重組來(lái)保持FAT文件系統的效率。 1.2 FAT文件系統升級版 FAT32實(shí)際上是文件分區表采取的一種形式,它是相對于FATl6而言的。它可以大大地節約磁盤(pán)空間。文件在磁盤(pán)上是以簇的方式存放的,簇里存放了一個(gè)文件就不能再存放另外的文件。 FAT32最大的優(yōu)點(diǎn)是可以支持的磁盤(pán)大小達到2 TB(2 048 GB),但是不能支持小于512 MB的分區。由于采用了更小的簇,FAT32文件系統可以更有效率地保存信息。FAT32可以更高效地使用空間。FAT32使用較小的簇(即,對于大小在8 GB以?xún)鹊尿寗?dòng)器,使用4 KB的簇),這與大的FAT或FAT16驅動(dòng)器相比,可將磁盤(pán)空間的使用率提高10 9,6~15%。 FAT32更穩定可靠。FAT32可以重新定位根文件夾,而且它使用文件分配表的備份副本,而不是使用默認副本。此外,FAT32驅動(dòng)器上的引導記錄也得到擴展,包括了關(guān)鍵數據結構的備份副本。因此,與現有的FAT16驅動(dòng)器相比,FAT32驅動(dòng)器不容易受單點(diǎn)故障的影響。 FAT32更靈活。FAT32驅動(dòng)器上的根文件夾是普通的簇鏈,因此它可以位于驅動(dòng)器上的任何位置。以前對根文件夾數量的限制不復存在。此外,可以禁用文件分配表鏡像,這樣就可以讓文件分配表的副本而不是讓第一個(gè)文件分配表處于活動(dòng)狀態(tài)。這些功能允許您動(dòng)態(tài)重調FAT32分區的大小。 2 硬件設計 2.1 芯片概述 ATmega32是基于增強的AVR RISC結構的低功耗8位CMOS微控制器。由于其先進(jìn)的指令集以及單時(shí)鐘周期指令執行時(shí)間,ATmega32的數據吞吐率高達1 MIPS/MHz,從而可以緩減系統在功耗和處理速度之間的矛盾。ATmega32 AVR內核具有豐富的指令集和32個(gè)通用工作寄存器。所有的寄存器都直接與算邏單元(ALU)相連接,使得一條指令可以在一個(gè)時(shí)鐘周期內同時(shí)訪(fǎng)問(wèn)2個(gè)獨立的寄存器。這種結構大大提高了代碼效率,并且具有比普通的CISC微控制器最高至10倍的數據吞吐率。 PL2303用于實(shí)現USB和標準RS 232串行端口之間的轉換,2個(gè)獨立的大型緩沖用于兩種總線(xiàn)的連接,大型數據緩沖器用于USB的批量數據傳輸,自動(dòng)握手模式可用于串行通訊,因而可以達到遠大于標準UART控制器的波特率。PL2303支持USB電源管理和遠程喚醒協(xié)議。本設計中PL2303芯片主要應用在將主控單元的下載線(xiàn)與供電模塊合二為一,大大簡(jiǎn)化了系統的設計復雜度。 NOKIA 5110液晶顯示器,傳統的點(diǎn)陣式液晶顯示器,不內置英文及漢字字庫,因此NOKIA 5110液晶顯示的過(guò)程,需要單片機把從存儲器中讀取到的ASCII碼值轉換成對應的英文及漢字點(diǎn)陣信息,然后通過(guò)串口把點(diǎn)陣信息傳輸到液晶顯示器上進(jìn)行顯示。 2.2 硬件設計 硬件單元包括:AVR主控ATmega32單元模塊,SD卡接口模塊,液晶顯示接口模塊,串口轉USB接口。 2.2.1 主控電路設計 主控電路(如圖1所示)主要負責將從輸入接口中讀到的數據轉換成對應的字模碼。 2.2.2 存儲系統模塊及下載接口設計 SD卡接口如圖2所示。 2.2.3 液晶顯示模塊設計 液晶顯示接口如圖3所示。 2.2.4 USB轉換接口模塊設計 計算機端串行轉USB接口的設計如圖4所示。 3 軟件設計 系統軟件設計主要包括AVR單片機主控程序,中斷服務(wù)控制子程序,LCD控制子程序,編碼轉化子程序等幾個(gè)模塊。單片機端程序運行流程如圖5所示,計算機端運行程序流程如圖6所示。 4 總結及展望 由于本設計中采用的都是一些通用器件,是對通用器件的一次嘗試性擴展應用,通過(guò)LCD設計的人機接口實(shí)現設備的友好操作,能夠通過(guò)單片機和計算機進(jìn)行雙向立體式的讀寫(xiě),能夠實(shí)現在線(xiàn)的實(shí)時(shí)的FAT32文件系統資源管理,因此本系統具有一定社會(huì )價(jià)值和應用價(jià)值。 |