对不同设备进行文件操作,需要通过设备号来选择不同的设备驱动函数。对SD卡操作需将Dev_NO定义为SDCARD。
4 文件系统在Nios II中的应用实例
完成SOPC系统的创建后,在生成的Nios II系统上通过Nios II EDS编程,便可将SD卡与文件系统挂接。
4.1 znFAT32文件系统的使用
znFAT32文件系统为用户提供的对文件的基本操作函数让我们能够轻松地对文件进行操作。下面列举了几个基本函数:
通过上面的函数,可以完成对SD卡的文件读写、删除、数据添加、目录创建、文件拷贝、文件重命名等操作。
4.2 SOPC系统对SD卡文件读写操作的验证
为了验证上述系统能否正常实现SD卡读写,笔者选用了4 GB容量的金士顿SDHC卡,进行了文件读写实验。图7为Nios II EDS给出的Deb ug信息窗口。信息显示了在构建的系统上SD卡的初始化(实现文件系统的挂接),接着读取SD卡的存储容量、扇区大小、每簇扇区数,并在根目录下面打开名为TEST.TXT的文件,并对该文件的信息进行读取。在一级子目录下面,同样建立一个TEST.TXT的文件,并对文件信息进行读取。
由运行结果可知,初始化成功并识别此SD卡为SDHC卡,容量为964 256(总簇数)×8(每簇扇区数)×512(每扇区字节数)≈3 968 860 160。根目录下的TEXT.TXT文件被打开,打开文件成功后在DIR1子目录下面创建TEST.TXT。由主函数创建的文件日期在TimeCreat[6]={12,1,4,17,40,28)中存放,文件成功后读取创建的新文件的详细信息。
为了进一步验证本系统对SD卡的写入操作,笔者将此SD卡通过读卡器与PC机连接,在PC机的文件系统下,显示了相同的结果。
结语
本文通过在CycloneⅡ系列FPGA上构建SOPC系统,并在该系统上基于NiosⅡ处理器构建了SD卡文件系统。该系统以SPI接口方式与SD卡连接,文件系统是面向嵌入式系统的紧凑型开放源码的系统。经过对SD卡的操作验证,证明本文提供的方案具有设计灵活、集成度高、通用性强、移植性好等诸多优点。在线阵CCD数据采集实验系统以及数控贴片控制系统上得到了很好的应用。
上一篇:网络存储NAS系统的设计