基于虚拟usb磁盘的固件更新方法

文档序号:6357704阅读:586来源:国知局
专利名称:基于虚拟usb磁盘的固件更新方法
技术领域
本发明实施例主要涉及嵌入式计算机技术应用领域,特别是在嵌入式计算机硬件环境下利用虚拟USB磁盘实现嵌入式设备固件更新(Device Firmware Update)的方法。
背景技术
目前,嵌入式计算机设备被广泛应用于各个领域,基于USB磁盘接口及协议的嵌入式设备固件更新(Device Firmware Update)方式,因其使用方便工作可靠,正越来越多地被采用。但是由于许多的嵌入式设备受到诸如设备体积、电源功耗及设备成本等等因数的制约,其内部存储空间的容量很小。无法构成大容量的USB磁盘,甚至是无法构成可用的 USB磁盘。因此不能采用公知的USB磁盘接口及协议实现固件更新。

发明内容
有鉴于此,本发明实施例提出了一种基于虚拟USB磁盘的嵌入式设备固件更新 (Device Firmware Update)方法。改变了以往公知的USB磁盘接口及协议实现固件更新时所采用的先下载固件更新数据文件到USB磁盘的存储区,再从USB磁盘的存储区读出固件更新数据并将其写入到嵌入式设备的可编程程序空间中去即“先下载,后写入”的固件更新的操作模式。利用虚拟USB磁盘占用嵌入式设备存储空间资源极小的特点,规避了虚拟 USB磁盘中大数据量文件信息无法长久保存的弱点,在嵌入式设备的固件更新过程中实行 “边下载传输,边编程写入”或“边下载传输,边解码分析,边编程写入”的操作模式。从而实现在极小存储空间开销的前提下,实现基于USB磁盘的嵌入式设备固件更新。本发明实施例解决其技术问题所采用的技术方案是在嵌入式设备的“CLIENT”客户机端虚拟USB磁盘底层驱动程序及固件更新控制程序中,同时对下述情况进行监测和处理。1.对于在嵌入式设备的“CLIENT”客户机端磁盘文件系统中的文件目录存放扇区中,来自于“HOST”主机端设备的有关文件目录更新情况进行监测,以便及时知道自于 “HOST”主机端设备的有关固件更新数据文件的名称、大小和类型等等信息,以便固件更新控制程序对此进行相关处理。2.对于在嵌入式设备的“CLIENT”客户机端磁盘文件系统中的文件分配表存放扇区中,来自于“HOST”主机端设备的有关文件文件分配表更新情况进行监测,及时知道下载的固件更新数据文件中数据在虚拟USB磁盘中的存放位置和链接情况,以便以固件更新控制程序据此对这些数据进行有效寻址。数据存放区客户机端设备将准备传输给“HOST” 主机端设备的有关数据按磁盘文件系统规定格式存放在本地USB磁盘的存储空间上后,在 “CLIENT”客户机端设备启动下述操作3.根据上述1、2两点所得信息,嵌入式设备的固件更新控制程序,按磁盘扇区分块读取已下载的固件更新数据文件中的相关数据。4.对于数据文件类型为“BIN”的二进制代码文件,则根据文件名或其他约定的信息确定二进制代码数据的编程写入地址。在此操作过程中,每完成对一个扇区的数据读取及编程,就立即通知嵌入式设备的“CLIENT”客户机端虚拟USB磁盘底层驱动程序,及时释放该扇区的磁盘空间,实行“边下载传输,边编程写入”的工作模式。5.对于数据文件类型为“HEX”的数据文件,则对文件内信息进行解析,分别求出其编程代码数据和编程写入地址。在此操作过程中,每完成对一个扇区的数据读取、解析及编程,就立即通知嵌入式设备的“CLIENT”客户机端虚拟USB磁盘底层驱动程序,及时释放该扇区的磁盘空间,实行“边下载传输,边解码分析,边编程写入”的工作模式。6.对于其他类型的数据文件,则参照上述原则,进行相应操作。对于多个相同或不同类型数据文件,同样参照上述原则,进行相应操作。7.嵌入式设备的固件更新控制程序在完成全部的固件更新操作后,可以将固件更新的结果信息,以汇报文件(特殊约定的文件名或内容)的形式,存放在本地的虚拟USB磁盘上,使“HOST”主机端设备可以通过读取该汇报文件(文件名或内容)了解本次固件更新的执行结果。本发明实施例的有益效果是,利用虚拟USB磁盘的特点,在嵌入式设备的固件更新过程中实行“边下载传输,边编程写入”或“边下载传输,边解码分析,边编程写入”的操作模式。从而实现在极小存储空间开销的前提下,实现基于USB磁盘的嵌入式设备固件更新。


