一种通讯协议受限情况下usb设备的在线升级方法

文档序号:6559067阅读:219来源:国知局
专利名称:一种通讯协议受限情况下usb设备的在线升级方法
技术领域
本发明提供一种USB设备的升级方法,特别是在通讯协议受限情况下USB设备的在线升级方法,属于数据通讯领域。
背景技术
自从USB(Universal Serial Bus,通用串行总线)产生以来,USB设备不断更新升级。在对USB设备固件(设备内用于操作的程序)升级时,升级数据以数据包的形式传入USB设备。固件升级的过程是由上位机(用于升级的计算机或专用升级设备等)组装升级数据,并将升级数据发送给待升级的设备,待升级设备将升级数据写入硬件设备,完成设备升级。
由于很多协议限制传送数据包的长度,所以在进行固件升级时无法将连续数据和命令在一个包内传入。按照通常的做法,将升级数据组装成若干个相同大小的数据包,每个数据包头部有包头,尾部有包尾或只含有包头或只含有包尾,包头和包尾包含数据包的参数信息,数据位于包头之后,包尾之前。在将升级数据写入USB设备之前,USB设备需要处理数据包,去除包头、包尾附加信息,再对数据拼凑后写入硬件设备。
对于存储器为FLASH的USB设备,数据写入存储区域时,是以固定字节的物理分区长度写入的,硬件在接收到数据包后,要拼凑相应长度数据,也可能因为数据包中的数据长度与物理分区限制长度未对齐(对齐是指数据包中数据长度与物理分区限制长度相等,物理分区限制长度是数据包中数据长度的整数倍或数据包中数据长度是物理分区限制长度整数倍的情况)而需要重新处理排列。例如对于物理分区长度为64字节的FLASH存储器,每个数据包都要分别在数据包的头部和尾部加入2字节的参数信息,相应的每个数据包中的数据长度为60字节。将数据写入硬件存储区时,需要去掉包头和包尾附加信息,再将数据按64字节的长度拼凑,写入硬件设备。
处理这些附加数据会浪费程序空间和运行时间,很大程度降低了USB设备的升级效率。

发明内容
为了克服现有技术中在通讯协议受限情况下,USB设备升级方法浪费程序空间和运行时间的问题,本发明采用先发送升级命令包,然后连续发送升级数据包到USB设备的方法。
所述技术方案如下上位机将升级数据组装成包含升级相关参数的升级命令包和相互之间数据连续的升级数据包传送给USB设备,USB设备将接收到的升级数据写入硬件设备,完成USB设备的升级。
本发明提供的一种在通讯协议受限情况下USB设备的在线升级方法,具体包括以下步骤步骤A上位机将升级数据组装成升级命令包和升级数据包;步骤B上位机先发送所述升级命令包到待升级的USB设备,然后再发送所述升级数据包到所述待升级的USB设备;步骤C所述待升级的USB设备先保存所述升级命令包中的相关参数,然后将所述升级数据包写入所述待升级的USB设备。
所述升级命令包包含升级数据长度参数、升级数据校验码或升级密码等信息。
所述升级数据校验码是对整个升级数据的校验码。
所述升级数据包是与所述升级命令包具有相同字节长度的若干个连续的,只包含升级数据信息的数据包。
当所述待升级的USB设备中的存储器为FLASH时,上位机将升级数据组装成与FLASH物理分区长度对齐的升级命令包和升级数据包。
采用这种方法与背景技术相比的有益效果是1.采用这种方法不用处理原有方法中每个数据包的包头、包尾附加信息,节省了程序空间和运行时间,提高了效率;2.对于存储器为FLASH的USB设备,因为升级数据包中数据的长度与FLASH存储器的物理分区长度对齐,所以不需要再拼凑数据,只需按顺序将升级数据包写入硬件设备即可,这样很大程度上节省了处理时间和程序空间,提高了升级效率。


