一种usb设备的软件系统升级方法

文档序号:6575882阅读:213来源:国知局
专利名称:一种usb设备的软件系统升级方法
技术领域
本方法属于软件领域,特别涉及一种USB设备的软件系统升级方法。
背景技术
随着电子设备功能的增加和技术的丰富,越来越多的电子设备面临着软件系统升 级的问题。目前常见的电子设备的软件升级方式主要有三种一种通过网络连接对固件进行升级。不适用于不具备网络接口的MP3、MP4、PMP播 放设备,原因在于这些设备不具备较高的网络硬件配置。另一种通过常见的PC数据端口对设备进行升级,S卩非网络的升级方式。如通过串 口、并口、USB端口、IEEE1394端口等外设接口对设备下载升级固件。但是这种方式需要有 升级主机的存在,并安装升级软件才能对设备实施升级。第三种方式是将带升级软件的载体插入设备,所述带升级软件的载体可以是光 盘、U盘、带升级软件的USB存储设备、SD、MMC, TF卡等,对比文件1 (中国发明专利申请号 200710124898. 3)公布了一种使用USB存储设备实现版本升级和备份的方法将升级数据 文件拷贝到USB存储设备,通过升级设备的USB主机功能读取存储设备中的升级文件,更新 自身的固件。这种升级方式需要用额外的专用USB存储设备来中转主机上的升级程序,产 品进入市场后普通消费者难以得到此类升级软件。USB是一种在消费类电子设备中应用普遍的技术,其接口具有小巧便利并易于拓 扑连接的特点,目前多数消费类电子产品均具有USB接口,可通过USB接口和电脑进行数据 传输。USB OTG(On-The-Go)技术是用于增强USB设备互联性的技术,目前具有USB OTG 功能的嵌入式消费类电子产品及其技术,仅能实现设备之间的文件交互,无法实现两个USB 设备连接后,自动相互进行软件系统升级。例如两个MP3、MP4、PMP、手机之间通过USB OTG 进行歌曲、图片、视频或其它文件的互相拷贝,无法实现两个MP3、MP4、PMP、手机通过USB接 口相互连接后,自动将系统软件版本较低的个体升级为系统软件版本较高的个体。

发明内容
针对现有技术的不足,本发明目的在于提出一种USB设备的软件系统升级方法, 适用于对市场上电子设备的快速、大规模升级。一种USB设备的软件系统升级方法,支持与PC机互联进行软件系统升级,支持直 接从非易失性存储设备读取升级文件进行升级,特别是支持两台设备间自动进行软件系统 升级。一种USB设备的软件系统升级方法,包括初始化USB控制器后进入USB升级;USB 设备枚举和控制器角色配置;根据USB设备枚举和控制器角色配置的结果选择进入以下流 程之一 USB文件升级方式、设备模式下的被动升级模式、OTG主机模式下的主动升级。
所述USB设备的软件系统升级方法,进一步包括以下步骤Sl初始化USB双角色控制器,对USB端口进行超时检测;S2检测到USB端口有设备或主机连接后,进入USB枚举阶段,然后进行控制角色 配置如果连接的是一般的主机端口,则进入S3设备模式下的被动升级模式;如果连接的 是相同的OTG设备,则进入S40TG主机模式下的主动升级;如果连接的是USB存储类设备, 则进入S5USB文件升级方式;S3进入USB设备模式升级阶段主机判断从设备读取的系统版本号是否可以升 级,如果可以升级,则向设备传输升级代码;S4进入OTG角色协商和配置阶段,默认主机(A主机)方先从设备(B设备)读取 系统软件版本号,判断软件版本是否比对方高,如果版本高于对方则对其进行系统升级S3 ; 如果低于对方,则进行OTG角色转换,默认主机(A主机)方变为设备(A设备),对方B设备 变成B主机,B设备重新对设备进行枚举,进入S2阶段;S5进入USB文件升级方式,先对USB存储设备进行SCSI初始化,分析磁盘结构, 访问支持的文件系统,并从中查找是否存在升级文件,如果存在该文件,读取文件版本号, 并依次判断是否需要升级,如果版本高于系统内的版本则读取该文件,升级系统。本发明所述的USB设备指具有USB OTG功能的各种电子设备,其结构包括USB双 角色控制器、OTG协商和版本识别程序、以及PC机升级驱动和软件,其特征在于所述USB 双角色控制器用于符合USB OTG标准规范,并具备可切换的主机和设备模式;所述OTG协商 和版本识别程,是将系统版本比较与USB OTG协商算法结合的程序,即判别系统版本,依照 升级角色需要进行OTG协商的程序;所属PC机升级驱动和软件,是指在利用PC主机对符合 本发明所描述升级协议的设备进行识别、升级的程序;所述的USB设备之间通过USB端口进 行相互连接。本发明在支持上述两种USB通用软件系统升级方式上,实现了设备间的机对机升 级方式,可以减少设备端口配置,降低成本,弥补了原有技术的不足,适用于对市场上电子 设备的快速、大规模升级,特别是在产品进入流通领域后,普通用户之间可通过相互连接所 购买的不同软件版本的MP3/MP4/PMP/手机等产品,自动进行设备软件系统的升级,厂商无 需专门下载升级软件、推广新的软件版本,节省了对旧的软件版本的设备进行升级所带来 的人力和物力开支。