为了更进清楚的说明本发明实施例的技术方案,下面将对实施例中描述中所需要使用的附图做简要介绍。图1示出了本发明实施例的“CLIENT”客户机端虚拟USB磁盘底层驱动程序及固件更新控制程序执行流程示意图。
具体实施例方式“HOST”主机端设备对“CLIENT”客户机端设备的下行数据传输流程按照标准的 USB磁盘接口及通信协议方式不变。图1示出了 “CLIENT”客户机端虚拟USB磁盘底层驱动程序及固件更新控制程序执行流程示意图100。在图1中,进入固件更新模式时,首先本地的“CLIENT”客户机端与“HOST”主机端硬件连接并分别通过软件协议完成虚拟USB磁盘设备初始化步骤Sl 10。控制程序通过对虚拟磁盘的文件目录区及FAT表中数据变动的监测,判别是否有固件更新文件下载步骤S120。在有固件更新文件下载时,判别当前的文件数据存放扇区是否下载传输完成步骤S130。当前的文件数据存放扇区是否下载传输完成后,通过对该下载文件名的分析,或扇区数据文件格式的分析,或其他外部条件的辨别,确定当前扇区中的数据文件格式步骤 S140。如果是HEX文件格式或者是其他非二进制目标代码文件格式,则进入相关的解码分析程序,通过解码分析,形成二进制目标代码数据步骤S150。如果是二进制目标代码数据中直接进行编程写入步骤S160。当前扇区数据解码分析及编程完成后,在标准的USB磁盘接口及通信协议控制下更新虚拟USB磁盘的FAT表相关链接,并判断下载的固件更新数据是否全部完成,如果未全部完成则转去处理下一个数据扇区步骤S170步骤S180。 如果固件更新数据全部下载完成,则根据实际编程写入情况生成汇报文件,存放在虚拟USB磁盘中,并结束本次的固件更新操作步骤S190。 上述说明为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则内,所作的任何修改、替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种嵌入式计算机硬件环境下利用虚拟USB磁盘实现嵌入式设备固件更新(Device Firmware Update)的方法。其特征在于包括利用虚拟USB磁盘实际占用嵌入式设备存储空间资源极小的特点,实现在极小存储空间开销的前提下的嵌入式设备固件更新。
2.根据权利要求1所述的固件更新方法,其特征在于还包括在嵌入式设备的固件更新过程中实行“边下载传输,边编程写入”或“边下载传输,边解码分析,边编程写入”的操作模式。
3.根据权利要求1至2所述的固件更新方法,其特征在于还包括完成全部的固件更新操作后,将固件更新的结果信息以汇报文件的形式,存放在本地的虚拟USB磁盘上。
全文摘要
本发明实施例主要涉及嵌入式计算机技术应用领域,公开了一种基于虚拟USB磁盘的嵌入式设备固件更新(Device Firmware Update)方法。利用虚拟USB磁盘占用嵌入式设备存储空间资源极小的特点,规避了虚拟USB磁盘中大数据量文件信息无法长久保存的弱点,在嵌入式设备的固件更新过程中实行“边下载传输,边编程写入”或“边下载传输,边解码分析,边编程写入”的操作模式。从而实现在极小存储空间开销的前提下,实现基于USB磁盘的嵌入式设备固件更新。
文档编号G06F9/445GK102169443SQ20111008692
公开日2011年8月31日 申请日期2011年4月7日 优先权日2011年4月7日
发明者柴可 申请人:柴可
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1