本帖最后由 znmcu 于 2012-12-14 11:36 编辑
[分享]STC51+SD卡+znFAT+BIN文件+AT89S52 实现 离线程序烧录器
源代码下载:
offlinePro.rar
(139.74 KB)
资料占用情况:Program Size: data=207.1 xdata=1024 code=58590
振南QQ 987582714 znFAT发布与支持网站 www.znfat.com
所谓“离线烧录器”,是指不使用计算机,而使用嵌入式、便携式设备完成对单片机或微处理器芯片的程序烧录。说白了,就是“用单片机给另一个单片机下载程序”。如下图所示: 其实很简单。我们来想想,计算机给单片机下载程序,计算机在这个过程中起到的作用:1、存储HEX、BIN等程序执行码;2、提供用于下载与数据通信的硬件接口;3、对下载协议和流程的实现。这三点,我们完全可以使用单片机或更高级的微处理器来完成,这就形成了所谓的“离线烧录器”。与待烧录的目标芯片的硬件接口,可以使用IO端口来连接;下载协议和流程通过写程序生成固件来完成(其实就相当于计算机上的下载软件);可执行的代码文件,我们可以放在EEPROM、FLASHROM或是其它的一些存储设备上。 “离线烧录器”的好处是不言而喻的!在实际工程中、工业应用现场..........我们希望对设备的固件进行升级或更新,无需带着计算机,只需要带上一个“离线烧录器”,便可以完成对设备的升级工作。 本实验中,使用STC51单片机对另一片51单片机(AT89S52)的程序烧录。可执行代码文件格式为BIN,存在SD卡上。如下图: 我们把待烧录的BIN文件,放在SD卡上,文件系统为FAT32格式。这样我们就可以很方便的存储代码文件。另外,我们还可以把很多的BIN文件都放到SD卡上,因为SD卡的存储容量比较大。而且,还可以通过电脑将BIN文件直接拷入,十分方便。在实际烧录的时候,我们可以选择不同的BIN文件来进行烧录。 最大的问题在于:我们如何用单片机去读取SD卡上的BIN文件?
在这里我们使用 振南的znFAT,一种专门在嵌入式平台上使用的FAT32文件系统的方案。通过它,我们就可以很轻松方便的去操作SD卡上的文件了。 接下来,我们来看一下“离线烧录器”的实验演示视频: 实验说明:SD卡中有三介BIN文件,分别为BINCTR-8k.bin、PENDB-8k.bin与twoball-2k.bin。实验中依次打开各个BIN文件,烧录到AT89S52中。每烧录完一个BIN,会让AT89S52运行3秒钟,用来演示刚刚烧录进去的BIN。这三个BIN的具体功能是三种不同的流水灯。 STC51+SD卡+znFAT+BIN文件+AT89S52 实现 离线程序烧录器
在线视频链接:http://v.youku.com/v_show/id_XNDY1ODgyMzY4.html
SD卡中的BIN文件: 实验串口信息:
硬件平台:(振南的ZN-1X开发板+SD卡模块) |