DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 549|回复: 1
打印 上一主题 下一主题

P89LPC932的几种ISP编程方法

  [复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 21:33:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  
         
    引 言:
  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编程,不过还有一种更简单的方法,就是运行一个现成的免费程序,比如Flashmagic,就可以实现这个目的,这个程序集成了所有针对Philips LPC900系列处理器的ISP功能。P89LPC932内部的ISP代码能够自动检测其片上异步串行口与用户个人计算机通信的波特率,进而实现在用户个人计算机控制下的代码下载及编程。综上所述,P89LPC932的这种ISP编程模式不需要外部编程器,但是需要一定的外部电路(串口通信电路),需要保留ISP驻留代码,需要在用户的应用程序代码中添加ISP引导初始化程序(如中止控制符检测初始化),且ISP加密字的第2位(禁止ISP/IAP擦除)不能置位。

[table]

[tr]
[td]


[/td][/tr]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
沙发
发表于 2012-4-24 00:13:02 | 只看该作者
顶!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-7-20 00:33 , 耗时 0.109909 秒, 17 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表