一种USB设备的软件系统升级方法.pdf

上传人:000****221 文档编号:1276417 上传时间:2018-04-12 格式:PDF 页数:12 大小:512.31KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910101065.4

申请日:

2009.08.03

公开号:

CN101989205A

公开日:

2011.03.23

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 9/445申请日:20090803|||公开

IPC分类号:

G06F9/445; G06F13/38

主分类号:

G06F9/445

申请人:

杭州国芯科技股份有限公司

发明人:

陈科锋; 刘建华; 陆斌

地址:

310012 浙江省杭州市文三路90号东部软件园创新大厦A座5-6层

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

本发明提出了一种USB设备的软件系统升级方法,支持与PC机互联进行软件系统升级,支持直接从非易失性存储设备读取升级文件进行升级,特别是支持两台设备间自动进行软件系统升级。步骤包括:初始化USB控制器后进入USB升级;USB设备枚举和控制器角色配置;根据USB设备枚举和控制器角色配置的结果选择进入以下流程之一:USB文件升级方式、设备模式下的被动升级模式、OTG主机模式下的主动升级。本发明适用于对市场上电子设备的快速、大规模升级,特别是在产品进入流通领域后,用户之间可通过相互连接所购买的不同软件版本的电子产品,自动进行设备软件系统的升级,节省了对旧软件版本的设备进行升级所带来的人力和物力开支。

权利要求书

1: 一种 USB 设备的软件系统升级方法, 支持与 PC 机互联进行软件系统升级, 支持直接 从非易失性存储设备读取升级文件进行升级, 其特征在于 : 支持两台设备间自动进行软件 系统升级。
2: 如权利要求 1 所述的一种 USB 设备的软件系统升级方法, 其特征在于步骤包括 : 初 始化 USB 控制器后进入 USB 升级 ; USB 设备枚举和控制器角色配置 ; 根据 USB 设备枚举和控 制器角色配置的结果选择进入以下流程之一 : USB 文件升级方式、 设备模式下的被动升级 模式、 OTG 主机模式下的主动升级。
3: 如权利要求 2 所述的一种 USB 设备的软件系统升级方法, 进一步包括以下步骤 : S1 初始化 USB 双角色控制器, 对 USB 端口进行超时检测 ; S2 检测到 USB 端口有设备或主机连接后, 进入 USB 枚举阶段, 然后进行控制角色配 置: 如果连接的是一般的主机端口, 则进入 S3 设备模式下的被动升级模式 ; 如果连接的是 相同的 OTG 设备, 则进入 S4 OTG 主机模式下的主动升级 ; 如果连接的是 USB 存储类设备, 则 进入 S5 USB 文件升级方式 ; S3 进入 USB 设备模式升级阶段 : 主机判断从设备读取的系统版本号是否可以升级, 如果可以升级, 则向设备传输升级代码 ; S4 进入 OTG 角色协商和配置阶段, 默认主机 (A 主机 ) 方先从设备 (B 设备 ) 读取系 统软件版本号, 判断软件版本是否比对方高, 如果版本高于对方则对其进行系统升级 S3 ; 如果低于对方, 则进行 OTG 角色转换, 默认主机 (A 主机 ) 方变为设备 (A 设备 ), 对方 B 设备 变成 B 主机, B 设备重新对设备进行枚举, 进入 S2 阶段 ; S5 进入 USB 文件升级方式, 先对 USB 存储设备进行 SCSI 初始化, 分析磁盘结构, 访问 支持的文件系统, 并从中查找是否存在升级文件, 如果存在该文件, 读取文件版本号, 并依 次判断是否需要升级, 如果版本高于系统内的版本则读取该文件, 升级系统。
4: 如权利要求 1 所述的一种 USB 设备的软件系统升级方法中, 所述的 USB 设备指具有 USBOTG 功能的各种电子设备, 其结构包括 USB 双角色控制器、 OTG 协商和版本识别程序、 以 及 PC 机升级驱动和软件, 其特征在于 : 所述 USB 双角色控制器用于符合 USB OTG 标准规范, 并具备可切换的主机和设备模式 ; 所述 OTG 协商和版本识别程, 是将系统版本比较与 USB OTG 协商算法结合的程序, 即判别系统版本, 依照升级角色需要进行 OTG 协商的程序 ; 所属 PC 机升级驱动和软件, 是指在利用 PC 主机对符合本发明所描述升级协议的设备进行识别、 升级的程序 ; 所述的 USB 设备之间通过 USB 端口进行相互连接。

