×
工业控制 > 工业自动化 > 详情

USB的便携式设备固件升级程序的设计

发布时间:2021-01-04 发布时间:
|

1 引言
固件是系统最底层的工作软件。便携式设备功能与固件密切相关。固件能够充分发挥硬件资源,弥补硬件缺陷与不足。因此。固件在便携式设备中具有极大重要性。固件升级能够进一步完善固件程序,增强便携式设备功能。
在系统开发和用户使用时.一旦系统提供设备固件更高版本。就要求设备通过固件升级程序对原有固件进行升级。因此,基于USB的即插即用、传输速率高的特点,设计一种通过USB接口升级设备固件的应用程序。该设计应用程序是基于便携式设备的USB驱动程序.包括固件文件结构定义、USB设备驱动程序与上层应用软件的I,0操作、USB Bulk0nly传输模式、USB通信命令规范、NAND Flash坏块信息表构建等问题。


2 系统结构
该系统利用PC机通过USB总线与便携式设备进行通信,并在此通信基础上完成固件升级的各种操作,其基本结构如图l所示。系统开发人员或终端用户在获取最新版本固件后,利用固件升级程序实现PC机与便携式设备的通信,并实现固件生成、读取设备信息、USB-Boot二级代码下载、固件升级等功能。

3 固件升级程序的设计
固件升级程序面向系统开发人员或终端用户。由于用户知识体系架构的差异,程序界面力求友好、简洁。功能要求:按预先定义的固件结构生成固件文件:自动检测设备是否连接,一旦设备连接,自动下载二级Boot loader并读取设备Flash信息、固件版本信息;将固件文件下载至NAND Flash,从而完成固件升级操作。
3.1 固件头的填充
固件文件的固件头具有标识,索引功能。固件头结构决定后续固件升级工具扩展的难易。该设计的固件头主要包括固件的版本、生成日期、厂商信息、模块信息和资源文件在固件中的偏移、长度等信息。这些信息采用结构体将其组织,以便读取固件文件。同时在头尾部预留若干字节的保留区,以备后续升级扩展。
固件头的填充需要严格按照结构体所定义的成员进行。函数GenerateHeader完成固件头的生成,其函数原型为:



3.2 生成固件文件
固件文件主要由固件头,启动代码,系统代码,FONTl2,FONTl6,GBK字体和字库资源文件,菜单资源文件,图片资源文件等8个模块组成。其中系统代码、菜单资源文件、图片资源文件的路径由用户指定,其余文件存储于工程目录下。图2为固件生成流程。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
莱姆电流传感器在数字伺服驱动器中的应用及全数字伺服电流环设计