STC新型单片机的ISP程序设计_第1页
STC新型单片机的ISP程序设计_第2页
STC新型单片机的ISP程序设计_第3页
STC新型单片机的ISP程序设计_第4页
STC新型单片机的ISP程序设计_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

STC 新型单片机的新型单片机的 ISP 程序设计程序设计 随着单片机技术的不断发展 IAP In Application Programming 功能的支持越来越普遍 这给应用系统程序代码升级带来了极大的 方便 但是 ISP In System Programming 程序的设计以及程序空间 的安排等 是需要开发者认真细致考虑的 本文针对 STC 新型单片 机的应用 ISP 程序设计作了详细的介绍 以 STC11F62X 为例 详细 说明了具体实现过程 并给出了 Keil C 源代码 一一 STC 新型单片机介绍新型单片机介绍 STC11 10 xx 系列单片机是宏晶科技设计生产的单时钟 机器周期 1T 的单片机 是高速 低功耗 超强干扰的新一代 8051 单片机 指令代码完全兼容传统 8051 但速度快 8 12 倍 内部集成的 FLASH 寿命可达 10 万次 并且完全支持 ISP 和 IAP 功能 该系列 针对不同功能 电压 封装等的型号规格非常齐全 所有的 STC11 10 xx 系列单片机内部都固化了宏晶科技的 ISP 程序 不需要 并行编程器 通过 RS232 串口就可以烧录用户程序 但一些系统为 了程序保密或者采用其他诸如 RS485 通讯或其他通讯方式的需要 仍然需要自己编写 ISP 程序用于系统升级 在 STC11 10 xx 系列单片 机中以 IAP 打头的芯片型号 用户程序和数据 FLASH 是统一寻址 允许在用户程序中擦写 FLASH 因此可以编写自己的 ISP 程序 本程序例子中选用的单片机是 IAP11F62X 包含内部可用的 62kFLASH 空间和扩展的 1024 字节 XRAM 二二 单片机内部单片机内部 FLASH 存储器安排存储器安排 为了充分使用单片机内部 FLASH 将 FLASH 划分为三部分 FLASH 地址使用分区地址划分例子 数据存储区0 xF400 0 xF7FF ISP 监控程序区0 xF000 0 xF3FF 高地址 低地址 0000 用户程序区0 x0000 0 xEFFF 用户程序区从低地址 0000 开始 主体程序运行不受任何影响 当满足特定条件 需要进入 ISP 监控程序 时 跳转到 ISP 监控程 序区运行 可对用户程序区进行擦除和改写 剩下的高地址 FLASH 可用作数据存储 三三 ISP 实现基本结构实现基本结构 用户程序启动运行 接收数据 运行 IAP 程序对 FLASH 编程 实现用户代码升级 接受系统指令软复位 擦写 结束 ISP 监控程序运行 满足系统升级条件 用户程序可以有多种方式判断是否跳转 ISP 监控程序 1 串口接收到特殊格式指令 2 用户板上指定的按键或跳线组合 3 由用户板操作功能选择 四四 IAP 程序设计程序设计 IAP 程序设计比较简单 只需对几个特殊功能寄存器进行操作 就可以完成 FLASH 的擦除和改写 附件二 IAP 11 10 C 是 IAP 程序的 C 源代码 附件三 IAP 11 10 h 是头文件说明 其中可以看到对 FLASH 存储器的安排 define FPRG END0 xEFFF 用户程序末地址 60k define BOOT ADR 0 xF000 在线升级监控程序地址 1k define FDAT ADR0 xF400 数据 FLASH 地址 1k 数据 define FDAT PGN2 数据 FLASH 页数 1k 字节 2 页 程序中需要说明的几点是 开启 IAP 功能前 将中断允许 EA 暂存到位变量 ea tmp 并将中断禁止 关闭 IAP 功能时再将中断恢 复 另外 根据硬件选择的振荡器频率 在 IAP 11 10 h 中设置适 当的参数 五五 ISP 程序设计程序设计 ISP 程序中主要是根据串口接收到的指令 调用 IAP 函数进行 操作 附件四 ISP DEMO C 是 ISP 程序的 C 源代码 附件五 BOOT A51 是程序初始化代码 由于 ISP 程序被安排从 0 xF000 地址 开始 因此与普通程序初始化代码 STARTUP A51 不同 BOOT A51 中指定了代码地址是从 0 xF000 开始 即 CSEG AT 0 xF000 生成 ISP DEMO 程序需要在 Keil C 中建立工程文件 除了包含 ISP DEMO C 还应包含 IAP 11 10 C 及 BOOT A51 另外还需设 置程序空间地址范围 在 Target 选项卡中 Off chip Code memory 设置 Start 0 xF000 Size 0 x0400 另外 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 运行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论