您的位置: turnitin查重官网> 计算机 >> 计算机科学 >小内存微控制器适用无人值守远程更新思路要求

小内存微控制器适用无人值守远程更新思路要求

收藏本文 2024-02-18 点赞:9630 浏览:34895 作者:网友投稿原创标记本站原创

摘要:提出了一种在微控制器上实现远程更新功能的思路,介绍了在ARM Cortex核心的LM3S系列微控制器和μC/OSII操作系统上实现的具体问题。主要针对片上RAM较小,无人值守的基于微控制器的嵌入式系统,能够保证在更新失败的情况下仍能够重复更新以恢复系统的正常功能。解决该问题的主要思路是将片上应用程序、引导程序以及更新程序划分区段存储,利用微控制器中复位后保持复位前状态的寄存器或内存指导引导程序启动不同的程序。该方法操作简单,无需对原有项目进行大幅度的修改。
关键词:远程更新;嵌入式微控制器;ARM;μC/OSII;以太网
16727800(2012)007000801
作者简介:王泰格(1990-),男,湖北武汉人,武汉大学计算机学院本科生,研究方向为信息安全。
0引言
目前提出的嵌入式系统的远程更新方案基本上是与已有的应用系统绑定在一起的,更新失败之后的恢复往往是需要人工操作的;其次,基于微控制器的嵌入式系统往往只使用片上集成的闪存和内存,而且片上的内存较小,将完整的固件缓冲在内存中再写入的办法变得不再可行。由此可见,为无人值守的基于微控制器的嵌入式系统设计专门的远程更新方案是非常必要的。
1远程更新思路
微控制器片上内存小,无法在内存中缓冲完整的升级镜像;设备无人值守,网络传输不可靠,升级中断导致设备片上固件不完整。这些问题表明,无人值守的基于微控制器的嵌入式系统必须具有防止更新失败的能力。将应用程序和更新程序分离为两个独立的部分,每次更新只擦除应用程序对应的闪存区域,片上的引导程序和更新程序保留不变是一种可行的解决方案。闪存中固件的布局如图1所示。由于ARM处理器中断向量处于最低端,所以内存最低端放置引导程序;更新程序放在与引导程序相邻的内存单元;应用程序放置在剩下的内存区域以适应因为功能增加造成的固件大小的改变。在实际操作中,引导程序和更新程序可以完全整合到一起;每个内存区域大小应为Flash块大小的倍数,首地址按块大小对齐,便于应用程序和更新程序的更新。
更新程序与应用程序不同时运行,这样使得应用程序运行时更新程序不占用RAM空间,而且使得升级失败之后更新程序仍能运行。当微控制器上电复位之后,首先启动引导程序,引导程序通过内部的寄存器检测到当前的复位原因是上电复位,跳转执行更新程序;更新程序在一定时间内阻塞等待更新请求,如果此时有用户发送固件数据,则执行更新,在更新完成或者超时之后,修改复位后保持复位前状态的寄存器或内存中特定的某一位(该位为1表示上次复位之后是否已经进入过更新程序,0表示上次复位进入应用程序,置1然后触发软复位,下文以粘滞存储器代表这类寄存器或者内存)。系统再次复位之后,再次进入引导程序,引导程序检测到当前的复位原因是软复位,然后进一步检测粘滞存储器中的这一位,该位为1表明最近已经进入过更新程序,这一次应该进入应用程序,在跳转到应用程序之前,应将该位置为0,以使下一次软复位能够再次进入更新程序。
2实现相关问题

2.1校验算法

由于更新过程并不缓冲完整的更新镜像数据,而大部分常见的远程更新方案均使用TFTP协议,该协议使用并不可靠的UDP协议进一步封装。为保证网络在基本正常的情况下更新的成功率,应在分段发送的数据部分加入校验机制。校验机制主要是某种校验算法。该校验算法应该具有能够便于检测网络中出现的常见错误,易于计算、算法简单的特点。比较合适的算法主要是循环冗余校验(CRC)算法。通过选取适合的生成多项式,CRC算法能够满足应用需求。

2.2Flash擦除

由于Nor Flash有独立的地址线和数据线,Nor Flash上的代码可以直接由ARM处理器执行,无需复制到内存中,因此许多微控制器厂商直接使用Nor Flash作为程序代码的存储器。Nor Flash存储器相比Nand Flash读取速度快,但写入速度很慢,而且大多

摘自:毕业论文范文格式www.udooo.com

数需要在写入之前进行擦除操作。集成Nor Flash的微控制器的这些特点使得之前提到的解决思路在实现上出现了一些需要解决的问题。首先,接收到部分正常的镜像数据便直接写入Flash,而Flash需要在写入之前进行擦除。比较合适的方法是在进行升级数据的传输之前首先对Flash中应用程序存储的区域进行整体的清空。这样可以防止擦除操作和写入操作时间过长,接收升级数据的缓冲区装满导致新到的升级镜像数据被丢弃的问题。

2.3更新程序的大小

更新程序与应用程序一样需要占据Flash中的存储空间。为了保证更新程序足够小,可以采取以下两种方案:①使用uC/OSII操作系统和uC/TCPIP协议栈,并将协议栈配置为只使用UDP协议,在上层实现简单的TFTP客户端;②自行设计简单的只支持IP和UDP的协议栈。
3结语
提出了一种在无人值守的小内存微控制器上实现远程更新功能的思路,可以实现当远程更新失败后无需人工干预,而进行自动重新更新。该思路是一种可行的小内存微控制器远程更新的解决办法,能够降低升级偏远地区嵌入式设备所耗费的人力物力。
参考文献:
\[1\]杜春雷.ARM体系结构与编程\[M\].北京:清华大学出版社,2003.
\[2\]黄传河.计算机网络\[M\].北京:科学出版社,2009.
\[3\]刘凯,高世伦.基于uC/OSII的程序在线更新方法\[J\].微型机与应用,2005(4).
(责任编辑:余晓)

copyright 2003-2024 Copyright©2020 Powered by 网络信息技术有限公司 备案号: 粤2017400971号