说明书


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

    【技术领域】
     本方法属于软件领域, 特别涉及一种 USB 设备的软件系统升级方法。背景技术 随着电子设备功能的增加和技术的丰富, 越来越多的电子设备面临着软件系统升 级的问题。
     目前常见的电子设备的软件升级方式主要有三种 :
     一种通过网络连接对固件进行升级。不适用于不具备网络接口的 MP3、 MP4、 PMP 播 放设备, 原因在于这些设备不具备较高的网络硬件配置。
     另一种通过常见的 PC 数据端口对设备进行升级, 即非网络的升级方式。如通过串 口、 并口、 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 设备的软件系统升级方法, 进一步包括以下步骤 :
     S1 初始化 USB 双角色控制器, 对 USB 端口进行超时检测 ;
     S2 检测到 USB 端口有设备或主机连接后, 进入 USB 枚举阶段, 然后进行控制角色 配置 : 如果连接的是一般的主机端口, 则进入 S3 设备模式下的被动升级模式 ; 如果连接的 是相同的 OTG 设备, 则进入 S4OTG 主机模式下的主动升级 ; 如果连接的是 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/ 手机等产品, 自动进行设备软件系统的升级, 厂商无 需专门下载升级软件、 推广新的软件版本, 节省了对旧的软件版本的设备进行升级所带来 的人力和物力开支。
     附图说明 :
     图 1USB 设备的升级程序总体流程图。
     图 2USB 设备的升级程序具体流程图。
     图 3OTG 协商和版本识别程序。
     图 4 处于设备模式下的升级程序流程图。
     图 5 设备处于主机模式下的升级程序流程图。
     图 6 通过 U 盘文件进行升级的流程图。 具体实施方式
     以下结合具体实施例, 对本发明的一种 USB 设备的软件系统升级方法做进一步解释。 本发明所述的 USB 设备, 指具有 USB OTG 功能的各种电子设备, 包括但不限于具有 USB 接口和 USB OTG 控制器的数码音乐 / 视频播放装置 ( 如 MP3/MP4/PMP/ 移动电视等 )、 移动通信装置 ( 如手机、 PDA 等 )、 数码相机 / 摄像机、 非易失性存储装置 ( 如 U 盘等 )、 以 及扫描仪、 传真机、 打印机等。
     本发明首先初始化 USB 控制器后进入 USB 升级 ; USB 设备枚举和控制器角色配置 ; 根据 USB 设备枚举和控制器角色配置的结果选择进入以下流程之一 : USB 文件升级方式、 设 备模式下的被动升级模式、 OTG 主机模式下的主动升级。
     图 1 是本发明具体实施的总框图, 包括以下步骤 :
     S1 初始化 USB 双角色控制器, 对 USB 端口进行超时检测 ;
     S2 检测到 USB 端口有设备或主机连接后, 进入 USB 枚举阶段, 然后进行控制角色 配置 : 如果连接的是一般的主机端口, 则进入 S3 设备模式下的被动升级模式 ; 如果连接的 是相同的 OTG 设备, 则进入 S4OTG 主机模式下的主动升级 ; 如果连接的是 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 升级程序, 并根据升级 结果返回错误值。
     图 3OTG 角色协商程序是将 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设备的软件系统升级方法.pdf_第1页
第1页 / 共12页
一种USB设备的软件系统升级方法.pdf_第2页
第2页 / 共12页
一种USB设备的软件系统升级方法.pdf_第3页
第3页 / 共12页
点击查看更多>>
资源描述

