P89LPC932的几种ISP编程方法
发布时间:2008/5/27 0:00:00 访问次数:408
引 言:
lpc900系列flash单片机提供从8脚到28脚的封装形式,可以满足各种对成本和电路板空间有限制而又要求高性能、高可靠性的应用需要,同时具有高速率(6倍于传统mcs51单片机),低功耗(完全掉电模式下耗电低于1 μa),高稳定性,小封装,多功能(内嵌众多流行的功能模块)等特点。p89lpc932就是该家族中的重要一员,其集成了8 kb的flash程序存储器、512b的静态数据存储器、512b的e2prom、i2c总线、spi总线、增强型uart接口、模拟比较器、看门狗、4个中断优先级、双dptr,并支持isp/iap编程等功能。
1 p89lpc932进行isp编程的基本方式
1.1内部程序存储器的三种编程方式
p89lpc932内部集成的8 kb程序存储器编程的三种方式分别是:在系统编程(isp);程序运行时编程(iap);通过并行方式编程。
一般来说,isp编程是指依靠某种外部工具(除了常规的并行编程器以外)去直接给处理器内部集成的程序存储器编程。这里所指的外部工具常见的有很多种,不同的处理器供应厂商可能提供不同的方案。例如,根据编程接口的不同,就有jtag、单线、串口、spi口等多种方式。尽管编程方式有所不同,但其原理都是类似的,就是依靠外部条件触发处理器,令其脱离正常执行的内部常规用户应用程序代码的进程,转而执行保存在其程序存储空间内某个固定位置处的控制擦除程序存储器及给程序存储器编程的代码(或是处理器外部提供的执行代码),然后通过某种与pc计算机的通信方式,将用户指定的某个在pc上编译完成的嵌入式处理器可运行的二进制代码文件编程入嵌入式处理器内的程序存储器。这种编程方式只需要常规的硬件配置(某些处理器可能需要某些叫做下载线的简单硬件电路)支持,而不需要特别的编程器(指并行编程器)支持,所以即使处理器芯片已经焊接到了电路板上也可以实现编程,这也就是isp的真实含义。p89lpc932是利用其自身的异步串行口来实现isp编程的,不需要特别的下载线或下载器,触发lpc932进入isp编程模式的方法将在下文详细解释。
iap编程方式与isp编程方式类似,但它不是由外部条件来触发的,而是在处理器正常执行用户设计的应用程序代码时,直接调用执行擦除及编程功能的固化例程。和isp编程方式一样,iap编程方式也只需要常规的硬件配置来支持。p89lpc932的isp编程实际上就是通过调用芯片的iap服务子程序实现编程的,其iap服务子程序保存在ff00h~ffffh地址空间中,不占用用户程序空间。
并行方式编程需要使用一台外部专业编程设备。换句话说,这种编程环境并不是用户最终应用时的硬件环境。用户在使用这种编程方式时,通常必须将处理器芯片单独放到并行编程器上进行编程(如果处理器芯片已经焊接到电路板上,则必须先将处理器芯片从电路板上取下来)。处理器芯片编程完成后才能放回到电路板上,再上电令处理器运行,才能看到用户新写入代码的运行结果。这是最传统的编程方式(经典的at89c51就主要使用这种方式编程),但它既繁琐,又不能满足现今远程升级的实际需求,因而已逐渐被方便快捷的isp、iap等在线编程方式所取代。
综合来说,isp模式是最容易使用的,因为它允许处理器在被焊接到用户目标电路板上再进行编程,也不需要复杂的代码设计,该特性允许用户在生产出硬件产品后再升级产品软件。一般来说,增加校准信息数据和现场安装最新的软件版本是较常见的升级操作。不仅如此,isp编程还特别适用于用户产品研发阶段。显然,用户可以非常方便快捷地更改自己的程序代码并立即看到新代码的运行结果。p89lpc932使用串口作为isp编程模式的主通信接口,使得这一系列处理器较那些依靠jtag、spi等通信接口作isp编程接口的处理器要方便。因为一般的嵌入式系统都会配置异步串行口,这样,在系统编程就不需要特殊的isp编程器,而jtag、spi等及其类似的编程方式一般都需要专用的接口适配器或下载线来配合,这些都可能会增加用户的投资和成本。 p89lpc932芯片实现isp编程是依靠在出厂时预置的一段启动代码,这段代码存储在p89lpc932代码空间内7号扇区的高端512b地址处(p89lpc932内部的8 kb程序存储器被组织成8个扇区,每个扇区有1 kb)。这段代码提供了设备底层操作代码(执行如擦除、编程等操作)和串口通信之间的接口。如果用户需要使用isp编程模式,则必须注意,千万不要擦除或覆盖包含isp预置代码的那个扇区,也就是7号扇区(1c00~1fffh),因为p89lpc932的擦除操作是以扇区为基本单位的。
如图1所示,用p89lpc932实现isp的硬件连接很简单,它只需使用vdd电压即可执行擦除和编程算法,不需要特殊的高编程电压,所以,芯片外部只需要1片ttl和rs232电平相互转换的芯片(常见的芯片包括maxim的max202、max232等,其他公司如ti、sipex、linear都有类似功能的芯片产品)即可实现p89lpc932内异步串行口和用户个人计算机上的rs232串口的连接。在用户个人计算机上运行一个简单的终端仿真程序就可以实现isp编程,不过还
引 言:
lpc900系列flash单片机提供从8脚到28脚的封装形式,可以满足各种对成本和电路板空间有限制而又要求高性能、高可靠性的应用需要,同时具有高速率(6倍于传统mcs51单片机),低功耗(完全掉电模式下耗电低于1 μa),高稳定性,小封装,多功能(内嵌众多流行的功能模块)等特点。p89lpc932就是该家族中的重要一员,其集成了8 kb的flash程序存储器、512b的静态数据存储器、512b的e2prom、i2c总线、spi总线、增强型uart接口、模拟比较器、看门狗、4个中断优先级、双dptr,并支持isp/iap编程等功能。
1 p89lpc932进行isp编程的基本方式
1.1内部程序存储器的三种编程方式
p89lpc932内部集成的8 kb程序存储器编程的三种方式分别是:在系统编程(isp);程序运行时编程(iap);通过并行方式编程。
一般来说,isp编程是指依靠某种外部工具(除了常规的并行编程器以外)去直接给处理器内部集成的程序存储器编程。这里所指的外部工具常见的有很多种,不同的处理器供应厂商可能提供不同的方案。例如,根据编程接口的不同,就有jtag、单线、串口、spi口等多种方式。尽管编程方式有所不同,但其原理都是类似的,就是依靠外部条件触发处理器,令其脱离正常执行的内部常规用户应用程序代码的进程,转而执行保存在其程序存储空间内某个固定位置处的控制擦除程序存储器及给程序存储器编程的代码(或是处理器外部提供的执行代码),然后通过某种与pc计算机的通信方式,将用户指定的某个在pc上编译完成的嵌入式处理器可运行的二进制代码文件编程入嵌入式处理器内的程序存储器。这种编程方式只需要常规的硬件配置(某些处理器可能需要某些叫做下载线的简单硬件电路)支持,而不需要特别的编程器(指并行编程器)支持,所以即使处理器芯片已经焊接到了电路板上也可以实现编程,这也就是isp的真实含义。p89lpc932是利用其自身的异步串行口来实现isp编程的,不需要特别的下载线或下载器,触发lpc932进入isp编程模式的方法将在下文详细解释。
iap编程方式与isp编程方式类似,但它不是由外部条件来触发的,而是在处理器正常执行用户设计的应用程序代码时,直接调用执行擦除及编程功能的固化例程。和isp编程方式一样,iap编程方式也只需要常规的硬件配置来支持。p89lpc932的isp编程实际上就是通过调用芯片的iap服务子程序实现编程的,其iap服务子程序保存在ff00h~ffffh地址空间中,不占用用户程序空间。
并行方式编程需要使用一台外部专业编程设备。换句话说,这种编程环境并不是用户最终应用时的硬件环境。用户在使用这种编程方式时,通常必须将处理器芯片单独放到并行编程器上进行编程(如果处理器芯片已经焊接到电路板上,则必须先将处理器芯片从电路板上取下来)。处理器芯片编程完成后才能放回到电路板上,再上电令处理器运行,才能看到用户新写入代码的运行结果。这是最传统的编程方式(经典的at89c51就主要使用这种方式编程),但它既繁琐,又不能满足现今远程升级的实际需求,因而已逐渐被方便快捷的isp、iap等在线编程方式所取代。
综合来说,isp模式是最容易使用的,因为它允许处理器在被焊接到用户目标电路板上再进行编程,也不需要复杂的代码设计,该特性允许用户在生产出硬件产品后再升级产品软件。一般来说,增加校准信息数据和现场安装最新的软件版本是较常见的升级操作。不仅如此,isp编程还特别适用于用户产品研发阶段。显然,用户可以非常方便快捷地更改自己的程序代码并立即看到新代码的运行结果。p89lpc932使用串口作为isp编程模式的主通信接口,使得这一系列处理器较那些依靠jtag、spi等通信接口作isp编程接口的处理器要方便。因为一般的嵌入式系统都会配置异步串行口,这样,在系统编程就不需要特殊的isp编程器,而jtag、spi等及其类似的编程方式一般都需要专用的接口适配器或下载线来配合,这些都可能会增加用户的投资和成本。 p89lpc932芯片实现isp编程是依靠在出厂时预置的一段启动代码,这段代码存储在p89lpc932代码空间内7号扇区的高端512b地址处(p89lpc932内部的8 kb程序存储器被组织成8个扇区,每个扇区有1 kb)。这段代码提供了设备底层操作代码(执行如擦除、编程等操作)和串口通信之间的接口。如果用户需要使用isp编程模式,则必须注意,千万不要擦除或覆盖包含isp预置代码的那个扇区,也就是7号扇区(1c00~1fffh),因为p89lpc932的擦除操作是以扇区为基本单位的。
如图1所示,用p89lpc932实现isp的硬件连接很简单,它只需使用vdd电压即可执行擦除和编程算法,不需要特殊的高编程电压,所以,芯片外部只需要1片ttl和rs232电平相互转换的芯片(常见的芯片包括maxim的max202、max232等,其他公司如ti、sipex、linear都有类似功能的芯片产品)即可实现p89lpc932内异步串行口和用户个人计算机上的rs232串口的连接。在用户个人计算机上运行一个简单的终端仿真程序就可以实现isp编程,不过还