摘 要:隨著現代電子技術的發展,各種存儲設備的應用越來越廣泛。其中以SD存儲卡的應用最為廣泛,但是由于在傳統的底層硬件體系結構中,一個接口只能連接同種設備,這其實是對現有的資源的浪費。在此提出一種通過AVR單片機和串行轉USB接口來讀取SD卡中數據的方案,真正做到了通過單片機和計算機對各種外設的雙向讀取,通過常規文件系統的讀取方式的改進,能夠兼容各種外部設備使其便攜性進一步增強,進一步提高了已有資源的利用率,能通過單片機和計算機對存儲信息進行有效的管理。實驗證明單次讀取成功率能達到99.8%,因此在數據讀取的穩定性和安全性上是有保障的。本設計具有一定的社會價值和經濟價值。關鍵詞:串口; SD卡; 單片機; USB接口
中圖分類號:TN911-34文獻標識碼:A
文章編號:1004-373X(2010)16-0166-03
SD Card Reader Platform Based on Single Chip and Serial Port
LIU Run
(Physics Department, Qinghai Normal University, Xining 810008, China)
Abstract: the SD memory card is applied widely with modern electronics technology. Due to an interface can only be connected to the same kind of equipment in the traditional underlying hardware architecture, which is a waste of resources. A scheme of using AVR microcontroller and serial transfer through the USB interface to read SD card data, the bi-directional reading through a variety of microcontrollers and computer peripherals is achieved, the external devices are compatible by improving the read method of conventional file system, which improves the utilization of existing resources and portability, the storage information can be managed through the microcontroller and the computer. The experiment proves the success rate of a single reading can reach 99.8%, therefore, the stability and security of the data read is guaranteed.Keywords: serial port; SD card; MCU; USB interface
0 引 言
SD卡[1](secure digital memory card,安全數碼卡)是一種基于半導體快閃記憶器的新一代記憶設備,它被廣泛地于便攜式裝置上使用,例如數碼相機、個人數碼助理(PDA)和多媒體播放器等。SD卡由日本松下、東芝及美國SanDisk公司于1999年8月共同開發研制。大小猶如一張郵票的SD記憶卡,重量只有2 g,但卻擁有高記憶容量、快速數據傳輸率、極大的移動靈活性以及很好的安全性。
本文正是通過AVR單片機經過軟硬結合的設計方案,來讀取SD卡上FAT32文件系統中的數據,FAT32是微軟公司開發的新一代的文件系統,支持更大的存儲容量和長達255個字符的文件名,也可以通過串口轉USB接口芯片通過計算機來訪問存儲器中的數據,從而實現多渠道的立體的訪問方式,進一步提升了資源的利用率。
1 文件系統
1.1 FAT文件系統簡介
文件配置表(FAT)[2]是一種由微軟公司發明的并帶有部分專利的文件系統,供MS-DOS使用,也是非NT內核的微軟窗口使用的文件系統。FAT文件系統考慮當時計算機效能有限,所以未被復雜化,因而被幾乎所有個人計算機的操作系統支持。這些特性使它成為理想的軟盤和記憶卡的文件系統。但FAT有一個嚴重的缺點:當文件被刪除并且在同一位置被寫入新數據,他們的片段通常是分散的,減慢了讀寫速度。磁盤碎片重整是一種解決方法,但必須經常重組來保持FAT文件系統的效率。
1.2 FAT文件系統升級版
FAT32實際上是文件分區表采取的一種形式,它是相對于FAT16而言的。它可以大大地節約磁盤空間。文件在磁盤上是以簇的方式存放的,簇里存放了一個文件就不能再存放另外的文件。
FAT32最大的優點是可以支持的磁盤大小達到2 TB(2 048 GB),但是不能支持小于512 MB的分區。由于采用了更小的簇,FAT32文件系統可以更有效率地保存信息。FAT32可以更高效地使用空間。FAT32使用較小的簇(即,對于大小在8 GB以內的驅動器,使用4 KB的簇),這與大的FAT或FAT16驅動器相比,可將磁盤空間的使用率提高10%~15%。
FAT32 更穩定可靠。FAT32 可以重新定位根文件夾,而且它使用文件分配表的備份副本,而不是使用默認副本。此外,FAT32驅動器上的引導記錄也得到擴展,包括了關鍵數據結構的備份副本。因此,與現有的 FAT16 驅動器相比,FAT32 驅動器不容易受單點故障的影響。
FAT32更靈活。FAT32驅動器上的根文件夾是普通的簇鏈,因此它可以位于驅動器上的任何位置。以前對根文件夾數量的限制不復存在。此外,可以禁用文件分配表鏡像,這樣就可以讓文件分配表的副本而不是讓第一個文件分配表處于活動狀態。這些功能允許您動態重調 FAT32 分區的大小。
2 硬件設計
2.1 芯片概述
ATmega32[3]是基于增強的AVR RISC結構的低功耗8 位CMOS微控制器。由于其先進的指令集以及單時鐘周期指令執行時間,ATmega32 的數據吞吐率高達1 MIPS/MHz,從而可以緩減系統在功耗和處理速度之間的矛盾。 ATmega32 AVR 內核具有豐富的指令集和32 個通用工作寄存器。所有的寄存器都直接與算邏單元(ALU) 相連接,使得一條指令可以在一個時鐘周期內同時訪問2個獨立的寄存器。這種結構大大提高了代碼效率,并且具有比普通的CISC 微控制器最高至10倍的數據吞吐率。
PL2303用于實現USB 和標準RS 232串行端口[4]之間的轉換,2個獨立的大型緩沖用于兩種總線的連接,大型數據緩沖器用于USB 的批量數據傳輸,自動握手模式可用于串行通訊,因而可以達到遠大于標準UART 控制器的波特率。PL2303 支持USB 電源管理和遠程喚醒協議。本設計中PL2303芯片主要應用在將主控單元的下載線與供電模塊合二為一,大大簡化了系統的設計復雜度。
NOKIA 5110液晶顯示器,傳統的點陣式液晶顯示器,不內置英文及漢字字庫,因此NOKIA 5110液晶顯示的過程,需要單片機把從存儲器中讀取到的ASCII碼值轉換成對應的英文及漢字點陣信息,然后通過串口把點陣信息傳輸到液晶顯示器上進行顯示。
2.2 硬件設計
硬件單元包括: AVR[5]主控ATmega32單元模塊,SD卡接口模塊,液晶顯示接口模塊,串口轉USB接口。
2.2.1 主控電路設計
主控電路(如圖1所示)主要負責將從輸入接口中讀到的數據轉換成對應的字模碼。
2.2.2 存儲系統模塊及下載接口設計
SD卡接口如圖2所示。
圖1 主控電路
圖2 SD卡接口電路
2.2.3 液晶顯示模塊設計
液晶顯示接口如圖3所示。
圖3 液晶顯示接口
2.2.4 USB轉換接口模塊設計
計算機端串行轉USB接口[5]的設計如圖4所示。
圖4 計算機端串行轉USB接口設計
3 軟件設計
系統軟件設計主要包括AVR單片機主控程序,中斷服務控制子程序,LCD[6]控制子程序,編碼轉化子程序等幾個模塊。單片機端程序運行流程如圖5所示,計算機端運行程序流程如圖6所示。
4 總結及展望
由于本設計中采用的都是一些通用器件,是對通用器件的一次嘗試性擴展應用,通過LCD設計的人機接口實現設備的友好操作,能夠通過單片機和計算機進行雙向立體式的讀寫,能夠實現在線的實時的FAT32[7]文件系統資源管理,因此本系統具有一定社會價值和應用價值。
圖5 單片機端程序運行流程圖
圖6 計算機端運行程序流程圖
參考文獻
[1]SD Memory Card Specifications.
[2]陳春,徐建華,陳柏潤.計算機GBK漢字輸入法速查字典[M].北京:科學出版社,2008.
[3]劉海成.AVR單片機原理及測控工程應用[M].北京:北京航空航天大學出版社,2008.
[4][美] 安格斯生,精英科技.串行端口大全[M].Jan Axelson,譯.北京:中國電力出版社,2001.
[5]張軍,宋濤.AVR單片機C語言程序設計實例精粹[M].北京:電子工業出版社,2009.
[6]孫俊喜.LCD驅動電路、驅動程序設計及典型應用[M].北京:人民郵電出版社,2009.
[7]關碩,關濟實.FAT16文件系統在單片機存儲系統上的實現[J].科技信息,2008(3):24-26.
[8]薛園園,趙建領.USB應用開發實例詳解華清遠見嵌入式培訓中心[M].北京:人民郵電出版社,2009.
[9]廖繼海,梁志明,羅廣君,等.基于AVR單片機的LED顯示屏的灰度設計與實現[J].現代電子技術,2007,30(3):189-191.
[10]沈世鎰,陳魯生.編碼理論基礎[M].北京:高等教育出版社,2005.