《一种USB设备的软件系统升级方法.pdf》由会员分享,可在线阅读,更多相关《一种USB设备的软件系统升级方法.pdf(12页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN101989205A43申请公布日20110323CN101989205ACN101989205A21申请号200910101065422申请日20090803G06F9/445200601G06F13/3820060171申请人杭州国芯科技股份有限公司地址310012浙江省杭州市文三路90号东部软件园创新大厦A座56层72发明人陈科锋刘建华陆斌54发明名称一种USB设备的软件系统升级方法57摘要本发明提出了一种USB设备的软件系统升级方法,支持与PC机互联进行软件系统升级,支持直接从非易失性存储设备读取升级文件进行升级,特别是支持两台设备间自动进行软件系统升级。步骤包括初始。

2、化USB控制器后进入USB升级;USB设备枚举和控制器角色配置;根据USB设备枚举和控制器角色配置的结果选择进入以下流程之一USB文件升级方式、设备模式下的被动升级模式、OTG主机模式下的主动升级。本发明适用于对市场上电子设备的快速、大规模升级,特别是在产品进入流通领域后,用户之间可通过相互连接所购买的不同软件版本的电子产品,自动进行设备软件系统的升级,节省了对旧软件版本的设备进行升级所带来的人力和物力开支。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书1页说明书5页附图5页CN101989205A1/1页21一种USB设备的软件系统升级方法,支持与PC机互联进行软件。

3、系统升级,支持直接从非易失性存储设备读取升级文件进行升级,其特征在于支持两台设备间自动进行软件系统升级。2如权利要求1所述的一种USB设备的软件系统升级方法,其特征在于步骤包括初始化USB控制器后进入USB升级;USB设备枚举和控制器角色配置;根据USB设备枚举和控制器角色配置的结果选择进入以下流程之一USB文件升级方式、设备模式下的被动升级模式、OTG主机模式下的主动升级。3如权利要求2所述的一种USB设备的软件系统升级方法,进一步包括以下步骤S1初始化USB双角色控制器,对USB端口进行超时检测;S2检测到USB端口有设备或主机连接后,进入USB枚举阶段,然后进行控制角色配置如果连接的是一。

4、般的主机端口,则进入S3设备模式下的被动升级模式;如果连接的是相同的OTG设备,则进入S4OTG主机模式下的主动升级;如果连接的是USB存储类设备,则进入S5USB文件升级方式;S3进入USB设备模式升级阶段主机判断从设备读取的系统版本号是否可以升级,如果可以升级,则向设备传输升级代码;S4进入OTG角色协商和配置阶段,默认主机A主机方先从设备B设备读取系统软件版本号,判断软件版本是否比对方高,如果版本高于对方则对其进行系统升级S3;如果低于对方,则进行OTG角色转换,默认主机A主机方变为设备A设备,对方B设备变成B主机,B设备重新对设备进行枚举,进入S2阶段;S5进入USB文件升级方式,先对。

5、USB存储设备进行SCSI初始化,分析磁盘结构,访问支持的文件系统,并从中查找是否存在升级文件,如果存在该文件,读取文件版本号,并依次判断是否需要升级,如果版本高于系统内的版本则读取该文件,升级系统。4如权利要求1所述的一种USB设备的软件系统升级方法中,所述的USB设备指具有USBOTG功能的各种电子设备,其结构包括USB双角色控制器、OTG协商和版本识别程序、以及PC机升级驱动和软件,其特征在于所述USB双角色控制器用于符合USBOTG标准规范,并具备可切换的主机和设备模式;所述OTG协商和版本识别程,是将系统版本比较与USBOTG协商算法结合的程序,即判别系统版本,依照升级角色需要进行O。

6、TG协商的程序;所属PC机升级驱动和软件,是指在利用PC主机对符合本发明所描述升级协议的设备进行识别、升级的程序;所述的USB设备之间通过USB端口进行相互连接。权利要求书CN101989205A1/5页3一种USB设备的软件系统升级方法技术领域0001本方法属于软件领域,特别涉及一种USB设备的软件系统升级方法。背景技术0002随着电子设备功能的增加和技术的丰富,越来越多的电子设备面临着软件系统升级的问题。0003目前常见的电子设备的软件升级方式主要有三种0004一种通过网络连接对固件进行升级。不适用于不具备网络接口的MP3、MP4、PMP播放设备,原因在于这些设备不具备较高的网络硬件配置。。

7、0005另一种通过常见的PC数据端口对设备进行升级,即非网络的升级方式。如通过串口、并口、USB端口、IEEE1394端口等外设接口对设备下载升级固件。但是这种方式需要有升级主机的存在,并安装升级软件才能对设备实施升级。0006第三种方式是将带升级软件的载体插入设备,所述带升级软件的载体可以是光盘、U盘、带升级软件的USB存储设备、SD、MMC、TF卡等,对比文件1中国发明专利申请号2007101248983公布了一种使用USB存储设备实现版本升级和备份的方法将升级数据文件拷贝到USB存储设备,通过升级设备的USB主机功能读取存储设备中的升级文件,更新自身的固件。这种升级方式需要用额外的专用U。

8、SB存储设备来中转主机上的升级程序,产品进入市场后普通消费者难以得到此类升级软件。0007USB是一种在消费类电子设备中应用普遍的技术,其接口具有小巧便利并易于拓扑连接的特点,目前多数消费类电子产品均具有USB接口,可通过USB接口和电脑进行数据传输。0008USBOTGONTHEGO技术是用于增强USB设备互联性的技术,目前具有USBOTG功能的嵌入式消费类电子产品及其技术,仅能实现设备之间的文件交互,无法实现两个USB设备连接后,自动相互进行软件系统升级。例如两个MP3、MP4、PMP、手机之间通过USBOTG进行歌曲、图片、视频或其它文件的互相拷贝,无法实现两个MP3、MP4、PMP、手。

9、机通过USB接口相互连接后,自动将系统软件版本较低的个体升级为系统软件版本较高的个体。发明内容0009针对现有技术的不足,本发明目的在于提出一种USB设备的软件系统升级方法,适用于对市场上电子设备的快速、大规模升级。0010一种USB设备的软件系统升级方法,支持与PC机互联进行软件系统升级,支持直接从非易失性存储设备读取升级文件进行升级,特别是支持两台设备间自动进行软件系统升级。0011一种USB设备的软件系统升级方法,包括初始化USB控制器后进入USB升级;USB设备枚举和控制器角色配置;根据USB设备枚举和控制器角色配置的结果选择进入以下流程之一USB文件升级方式、设备模式下的被动升级模式。

10、、OTG主机模式下的主动升级。说明书CN101989205A2/5页40012所述USB设备的软件系统升级方法,进一步包括以下步骤0013S1初始化USB双角色控制器,对USB端口进行超时检测;0014S2检测到USB端口有设备或主机连接后,进入USB枚举阶段,然后进行控制角色配置如果连接的是一般的主机端口,则进入S3设备模式下的被动升级模式;如果连接的是相同的OTG设备,则进入S4OTG主机模式下的主动升级;如果连接的是USB存储类设备,则进入S5USB文件升级方式;0015S3进入USB设备模式升级阶段主机判断从设备读取的系统版本号是否可以升级,如果可以升级,则向设备传输升级代码;0016。

11、S4进入OTG角色协商和配置阶段,默认主机A主机方先从设备B设备读取系统软件版本号,判断软件版本是否比对方高,如果版本高于对方则对其进行系统升级S3;如果低于对方,则进行OTG角色转换,默认主机A主机方变为设备A设备,对方B设备变成B主机,B设备重新对设备进行枚举,进入S2阶段;0017S5进入USB文件升级方式,先对USB存储设备进行SCSI初始化,分析磁盘结构,访问支持的文件系统,并从中查找是否存在升级文件,如果存在该文件,读取文件版本号,并依次判断是否需要升级,如果版本高于系统内的版本则读取该文件,升级系统。0018本发明所述的USB设备指具有USBOTG功能的各种电子设备,其结构包括U。

12、SB双角色控制器、OTG协商和版本识别程序、以及PC机升级驱动和软件,其特征在于所述USB双角色控制器用于符合USBOTG标准规范,并具备可切换的主机和设备模式;所述OTG协商和版本识别程,是将系统版本比较与USBOTG协商算法结合的程序,即判别系统版本,依照升级角色需要进行OTG协商的程序;所属PC机升级驱动和软件,是指在利用PC主机对符合本发明所描述升级协议的设备进行识别、升级的程序;所述的USB设备之间通过USB端口进行相互连接。0019本发明在支持上述两种USB通用软件系统升级方式上,实现了设备间的机对机升级方式,可以减少设备端口配置,降低成本,弥补了原有技术的不足,适用于对市场上电子。

13、设备的快速、大规模升级,特别是在产品进入流通领域后,普通用户之间可通过相互连接所购买的不同软件版本的MP3/MP4/PMP/手机等产品,自动进行设备软件系统的升级,厂商无需专门下载升级软件、推广新的软件版本,节省了对旧的软件版本的设备进行升级所带来的人力和物力开支。附图说明0020图1USB设备的升级程序总体流程图。0021图2USB设备的升级程序具体流程图。0022图3OTG协商和版本识别程序。0023图4处于设备模式下的升级程序流程图。0024图5设备处于主机模式下的升级程序流程图。0025图6通过U盘文件进行升级的流程图。具体实施方式0026以下结合具体实施例,对本发明的一种USB设备的。

14、软件系统升级方法做进一步解说明书CN101989205A3/5页5释。0027本发明所述的USB设备,指具有USBOTG功能的各种电子设备,包括但不限于具有USB接口和USBOTG控制器的数码音乐/视频播放装置如MP3/MP4/PMP/移动电视等、移动通信装置如手机、PDA等、数码相机/摄像机、非易失性存储装置如U盘等、以及扫描仪、传真机、打印机等。0028本发明首先初始化USB控制器后进入USB升级;USB设备枚举和控制器角色配置;根据USB设备枚举和控制器角色配置的结果选择进入以下流程之一USB文件升级方式、设备模式下的被动升级模式、OTG主机模式下的主动升级。0029图1是本发明具体实施。

15、的总框图,包括以下步骤0030S1初始化USB双角色控制器,对USB端口进行超时检测;0031S2检测到USB端口有设备或主机连接后,进入USB枚举阶段,然后进行控制角色配置如果连接的是一般的主机端口,则进入S3设备模式下的被动升级模式;如果连接的是相同的OTG设备,则进入S4OTG主机模式下的主动升级;如果连接的是USB存储类设备,则进入S5USB文件升级方式;0032S3进入USB设备模式升级阶段主机判断从设备读取的系统版本号是否可以升级,如果可以升级,则向设备传输升级代码;0033S4进入OTG角色协商和配置阶段,默认主机A主机方先从设备B设备读取系统版本号,判断版本是否比对方高,如果版。

16、本高于对方则对其进行系统升级S3;如果低于对方,则进行OTG角色转换,默认主机A主机方变为设备A设备,对方B设备变成B主机,B设备重新对设备进行枚举,进入S2阶段;0034S5进入USB文件升级方式,先对USB存储设备进行SCSI初始化,分析磁盘结构,访问支持的文件系统,并从中查找是否存在升级文件,如果存在该文件,读取文件版本号,并依次判断是否需要升级,如果版本高于当前系统的版本,则读取该文件,并升级系统。0035图2是本发明的具体流程图。设备启动执行初始化USB硬件101,并开启对USB总线状态的检测,也就是对USBOTG的状态判断102,如果OTGID是0,则进入A主机模式103;如果ID。

17、为1,则进入B设备模式。如果设备处于A主机模式,此时USB双角色控制作为USB主机可以向设备进行枚举操作,通过从设备读取的相关描述符,判断设备是否具备本发明所描述的几种升级功能104,如果不能支持,则断开USB设备114,结束USB升级程序,并返回升级失败;如果设备支持升级功能,则判断设备的类别105,如果该设备属于OTG升级方式的设备,则进入OTG角色协商程序107,进行USB主设之间的角色协商;如果该设备属于USB存储类设备,则进入USB文件升级模式109;如果该设备既不属于OTG升级方式设备,也不属于USB存储类设备,那么说明它不支持本发明所涉及的升级方式,断开该设备114,结束USB升。

18、级,并返回升级失败。在判断OTGID102后,如果设备处于B设备模式,此时对方主机在枚举本设备后,支持OTG升级模式106,则进入OTG角色协商程序107;如果对方是普通主机,不支持OTG升级模式,则本设备将进入设备模式下的升级模式110。在OTG角色协商107后,程序将会判断USB控制器是否处于主机模式108,如果是主机模式,则进入OTG主机升级模式114来执行升级操作;如果不是主机模式112,如果是A设备,则需要切换USB控制器的角色111,接着进入设备模式下的升级方式110,如果不是A设备,则直接进入设备模式下的升级方式110。完成在设备模式下的升级110后,或者完成在OTG主机升级模式。

19、说明书CN101989205A4/5页6113,或者完成USB文件升级模式109后,则会断开设备114,结束USB升级程序,并根据升级结果返回错误值。0036图3OTG角色协商程序是将USB双角色控制器的OTG的功能和升级版本识别程序的结合。如图所示,左右两侧分别是两种OTG模式下的情况。在进入OTG角色协商程序201后,A主机端读取B设备系统版本号202,与设备本身的软件系统版本号进行比较203,如果对方系统版本比本地系统版本新,则进入主机模式下的升级模式205,如果比对方的版本旧,则进入与B设备进行OTG角色转换过程在主机端,配置OTG相关寄存器,使能USBSRP和HNP请求206,这个操。

20、作会导致USB总线挂起,交出USB总线控制权,当B设备检测到总线挂起210之后,配置OTG寄存器,向主机发出SRP请求211;当主机检测到SRP请求之后,接着等待设备HNP请求208,此时设备发出HNP212,主机进入A设备模式209,设备进入B主机模式213。此时A/B设备间的角色转换完成,A设备进入设备模式下的升级,B设备则进入OTG主机模式下的升级。0037图4如果设备与PC主机连接,设备则会直接进入设备模式下的升级程序;如果连接的是同样支持升级功能的OTG设备,通过一定的协商,可以处于设备模式进行升级。设备模式下的升级方式是一种被动升级的状态。进入设备模式下的升级方式301之后,主机就。

21、会对设备进行枚举302,之后请求设备的系统版本信息,接着配置设备的升级参数303,如需要下载的升级程序的大小、在设备内存SDRAM中的基地址等信息。设备将会对这些参数进行判断是否正确304,如果参数不正确,则会设置USB通信端点挂起STALL309,返回参数出错311。如果判断主机配置的参数正确,则进入数据传输阶段,开始接收主机的升级数据305,传输结束后,判断传输过程中是否出错306,如果传输出错,则设置端点挂起309,返回传输出错311;如果传输没有出错,则开始对数据进行校验307,判断检验是否通过308,如果校验通过,则说明本次升级成功,返回升级参数310;如果校验不通过,则设置端点ST。

22、ALL309,返回校验错误311。0038图5主机模式下的OTG设备可能是A设备或者B设备。进入主机模式下的升级401后,主机开始对设备进行枚举402,获取设备的系统版本信息,确认一下版本信息如果是普通主机如PC则需要判别一下是否可以对该版本的设备进行升级,如果不可以则需要放弃升级。随后配置设备的升级参数403,判断参数是否设置成功404,如果发现设备通信端点已经挂起STALL,则说明设备不接受这些配置的参数,返回参数配置有误的错误408;如果配置成功,则开始从本地ROM中读取升级程序下载到设备中405,在下载过程中查询端点是否STALL406,如遇到端点STALL,说明下载失败,返回数据传输。

23、不成功的错误409。下载完成后,开始查询设备对下载数据的校验结果407,如果不通过则返回程序校验不通过错误410;如果校验通过,则说明下载成功411。0039图6如果连接的是一个USB存储类设备,如U盘、移动硬盘等,则会进入USB文件升级方式501。由于之前已经对设备进行枚举过,此时开始初始化SCSI设备502注USB大容量存储类属于SCSI协议规范,即需要调用SCSI主机接口。SCSI初始化完毕之后,开始识别磁盘上的分区503,判断是否是可以支持的分区504,如果不支持,则返回分区不支持错误508;如果支持该分区,则开始查找升级文件505,如果没有找到该文件,则返回查找文件失败错误509;如。

24、果找到该文件,则读取文件版本信息,判断版本信息是否可以支持升级506,如果不支持则返回版本不支持错误510;如果支持升级,则开始读取该升级文件507,说明书CN101989205A5/5页7如果在读取过程未出现错误,则说明升级完成510,返回升级信息;如果出现错误则返回文件读取错误。0040应当指出,以上所述仅为本发明的一个实施例,并非本发明的限制范围,对于本领域的普通技术人员来说,凡是本发明的精神和原则之内所做的任何修改、等同替换或改进,均应包含在本发明的保护范围之内。说明书CN101989205A1/5页8图1说明书附图CN101989205A2/5页9图2说明书附图CN101989205A3/5页10图3图4说明书附图CN101989205A4/5页11图5说明书附图CN101989205A5/5页12图6说明书附图。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1