P89C51RD2的Boot ROM与ISP功能的实现
发布时间:2008/6/3 0:00:00 访问次数:1227
     綦声波 杨 梅 马志强 来源:《单片机与嵌入式系统应用》
     摘要:简单论述p89c51rd2的isp和iap功能,给出实现读取其boot
     rom源代码的硬件电路和程序;初步探讨isp功能中的波特率的自动跟踪技术、命令字的接收格式和执行方式,给出部分源代码。
    
    
     关键词:p89c51rd2
     boot rom isp(iap)功能
     1 概述
     p89c51rd2是philips公司内核基于8位80c51单片机的派生产品,在完全保留80c51指令系统和硬件结构的大框架下,进行了多方面的加强、扩展和创新,最大限度地利用了原有结构的方方面面。p89c51rd2将原有的对外数据和程序存储器的16位寻址机制加以利用,把片上的ram扩展到1kb、片上的flash
     eprom扩展到64kb,满足当今用嵌入式高级语言对片上大存储容量的需要。
     p89c51rd2最显著的特点莫过于其isp(in-system
     programming,在系统可编程)功能和iap(inapplication
     programming,在应用可编程)功能。isp指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以用isp方式擦除或再编程。iap指mcu可以在系统中获取新代码并对自己重新编程,即可用程序来改变程序。isp和iap技术是未来仪器仪表的发展方向。philips公司为了使isp技术和iap技术得以推广,在芯片上免费提供了boot
     rom固件,并且巧妙地解决了固件和flash的地址覆盖问题及一些具体实现细节问题,使它们的实现变得简单而现成。
     对于boot rom中的内容,philips公司是不公开的。但很多技术人员对于boot
     rom固件中isp(iap)功能的实现非常感兴趣。就isp状态而言,上位机直接跟boot
     rom固件中的程序打交道,因此,必须根据philips公司提供的流程和协议来编制上位机程序,至于boot
     rom内部是如何实现isp功能的,则不得而知。如果能够搞明白isp功能实现的具体方法,则对于上位机软件的编制是大有好处的。以下是对boot
     rom中有关isp功能实现所作的一些初步探讨。
    
     2 boot rom固件代码的读出方法
     要对其isp功能进行分析,必须读出boot
     rom中的源代码。为此,必须型清楚boot rom空间和flash空间的关系。p89c51rd2采用了最选进的flash(快闪)eprom,其容量为64kb,并且分成8kb和16kb的存储块。我们知道,80c51系列8位单片机的最大寻址能力就是64kb,flash
     eprom已经将全部寻址空间占据。同时,philips公司为p89c51rd2在片内提供了一个名叫引导rom(boot
     rom)的1kb的固件。固件上有引导装载程序,可以接收主机经串口传来的命令和数据(如经pc机的rs-232c口),这个固件是放在64kb程序存储器的最高端的,与片内flash地址0fc00h~0ffffh相覆盖。两者之间的切换是通过特殊功能寄存器auxr1的enboot位来进行的。
     enboot=1 地址在0fc00h~0ffffh范围,寻址到固件
     enboot=0 地址在0fc00h~0ffffh范围,寻址到flash
     既然当enboot=1时,能够寻址到固件,则利用程序就可以将固件代码读出。下面是实现代码读出时的硬件部分和软件部分。
     (1)硬件部分
     为了读出boot rom中的内容,必须给p89c51rd2搭一个包括复位、晶振和串口通信功能的基本硬件系统,如图1所示。icl232为单电源串口转换芯片,可以完成ttl电平与rs-232c电平之间的转换。
     (2)软件编制
     编制软件的
     綦声波 杨 梅 马志强 来源:《单片机与嵌入式系统应用》
     摘要:简单论述p89c51rd2的isp和iap功能,给出实现读取其boot
     rom源代码的硬件电路和程序;初步探讨isp功能中的波特率的自动跟踪技术、命令字的接收格式和执行方式,给出部分源代码。
    
    
     关键词:p89c51rd2
     boot rom isp(iap)功能
     1 概述
     p89c51rd2是philips公司内核基于8位80c51单片机的派生产品,在完全保留80c51指令系统和硬件结构的大框架下,进行了多方面的加强、扩展和创新,最大限度地利用了原有结构的方方面面。p89c51rd2将原有的对外数据和程序存储器的16位寻址机制加以利用,把片上的ram扩展到1kb、片上的flash
     eprom扩展到64kb,满足当今用嵌入式高级语言对片上大存储容量的需要。
     p89c51rd2最显著的特点莫过于其isp(in-system
     programming,在系统可编程)功能和iap(inapplication
     programming,在应用可编程)功能。isp指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以用isp方式擦除或再编程。iap指mcu可以在系统中获取新代码并对自己重新编程,即可用程序来改变程序。isp和iap技术是未来仪器仪表的发展方向。philips公司为了使isp技术和iap技术得以推广,在芯片上免费提供了boot
     rom固件,并且巧妙地解决了固件和flash的地址覆盖问题及一些具体实现细节问题,使它们的实现变得简单而现成。
     对于boot rom中的内容,philips公司是不公开的。但很多技术人员对于boot
     rom固件中isp(iap)功能的实现非常感兴趣。就isp状态而言,上位机直接跟boot
     rom固件中的程序打交道,因此,必须根据philips公司提供的流程和协议来编制上位机程序,至于boot
     rom内部是如何实现isp功能的,则不得而知。如果能够搞明白isp功能实现的具体方法,则对于上位机软件的编制是大有好处的。以下是对boot
     rom中有关isp功能实现所作的一些初步探讨。
    
     2 boot rom固件代码的读出方法
     要对其isp功能进行分析,必须读出boot
     rom中的源代码。为此,必须型清楚boot rom空间和flash空间的关系。p89c51rd2采用了最选进的flash(快闪)eprom,其容量为64kb,并且分成8kb和16kb的存储块。我们知道,80c51系列8位单片机的最大寻址能力就是64kb,flash
     eprom已经将全部寻址空间占据。同时,philips公司为p89c51rd2在片内提供了一个名叫引导rom(boot
     rom)的1kb的固件。固件上有引导装载程序,可以接收主机经串口传来的命令和数据(如经pc机的rs-232c口),这个固件是放在64kb程序存储器的最高端的,与片内flash地址0fc00h~0ffffh相覆盖。两者之间的切换是通过特殊功能寄存器auxr1的enboot位来进行的。
     enboot=1 地址在0fc00h~0ffffh范围,寻址到固件
     enboot=0 地址在0fc00h~0ffffh范围,寻址到flash
     既然当enboot=1时,能够寻址到固件,则利用程序就可以将固件代码读出。下面是实现代码读出时的硬件部分和软件部分。
     (1)硬件部分
     为了读出boot rom中的内容,必须给p89c51rd2搭一个包括复位、晶振和串口通信功能的基本硬件系统,如图1所示。icl232为单电源串口转换芯片,可以完成ttl电平与rs-232c电平之间的转换。
     (2)软件编制
     编制软件的