当前位置:首页 >资讯 >工业mp3中sd卡硬件如何加密(二)


上接 工业mp3中sd卡硬件如何加密(一)

三、系统软件设计

系统软件设计主要包括Fat32文件系统移植、SD卡加密解锁、MP3文件解码等。

1.移植FAT32文件系统

由于FAT16最大容量只支持2G,大容量SD卡中的文件系统必须与FAT32文件系统兼容。目前嵌入式系统中有很多文件系统,如C/FS.ZLG/FS.eFSL.FatFS等,其中FatFS文件系统是一个免费开源的文件系统,具有占用资源少、读写速度快、移植方便等优点FAT32文件系统完全兼容,提供丰富的API。

移植的重点是编写diskioc文件,其原理是将SD卡读写扇区的函数与FatFS文件系统中的读写函数联系起来。diskio总共需要编写六个函数,但最重要的只有三个函数,即一个disk_initialize;disk_read和disk_write,如果不需要使用其他接口函数,可以直接返回0。

1)disk_initialize:该函数的功能是初始化存储媒体。这是指SD卡。将SD卡的初始化函数添加到此函数中,使SD卡在系统挂载FatFS时初始化。

2)diskread:读取风扇区函数是通过文件系统读取SD卡最基本的动作之一。在这里,需要将单个风扇区域和多个风扇区域的函数挂起来。

3)disk_write:写扇区函数的妻子和读扇区函数一样,这里要把SD卡驱动中读单个扇区和读多个扇区的函数挂起来。

2.在SD卡加密状态下解码MP3

由于VS1003是一个硬件语音解码芯片,在微控制器从SD卡中读取MP3文件并转换为二进制码流后,MP3可以通过SPI总线传输到VS1003进行播放。

系统第一次上电时,要判断SD卡是否加密。如果没有加密,系统上电后立即加密锁定SD卡,保护SD卡中数据的安全,然后匹配密码解锁。最后,用户可以操作卡中的数据。挂载文件系统后,如果可以通过文件系统读取卡的信息,如卡的容量。扇区的大小表明卡没有加密。相反,如果不能读取SD卡的基本信息,卡已经加密。整个系统软件设计过程如图4所示。

1

四、系统整体测试

SD卡加密后,通过读卡器插入PC机。PC机无法检测到SD卡的磁盘符号,也无法操作SD卡。执行强制擦除命令后,SD卡中的文件系统被破坏。此时,PC机仍然无法打开该卡。如果需要继续使用SD卡,则需要在PC上重新格式化。格式化前后,任何数据都无法通过数据恢复软件恢复。测试中使用的恢复软件包括:Easyrecovery.Diskgenius、金山数据恢复等。

运行测试后,系统可在加密条件下顺利播放320kb/s高品质MP3音乐文件,成功实现具有加密功能的工业MP3。

FAT的小知识

FAT是文件配置表(英语:FileAllocationTable,首字母缩略字:FAT),是由微软发明并拥有部分专利的文件系统,供MS-DOS使用,也是所有非NT核心微软窗口使用的文件系统。