FPGA和Nios II軟核的SD卡文件系統實(shí)現方法
3 znFAT32文件系統的嵌入和SD卡的掛載
3.1 znFAT32文件系統概述
znFAT32是于振南為小型嵌入式設備完全獨立編寫(xiě),且開(kāi)放源代碼的FAT32文件系統解決方案。znFAT32能夠支持眾多的存儲設備(SD卡、CF卡、Flash、U盤(pán)等),支持多個(gè)存儲器共同工作,可以支持同時(shí)訪(fǎng)問(wèn)多個(gè)存儲器對文件的操作。對硬件資源要求低,能夠輕松地移植到51單片機、AVR、ARM、DSP、Nios II等處理器上,占用資源極少(僅占用800字節左右的RAM),非常適合嵌入式開(kāi)發(fā)中文件系統的嵌入。其代碼完全由C語(yǔ)言編寫(xiě),能夠輕松閱讀,移植方便。其代碼結構如圖6所示。本文引用地址:http://dyxdggzs.com/article/189745.htm
由圖6可知該文件系統包含兩層。
文件系統代碼層——主要提供對存儲設備進(jìn)行操作的各種函數。
存儲設備接口層——主要是為了掛載不同的存儲設備。
3.2 文件系統SD卡的掛載
znFAT32文件系統掛載需要SD卡驅動(dòng)層提供的扇區讀寫(xiě)函數。將編寫(xiě)的扇區讀寫(xiě)函數SD_Read_Sector、SD_Write_Sector取代文件系統中的FAT32_ReadSector與FAT32_WriterSector兩個(gè)函數即可。根據需要的處理器編寫(xiě)SD卡驅動(dòng)程序十分重要,只有保證驅動(dòng)程序的正確性,才能進(jìn)行文件系統的正確掛接,才能在掛接完成后對SD卡進(jìn)行文件操作。
znFAT32文件系統的掛接需要對znFAT32文件系統提供的用于標定存儲設備的全局變量Dev_No設備號進(jìn)行處理,znFAT32文件系統給我們提供的存儲設備宏定義如下:
對不同設備進(jìn)行文件操作,需要通過(guò)設備號來(lái)選擇不同的設備驅動(dòng)函數。對SD卡操作需將Dev_NO定義為SDCARD。
4 文件系統在Nios II中的應用實(shí)例
完成SOPC系統的創(chuàng )建后,在生成的Nios II系統上通過(guò)Nios II EDS編程,便可將SD卡與文件系統掛接。
4.1 znFAT32文件系統的使用
znFAT32文件系統為用戶(hù)提供的對文件的基本操作函數讓我們能夠輕松地對文件進(jìn)行操作。下面列舉了幾個(gè)基本函數:
通過(guò)上面的函數,可以完成對SD卡的文件讀寫(xiě)、刪除、數據添加、目錄創(chuàng )建、文件拷貝、文件重命名等操作。
4.2 SOPC系統對SD卡文件讀寫(xiě)操作的驗證
為了驗證上述系統能否正常實(shí)現SD卡讀寫(xiě),筆者選用了4 GB容量的金士頓SDHC卡,進(jìn)行了文件讀寫(xiě)實(shí)驗。圖7為Nios II EDS給出的Deb ug信息窗口。信息顯示了在構建的系統上SD卡的初始化(實(shí)現文件系統的掛接),接著(zhù)讀取SD卡的存儲容量、扇區大小、每簇扇區數,并在根目錄下面打開(kāi)名為T(mén)EST.TXT的文件,并對該文件的信息進(jìn)行讀取。在一級子目錄下面,同樣建立一個(gè)TEST.TXT的文件,并對文件信息進(jìn)行讀取。
由運行結果可知,初始化成功并識別此SD卡為SDHC卡,容量為964 256(總簇數)×8(每簇扇區數)×512(每扇區字節數)≈3 968 860 160。根目錄下的TEXT.TXT文件被打開(kāi),打開(kāi)文件成功后在DIR1子目錄下面創(chuàng )建TEST.TXT。由主函數創(chuàng )建的文件日期在TimeCreat[6]={12,1,4,17,40,28)中存放,文件成功后讀取創(chuàng )建的新文件的詳細信息。
為了進(jìn)一步驗證本系統對SD卡的寫(xiě)入操作,筆者將此SD卡通過(guò)讀卡器與PC機連接,在PC機的文件系統下,顯示了相同的結果。
結語(yǔ)
本文通過(guò)在CycloneⅡ系列FPGA上構建SOPC系統,并在該系統上基于NiosⅡ處理器構建了SD卡文件系統。該系統以SPI接口方式與SD卡連接,文件系統是面向嵌入式系統的緊湊型開(kāi)放源碼的系統。經(jīng)過(guò)對SD卡的操作驗證,證明本文提供的方案具有設計靈活、集成度高、通用性強、移植性好等諸多優(yōu)點(diǎn)。在線(xiàn)陣CCD數據采集實(shí)驗系統以及數控貼片控制系統上得到了很好的應用。
fpga相關(guān)文章:fpga是什么
51單片機相關(guān)文章:51單片機教程
c語(yǔ)言相關(guān)文章:c語(yǔ)言教程
評論