论文部分内容阅读
当前,嵌入式技术更加普及,应用领域逐步扩大,甚至介入了一些属于工业微机的场合。嵌入式产品被广泛的分布在家用、商用、办公、医疗、工控和军工等领域,加以软件技术对传统产品进行改造,往往具备灵活性,实用性和适用性。嵌入式系统的硬件设计追求高集成度,软件设计追求高性能,每个系统的所需要的功能都是特殊定制化的,硬件经常不一样。甚至同类产品,软件设计也往往千差万别。随着产品不断深入和产业化程度提升,应用人员也逐步意识到软件功能的优点,也对设计者提出更高的要求。除了产品本身高可靠性外,还会规定软件具备可升级的功能。该领域的科研工作者和技术人员当然知道升级功能,可用来漏洞修复,功能完善,有其必要性。软件更新一般不太容易,有其困难性。在一些工业控制领域,系统设备工作在环境恶劣、无人值守的区域,需要由远程的方式自动完成整个软件的升级。本文以中达室外电源监控系统设计为背景,阐述该产品开发中如何由近端升级的方法,扩展到远程软件可自我升级的方法。要解决的问题主要包括FLASH自擦写技术的应用,内存存储空间的分配,产品相关的电气设计和升级协议的设计。通过阅读一些文献资料以及结合设计经验,首先打通硬件底层FLASH擦写驱动,在软件上先建立近端升级的功能。之后开始考虑如何完成升级应用程序的功能和升级bootloader的方法。远端升级通讯时,决定需要升级的两个软件程序的其中之一。在通讯协议中加入升级通讯流程,划分成4个阶段,将升级任务细化成可以分离的小任务。在完成软件可自我全面升级的功能后,协同上位机界面,对升级过程进行验证,模拟出错的情况。并且提出了升级失效时,由嵌入式软件自身完成自动回退功能出错措施。此设计方法和功能均在Freescale 16位单片机上得以实施,借以RS485通讯接口分别完成近端升级和远端升级。最终,该产品具备近端升级和远端升级的功能,得到客户验证认可,整个设计完整,满足需求。软件中断处理的研究,运用现有体系架构,巧妙处理了中断机制。解决传统升级功能带来的限制,保证软件设计的灵活性。另外,附加的软件回退功能成为软件升级功能保障,提高软件可靠性。