发布论文 | 上传资料 | 发布供求 | 发布求职 | 发布项目 | 加入收藏 | RSS
您当前的位置:首页 > 文章中心 > 嵌 入 式 > DSP 技术

介绍一种LPC2124的远程系统软件升级的设计

时间:2008-09-16 15:35:42  来源:  作者: 点击:3

本设计方案应用于用电现场监控终端,采用高性能Philips ARM MCU LPC2124,结合GPRS技术实现终端系统程序的远程升级。

  1 LPC2124芯片简介

  1.1 功能介绍

  LPC2124基于一个支持实时仿真和跟踪的16/32位ARM7TDMI-S CPU,并带有256 KB嵌入的高速Flash存储器和16 KB RAM。对于内嵌Flash存储器支持JTAG、ISP、IAP等多种编程方式。

  LPC2124具有非常小的64脚封装、极低的功耗、多个32位定时器、4路10位ADC、PWM输出、46个GPIO以及多达9个外部中断,且内置了宽范围的串行通信接口,使它们特别适用于工业控制中。因为用电监控终端对硬件资源要求高,软件功能复杂,实时性强,所以采用LPC2124可以提高产品的性价比。

  1.2 Flash存储系统

  LPC2124存储系统包含256 KB的17个扇区。Flash存储器从0地址开始并向上增加,17个扇区的大小也不连续分布,17个扇区总容量为248 KB,剩下的8 KB存储空间为Boot扇区。Boot扇区位于Flash存储系统的顶端部分,地址空间是0x0003E000~0x0003FFFF。LPC2124存储系统的地址分配如图1所示。

LPC2124 Flash地址分配图

图1 LPC2124 Flash地址分配图

  Boot Block占用第17扇区,即Boot扇区。该扇区的存储空间专用来存放Boot装载程序,控制复位后的初始化操作,并提供Flash的编程方法(代码)。Boot装载器可启动对空白片的编程、已编程器件的擦除和再编程以及在运行的系统中由应用程序对Flash存储器进行编程。

  1.3 Flash存储系统的编程

  LPC2124支持多种方式对Flash进行编程,用来写入用户代码或数据。第一种是通过内置的串行JTAG接口;第二种是通过UART0进行在系统编程(ISP);第三种是通过在应用编程(IAP)实现。

  1.3.1 JTAG编程

  LPC2124的JTAG Flash编程可方便下载程序到片内Flash,但JTAG接口更主要的是提供硬件系统调试功能,诸如实现软件的断点、单步。JTAG Flash编程要中断应用软件的正常运行,连线较多,通信距离较短,而且要现场编程,只适应于产品在开发期的调试使用。

  1.3.2 在系统编程

  ISP(In-System Programming)技术,即在系统可编程技术,是指电路板上的空白器件可以编程写入最终用户代码,而无需从电路板上取下器件;已编程的器件也可用ISP方式擦除或再编程。LPC2124支持ISP的Flash编程,但要中止应用软件的正常运行,且需要提供一定的硬件资源,包括UART0口、RS232驱动和CPU特殊引脚的状态;编程要求现场操作,非常适用于便携式智能仪器的升级,但显然不适用于用电监测终端这类安装环境特殊的设备。ISP编程原理详见参考文献[1]。

  1.3.3 在应用编程

在应用编程IAP(In-Application Programming)是应用在Flash程序存储器的一种编程模式。简单地说就是在应用程序控制下,对程序某段存储空间进行读取、擦除或写入操作。与ISP操作非常相似,具有在线编程功能,且克服了ISP的不足之处。它可以在应用程序正常运行的情况下对另外一段程序Flash进行读/写操作,甚至可以控制对某段、某页甚至某个字节的读/写操作。这为数据存储和固件的现场升级带来了极大的灵活性。

  2 IAP功能的硬件设计

  基于LPC2124的以上3种编程方法的分析,IAP实现对终端程序升级自然是最佳选择方案。下面介绍一种基于GPRS的远程IAP系统方案,系统框图如图2所示。AT45DB081B,8 Mb串行Flash存储器,兼有ROM的掉电数据保存和RAM的读/写速度,最快支持20 MHz的时钟频率,擦写次数达10 000次,内置2个264字节SRAM缓冲器,使得对主存储体的编程可以连续进行,省去编程等待时间。AT45DB081B采用CASON-8封装,支持2.5~3.6 V低电压,操作功耗低,支持模式0和3的SPI总线接口,与MCU接口简单,稳定可靠,非常适用于数字语音、图像、程序代码和数据的存储应用中。在本设计中采用模式0与LPC2124通信,速度可达MCU主频的1/8。

IAP系统框图

  图2IAP系统框图

  GPRS模块使用Wavecom公司生产的Q2406B,双频GPRS/GSM模块( EGSM900/1 800 MHz或EGSM900/1 900 MHz),内置TCP/ IP,与标准AT指令完全兼容;其设计开发符合ETSI GSM Phase 2 标准。

  3 IAP功能的软件设计

  3.1 IAP编程接口

  LPC2124的IAP程序 位于Boot扇区,复位后整个Boot扇区被映射到存储地址0x7FFFE000~0x7FFFFFFF处;而IAP的入口地址为0x7FFFFFF0,程序为Thumb代码。IAP编程命令使用RAM的最高端32字节,所以应用程序应保留这部分RAM。在使用IAP擦除/编程操作过程中,片内Flash存储器不可访问。当用户应用程序运行时,用户Flash区域的中断向量有效,所以在调用Flash擦除/写IAP之前,用户应当禁止中断或确保用户中断向量在RAM中有效和中断处理程序位于RAM中。IAP代码不使用或禁止中断。

  3.2 IAP编程C语言实现

  对于在应用编程,LPC2124是通过寄存器R0中的字指针指向存储器(RAM)包含的命令代码和参数来调用IAP程序。IAP命令的结果返回到寄存器R1所指向的存储器(RAM)。

  调用LPC2124的IAP可使用如下C语言代码:

  ◆ 定义IAP程序入口地址

  #define IAP_LOCATION0x7FFFFFF1

  ◆ 定义数据结构来传递IAP命令表和结果给IAP程序

  unsignedlongCommand[5];

  unsignedlongResult[2];

  ◆ 定义函数类型指针,函数包括两个参数,无返回值

  typedef void (*IAP) (unsigned int [], unsigned int []);

 1/3    1 2 3 ›› ›|

下一篇链接:TMS320VC5402的指纹识别系统设计 上一篇链接:DSPTMS32OF2812的光标阅读机系统介绍

来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
音乐程序的设计原理之单片机
音乐程序的设计原理之
FPGA的可编程全数字锁相环路实现
FPGA的可编程全数字锁
什么是模拟电路?
什么是模拟电路?
挪威发明蛇形消防机器人
挪威发明蛇形消防机器
相关文章
    无相关信息
栏目更新
栏目热门