欢迎来到天天文库
浏览记录
ID:22246433
大小:44.50 KB
页数:6页
时间:2018-10-28
《stc新型单片机的isp程序设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、STC新型单片机的ISP程序设计随着单片机技术的不断发展,IAP(In-Application-Programming)功能的支持越来越普遍,这给应用系统程序代码升级带来了极大的方便。但是,ISP(In-System-Programming)程序的设计以及程序空间的安排等,是需要开发者认真细致考虑的。本文针对STC新型单片机的应用ISP程序设计作了详细的介绍,以STC11F62X为例,详细说明了具体实现过程,并给出了Keil-C源代码。一.STC新型单片机介绍STC11/10xx系列单片机是宏晶科技设计生产的单时
2、钟/机器周期(1T)的单片机,是高速、低功耗、超强干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成的FLASH寿命可达10万次,并且完全支持ISP和IAP功能。该系列针对不同功能、电压、封装等的型号规格非常齐全。所有的STC11/10xx系列单片机内部都固化了宏晶科技的ISP程序,不需要并行编程器,通过RS232串口就可以烧录用户程序。但一些系统为了程序保密或者采用其他诸如RS485通讯或其他通讯方式的需要,仍然需要自己编写ISP程序用于系统升级。在STC11/10xx系列单
3、片机中以IAP打头的芯片型号,用户程序和数据FLASH是统一寻址,允许在用户程序中擦写FLASH,因此可以编写自己的ISP程序。本程序例子中选用的单片机是IAP11F62X,包含内部可用的62kFLASH空间和扩展的1024字节XRAM。一.单片机内部FLASH存储器安排为了充分使用单片机内部FLASH,将FLASH划分为三部分:FLASH地址使用分区地址划分例子高地址:低地址(0000):数据存储区0xF400~0xF7FFISP监控程序区0xF000~0xF3FF用户程序区0x0000~0xEFFF用户程序区
4、从低地址0000开始,主体程序运行不受任何影响。当满足特定条件(需要进入ISP监控程序)时,跳转到ISP监控程序区运行,可对用户程序区进行擦除和改写。剩下的高地址FLASH可用作数据存储。二.ISP实现基本结构用户程序启动运行满足系统升级条件ISP监控程序运行软复位结束接受系统指令擦写接收数据,运行IAP程序对FLASH编程实现用户代码升级用户程序可以有多种方式判断是否跳转ISP监控程序:1.串口接收到特殊格式指令;2.用户板上指定的按键或跳线组合;3.由用户板操作功能选择。一.IAP程序设计IAP程序设计比较简
5、单,只需对几个特殊功能寄存器进行操作就可以完成FLASH的擦除和改写。附件二.IAP_11_10.C是IAP程序的C源代码;附件三.IAP_11_10.h是头文件说明,其中可以看到对FLASH存储器的安排:#defineFPRG_END0xEFFF/*用户程序末地址(60k)*/#defineBOOT_ADR0xF000/*在线升级监控程序地址(1k)*/#defineFDAT_ADR0xF400/*数据FLASH地址(1k数据)*/#defineFDAT_PGN2/*数据FLASH页数(1k字节2页)*/程序中
6、需要说明的几点是:开启IAP功能前,将中断允许EA暂存到位变量ea_tmp,并将中断禁止;关闭IAP功能时再将中断恢复。另外,根据硬件选择的振荡器频率,在IAP_11_10.h中设置适当的参数。二.ISP程序设计ISP程序中主要是根据串口接收到的指令,调用IAP函数进行操作。附件四.ISP_DEMO.C是ISP程序的C源代码。附件五.BOOT.A51是程序初始化代码,由于ISP程序被安排从0xF000地址开始,因此与普通程序初始化代码STARTUP.A51不同,BOOT.A51中指定了代码地址是从0xF000开始
7、,即:“CSEGAT0xF000”。生成ISP_DEMO程序需要在Keil-C中建立工程文件,除了包含ISP_DEMO.C,还应包含IAP_11_10.C及BOOT.A51。另外还需设置程序空间地址范围:在Target选项卡中,Off-chipCodememory设置Start:0xF000,Size:0x0400另外,ISP_DEMO程序中同时支持EEPROM读写。程序开始时将1k字节FLASH数据读入xdata缓冲区备用。指令操作过程中,实际都只在xdata缓冲区中操作,直到退出ISP程序前,才将数据FLAS
8、H扇区擦除并将1k字节数据全部写入。如果用户程序开启了看门狗,进入ISP监控程序后,在看门狗最长复位时间内,如果串口没有收到有效的系统复位通讯指令数据,芯片会自动复位返回用户程序区运行。这样可以防止ISP程序的误入,当然还可以修改ISP监控程序作更多的标志和判断以及程序陷阱,进一步防止ISP程序的误操作。一.用户程序设计在用户程序设计中,应该包含有判断以及跳转ISP监控程
此文档下载收益归作者所有