基于SD卡的嵌入式软件在线升级系统探讨论文_郝奎

(太原航空仪表有限公司,山西 太原 030006)

摘要:随着电子通信技术、计算机技术的迅速发展,嵌入式产品被广泛应用到医疗、工控、办公、商用等各个领域。新技术的不断涌现及对系统性能规模的不断提高,要求开发者为应对各种需求及时对智能仪器仪表系统进行维护或升级,以延长系统的使用周期。嵌入式软件是智能仪器仪表的软件主体,随着智能仪表的多功能化,通过升级嵌入式软件改进或增加功能变得普遍,升级嵌入式软件就必须对存储嵌入式软件的FLASH进行擦除,再重新写入新的软件。

关键词:SD卡;嵌入式;在线升级;计算机;软件;FLASH代码


1嵌入式软件的特点及关键技术

嵌入式软件即嵌入在硬件中的操作系统和开发工具软件,嵌入式软件广泛应用于国防、工控、家用、医疗等领域,如我们常见的移动电话、数码相机、机顶盒等都是嵌入式软件对传统产品进行智能化改造的结果。嵌入式软件可分为嵌入式操作系统、嵌入式支撑软件及嵌入式应用软件,其具有独特的实用性、灵活的适用性等特点。嵌入式软件与嵌入式硬件资源关系密切,涉及相应的关键技术也较多,主要包括数字电路、微控制器及传感器灯硬件技术,还包含Canvas绘图功能、HTML5、移动定位等软件技术。总体而言,嵌入式软件可与智能终端、传感器、数据相结合,利用嵌入式软件处理视频、音频、文字等相关内容,为各领域的信息化服务提供支撑,实现其强大的数据共享等服务功能。

2嵌入式软件在线升级技术的系统构架

嵌入式软件在线升级是指不重启硬件设备而完成的软件升级。嵌入式软件在线升级是提高系统可靠性的有效途径,有利于维持嵌入式系统平台的稳定性。本文研究的重点是提供一种无需拆装仪表,不需要特殊工具和软件,通过仪表的SD卡更新嵌入式软件的在线嵌入式软件升级技术。所述的微处理器采用STM32F429BIT6芯片,RAM使用IS42S16160C-7TLI的SDRAM存储器,FLASH使用STM32F429BIT6集成的具有IAP功能的FLASH存储器,SD控制器使用STM32F429BIT6集成的SD控制器模块,SD卡接口为标准的SD卡连接器,SD卡为标准的SD卡。嵌入式软件在线升级技术的系统框图如图1所示。

该系统包括集成CPU,FLASH,SD卡控制器的微处理器,SDRAM存储器,SD卡连接器及SD卡。微处理器与SDRAM通过并行总线连接,与SD卡通过SD卡连接器连接,并使用内部的SD控制器进行通信。在更新嵌入式软件时,装置上启动更新,更新程序从SD卡中读取引导程序和新程序文件到SDRAM中,CPU跳转执行SDRAM中的引导程序,引导程序包含了擦除FLASH和写入FLASH的代码,通过这种方式,擦除FLASH和写入FLASH的代码不会出现在正常运行的嵌入式软件中,可避免因程序跑飞引起误擦除或误写入的情况,然后引导程序会将新程序文件写入到FLASH中,新程序文件写入完成后,仪表将运行更新后的嵌入式软件,嵌入式软件更新完成。

3SD卡的系统软件设计

3.1SD卡的底层驱动程序设计

SD卡(Secure Digital Memory Card,SD)是一种基于半导体快闪记忆器的新记忆设备,由于在体积、重量、传输速率、稳定性、价格等方面有众多优势,因此被广泛地用于便携式装置上,如多媒体播放器、数码相机及AV器材等。SD卡技术是基于FLASH的存储卡,通过接口界面与驱动器相连,不需要外接电源来维持记忆信息;同时也是一体化的固态介质,功能稳定,不会造成机械性损坏。SD卡驱动程序的主要步骤为SD卡的初始化,向SD卡发送命令函数,获得响应的接口函数。SD卡的初始化是指用户应用程序以文件的形式访问和读取SD卡上的数据;SD卡本身只是一种数据介质,不包含文件系统,因此要想以文件系统的形式访问SD卡,必须先驱动SD卡,通过调用SD卡物理层的有关函数来实现驱动。驱动SD卡主要实现扇区的读写、获取SD卡的相关配置信息等。SD卡的读写操作都是基于命令的,通过向SD卡发送相应的命令,获得相应的接口函数控制SD卡。通过这些基本的底层驱动接口程序,配合相应的命令,可完成SD卡的驱动操作。

3.2SD卡的FAT32文件系统设计

为了对数据的写入进行有效地管理,能够在SD卡的PC端被访问,在SD卡完成底层驱动后,可按照FAT32文件系统格式对数据进行操作,进而在SD卡上实现读写文件等操作。FAT32文件系统是目前微软FAT类文件系统中的最高版本,采用了32位的文件分配表,可提高利用率,是现今Windows下常用的硬盘文件系统。FAT32文件系统设计包括以下步骤:程序的初始化、初始化内存、载入SD卡、打开文件夹、读写文件等操作。

3.3软件升级功能的实现

在线更新嵌入式软件的流程如图 2 所示。软件部分首先通过SPI协议对SD卡进行初始化,完成SD卡的底层驱动程序设计,再根据FAT32文件系统组织形式对SD卡中的数据进行读取或更新,将读取到的数据通过IAP方式写入FLASH中,新程序文件写入完成后,用程序实现跳转到指定代码段执行,仪表将运行更新后的嵌入式软件。

4结语

嵌入式系统是当前最有发展前景的IT应用领域之一,传统的嵌入式系统软件升级方式耗时长、成本高。本文的研究可妥善解决这一问题,同时还能解决一些问题:不需要拆装仪表,避免二次损坏;嵌入式软件本身不包含擦写FLASH的代码,保证FLASH不会被误擦写,具备较高的安全性;程序预先载入到RAM,即使升级过程中发生SD卡损坏、拔除等异常事件,也不会影响烧录过程,具备较高的可靠性。

参考文献

[1]茅胜荣,肖家文,乔东海. 用SD卡定制嵌入式Linux系统的最小系统[J].单片机与嵌入式系统应用,2017,17(10):28-32.

[2]佚名.基于STM32的嵌入式软件远程升级研究[D].宁波大学,2017.

[3]徐洋,郑继敏.面向电动车车载监控终端的嵌入式软件远程升级系统研究与设计[J].汽车零部件,2018(2).



论文作者:郝奎

论文发表刊物:《信息技术时代》2018年11期

论文发表时间:2019/8/15

标签:;  ;  ;  ;  ;  ;  ;  ;  

基于SD卡的嵌入式软件在线升级系统探讨论文_郝奎
下载Doc文档

猜你喜欢