图1是本发明所述升级包格式图;图2是对于存储器为FLASH,FLASH存储器物理分区长度为64字节的USB设备,本发明所述升级包格式图;图3是在通讯协议受限情况下,USB设备在线升级方法流程图。
具体实施例方式
下面结合附图和具体实施例对本发明作进一步说明,但不作为对本发明的限定。
参见图1,上位机将升级数据长度、升级数据校验码或升级密码参数组装在一个称为升级命令包的数据包内,作为第一个传入设备的数据包,将升级数据组装成与升级命令包具有相同字节长度的若干个连续的升级数据包。USB设备从升级命令包读取必要的升级参数,再对升级数据包拼凑后写入硬件设备。
参见图2,对于存储器为FLASH,FLASH存储器物理分区长度为64字节的USB设备,上位机将升级数据长度、升级数据校验码或升级密码参数组装在大小为64字节的升级命令包内,升级数据被组装成若干个连续的大小为64字节的升级数据包,USB设备不需要处理包头和包尾,由于数据包的大小为64字节,恰好与FLASH存储器的物理分区长度对齐,所以不需要再拼凑数据,只需要按顺序将升级数据包写入硬件设备即可。
与现有技术相比,这种方法不用处理原有数据包格式中的包头和包尾等附加信息,节省了处理时间和程序空间,提高了升级效率。
对于存储器为FLASH,FLASH存储器物理分区长度为64字节的USB设备,升级的具体方法是由上位机将升级数据组装成升级包发送给USB设备。具体操作是先将升级相关参数组装成64字节的升级命令包发送给USB设备,再将升级数据组装成连续的64字节的升级数据包传送给USB设备。
下面以需要升级密码进行升级验证的USB设备为例,说明本发明所述方法的具体步骤,参见图3步骤301USB设备插入计算机;步骤302USB设备响应主机的USB请求,并与主机建立连接;步骤303USB设备等待接收升级命令;步骤304USB设备接收到上位机传送的升级命令包,执行步骤305,否则执行步骤303;步骤305USB设备检验升级命令包中的升级密码,密码正确,执行步骤306,否则执行步骤303;步骤306USB设备保存升级数据长度参数,升级数据校验码等信息;
步骤307USB设备接收升级数据包;步骤308USB设备将接收到的升级数据写入硬件设备;步骤309USB设备接收到的升级数据长度和步骤306保存的升级数据长度参数比对,相等则停止接收升级数据,执行步骤310,否则继续执行步骤307;步骤310USB设备利用固定的算法处理接收到的数据,并与步骤306保存的升级数据校验码进行比对,校验成功则执行步骤311,否则升级失败,执行步骤303;步骤311USB设备升级操作完成。
如果不需要升级密码进行升级验证的USB设备,跳过步骤305,直接执行步骤306,其它步骤不变。
以上所述的实施例只是本发明较优选的具体实施方式
的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换,都应包含在本发明的保护范围内。
权利要求
1.一种在通讯协议受限情况下USB设备的在线升级方法,其特征在于,所述方法包括以下步骤步骤A上位机将升级数据组装成升级命令包和升级数据包;步骤B上位机先发送所述升级命令包到待升级的USB设备,然后再发送所述升级数据包到所述待升级的USB设备;步骤C所述待升级的USB设备先保存所述升级命令包中的相关参数,然后将所述升级数据包写入所述待升级的USB设备。
2.如权利要求1所述的在通讯协议受限情况下USB设备的在线升级方法,其特征在于,所述升级命令包包含升级数据长度参数、升级数据校验码或升级密码信息。
3.如权利要求2所述的在通讯协议受限情况下USB设备的在线升级方法,其特征在于,所述升级数据校验码是对整个升级数据的校验码。
4.如权利要求1所述的在通讯协议受限情况下USB设备的在线升级方法,其特征在于,所述升级数据包是与所述升级命令包具有相同字节长度的若干个连续的,只包含升级数据信息的数据包。
5.如权利要求1所述的在通讯协议受限情况下USB设备的在线升级方法,其特征在于,当所述待升级的USB设备中的存储器为FLASH时,上位机将升级数据组装成与FLASH物理分区长度对齐的升级命令包和升级数据包。
全文摘要
本发明公开了一种USB设备在线升级方法,特别是在通讯协议受限情况下USB设备的在线升级方法,属于数据通讯领域。为了克服现有技术在通讯协议受限的情况下,USB设备升级效率低,浪费程序空间和运行时间的缺点,本发明提出了一种使用上位机将升级数据组装成包含升级相关参数的升级命令包和相互之间数据连续的升级数据包传送给USB设备,USB设备将接收到的升级数据写入硬件设备,完成USB设备升级的方法。对于存储器为FLASH的USB设备,设置数据包的长度与FLASH的物理分区长度对齐,这样的升级方法进一步节省了处理时间和程序空间,提高了升级效率,方便用户使用。
文档编号G06F13/10GK1866228SQ200610086839
公开日2006年11月22日 申请日期2006年6月20日 优先权日2006年6月20日
发明者陆舟, 于华章 申请人:北京飞天诚信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1