欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    P89LPC932的几种ISP编程方法.pdf

    • 资源ID:85897043       资源大小:521.03KB        全文页数:8页
    • 资源格式: PDF        下载积分:14.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要14.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    P89LPC932的几种ISP编程方法.pdf

    P89LPC932 的几种 ISP 编程方法 摘要 P89LPC932 是 Philips 公司推出的一种新型、高速、低功耗的兼容 MCS51指令集的 8 位单片机,芯片内部集成有 8 KB 的 Flash 程序存储器,可以进行 ISP(InSystem Programming)/IAP(InApplication Programming)编程,特别适合于小型系统设计、制造或样品研发。本文比较详细地描述用 P89LPC932 进行 ISP 编程的几种方法。关键词 ISP IAP 中止控制符 启动向量 启动代码 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 服务子程序保存在 FF00HFFFFH 地址空间中,不占用用户程序空间。并行方式编程需要使用一台外部专业编程设备。换句话说,这种编程环境并不是用户最终应用时的硬件环境。用户在使用这种编程方式时,通常必须将处理器芯片单独放到并行编程器上进行编程(如果处理器芯片已经焊接到电路板上,则必须先将处理器芯片从电路板上取下来)。处理器芯片编程完成后才能放回到电路板上,再上电令处理器运行,才能看到用户新写入代码的运行结果。这是最传统的编程方式(经典的 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 号扇区(1C001FFFH),因为 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 擦除)不能置位。图 1 P89LPC932 ISP 模式硬件连接图 1.2 进入 ISP 模式的方法 触发 P89LPC932 进入 ISP 模式的 4 种方法分别是:通过检测状态位触发进入 ISP 模式(全新芯片最初上电时的默认状态);通过检测中止控制符信号触发复位后进入 ISP 模式(最实用而且常用的方法);上电时在复位引脚上检测到特定脉冲后触发进入 ISP 模式(即硬件激活进入 ISP 模式);直接调用 ISP 代码实现进入 ISP模式。1.2.1 通过检测状态位触发进入 ISP 模式 P89LPC932 复位时,是否进入 ISP 模式会受一个状态位的控制,这个状态位保存在 Flash 存储器里的一个保留位置,不过这个位置并不在 P89LPC932 可以寻址的程序存储器空间内。在复位信号的下降沿,处理器将检查该状态位的值,如果其值为 0,处理器将从地址 0000H 处开始取指令执行,这里通常存储着用户的应用程序代码。如果该状态位的值不是 0,则处理器将从另一个确定的地址处开始执行此处的代码,这个地址(16 位)的高 8 位由复位向量指定,低 8 位固定为 00H。也就是说,引导向量的值将作为程序计数器(PC)的高字节,低字节为 00H。如果用户使用的是一片新芯片,芯片中的状态位值在出厂时就被设置为 1,而启动向量被预编程为 1EH。因此,新芯片在复位后将直接从 1E00H 地址处开始执行代码。因为从 1E00H 开始处的代码,正好就是 Philips 公司给芯片预置的 ISP 启动代码。如果用户希望从 0000H 地址处开始执行代码,则状态位的值可以通过并行编程器去清零。实际上,通过 ISP 代码的自身功能也可以给状态位清零;如果用户往 P89LPC932 内部的程序存储器写入自己的应用程序代码后给状态位清零,则下次芯片复位后处理器将直接执行用户代码。另外,ISP 代码也有修改启动向量值的功能,用户可以修改它的值,也就是把芯片复位后取代码执行的地址修改了(假如 LPC932 被触发进入 ISP 模式的话),而用户自己编写的启动代码就放在那里,这种设计通常是用来执行某些特殊功能的。不过,如果用户修改了启动向量的值,使它不再是 1EH,则用户就再也不能使用 LPC932 出厂时预置的启动代码了。如果启动向量被修改而指向一个不包括任何启动代码的地址,用户则不得不使用一台并行编程器来给这枚芯片编程,以恢复它的启动向量值;否则,用户将无法再使用这种 ISP 编程方法。1.2.2 通过检测中止控制符信号触发芯片复位后进入 ISP 模式 通过异步串行口检测到中止控制符信号触发芯片复位后进入 ISP 模式是进入 ISP 模式的第二种方式。中止控制符信号就是指在异步串行口的接收脚上出现长达一帧长度的低电平,这里一帧的长度与异步串行口的工作模式有关。例如,在异步串行口的“模式一”中,一帧相当于 10 个比特的传输时间。一般地,当一个中止控制符信号发出时,异步串行口的接收脚将会持续相当于很多帧时间的低电平。不过,在第一帧的时候,中止控制符信号就会被检测到。注意,如果用一个机械开关来拉低异步串行口的接收脚,以创造一个中止控制符信号,同时,处理器被配置为允许串行中断,则异步串行口的接收中断标志必须在其中断服务全程中被处理,否则,处理器将进入一种不确定的状态。这种方式要求驻留在 P89LPC932 程序存储器内部的用户应用程序代码必须包括初始化异步串行口的代码。换句话说,用户必须使能异步串行口,同时,特殊功能寄存器 AUXR1 中的允许中止控制符信号位(EBRR)必须被置 1,以允许在检测到中止控制符信号时触发处理器复位。此外,启动向量配置字节须保证为 1EH(使用 P89LPC932 内预置的 ISP 代码),状态字为 00H(以使用户应用代码得以执行),且 1E00H1FFFH 的 Flash 程序存储器不要使用或擦除。这样配置完成后,只要异步串行口的接收脚检测到中止控制符信号后,处理器就会复位,复位后 LPC932 将从由启动向量指定的地址处取指令执行。有两个问题在使用这种触发方式的时候应该了解。一是某些 USB 转 RS232 的转换器无法发出中止控制符信号,所以无法使用检测中止控制符信号的方式触发处理器复位并进入 ISP 模式;二是中止控制符信号在正常的串口通信不会出现,所以用户可以放心使用这种触发方式。1.2.3 硬件激活进入 ISP 模式 使用这种模式的好处在于,不论处理器内部原来存储着什么用户代码,也不论状态位的值是什么,ISP 模式总是可以进入的(不过有一点还是必须得到保证,就是处理器里原来的启动代码未被擦除或覆盖,而默认的启动向量 1EH 也没有修改过)。由于 P89LPC932 引脚数比较少,而且内置了程序存储器,又没有传统的用于外扩总线的 P0、P2 口和 PSEN 引脚,所以依靠硬件方式触发芯片进入 ISP 模式的方法与传统 MCS-51 芯片有所不同。上电后,如果处理器在复位脚上检测到如图 2 所示的脉冲波形,则处理器将从启动向量指定的地址处取指令运行,也就是进入 ISP 模式,而不是从 0000H 处取指令执行。其实,这种进入方式的结果和有一个非零的状态字节有着相同效果。不过要注意的是,产生的脉冲数目只允许有 3 个,多于或少于 3 个脉冲都不能触发处理器进入 ISP 模式。图 2 P89LPC932 硬件激活 ISP 模式波形图 可以利用一枚外部的微处理器来产生这 3 个脉冲,同时它还控制一枚电源芯片来产生 P89LPC932 需要的电源电压。这种方法的原理很容易弄明白,笔者在此不再赘述。另外,还有一种更简单的方法,就是由用户 PC 机上的异步串行口加上部分硬件电路来直接产生所需的时序,具体介绍可以参看参考文献 1。1.2.4 直接调用法触发处理器执行 ISP 代码 P89LPC932 的 ISP 模式的预置启动向量为 1EH,所以其 ISP 驻留代码首地址为1E00H,要进入 ISP,直接调用 1E00H 处的代码就可以了。在 C 代码中,程序通过函数指针的方式就可以调用 ISP 驻留代码(即进入 ISP 模式)。1.3 在 P89LPC932 上使用 Flashmagic Flashmagic 是一个免费的软件工具,可以为 Philips 的许多处理器作 ISP 编程,包括 P89LPC932。Flashmagic 启动时将试图连接用户选择的器件,不过通常在这里都会报错,因为并没有任何处理器处于 ISP 模式,又或者还有什么其他的设置需要更改。请选择 Flashmagic 控制的 PC 机上的正确串行口,同时选择目标器件为 P89LPC932,如图 3 所示。然后使这片 P89LPC932 进入 ISP 模式(如果这是一枚全新的处理器,则它这时已经处于 ISP 模式了)。如果这不是一枚全新的处理器(状态位不是 1),那么必须使用硬件方式激活处理器进入 ISP 模式,或用检测中止控制符信号的方式触发处理器复位并进入 ISP 模式。图 3 FlashMagic 的启动画面 如果使用检测中止控制符信号的方式触发处理器复位并进入 ISP 模式,如图 4所示,则应当配置 Flashmagic,以使用这种方式来初始化 ISP 模式。首先,检查“options”菜单下的“advanced options”选项,在弹出的对话框的“hardware config”页上应该取消“Use DTR and RTS to enter ISP mode”选择框中的选择(注:FlashMagic可以记住你的各种设置,下次你再次使用,如果不需要其他设置,可不再设置它即可使用)。然后,从“ISP”菜单下选择选项“start bootrom”,并从弹出的对话框中选择“send break condition”按钮,Flashmagic 可以通过 PC 机串行口直接向 P89LPC932 发出中止控制符信号。一般来说,这时 P89LPC932 就应该处于 ISP 模式下了。不过,Flashmagic 不会自动校验 P89LPC932 是否已经真正进入了 ISP 模式,这个工作需要由用户自己来做。如果 P89LPC932 未处于 ISP 模式,若干个 Flashmagic 的菜单是无法使用的(即使用户选择这些菜单,Flashmagic 也会报错而不会有执行结果),用户可以通过选择这些菜单来检验 P89LPC932 是否已经处于 ISP 模式下了,例如“ISP”菜单下的“Blank Check”选项。当然,P89LPC932 未进入 ISP 模式时,对它的编程是无法进行的,从这层意义上说,同样也可以知道 P89LPC932 并未处于 ISP 模式下。图 4 发送中止控制符条件的界面 Flashmagic 的缺省设置是自动保护 P89LPC932 中扇区 7 内高端 512 字节的启动代码,不过用户可以在“options-advanced options-security”对话框中关闭这个保护功能。不过,并不推荐用户这么做,因为这会提高误操作对覆盖 ISP 启动代码的可能性。注意,有些菜单选项在新版 Flashmagic 的位置可能与本文中提及的不同。本文使用的是 1.74 版的 Flashmagic,至截稿时止,Flashmagic 已升级至 2.07 版。2 总结 Philips P89LPC932 是一种功能全面、使用简单、性能可靠、性价比较高的高速51 兼容微处理器,适用于产品研发、小批量产品试制、高校科研等诸多领域。本文对 P89LPC932 进行 ISP 编程的具体方法和技巧进行了详述,希望读者们能充分利用P89LPC932 的优秀在线编程特性。

    注意事项

    本文(P89LPC932的几种ISP编程方法.pdf)为本站会员(g****s)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开