STC新型单片机的ISP程序设计

上传人:小** 文档编号:111516072 上传时间:2022-06-20 格式:DOC 页数:8 大小:132KB
返回 下载 相关 举报
STC新型单片机的ISP程序设计_第1页
第1页 / 共8页
STC新型单片机的ISP程序设计_第2页
第2页 / 共8页
STC新型单片机的ISP程序设计_第3页
第3页 / 共8页
点击查看更多>>
资源描述
STC新型单片机的ISP程序设计随着单片机技术的不断发展,IAP(In-Application-Programming)功能的支持越来越普遍,这给应用系统程序代码升级带来了极大的方便。但是,ISP(In-System-Programming)程序的设计以及程序空间的安排等,是需要开发者认真细致考虑的。本文针对STC新型单片机的应用ISP程序设计作了详细的介绍,以STC11F62X为例,详细说明了具体实现过程,并给出了Keil-C源代码。一.STC新型单片机介绍STCll/lOxx系列单片机是宏晶科技设计生产的单时钟/机器周期(1T)的单片机,是高速、低功耗、超强干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成的FLASH寿命可达10万次,并且完全支持ISP和IAP功能。该系列针对不同功能、电压、封装等的型号规格非常齐全。所有的STC11/10xx系列单片机内部都固化了宏晶科技的ISP程序,不需要并行编程器,通过RS232串口就可以烧录用户程序。但一些系统为了程序保密或者采用其他诸如RS485通讯或其他通讯方式的需要,仍然需要自己编写ISP程序用于系统升级。在STCll/lOxx系列单片机中以IAP打头的芯片型号,用户程序和数据FLASH是统一寻址,允许在用户程序中擦写FLASH,因此可以编写自己的ISP程序。本程序例子中选用的单片机是IAP11F62X,包含内部可用的62kFLASH空间和扩展的1024字节XRAM。二.单片机内部FLASH存储器安排为了充分使用单片机内部FLASH,将FLASH划分为三部分:FLASH地址使用分区地址划分例子高地址:数据存储区0xF4000xF7FFISP监控程序区0xF0000xF3FF低地址(0000):用户程序区0x0000OxEFFF用户程序区从低地址0000开始,主体程序运行不受任何影响。当满足特定条件(需要进入ISP监控程序)时,跳转到ISP监控程序区运行,可对用户程序区进行擦除和改写。剩下的高地址FLASH可用作数据存储。三.ISP实现基本结构用户程序可以有多种方式判断是否跳转ISP监控程序:1. 串口接收到特殊格式指令;2. 用户板上指定的按键或跳线组合;3. 由用户板操作功能选择。四. IAP程序设计IAP程序设计比较简单,只需对几个特殊功能寄存器进行操作就可以完成FLASH的擦除和改写。附件二.IAP_11_10.C是IAP程序的C源代码;附件三.IAP_ll_10.h是头文件说明,其中可以看到对FLASH存储器的安排:#defineFPRG_ENDOxEFFF/*用户程序末地址(60k)*/#defineBOOT_ADR0xF000/*在线升级监控程序地址(lk)*/#defineFDAT_ADR0xF400/*数据FLASH地址(lk数据)*/#defineFDAT_PGN2/*数据FLASH页数(lk字节2页)*/程序中需要说明的几点是:开启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开始,即:“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程序前,才将数据FLASH扇区擦除并将1k字节数据全部写入。如果用户程序开启了看门狗,进入ISP监控程序后,在看门狗最长复位时间内,如果串口没有收到有效的系统复位通讯指令数据,芯片会自动复位返回用户程序区运行。这样可以防止ISP程序的误入,当然还可以修改ISP监控程序作更多的标志和判断以及程序陷阱,进一步防止ISP程序的误操作。六. 用户程序设计在用户程序设计中,应该包含有判断以及跳转ISP监控程序的代码段。附件六.TEST.C是一个简单的用户程序的例子,程序通过两种方式可进入ISP监控程序:同时按下两个按键或者串口在250mS之内接收到特殊字符Z和z。生成TEST程序也需要在Keil-C中建立工程文件,除了包含TEST.C,还应包含IAP_11_10.C七. 与计算机连接的通讯协议升级用户代码时,需要与计算机进行通讯,一般采用RS232串行通讯,数据协议采用简单协议。本文例子采用的通讯协议可以用串口测试程序(RS232.EXE)进行程序升级测试,注意:选择22.1184晶体2倍速再复位,这样通讯速率才是115.2kBps。1. 复位指令(计算机-单片机)计算机发送四字节复位指令:21H,5AH,00H,A6H,单片机返回复位信息。2. 复位信息(单片机-计算机)复位信息为25字节,前三字节为单片机公司特征字符(如:“ADI”“SST”“STC”),最后一字节为效验和。3. 数据包格式计算机发送数据包格式:07H,0EH,长度,数据,效验和(长度与数据的效验和)。4. 擦除指令计算机发送数据包,其中数据只有一字节,内容为:字符A或C。单片机擦除用户程序区后返回一字节06H表示成功;05H表示失败。5.编程指令计算机发送数据包,其中数据内容:W,00H,地址高字节,地址低字节,程序数据。单片机返回一字节06H表示成功;05H表示失败。6. 读EEPROM指令计算机发送数据包,其中数据内容:R,长度,地址高字节,地址低字节。单片机返回一字节05H表示失败;06H表示成功然后紧跟的是读出的数据字节和效验。7. 写EEPROM指令计算机发送数据包,其中数据内容:E,00H,地址高字节,地址低字节,EEPROM数据。单片机返回一字节06H表示成功;05H表示失败。8. 运行用户程序计算机发送数据包,其中数据只有一字节,内容为:字符U。单片机返回一字节06H表示成功,然后跳转用户程序运行。八. 结束语根据以上ISP程序设计,大家可以修改ISP代码,丰富其他的ISP功能(如:口令控制、数据加密等),尝试设计自己的ISP程序。魏东tonywei2009-6-25
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!