注解目录
1、znFAT 的起源
1.1 源于论坛
(那是一个论坛文化兴盛的年代。网友 DIY SDMP3 播放器激起了我的兴趣。)
1.2 硬盘 MP3 推了我一把
("坤哥"的硬盘 MP3 播放器,让我深陷 FAT 文件系统不能自拔。)
1.3 我的导师-- 顾国昌教授
(哈军工时期的老教授,德高望重的人生导师。)
1.4 我的母校-- 哈工程
(隐藏牛校哈工程,网络名嘴张雪峰所言非虚。振南给你讲讲母校历史:哈军工、
工程学院、哈船院、哈工程。)
1.5 那场严重超时的答辩会
(20 分钟的答辩超时 1 小时,老师表示赞叹。现场承诺要把文件系统写成书。)
1.6 时隔多年的谢师会
(承诺必须兑现,5 年之后的谢师会,我擎书谢师。不要轻易作出承诺,除非你真
得能作到!)
2、高手如云 认清对手
2.1 国外 FAT 方案简介
1 )FATFS
2 )EFSL
3 )UCFS
4 )TFFS
5 )DOSFS
(列举那些主流 FAT 文件系统方案,并进行详细介绍。)
2.2 国内 FAT 方案简介
1 )ZLG/FS
2 )沁恒 FAT
(国内尚无成型开源的 FAT 文件系统方案。但是我们要支持国货。)
3、硬刚高手 挑战自己
3.1 与高手竞速
3.2 挑战自己
(这一节我写了一个月。环比各大知名方案,看看到底谁更快!最终,挑战了自我。)
4、znFAT 精彩应用大赏
4.1 振南的精彩实验
4.1.1 SD 卡 卡 WAV 音频播放器
4.1.2 SD 卡电子滚动屏
4.1.3 SD 卡 卡 MP3 播放器
4.1.4 AT89S51 离线下载器
4.1.5 数据采集导入 EXCEL
4.1.6 串口文件窃取器
4.1.7 录音笔于 (基于 VS1003B) )
4.1.8 文件无线传输实验
4.1.9 嵌入式脚本程序解释器
4.1.10 绘图板实验(基于 STM32F4 ,屏幕截图存为 BMP 图片)
4.1.11 MEMS 声音传感器" 硅麦" 录音实验
(znFAT 的最大亮点在于各种精彩的应用,希望振南的这些实验可以让你眼前一亮。)
4.2 精彩的第三方项目应用
4.2.1 仿 仿 Metro UI 系统应用实验
4.2.2 通过 U 盘对产品进行升级
4.2.3 嵌入式网页服务器
4.2.4 STM32+LD3320 作声控音频播放器
4.2.5 BMP 图片浏览
4.2.6 VGA 显示 SD 卡中的图片(基于 FPGA) )
4.2.7 汉字电子书(基于 STM8) )
4.2.8 文本语音合成实验(TTS ,基于 NUC120) )
4.2.9 《跳跃小猫》动画播放(基于 FPGA NIOSII)
znFAT 精彩应用大赏
4.2 精彩的第三方项目应用
1.仿 Metro UI 系统应用实验
所需主要硬件;K60DN256VLL10(飞思卡尔研制的 Cortex- M4 内核的单片机芯片)K60 实验板、TFT 液晶、RTC 芯片等,SD/SDHC 卡
作者:杨熙(网友,就职于 NXP 半导体公司)
实验功能描述:此实验以 K60 实验板为硬件平台,使用CGUI+uCOS+zFAT 在 TFT液晶上实现了仿 metroUl的界面效果。可对 SD 卡中的图像与文本文件进行浏览。实验效果如图 18.48 所示。
图 18.48 仿 Metro UI 系统实验效果图
实际硬件平台如图18.49 所示。
图 18.49 GUI 实验硬件平台
2.通过 U 盘对产品进行升级
所需主要硬件:LPC1788 即相关硬件与接口(硬件平台为网友在研的产品)
作者:邵建明、刘磊
实验功能描述:插上 U 盘之后,通过 nFAT 扫描 盘中的文件,如有升级系统配置文件则升级;如没有,再扫描是否有 *.MP3,有则播放音乐。硬件平台实际效果如图 18.50 所示。
图 18.50 某产品中通过 znFAT+U 盘完成升级与音频播放
3.嵌入式网页服务器
所需主要硬件: ATMEGA128 、ENC28J60 等。
作者:陈永鹏(网友)
实验功能描述;此实验中使用 ATMEGA128 为主 CPU,ENC28J60 为以太网控制器,移植了UIP 作为其 TCP/IP 协议栈。使用SD 卡存储 HTML 网页文件,通过超文本传输协议来进行网页文件数据的传送,最终实现服务器的功能。实验硬件如图 18.51 所示。
图 18.51 嵌入式网页服务器硬件平台
4.STM32+LD3320 作声控音频播放器
所需主要硬件:STM32F103RBT6、LD3320(一种 MP3 播放及语音识别芯片)麦克风SD卡等。
作者:钱晓平(网友)
实验功能描述:首先在 LD3320 芯片中加载要别的拼音串,比如 kai deng(开灯)、guanbi xi tong(关闭系统)等,然后启动识别。人说出汉语"开灯",LD3320 对声音进行识别并产生相应的动作,完成之后进行语音提示,即使用 nFAT 读取存储在 SD 卡中相应的 MP3 文件数据送至 LD3320 进行解码播放。实验硬件如图 18.52 所示。
图 18.52 声控音频播放器实验硬件平台
5.BMP 图片浏览
所需主要硬件:PIC18F66K22(编译器为 MCC18)、SD 卡、TFT 液晶等。
作者:未知
实验功能描述:此实验中使用 nFAT 依次读取 SD 卡中所有的 BMP 文件(24 位 BMP)解析参数,读取其像素数据送到 TFT 液晶显示。实验平台与效果如图 18.53~18.54 所示。
图 18.53 PIC18F66K22 作 BMP 图片显示实验硬件平台
图 18.54 PIC18F66K22 作 BMP 图片显示实验效果
6.VGA 显示 SD 卡中的图片(基于 FPGA )*
这几天搞定了 SD 卡之后,又接着看文件系统。说实话想短时间内把整个 FAT32 文件系统都搞定,而且很稳定很健壮,是不太容易的。有现成的 nFAT 可以移植振南兄可是花了不少心思在这上面。我这里没有直接移植他的文件系统,而是参考 nFAT 自己写了个很简单的只能读取文件的"所谓文件系统"。因为此实验只涉及图片文件的读取,所以我只做了读取的部分,完全与 FAT32 兼容。
网上能搜到的关于数码相框的方案,大多是基于液晶屏显示的,我手里没有现成的液晶屏,VGA 倒是有两个。大家选择液晶屏而不选 VGA 的原因,我后来才知道:因为 VGA 显示需要的显存比较大,一般至少 2 MB,这么大的显存是需要银子的。DE2 上是有 2 MB的SRAM 的,而 DEO 上除了 SDRAM 和 FLASH之外什么都没有。这板子资源少。没有办法只能把图片的尺寸减小到能放在片内 RAM 里才行。DEO 用的是 EP3C16F484C6 的 FPGA(属Altera Cyclonell系列),片上只有 56 个 M9KRAM,56 这个数字很鸡,于 32 和64之间,所以我就建立了一个32 KB 的双口 RAM。由 CPU 读取 SD 卡的内容,写入 RAM,然后VGA 以50 MHz的时钟读取并显示,VGA 分辨率为 800X600@72 Hz。
先找个测试用的图片,不要太大,大约在 160X120 左右。然后用Image2Led 转化成.bin格式,宽度为 97,高度为 150(这个奇怪的图像尺寸是为了将就可怜的 32 KB 显存)如图 18.55 所示。
然后将由 Image2Lcd 生成的.bin 文件复制到 SD 卡中随后就可以开始实验了。
实验硬件平台与实际效果如图 18.56 和 18.57 所示。