簡易數(shù)碼相框與電子書閱讀器的設(shè)計
2 軟件系統(tǒng)設(shè)計
2.1 軟件總體設(shè)計
開機進(jìn)入用戶選擇模式,選擇bmp圖片瀏覽或是txt文檔閱讀。圖片瀏覽支持幻燈片自動顯示和手動顯示2個方式,txt文檔只能手動操作向上、向下翻頁,手動操作根據(jù)觸摸屏坐標(biāo)的位置確定是往回翻頁還是向下翻頁。具體實現(xiàn)過程在Keil軟件中編寫C語言程序來實現(xiàn)。程序總體設(shè)計流程圖如圖3所示。本文引用地址:http://www.ex-cimer.com/article/201610/306030.htm
2.2 FAT32文件系統(tǒng)
當(dāng)文件放入SD卡中,它在SD卡中的存儲方式,以及對存入文件的尋址與讀取,都是由文件系統(tǒng)來完成的,文件系統(tǒng)就是用來負(fù)責(zé)管理和存儲文件信息的軟件機構(gòu)。具體地說,它負(fù)責(zé)為用戶建立文件,存入、讀出、修改、轉(zhuǎn)儲文件,控制文件的存取,當(dāng)用戶不再使用時撤銷文件等。不同的操作系統(tǒng)有不同的文件系統(tǒng),常用的文件系統(tǒng)有FAT16/FAT32/NTFS等類型。本設(shè)計中采用的是FAT32系統(tǒng)文件,下面對FAT32進(jìn)行簡要說明。
FAT32文件系統(tǒng)的結(jié)構(gòu)主要由3部分組成:保留區(qū)、FAT區(qū)、數(shù)據(jù)區(qū)。其中保留區(qū)包含主引導(dǎo)區(qū)(MBR)和操作系統(tǒng)引導(dǎo)記錄(DBR),主引導(dǎo)區(qū)位于磁盤的第一扇區(qū),通過它可以找到引導(dǎo)記錄的地址。DBR中記錄了文件系統(tǒng)的一些重要信息,如每扇區(qū)字節(jié)數(shù)、每簇扇區(qū)數(shù)、FAT表個數(shù)、文件系統(tǒng)大小(扇區(qū)數(shù))、根目錄起始簇號等信息,這些信息對于在SD卡中存儲和查找文件至關(guān)重要。位于保留區(qū)后的是FAT區(qū),它是由2個完全相同的FAT表組成,F(xiàn)AT表有2個重要作用:描述簇的分配狀態(tài)以及標(biāo)明文件或目錄的下一簇的簇號。數(shù)據(jù)區(qū)緊跟在FAT2之后,被劃分成一個個的簇,是真正用于存放用戶數(shù)據(jù)的區(qū)域。FAT32文件系統(tǒng)的磁盤數(shù)據(jù)組織格式如表1所示。
在軟件實現(xiàn)方面,文件系統(tǒng)部分主要由以下3個函數(shù)組成:初始化函數(shù)void InitFat()、查找指定文件個數(shù)函數(shù)unsigned int Stat File Num()、查找索引文件函數(shù)unsigned char SearchFile(unsigned long int entry,unsigned int index,chat*type,unsigned char*buf,F(xiàn)ILE*pfile)。初始化函數(shù)主要是讀主引導(dǎo)扇區(qū)和引導(dǎo)扇區(qū),獲取該分區(qū)文件系統(tǒng)每簇扇區(qū)數(shù)、文件分配表的大小、保留扇區(qū)數(shù)以及數(shù)據(jù)區(qū)的起始地址等信息。查找文件個數(shù)函數(shù)是根據(jù)初始化函數(shù)中所得到的文件系統(tǒng)的信息,獲得所要查找文件類型的個數(shù)。查找索引文件函數(shù)是查找指定入口的指定類型的文件,查找時以index為索引,如index=5,即是要查找指定類型文件的第5個文件,函數(shù)可以寫成如下形式:Search File(2,5,“bmp”,SectorBuf,TmpFile);(2表示從第2簇開始查找,5表示查找第5個文件,“bmp”表示要查找的文件類型,SectorBuf是一個數(shù)組,臨時存放查找的文件信息,TmpFile是一個結(jié)構(gòu)體存放查找的文件具體信息)。
評論