首页 基于MCU的嵌入式在线升级系统的设计与实现

基于MCU的嵌入式在线升级系统的设计与实现

举报
开通vip

基于MCU的嵌入式在线升级系统的设计与实现 器件与应用 PARTS & APPLICATIONS 22 《电视技术》第 36卷第 5期(总第 380期)|投稿网址 http:www.VideoE.cn 【本文献信息】方冲,任海兰,王成丽 . 基于 MCU的嵌入式在线升级系统的设计与实现[J].电视技术,2012,36(5). 基于MCU的嵌入式在线升级系统的设计与实现 方 冲,任海兰,王成丽 (武汉邮电科学研究院研究生院 光纤通信技术和网络国家重点实验室,湖北 武汉 430074) 【摘 要】在基于 MCU的嵌入式应用中,应用程序一般是通过仿...

基于MCU的嵌入式在线升级系统的设计与实现
器件与应用 PARTS & APPLICATIONS 22 《电视技术》第 36卷第 5期(总第 380期)|投稿网址 http:www.VideoE.cn 【本文献信息】方冲,任海兰,王成丽 . 基于 MCU的嵌入式在线升级系统的 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 与实现[J].电视技术,2012,36(5). 基于MCU的嵌入式在线升级系统的设计与实现 方 冲,任海兰,王成丽 (武汉邮电科学研究院研究生院 光纤通信技术和网络国家重点实验室,湖北 武汉 430074) 【摘 要】在基于 MCU的嵌入式应用中,应用程序一般是通过仿真器烧写到片内存储器中的,该方式的缺点是应用程序的更新 和升级必须依赖仿真器,而且程序一旦更新不成功,会破坏原有的程序。为了解决此问题,在 Xmodem通信协议的基础上,设计 了一种基于 MCU的嵌入式在线升级系统,并给出了该系统的详细设计 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 。 【关键词】MCU;在线升级;Bootloader;Xmodem协议;软件架构 【中图分类号】TP316 【文献标识码】A Design and Realization of Embedded Online-upgrade System Based on MCU FANG Chong,REN Hailan,WANG Chengli (SKL of OCTN,Wuhan Research Institute of Posts and Telecommunications,Wuhan 30074,China) 【Abstract】In the embedded application system based on MCU,the application program is commonly written to internal memory by emulator,in which the update and upgrade of the application program must rely on emulator,and once there is a failure of program update,the old program will be de- stroyed. To resolve the problem mentioned above,on the basis of Xmodem protocol,a online-upgrade system based on MCU is designed,and the design process of this system is discussed in detail in this paper. 【Key words】MCU;online-upgrade;Bootloader;Xmodem protocol;software framework 在嵌入式系统投入实际环境运行后,一旦用户有新的需 求或者原有系统出现问题时,就需要嵌入式系统在不断电或 保持系统正常运行的情况下,能够通过外围接口(JTAG口,网 口或串口)实现对自身程序的更新,完成系统的在线升级。 随着在线升级越来越多的应用到嵌入式系统中,一 些在线升级 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 逐渐被提出,当前嵌入式在线升级的方案 主要有两种典型的软件架构:一是在 Bootloader中嵌入通 信模块,对应用程序运行区直接进行更新[1-2],如图 1a 所 示;二是用两个应用程序进行切换,即“双系统”结构[3-4], 如图 1b所示。其中第一种软件架构的特点是结构简单、 易于实现但可靠性不高,第二种软件架构的特点是可靠性 高,但实现起来较为复杂,所占资源较多。结合这两种解 决方案的特点及其适用范围,本文在第一种软件架构的基 础上提出了一种可靠性好、灵活度高的在线升级解决方 案,并给出了其具体的实现。 1 在线升级系统的整体设计 为了适应对可靠性、灵活性要求较高的嵌入式应用 系统,设计了一种改进的方案,其软件架构由 Bootloader 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 和应用程序工程构成,如图 2 所示。其与图 1a 的主 要区别如下:一是增加了应用程序的备份区,每次升级时 首先拷贝至备份区,而不直接覆盖运行区程序,这样通信 图 1 升级系统典型的软件架构 过程中出现错误不会导致破坏原有程序,提高了升级的可 靠性;二是将升级过程划分为两个阶段,第一阶段将应用程 序拷贝至备份区,第二阶段完成备份区到运行区的拷贝,以 便用户灵活的控制升级传输与完成升级的时机,提高了升 级的灵活性;三是将 Bootloader划分为不同的功能模块,这 样只需要根据不同的硬件平台完成相关的驱动及系统初 始化模块即可完成此系统的移植,提高了的通用性。 此系统的主要工作流程为:1)Bootloader通过仿真器 基金项目:国家 863计划项目(2007AA01Z229) 器件与应用 PARTS & APPLICATIONS 投稿网址 http:www.VideoE.cn |《电视技术》第 36卷第 5期(总第 380期) 23 图 2 在线升级系统的软件架构 烧写到 MCU中,其作用是完成应用程序的升级及其引导; 2)新的应用程序在用户启动升级后,通过 Bootloader或原应 用程序中的通信协议模块拷贝到应用程序的备份区;3)对系 统进行复位(跳转到Bootloader的起始地址),由 Bootloader中 的升级模块实现新应用程序对原应用程序的替换,并跳转到 应用程序执行区的起始地址,完成了应用程序的升级。 2 系统的软硬件平台及存储分配 2. 1 系统的硬件平台 该系统的设计及实现是基于 Freescale MC9S12XD256[7-8] 芯片,该芯片以S12 CPU为内核,带有256 kbyte的片内Flash, 4 kbyte的片内 E2PROM,14 kbyte的 RAM,其中 256 kbyte 的 Flash划分为 16 个 Page,每个 Page 为 16 kbyte,其逻辑地 址为: MYM4000-MYM8000(Page FD) ; MYM8000-MYMC000(Page E0-E7,F8-FC,FE) ; MYMC000-MYMFFFF(Page FF)。 S12的 CPU有一个 Page 寄存器,其寻址方式是 Page 寄存器(相当于基址)+ PC寄存器(相当于偏移地址),完 成逻辑地址到物理地址的映射。 2. 2 系统的软件平台 该系统的软件环境为 CodeWarrior 开发工具,采用 C 语言进行开发,经过 CodeWarrior 编译出来的 S19 程序文 件,其格式为 ASCII编码的 S-record格式。为了方便下位 机进行解析,可以把 S19 文件转化为. bin 文件,并自定义 其格式,加入 CRC校验部分以保证传输的正确性,关于此 部分细节,请读者查阅相关的文献,在此不作详细阐述。 2. 3 存储分配 经过 CodeWarrior编译出来的代码,其地址是不连续 的,经过 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 S19 文件,可将生成的代码分为代码段 (Code)、库函数段(Lib)、中断向量段(2nd ISR),其中系 统自带的中断向量段地址是不变的(MYMFF00-MYM- FFFF),为了方便升级,在此设计了二级中断向量,完成系 统中断向量到自定义二级中断向量的映射。根据以上分 析,可对 Flash作如下分割(逻辑划分): MYM8000-MYMC000(Page E0-E3)应用程序 Code 运行区,共 64 kbyte; MYM8000-MYMC000(Page E4-E7)应用程序 Code 备份区,共 64 kbyte; MYM8000-MYMA000(Page FC)应用程序 Lib运行区,共 8 kbyte; MYMA000-MYMC000(Page FC)应用程序 Lib备份区,共 8 kbyte; MYM8000-MYMC000(Page F8 - F9)Bootloader Code 运行区,共 32 kbyte; MYM8000-MYMC000(Page FA-FB)Bootloader Code备份区,32 kbyte; MYM8000-MYM9800(Page FE)Bootloader Lib运行区,共 6 kbyte; MYM9800-MYMB000(Page FE)Bootloader Lib备份区,共 6 kbyte; MYMB000-MYMB800(Page FE)Isr运行区,共 2 kbyte; MYMB800-MYMC000(Page FE)Isr备份区,共 2 kbyte; 其中中断向量是两个工程所共用的,分配其存储区 时只需要划分一组。 3 Bootloader的设计与实现 3. 1 Bootloader程序设计流程 在此系统中,Bootloader划分为 4个模块,系统初始化 模块、升级控制模块、Xmodem 通信模块、命令行模块,其 流程图如图 3所示。系统初始化模块主要完成时钟的初 始化、串口的初始化、中断的初始化以及定时器的初始化, 为其他模块的运行准备条件;升级控制模块主要完成应用 程序备份区到运行区拷贝的操作,以及应用程序的引导, 当系统中只有 Bootloader或者升级第二阶段拷贝失败时, 会保持在 Bootloader 的主循环中运行;Xmodem 通信模块 实现了系统同上位机的通信;命令行模块提供给用户灵活 控制升级的接口,下面详细介绍 Xmodem通信模块及命令 行模块的实现。 3. 2 Xmodem通信模块的实现 Xmodem协议是一种串口通信中广泛用到的异步文 件传输协议。分为标准 Xmodem 和 1k-Xmodem 两种,前 者以 128字节块的形式传输数据,后者字节块为 1 kbyte, 并且每个块都使用一个校验和过程来进行错误检测。 Xmodem协议的格式如图 4 所示。其中,SOH 为帧头(1 字节);信息包序号为当前信息包号(1 字节),范围为 0 ~ 255;信息包序号的补码为当前信息包号的补码(1字节); 数据区段为数据区段的长度固定为 128字节(如果是 1k- Xmodem则为 1 024字节);算术校验和为 1字节的算术校 验和,只对数据区段计算后对 256 取模(如果是 1k-Xmo- dem则为 CRC校验)。 器件与应用 PARTS & APPLICATIONS 24 《电视技术》第 36卷第 5期(总第 380期)|投稿网址 http:www.VideoE.cn 在此系统中,通过一个状态机实现了 Xmodem协议的 接收端,发送端可用 PC提供的超级终端,Xmodem状态机 如图 5所示。 图 5 Xmodem状态机 其数据结构定义如下: typedef enum { XMD_STM_START = 0, /* 开始状态. * / XMD_STM_WAIT, /* 等待及校验状态. * / XMD_STM_MSGPROC, /* 数据处理状态. * / XMD_STM_QUIT, /* 退出状态. * / XMD_STM_CNT }XMD_STM_EN; typedef struct XMD_STM_st { U8 ucCurtState; /* 当前状态. * / U8 ucStateChange; /* 状态改变标志. * / }XMD_STM_ST; 根据 Xmodem 的状态机,用 switch 结构实现其主流 程,并完成每个状态下的处理函数,即可完成 Xmodem协 议的接受端。 3. 3 命令行模块的实现 命令行模块是升级系统与用户之间的接口,方便用 户灵活地控制升级时机,其至少需要提供两个接口:1)启 动 Xmodem进行文件传输的接口;2)提供对系统进行复位 的接口。其中第一个接口配合 Xmodem完成升级文件到 应用程序备份区的拷贝,第二个接口是系统跳转到 Boot- loader起始地址,完成程序的更新。 命令行可以实现为,通过匹配命令接口,然后调用其 对应的回调方式,其数据结构定义如下: typedef unsigned char(* prCmdProc) (void) ;/* 定义命令处理回调 函数类型 * / typedef struct CLI_CMD_ITEM_st { const char * pcKeyword; prCmdProc prCmdProcRutn; }CLI_CMD_ITEM_ST; const CLI_CMD_ITEM_ST m_astCmdList[] = { {" fwdl",CLI_ProcFWDL}, /* 定义启动 Xmodem 命 令接口 * / {" swrst",CLI_ProcBOOT} /* 定义重启系统命令接 口 * / }; 通过实现命令处理函数 CLI_ProcFWDL(VOID),CLI_ ProcSWRST(VOID)即可完成命令行模块的设计。 4 测试结果 按照前面所述的硬件结构和软件实现搭建好测试环 境后,将 1. 0 版本的 Bootloader 烧写到 Flash,将 1. 0 版本 的应用程序通过 PC 机提供的超级终端下载至备份区并 升级到运行区,如图 6所示。 1)功能性测试。由图 6 可知,应用程序能够成功的 从 1. 0版本升级到 1. 1版本,Bootloader版本在必要时(一 般不需要升级 Bootloader)也能够升级到 1. 1版本。 2)稳定性测试。在通信的过程中断电或者取消 Xmodem的传输,升级标志位不会被置,系统均能够保持 在应用程序的当前版本运行;在从备份区拷贝至执行区的 过程中断电,当前版本的应用程序被破坏,但系统能够维 持在 Bootloader中的 while(1)循环中运行,由于此过程所 需时间很少(100 ms级),此种情况发生的概率很小,而且 一旦出现,系统能够通过再次升级,恢复至原应用程序。 器件与应用 PARTS & APPLICATIONS 投稿网址 http:www.VideoE.cn |《电视技术》第 36卷第 5期(总第 380期) 25 3)灵活性测试。在此系统中用户可以灵活地控制下 载新程序,以及升级到新程序的时机,在新程序成功下载 到备份区之后,只要用户不发 Boot命令或遇到异常重启, 系统均不会更新至新版本,而保持在当前版本运行。 图 6 在线升级系统测试结果 5 结束语 本文结合嵌入式产品的在线升级的需求,对比了两 种升级方案的实现,提出了一种改进的在线升级方案,由 测试结果可以看出,该方案可靠性好、灵活度高、通用性 强,设计达到了预期效果。该系统已成功应用于基于 Freescale MC9S12XD系列单片机的嵌入式系统中,对实际 的嵌入式应用有一定的参考意义。 参考文献: [1]武国平,史仪凯. ARM7处理器 Bootloader 的设计与实现[J].微处理 机,2010,31(5) :103-106. [2]邓中亮,孙静.嵌入式设备在线系统升级的设计与实现[J].计算机工 程与设计,2009,30(13) :3085-3087. [3]尹恒,严华. 一种针对嵌入式远程升级安全的存储解决方案[J]. 计 算机应用,2011,31(4) :992-994. [4]王恒,王颋,王泉,等.基于 Bootloader 的可靠嵌入式软件远程更新机 制[J].微计算机信息,2007,20:57-59. [5]聂章龙,王宜怀. Freescale HC08系列 MCU集成开发系统的若干关键 技术[J].计算机工程与设计,2010,31(3) :518-520. [6]马学文,朱名日,程小辉. 嵌入式系统中 Bootloader 的设计与实现 [J].计算机工程,2005,31(7) :96-97. [7]孙同景,陈桂友. Freescale 9S12 十六位单片机原理及嵌入式开发技 术[M].北京:机械工业出版社,2008. [8]邵贝贝.单片机嵌入式应用的在线开发方法[M].北京:机械工业出 版社,2004. ? 作者简介: 方 冲(1987 - ),硕士生,主研光纤通信及嵌入式软件; 任海兰(1970 - ),女,博士、研究生导师,主研光纤通信与光电子 技术; 王成丽(1987 - ),女,硕士生,主研光纤通信及嵌入式软件。 责任编辑:时 雯 收稿日期:  2011-08-16 (上接第 17页) 频序列的运动类型进行划分,并结合原点预测、模板替换 和提前终止,从四个方面对 UMHexagonS算法进行改进和 优化。仿真结果表明,新改进的算法在维持图像质量基本 不变甚至略有改善的情形下,较大幅度地减少了搜索点 数,使得运动估计的时间节省了 10% ~23%,能够更好地 满足许多实时场合(如实时视频监控、可视电话、物联网) 的应用要求,具有较强的实用价值。 参考文献: [1]毕厚杰,王健 . 新一代视频压缩编码标 H. 264 /AVC[M]. 北京:人民 邮电出版社,2009. [2] CHEN Zhibo,ZHOU Peng,HE Yun. Fast integer pel and fractional pel motion estimation for JVT[C]/ /Proc ISO /IEC MPEG & ITU-T VCEG 6th Meeting.[S. l.]:JVT,2002. [3]罗哲 . 基于快速运动估计算法 UMHexagonS的改进和优化[J]. 研究 与开发,2011(3) :29-31. [4]熊承义,白云 . 基于方向信息的快速整像素运动估计优化[J]. 中南 民族大学学报,2010,29(1) :62-67. [5]杨晓珍,吴延海,王锋 . 基于块运动类型的自适应菱形运动估计搜索 算法[J]. 计算机工程,2007,33(23) :220-222. [6]丁鑫,樊慧津 . 基于方向自适应的运动估计混合模板搜索算法[J]. 中国图象图形学报,2011,16(1) :14-20. [7]申舟,李正明,潘天红 . H. 264 /AVC中基于搜索区域划分及评估的运 动估计[J]. 中国图象图形学报,2010,15(2) :242-246. [8] LIN C C,LIN Y,HSIEH H J. Multi-direction search algorithm for block motion estimation in H. 264 /AVC[J]. IEEE Trans. Image Processing, 2009,3(2) :88-99. [9]杨晓琴,季晓勇 . 基于 H. 264的快速运动估计算法[J]. 计算机工程 与应用,2011,47(4) :174-175. [10]卢政,卢俊 . 基于 UMHexagonS的快速运动估计算法优化[J]. 电视 技术,2011,7(35) :29-31. [11] SHI Zhiru,FERNANDO W A C,DE SILVA D V S X. A motion estima- tion algorithm based on predictive intensive direction search for H. 264 / AVC[C]/ /Proc. 2010 ICME.[S. l.]:IEEE Press,2010:667-672. [12] WU Xiaomin,XU Weizhang,ZHU Nanhao. A fast motion estimation algorithm for H. 264[C]/ /Proc. 2010 ICSAP.[S. l.]:IEEE Press,2010:112-116. ? 作者简介: 杨 齐(1987 - ),硕士生,主要研究方向为视频编解码技术; 李子印(1978 - ),博士,硕士生导师,主要研究方向视频压缩与通 信、图像处理技术。 责任编辑:时 雯 收稿日期:2011-10-26
本文档为【基于MCU的嵌入式在线升级系统的设计与实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_194605
暂无简介~
格式:pdf
大小:453KB
软件:PDF阅读器
页数:4
分类:互联网
上传时间:2014-03-25
浏览量:45