8031+PSD813实现在线编程
引言
“在应用可再编程”(In-Application reProgrammable,简称IAP)通常称为“在线编程”,已经不是陌生的概念了。要实现嵌入式微控制器/处理器系统的IAP功能,就意味着可以用主机(PC机或服务器)通过通信通道把固件(程序代码)下载到应用系统的存储器中去。具有了IAP功能的电子产品有诸多益处:缩短开发进程,抢先占领市场;在装配线上即可编程和测试;现场甚至是远程升级程序代码,降低维护/升级成本。IAP技术对于通信、电力领域非常重要,如IC卡电话、分时计费电表等产品,通过远程更新代码能大大降低后期服务费用。
目前最常用的微控制器仍是MCS-51系列,其有限的存储空间、运行时不能更改程序代码、程序/数据空间必须分开等条件限制了IAP功能的实现,其中要解决的关键问题有以下几个方面:
(1) 存储器可在线再编程。
(2) 增加第二个存储器阵列,用于IAP期间MCU的运行。
(3) 实现对程序存储器的写入。
(4) 地址译码自动生成。
Waferscale(WSI)公司推出的Easy FlashTM系列可编程外围芯片产品PSD8XX是针对实现IAP问题而设计的,片内提供了IAP所必需的两块独立的存储器阵列和自动地址译码电路,与 80C51构成两芯片的IAP完整解决方案。我们用到的PSD813F1芯片内部有:1MB Flash主存储器、第二块256KB EEPROM存储器、16KB SRAM、复杂的可编程逻辑阵列CPLD,扩展I/O口及JTAG接口等功能模块。
一、 方案说明
在介绍方案之前,首先介绍将用到的PSD的两个内部寄存器:页寄存器(page)和VM寄存器。在PSD内部有一组控制寄存器用来对PSD进行设置,如I/O口方式、JTAG配置等。它们的地址是基址CSIOP加偏移地址。CSIOP地址可以在Able语言(见附录)中设定。页寄存器的偏移地址是E0H,VM寄存器的是E2H。当CSIOP被定义为0900H时,它们的访问地址就是(0900+E0)H和(0900+E2)H。8位的页寄存器可使MCU的寻址空间扩大256倍,它的内容可以由MCU来读出和写入。页寄存器直接参与PSD内部存储器的地址选择。在作为页寻址时写入要访问的页地址, PSD内部地址译码逻辑就立刻选中目标存储器空间。页寄存器是可以按位使用的,在不用来作页面选择时,还可以作一般逻辑使用,如本方案中用到的swap、 enabledatahalf就是用页寻址未用到的位来实现的。VM寄存器用来分开程序空间(PSEN信号使能)和数据空间(RD信号使能), PSD813F1中Flash和EEPROM、SRAM可设置在不同空间。VM寄存器内容定义如表1所列。
如果VM=12H,则设置Flash和SRAM位于数据空间,EEPROM位于程序空间。
使用页寄存器实现分页存储时,应该设置一个公共存储器区,即程序在任何位置执行时都能够访问到的空间(或者说是页不相关的地址空间)。本方案中公共存储器区占去了每一页的低一半的存储空间(如图1~图4所示),用于放置初始化程序、中断服务程序、页切换程序以及物理设备驱动程序等重要子程序。同样,重要数据也应当在任何页都可以访问,如PSD控制寄存器、I/O、用于保存堆栈和全局变量的系统RAM等。
表1 VM寄存器
图1 上电时(启动/引导状态)系统存储器映射(VM=12H)
图2 写06H到VM,将Flash“移”到程序空间后系统存储器映射
图3 “swap”位写1,“切换”Flash和EEPROM后系统存储器映射
本方案充分利用了PSD813F1中存储器的独特功能,突破了80C51MCU的最大64KB访问空间的限制,PSD内部所有Flash存储器可以由80C51使用。 IAP实现的基本原理是:系统从PSD的EEPROM启动,执行引导/下载程序,如果需要的话从PC机或其他主机中通过UART下载固件(程序)到PSD 的Flash存储器。然后,程序从EEPROM转跳到Flash,再通过PSD中的一个特殊寄存器VM将原引导区(地址0000H)的EEPROM用 Flash替代,实现了通过UART对PSD中Flash存储器的在线编程。
二、 系统存储器映射
系统启动过程中存储器的映射变换如图1~图4所示,其中FSx、EESx是PSD813F1内部存储器块。FSx对应8个Flash块,每块16KB;EESx对应4个EEPROM块,每块8KB。
图4 写0CH到VM,将EEPROM“移”到数据空间后系统存储器映射
MCU的运行有两个基本模式:一个是引导/下载模式;另一个是正常运行模式。图1~图4显示了上电启动后从引导/下载模式到正常运行模式转换过程中系统存储器的变化。
图1显示了上电时系统存储器的映射情况。系统从EEPROM开始,检查是否要通过80C51的UART对Flash中的程序进行升级。此时, PSD中全部Flash存储器都处于80C51的数据空间,而EEPROM则处于80C51的程序空间。这是在WSI的PSDSOFT开发系统第二个步骤的“PSD Configuration”中设置的。在“S
8031 PSD813 在线编程IAP 存储器系统 映射 相关文章:
- 图像处理器6538与8031的接口技术 (05-19)
- 单片机8031,8051区别及引脚功能资料介绍(11-23)
- 用8031控制的BDJ-3A三相功率电能表(10-15)
- 14篇基于多种51单片机的技术分析、实用案例(05-07)
- 嵌入式控制系统电路抗干扰性的设计研究(10-31)
- 车用LIN控制交流发电机稳压器TC80310(02-20)