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