图IUSB设备的升级程序总体流程图。图2USB设备的升级程序具体流程图。图30TG协商和版本识别程序。图4处于设备模式下的升级程序流程图。图5设备处于主机模式下的升级程序流程图。图6通过U盘文件进行升级的流程图。
具体实施例方式以下结合具体实施例,对本发明的一种USB设备的软件系统升级方法做进一步解释。本发明所述的USB设备,指具有USB OTG功能的各种电子设备,包括但不限于具有 USB接口和USB OTG控制器的数码音乐/视频播放装置(如MP3/MP4/PMP/移动电视等)、 移动通信装置(如手机、PDA等)、数码相机/摄像机、非易失性存储装置(如U盘等)、以 及扫描仪、传真机、打印机等。本发明首先初始化USB控制器后进入USB升级;USB设备枚举和控制器角色配置; 根据USB设备枚举和控制器角色配置的结果选择进入以下流程之一 USB文件升级方式、设 备模式下的被动升级模式、OTG主机模式下的主动升级。图1是本发明具体实施的总框图,包括以下步骤Sl初始化USB双角色控制器,对USB端口进行超时检测;S2检测到USB端口有设备或主机连接后,进入USB枚举阶段,然后进行控制角色 配置如果连接的是一般的主机端口,则进入S3设备模式下的被动升级模式;如果连接的 是相同的OTG设备,则进入S40TG主机模式下的主动升级;如果连接的是USB存储类设备, 则进入S5USB文件升级方式;S3进入USB设备模式升级阶段主机判断从设备读取的系统版本号是否可以升 级,如果可以升级,则向设备传输升级代码;S4 进入OTG角色协商和配置阶段,默认主机(A主机)方先从设备(B设备)读 取系统版本号,判断版本是否比对方高,如果版本高于对方则对其进行系统升级S3 ;如果 低于对方,则进行OTG角色转换,默认主机(A主机)方变为设备(A设备),对方B设备变成 B主机,B设备重新对设备进行枚举,进入S2阶段;S5进入USB文件升级方式,先对USB存储设备进行SCSI初始化,分析磁盘结构, 访问支持的文件系统,并从中查找是否存在升级文件,如果存在该文件,读取文件版本号, 并依次判断是否需要升级,如果版本高于当前系统的版本,则读取该文件,并升级系统。图2是本发明的具体流程图。设备启动执行初始化USB硬件101,并开启对USB 总线状态的检测,也就是对USB OTG的状态判断102,如果OTG ID是0,则进入A主机模式 103 ;如果ID为1,则进入B设备模式。如果设备处于A主机模式,此时USB双角色控制作为 USB主机可以向设备进行枚举操作,通过从设备读取的相关描述符,判断设备是否具备本发 明所描述的几种升级功能104,如果不能支持,则断开USB设备114,结束USB升级程序,并 返回升级失败;如果设备支持升级功能,则判断设备的类别105,如果该设备属于OTG升级 方式的设备,则进入OTG角色协商程序107,进行USB主设之间的角色协商;如果该设备属 于USB存储类设备,则进入USB文件升级模式109 ;如果该设备既不属于OTG升级方式设备, 也不属于USB存储类设备,那么说明它不支持本发明所涉及的升级方式,断开该设备114, 结束USB升级,并返回升级失败。在判断OTG ID102后,如果设备处于B设备模式,此时对 方主机在枚举本设备后,支持OTG升级模式106,则进入OTG角色协商程序107 ;如果对方是 普通主机,不支持OTG升级模式,则本设备将进入设备模式下的升级模式110。在OTG角色 协商107后,程序将会判断USB控制器是否处于主机模式108,如果是主机模式,则进入OTG 主机升级模式114来执行升级操作;如果不是主机模式112,如果是A设备,则需要切换USB 控制器的角色111,接着进入设备模式下的升级方式110,如果不是A设备,则直接进入设备 模式下的升级方式110。完成在设备模式下的升级110后,或者完成在OTG主机升级模式113,或者完成USB文件升级模式109后,则会断开设备114,结束USB升级程序,并根据升级 结果返回错误值。图30TG角色协商程序是将USB双角色控制器的OTG的功能和升级版本识别程序 的结合。如图所示,左右两侧分别是两种OTG模式下的情况。在进入OTG角色协商程序201 后,A主机端读取B设备系统版本号202,与设备本身的软件系统版本号进行比较203,如 果对方系统版本比本地系统版本新,则进入主机模式下的升级模式205,如果比对方的版本 旧,则进入与B设备进行OTG角色转换过程在主机端,配置OTG相关寄存器,使能USB SRP 和HNP请求206,这个操作会导致USB总线挂起,交出USB总线控制权,当B设备检测到总线 挂起210之后,配置OTG寄存器,向主机发出SRP请求211 ;当主机检测到SRP请求之后,接 着等待设备HNP请求208,此时设备发出HNP212,主机进入A设备模式209,设备进入B主机 模式213。此时A/B设备间的角色转换完成,A设备进入设备模式下的升级,B设备则进入 OTG主机模式下的升级。图4如果设备与PC主机连接,设备则会直接进入设备模式下的升级程序;如果连 接的是同样支持升级功能的OTG设备,通过一定的协商,可以处于设备模式进行升级。设 备模式下的升级方式是一种被动升级的状态。进入设备模式下的升级方式301之后,主机 就会对设备进行枚举302,之后请求设备的系统版本信息,接着配置设备的升级参数303, 如需要下载的升级程序的大小、在设备内存(SDRAM)中的基地址等信息。设备将会对这些 参数进行判断是否正确304,如果参数不正确,则会设置USB通信端点挂起(STALL) 309,返 回参数出错311。如果判断主机配置的参数正确,则进入数据传输阶段,开始接收主机的 升级数据305,传输结束后,判断传输过程中是否出错306,如果传输出错,则设置端点挂起 309,返回传输出错311 ;如果传输没有出错,则开始对数据进行校验307,判断检验是否通 过308,如果校验通过,则说明本次升级成功,返回升级参数310 ;如果校验不通过,则设置 端点STALL309,返回校验错误311。图5主机模式下的OTG设备可能是A设备或者B设备。进入主机模式下的升级 401后,主机开始对设备进行枚举402,获取设备的系统版本信息,确认一下版本信息(如果 是普通主机(如PC)则需要判别一下是否可以对该版本的设备进行升级,如果不可以则需 要放弃升级)。随后配置设备的升级参数403,判断参数是否设置成功404,如果发现设备 通信端点已经挂起(STALL),则说明设备不接受这些配置的参数,返回参数配置有误的错误 408 ;如果配置成功,则开始从本地ROM中读取升级程序下载到设备中405,在下载过程中查 询端点是否STALL406,如遇到端点STALL,说明下载失败,返回数据传输不成功的错误409。 下载完成后,开始查询设备对下载数据的校验结果407,如果不通过则返回程序校验不通过 错误410 ;如果校验通过,则说明下载成功411。图6如果连接的是一个USB存储类设备,如U盘、移动硬盘等,则会进入USB文件升 级方式501。由于之前已经对设备进行枚举过,此时开始初始化SCSI设备502(注:USB大 容量存储类属于SCSI协议规范),即需要调用SCSI主机接口。SCSI初始化完毕之后,开始 识别磁盘上的分区503,判断是否是可以支持的分区504,如果不支持,则返回分区不支持 错误508 ;如果支持该分区,则开始查找升级文件505,如果没有找到该文件,则返回查找文 件失败错误509 ;如果找到该文件,则读取文件版本信息,判断版本信息是否可以支持升级 506,如果不支持则返回版本不支持错误510 ;如果支持升级,则开始读取该升级文件507,如果在读取过程未出现错误,则说明升级完成510,返回升级信息;如果出现错误则返回文 件读取错误。 应当指出,以上所述仅为本发明的一个实施例,并非本发明的限制范围,对于本领 域的普通技术人员来说,凡是本发明的精神和原则之内所做的任何修改、等同替换或改进, 均应包含在本发明的保护范围之内。
权利要求
一种USB设备的软件系统升级方法,支持与PC机互联进行软件系统升级,支持直接从非易失性存储设备读取升级文件进行升级,其特征在于支持两台设备间自动进行软件系统升级。
2.如权利要求1所述的一种USB设备的软件系统升级方法,其特征在于步骤包括初 始化USB控制器后进入USB升级;USB设备枚举和控制器角色配置;根据USB设备枚举和控 制器角色配置的结果选择进入以下流程之一 USB文件升级方式、设备模式下的被动升级 模式、0TG主机模式下的主动升级。
3.如权利要求2所述的一种USB设备的软件系统升级方法,进一步包括以下步骤S1初始化USB双角色控制器,对USB端口进行超时检测;52检测到USB端口有设备或主机连接后,进入USB枚举阶段,然后进行控制角色配 置如果连接的是一般的主机端口,则进入S3设备模式下的被动升级模式;如果连接的是 相同的0TG设备,则进入S4 0TG主机模式下的主动升级;如果连接的是USB存储类设备,则 进入S5 USB文件升级方式;53进入USB设备模式升级阶段主机判断从设备读取的系统版本号是否可以升级, 如果可以升级,则向设备传输升级代码;54进入0TG角色协商和配置阶段,默认主机(A主机)方先从设备(B设备)读取系 统软件版本号,判断软件版本是否比对方高,如果版本高于对方则对其进行系统升级S3 ; 如果低于对方,则进行0TG角色转换,默认主机(A主机)方变为设备(A设备),对方B设备 变成B主机,B设备重新对设备进行枚举,进入S2阶段;S5进入USB文件升级方式,先对USB存储设备进行SCSI初始化,分析磁盘结构,访问 支持的文件系统,并从中查找是否存在升级文件,如果存在该文件,读取文件版本号,并依 次判断是否需要升级,如果版本高于系统内的版本则读取该文件,升级系统。
4.如权利要求1所述的一种USB设备的软件系统升级方法中,所述的USB设备指具有 USB0TG功能的各种电子设备,其结构包括USB双角色控制器、0TG协商和版本识别程序、以 及PC机升级驱动和软件,其特征在于所述USB双角色控制器用于符合USB 0TG标准规范, 并具备可切换的主机和设备模式;所述0TG协商和版本识别程,是将系统版本比较与USB 0TG协商算法结合的程序,即判别系统版本,依照升级角色需要进行0TG协商的程序;所属 PC机升级驱动和软件,是指在利用PC主机对符合本发明所描述升级协议的设备进行识别、 升级的程序;所述的USB设备之间通过USB端口进行相互连接。
全文摘要
本发明提出了一种USB设备的软件系统升级方法,支持与PC机互联进行软件系统升级,支持直接从非易失性存储设备读取升级文件进行升级,特别是支持两台设备间自动进行软件系统升级。步骤包括初始化USB控制器后进入USB升级;USB设备枚举和控制器角色配置;根据USB设备枚举和控制器角色配置的结果选择进入以下流程之一USB文件升级方式、设备模式下的被动升级模式、OTG主机模式下的主动升级。本发明适用于对市场上电子设备的快速、大规模升级,特别是在产品进入流通领域后,用户之间可通过相互连接所购买的不同软件版本的电子产品,自动进行设备软件系统的升级,节省了对旧软件版本的设备进行升级所带来的人力和物力开支。
文档编号G06F13/38GK101989205SQ20091010106
公开日2011年3月23日 申请日期2009年8月3日 优先权日2009年8月3日
发明者刘建华, 陆斌, 陈科锋 申请人:杭州国芯科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1