基于IAP和USB技术的嵌入式系统应用程序升级新方法

来源 :计算机光盘软件与应用 | 被引量 : 0次 | 上传用户:snowmansoft
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:对于内含IAP功能的嵌入式微控制器提出基于IAP和USB技术的系统应用程序升级的新方法。U盘被用作程序代码的存储设备,将微控制器的存储器Flash和SRAM进行有效的区间分配,经外部扩展接口USB,微控制器将U盘里面的代码读入SRAM里的相应区间,再通过微控制器IAP功能把SRAM代碼写入相对应的Flash分区里,实现嵌入式系统应用程序在线升级。该方案受环境的影响非常小,嵌入式系统采取这种方法,应用程序的在线升级变的非常简单。本文给出了这种方法详细的程序流程图以及实现技术。
  关键词:IAP功能;USB技术;嵌入式系统;在线升级
  中图分类号:TP311.11 文献标识码:A 文章编号:1007-9599 (2012) 22-0000-03
  1 IAP、USB技术及嵌入式系统的含义
  IAP(In Application Programming)是指在应用编程。就是在程序运行过程中的编程,片子提供一系列机制(软件或硬件上的)当片子运行时候可以提供改变flash里面的数据的方法。简单点讲,就是程序本身可向程序的存储器里修改程序或者写数据。典型使用这种方式的应用就是通过一小段的代码实现程序下载,单片机里ISP功能就是IAP技术实现的,就是片子在出厂之前就有一段boot程序存在里面,当片子上电之后,这段程序就开始运行,一经检测到上位机上面有下载的要求就和上位机发生通信,接着就下载数据到达存储区。
  USB(通用串行总线)是英文Universal Serial BUS的缩写,中文简称是“通串线,是一个外部总线的标准,用来规范外部设备和电脑的通讯及连接。是个接口技术主要应用在PC领域,USB的接口支持设备热插拔及即插即用的功能。
  嵌入式操作系统(Embedded Operating System,简称:EOS),即用在嵌入式系统里的操作系统。它是一个有着广泛用途的系统软件,一般包括和硬件有关联的系统内核、底层驱动软件、通信协议、标准化的浏览器等。此系统负责嵌入式系统里所有的软硬件资源分配、任务的调度,协调、控制并发的活动。它必须通过模块的装卸达到系统所需的功能。
  2 基于USB和IAP嵌入式升级方法
  IAP可经通信的接口对PC机传送代码进行接收,然后通过IAP功能把代码写入对应存储器里,对嵌入式的应用程序实现在线升级。USB是广泛应用在生活里的在线接口,用U盘作传输媒介把PC机编译的嵌入式的应用程序的代码写入U盘里,嵌入式的控制器经U盘的读写模块把U盘数据读入,应用IAP功能对程序实现升级,这个过程就实现了IAP及USB技术嵌入式的应用程序的在线升级方法。由于采用的是外部挂接的U盘作现场数据采集的海量存储应用,所以不需要增加任何的硬件,是一种低成本、高效、简洁的嵌入式的在线升级方法。
  以下将依据IAP原理,对LPC2119-嵌入式的微控制器给出详细新方法的实现程序及技术的流程,该技术已经在臭氧发生器嵌入式的控制程序里得到广泛的应用及验证。具有便捷、成本低、可靠、简单等特点。
  2.1 在线升级系统的结构
  现场数据采集及嵌入式的应用程序传输媒介选用的是U盘,由于LPC2119无USB接口,所以采用的是外部扩展的USB通信的接口,即USB的读写模块将U盘里面的数据进行读写,模块的配置是SPI接口模式和LPC2119进行连接,这个模块往微控制器里供应读写U盘的文件数据接口,它在微控制器里占用的内存空间很少。U盘的读写支持字体模式、扇区模式及数据流模式,可选用U盘的读写模式进行模块配置。
  2.2 IAP的功能实现调用过程
  IAP的功能是通过编写相对应的功能函授,调用Boot Block 内IAP的服务程序来实现的,功能函授将不同的参数及命令码传递给IAP的服务程序,可把不同的IAP命令进行实现。命令码是50-56,相应的对应七个命令:为写操作准备扇区、拷贝RAM中的数据到Flash、擦除掉扇区、查空的扇区、读器件的ID、读引导程序的版本号以及数据校对。
  寄存器及命令码经寄存器RO向若干个连续的字RAM进行传递,结果及状态码在IAP执行之后经R1指向下的若干个连续字RAM进行返回。因此,定义数组unsigned int result[ ]及un-signed int command[ ]分别用在结果返回及参数传递。result数组里的元素最多是两个,command数组里面的元素最多是五个,数组里元素的个数应该根据可能会用到的元素个数的最大数确定。
  3 U盘数据的读写函数及协议
  通过SPI的接口可实现U盘的读写模块与LPC2119通信,SPI在模式0或者模式3工作,U盘的读写模块和LPC2119之间能实现各种参数及命令的传递是通过字节数据直接的交互来实现的,对U盘读写模块可相应的完成各种操作。U盘的读写函数是ReadUdisk(),WriteUdisk();传递特定参数给读写函数,对U盘里指定地址指定文件以指定的模式实现读写。在此应用过程中,U盘文件里的数据应该采用“字节模式对少数数据进行读写,扇形模式对大量数据进行读写”这个原则。
  4 应用程序的在线升级实现过程
  4.1 运行流程:
  如图2所示是LPC2119运行流程图,它分四个步骤进行:(1)上电进行复位之后执行Boot Block引导程序,将微控制器进行初始化;(2)判断进入ISP的功能与否,若没有,就要执行Flash里的OxO地址应用程序;(3)在应用程序相关初始化开始之后,开始调用Refresh()这个函数,查询出U盘是否存在其中或者是否需要对应用程序进行升级;(4)依据查询的结果,对应用程序执行升级或者将Reflesh()应用程序予以退出。
  LPC2119进行复位之后,仅有一次对Reflesh()进行调用的过程,所以若想实现升级就需要调用这个函数之前插进去U盘,这种类型的设计满足了控制系统在运行的过程里不允许应用程序进行升级操作要求。   4.2 存储空间配置:
  LPC2119 Flash 里存有五种属性程序:U盘的读写函数、应用程序、IAP的功能函数、引导函数、Refresh()函数。Refresh()函数、U盘的读写函数以及IAP的功能函数组成了升级函数,升级的过程不能将其改变,必须固定在存放区确定的位置处,应用程序是指被升级的对象,引导函数指出厂时固化的程序。通过以上分析可以看出,其RAM空间及内置Flash合理配置是IAP升级能否实现的关键。
  依据程序的属性及LPC2119运行的流程,可把内置Flash分三个区:(1)0-13#扇区是应用程序区,可在线升级的应用程序被放于其中;(2)14#扇区是升级程序区,Refresh()函数、U盘的读写函数以及IAP的功能函数放置其中,对应用程序进行更新升级;(4)15#扇区为Boot Block。相对应的把RAM分成四个区:应用程序的使用区、U盘的数据缓冲区、升级程序的使用区、IAP的使用区。如图3所示是存储空间的配置图。
  4.3 在线升级实现过程
  在线升级实现过程如图4所示,用户需要对控制器进行复位,因为升级执行之后就不能再退出。由于采用的是绝对的地址对调用函数Refresh()函数进行访问,所以在修改或者升级应用程序的时候,对这个调用的方法或者地址值是不能进行改动的。
  由于在升级的过程中应用程序代码会随着改变,所以在升级应用程序的时候,不能够调用应用程序区函数,可用绝对地址的应用程序访问方式对升级程序区函数进行调用,但是在修改该应用程序区的时候要一直保持这个调用方法及地址值。
  5 升级过程中防意外出现的设计
  升级过程,难免会出现数据的传输错误、掉电、数据的来源出现中断等各式各样的意外导致升级可能失败,所以要设计出一套合理的方法保护升级过程顺利进行。
  对于断点这种情况,可设置BOOT的引导区来确保系统来电之后可以继续进行升级程序过程完成升级。中断的向量表里存放着32字节数据,向量表进行中断之后,存放的就成为启动代码,程序的设计就与启动代码里完成RAM各种配置。在BOOT区用户代码引导以前检查出上一次的升级过程是否顺利的完成以及对升级的命令进行检查;对于数据的传输错误以及数据的来源出现中断这些现象,可通过CRC对传输的数据进行校验,把512字节作为单位对数据包进行记录,将正确的被接收的数据包存放在Flash里,丢失或者错误的数据包可要求进行重新传送,这样就大大的降低了数据升级过程中的危险,最大限度的保证升级过程的顺利实现。
  6 结语
  此文提出了基于USB和IAP嵌入式的应用程序的在线升级方法,经U盘的读写模块把U盘里应用程序代码进行读入微控制器RAM里,调用IAP的功能函数把代码写进微控制器Flash内,将应用程序的在线升级过程予以实现。这样就省去了拆卸控制板或者到现场带着专用的编程器这些繁琐的过程,通信网络也不需要使用,受环境的影响很小,成本很低。这个方法已经被应用在某些试验中并已经成功,这个方法便捷、可靠且简单,值得大大的推广及应用。
  参考文献:
  [1]孟志强,朱良焱,石瑜.基于IAP和USB技术的嵌入式程序升级方法[J].湖南大学学报(自然科学版),2009,36(6).
  [2]陈家义.基于IAP功能的USB方式软件更新方案[J].自动化与信息工程,2009,30(4).
  [3]王静,盛雯雯,王宗琛.IAP在C8051F340微控制器上的实现[J].煤炭技术,2011,30(10).
  [4]王党利,宁生科,马保吉.基于STM32F10X引導程序实现USB在应用中编程[J].国外电子测量技术,2010,29(11).
