《防爆磁力启动器原理与维修》 * 技术教程集合 * PLC入门教程 电工基础教程
论坛使用帮助 PLC视频教程下载 升级VIP用户的方法成伟新帖

在Bank Switch基础上 实现大程序和数掘空间

[复制链接]
查看1989 | 回复4 | 2011-9-7 22:50:16 | 显示全部楼层 |阅读模式
<




MCS51系列单片机是目前应用非常广泛的8位MCU。MCS5l系列单片机的地址总线为16位,不作扩展的情况下其最大的程序和数据地址空间为64 KB。但是随着控制领域的不断智能化、复杂化,程序代码或数据空间的大小可能远远大于64 KB。结合相应的硬件地址扩展,使用KeilC5l的Blank Switch技术可生成代码长度和数据空间大于64 KB的目标程序。
Keil C5l的Blank Switch技术突破了51系列单片机在地址空间方面的不足,在很多领域中拓展了它的使用。笔者就曾使用Blank Switch开发了程序空间为512 KB,数据空间为256 KB的一个较复杂的程控交换机控制程序。
本文以该程控交换机主控制部分的实现过程为例,介绍KeilC5l的Blank Switch技术的具体应用。

1 Blank Switch技术介绍
具体实现Blank Switch技术的是KeilC5l中的分组连接定位器BL5l。Keil C5l语言源程序经过C5l编译器编译后,生成浮动地址的目标代码文件。这种浮动地址的目标代码必须经过连接定位器BL5l的连接和定位,生成具有绝对地址的目标代码,才能写入程序存储器正常运行。
BL51支持分组连接定位,允许生成代码大于64 KB的目标程序,可以在具有适当硬件扩展逻辑的系统中进行代码组之间的切换,以达到正常运行的目的。
V5.03版本的BL5l可以管理最多64个代码组,每个代码组最大为64 KB。BL51连接定位器生成的0MF5l格式的绝对目标文件,可装入dSCOpe51或Intel兼容的仿真器进行调试,也可通过符号转换器OH51转换成IntelHex文件以便于EPROM编程。
在Keil C5l开发工具的快速更新过程中,LX51成为功能更为完善的连接定位器,使用它替代BL51能够增加更多的连接定位功能。笔者使用LX5l可以更加方便程序的开发。

2 系统硬件的设计
在采用BL5l对目标程序进行分组连接定位时,要求系统具有相应的硬件分组扩展逻辑。BL5l默认的分组方式是采用MCU的P1端口作硬件扩展地址线.采用l条Pl引脚时,分组数为2,采用6条P1引脚时,最多可分为64个代码组,剩余的Pl口线也可做其他用途。
硬件分组还可采用外部数据存储器XDATA空间地址单元来进行,与采用805l的Pl端口作为分组地址线不同的是,对于一个指定用于分组地址的XDATA端口字节中的剩余位,不能再用于其他目的。
在系统中,以Pl端口作硬件扩展地址线,使用了4条Pl引脚(P1.4~P1.7)。主控部分硬件基本原理图如图1所示。在这里,去除了外围控制接口(如串口)与其他CPU的互联等电路,主要突出如何实现使用Pl端口作硬件扩展来增加程序空间和数据空间.笔者使用Flash29C040作为程序存储器,通过Pl扩展引脚与该芯片的高4位地址线相连,使用32 KB空间的62256作为外部数据存储器。由于程控交换机中有很多参数和设置数据需要断电保存,所以使用了另一Flash29CO4O作为扩展的外部数据存储器。

在这里需要注意的是,CPU地址线的最高位(P2.7)并不是直接与对应的程序Flash 29C040和数据Flash29C040地址线相连。在和程序存储器的连接中,P2.7和Pl端口通过与的关系连接到Flash 29C040的地址线高4位。公共代码区域程序始终都是从Flash 29C040的低32 KB中读取,而不需要在每个分组前存放32 KB的公共代码区域程序,从而节约了存储空间。
在和数据存储器的连接中,增加了P1.O和P2.7组合对数据Flash 29C040的片选,主要是考虑可以增加主控芯片对外围器件的控制。例如,当设置P1.0为0,地址为高32KB时,可以扩展增加访问串口或其他器件。在本文就不再对该部分内容详细描述了。同时,需要注意安排好变量的存储地址,这一点将在下文中详细描述。
在程序设计过程中,P1扩展地址线对程序员而言是不可见的。由BL5l产生的代码来控制硬件的扩展引脚和代码组的切换,这使程序员只需要将精力花费在代码编写和代码组的安排上,大大提高了程序设计效率和稳定性。

3 KeilC51的环境设置
除需要正确设计硬件电路,同时还要对Keil C5l提供的文件和环境进行正确设置才能真正实现地址的扩展。下面是需要进行相关配置的几项。


热帖推荐
yhm321 | 2014-6-9 18:53:54 | 显示全部楼层
艹泥人 | 2013-11-19 21:11:01 | 显示全部楼层
pmr68 | 2013-11-19 10:31:00 | 显示全部楼层
学习学习{:soso_e183:}
yali | 2011-9-7 22:50:17 | 显示全部楼层
本新闻共3页,当前在第1页 [1] [2] [3]




您需要登录后才可以回帖 登录 | 立即注册

本版积分规则