位置:51电子网 » 技术资料 » 测试测量

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

发布时间:2008/5/27 0:00:00 访问次数:586

        

    

    

    作者:李超 郝婕

    

    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提供的文件和环境进行正确设置才能真正实现地址的扩展。下面是需要进行相关配置的几项。

    在菜单project选择中

        

    

    

    作者:李超 郝婕

    

    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提供的文件和环境进行正确设置才能真正实现地址的扩展。下面是需要进行相关配置的几项。

    在菜单project选择中

相关IC型号

热门点击

 

推荐技术资料

音频变压器DIY
    笔者在本刊今年第六期上着重介绍了“四夹三”音频变压器的... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!