其他文献
本文提出并实现的多画面处理系统充分利用了数字视频技术的最新发展,同时也利用了ADV61l模块实现系统灵活性的优点,充分介绍了多画面合成系统的性能和主要技术指标,阐述了系
当今世界是信息与知识的时代。而信息化是当今世界经济与社会发展的一大趋势,是我国实现工业化、现代化的关键环节。作者从集团企业的角度简要地分析了集团信息化的现状。且结
大气扰动误差作为地基InSAR测量中的一个重要误差源,其引起的干扰不可忽视。本文以滑坡监测区域为研究对象,基于IBIS-L系统获取到的监测区数据,根据热信噪比、估计信噪比、空间相关系数和相位稳定性等特性,选取监测区域内稳定的GCP对观测目标中的大气扰动误差进行改正。实验结果表明,GCP方法能有效削弱地基In SAR测量中的大气扰动影响,提高观测的精度。
摘要:目前所有的應用程序都要和数据库打交道,数据库的查询是应用程序的主要任务,查询的好坏也是衡量一个应用系统的主要参数。但是查询是要付出开销的,为此本文从实际就数据库的查询优化方法给予介绍,供大家参考。  关键词:数据库;查询;优化  中图分类号:TP311.13 文献标识码:A 文章编号:1007-9599 (2012) 10-0000-02
空压机是用来压缩和输送气体的。气压控制和气动控制在经济活动中的应用日益广泛,使空气压缩机成为许多部门不可缺少的设备。而在长期的高速运行当中,大功率空压机难免会发生各
现有基于网络测量的IP定位方法往往难以给出带有准确经纬度信息的可靠定位结果,通常仅能确定目标可能所处的大致区域(本文称为缓冲区),定位精度难以满足实际应用需求。针对该问题,本文提出了一种基于概率主题模型的网络定位结果优化方法。该方法首先从爬取的与网络实体相关的文本信息内容中,利用概率主题模型LDA的弱监督主题分类思想,提取与地物类型相关的从属主题;其次,根据提取的从属主题,确定实体可能所属地物类型
艾滋病的血液学改变多种多样且贯穿于整个病程 ,包括贫血、白细胞减少和血小板减少等外周血异常 ,骨髓细胞异常 ,止血异常以及各种恶性血液肿瘤等。本文对其表现、发病机制及
本文通过对KFID技术介绍,并结合RFID技术在通信设备巡检过程具体的应用,结合通信设备特点重点介绍RFID技术设备巡检过程的实现方法。
人体感染庚型肝炎病毒后,相当部分成为病毒携带者,少数可引起急性肝炎,部分可进展成慢性肝病,临床上以合并乙肝炎病毒,丙型肝炎病毒感染居多,多数资料认为庚型肝炎临床表现较轻,但也
转化生长因子β是一大类多功能的调节细胞生长,分化及功能的细胞因子,它在类风湿性关节炎中的意义近年受到重视。本文介绍转化生长因子β在类风湿性关节炎中的表达及其在类风湿