专利名称:由主机端控制usb设备端的控制方法和电子系统的制作方法
由主机端控制USB设备端的控制方法和电子系统
技术领域:
本发明涉及一种USB设备上操作的方法,特别是关于一种由主机端控制USB设备 端的控制方法和电子系统。
背景技术:
USB (Universal Serial Bus)即通用串行总线,是一个外部总线标准,用于规范电 脑与外部设备的连接和通讯,是应用在PC领域的接口技术。USB接口支持设备的即插即用 和热插拔功能,因此,被广泛应用于个人电脑和移动设备等信息通讯产品,并扩展至摄影器 材、数字电视(机顶盒)、游戏机等其它相关领域。而在USB设备中经常会对其内部的器件进行操作处理,一般的处理方法通常存在 编写程序麻烦而且不容易扩展的问题,从而不能够特别的灵活,如当前在嵌入式系统中应 用越来越普遍的烧写电子设备,如果想改变当前的烧写方法、速度或内容等,还需要重新进 行编程来实现,这样会浪费相当大的时间和精力。因此有必要提出一种改进的技术方案来克服上述问题。
发明内容本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施 例。在本部分以及本申请的说明书摘要和发明名称中可能会做些简化或省略以避免使本部 分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。本发明的目的之一在于提供一种由主机端控制USB设备端的控制方法,其通过 USB Vendor扩展了 USB设备中器件的自定义操作,也使得程序人员可以在这个程序的框架 上灵活应对可能的新需求。本发明的目的之二在于提供一种由主机端控制USB设备端的电子系统,其通过 USB Vendor扩展了 USB设备中器件的自定义操作,也使得程序人员可以在这个程序的框架 上灵活应对可能的新需求。根据本发明的一方面,本发明提供一种由主机端控制USB设备端的控制方法,其 主机端包括上层操作模块、封装驱动命令模块和低层驱动模块,设备端包括主机响应模块 和驱动程序模块,其特征在于,其包括在所述上层操作模块中自定义USB协议中Vendor子命令;所述封装驱动命令模块将所述Vendor子命令封装在操作系统中的USB设备驱动 命令中;所述上层操作模块通过封装有所述Vendor子命令的USB设备驱动命令调用所述 低层驱动模块中的低层驱动程序以驱动所述USB设备端;所述USB设备端的主机响应模块响应主机驱动请求,接收并解析所述驱动命令中的所述Vendor子命令;和所述USB设备端驱动程序模块根据所述Vendor子命令调用USB设备内相应器件的驱动程序,控制USB设备内相应器件的动作。进一步的,所述操作系统为Windows操作系统、Unix操作系统或Linux操作系统。进一步的,在所述主机端和所述设备端传递操作子命令时,需要按照USB的标准 协议进行传递。进一步的,在所述Vendor子命令中可以加入多个参数以实现通过一次性传递多 个参数来控制任意多精度的操作。进一步的,所述驱动程序包括flash驱动程序或其他驱动程序。根据本发明的另一方面,本发明提供一种由主机端控制USB设备端的电子系统, 其中所述主机包括上层操作模块、封装驱动命令模块和低层驱动模块,所述带USB接口的 设备端包括主机响应模块和驱动程序模块,其特征在于所述上层操作模块自定义USB协议中Vendor子命令并调用下层操作系统驱动程 序命令完成功能;所述封装操作命令模块将所述Vendor子命令封装到所述驱动程序命令中以供上 层操作模块进行调用;所述上层操作模块通过封装Vendor子命令后的驱动程序命令调用低层驱动模块 中的驱动程序以驱动所述与主机端相连的对应的设备端;所述设备端的主机响应模块响应主机驱动请求,接收并解析所述封装后的驱动程 序命令中的Vendor子命令;和所述USB设备端驱动程序模块调用USB设备内相应器件的驱动程序,控制USB设 备内相应器件的动作。进一步的,所述操作系统为Windows操作系统、Unix操作系统或Linux操作系统。进一步的,在所述主机端和所述设备端传递操作子命令时,需要按照USB的标准 协议进行传递。进一步的,在所述Vendor操作子命令中可以加入多个参数以实现通过一次性传 递多个参数来控制任意多精度的操作。进一步的,所述驱动程序包括flash驱动程序或其他驱动程序。与现有技术相比,本发明通过扩展USB Vendor在主机端自定义Vendor操作子命令,其对应的USB设备端上的USB程序解析识别出所述Vendor操作子命令后调用对应器件 的驱动程序来实现某些功能,使得程序人员针对新的需求在原有程序的框架上灵活地进行 更改。
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用 的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本 领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它 的附图。其中图1为本发明中由主机端控制带有USB接口的设备端的电子系统的框图;和图2为本发明中由主机端控制带有USB接口的设备端的控制方法流程图。
具体实施方式本发明的详细描述主要通过程序、步骤、逻辑块、过程或其他象征性的描述来直接或间接地模拟本发明技术方案的运作。为透彻的理解本发明,在接下来的描述中陈述了很 多特定细节。而在没有这些特定细节时,本发明则可能仍可实现。所属领域内的技术人员 使用此处的这些描述和陈述向所属领域内的其他技术人员有效的介绍他们的工作本质。换 句话说,为避免混淆本发明的目的,由于熟知的方法和程序已经容易理解,因此它们并未被 详细描述。此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中 的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一 个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。此外,表示一个或多 个实施例的方法、流程图或功能框图中的模块顺序并非固定的指代任何特定顺序,也不构 成对本发明的限制。图1为本发明中通过由主机端控制带有USB接口的设备端的电子系统100的框 图。请参阅图1所示,所示装置100包括主机端110和设备端130,其中所述主机端110包 括上层操作模块1101、封装驱动命令模块1102和低层驱动模块1103,所述设备端120包括 响应主机模块1201和驱动程序模块1202,其通过所述主机端的上层操作来实现所述USB设 备端中驱动程序的操作。所述主机端上层操作模块1101,自定义USB协议中Vendor子命令,并调用下层驱 动程序命令以完成相应功能。具体来讲,对于所述设备端120中的驱动程序模块1202中要 实现的功能可以在所述主机端上层操作模块1101中定义相应的Vendor操作子命令。在一 个实施例中,假定在可烧写的电子设备上实现flash的烧写,可以在所述主机端上层操作 模块1101中定义Vendor操作子命令,此时这里的Vendor操作子命令则可以为flash烧写。在具体实现时,所述主机端可以为Windows操作系统,也可以为Unix操作系统或 Linux操作系统,其中驱动程序命令在不同的操作系统会有不同的定义,如在Windows操作 系统时,这里的驱动程序命令则为Windows DDK API。所述封装驱动命令模块1102,将所述Vendor子命令封装在操作系统中的USB设备 驱动命令中,并调用所述低层驱动模块1103中的驱动程序以驱动所述与主机端110相连的 对应的设备端。在一个实施例中,如主机端为Windows操作系统时,所述封装驱动命令模块 1102将通过调用操作系统设备驱动程序函数(Windows DDK API)将Vendor子命令封装在 所述驱动程序函数中,所述函数调用Windows低层驱动并驱动与所述Vendor子命令相对应 的设备端,也就是说,所述Vendor子命令是根据某一个特定的设备端而建立的,在进行驱 动时,选取的低层驱动程序应该只能驱动这一个特定的设备端,而非其他与主机端相连的 设备端。该模块的实现是每一个普通技术领域的人员都能够实现的,这里就不再详述了。所述低层驱动1103模块,操作系统上的驱动,可以通过调用所述低层驱动来操作 与主机端连接的且对应于所述低层驱动的设备端。所述响应主机模块1201,用于维护USB程序的状态,不断地响应主机的请求,并 接受所述封装驱动命令模块1102中已经封装后的驱动命令,其包含Vendor子命令,以进 行解析。解析完成后生成需要做的操作内容,将通过访问所述设备端120的驱动程序来完 成相应功能。具体来讲,这里的解析内容是所述主机端上层操作模块中定义的所述自定义Vendor操作子命令,也就是说,在实际应用中需要将所述主机端110和所述USB设备端120 统一按照开始定义好的命令来进行程序调用。在一个实施例中,对于烧写电子设备端上的 flash读写操作,则可以将所述自定义Vendor操作子命令定义为对设备上flash读写操作。 在一个较佳的实施例中,所述flash读写操作还可以具体定义为写到什么地方等。
所述驱动程序模块1202,能够操作所述设备端120设备上的驱动程序,供上层 调用以完成某个功能。举例来讲,若上述要完成的某一功能为进行flash烧写时,则调用 flash烧写驱动程序以实现烧写功能,当然在具体的应用中,具体的功能则可以对应不同的 驱动程序。通过如上系统100则可以实现程序员在建立好的程序框架上通过对USBVendor的 扩展及更改Vendor子命令来灵活地实现新的功能。当然还可以定义USB Vendor命令以控 制设备端(嵌入式)的其他行为,包括具体的动作,使得在主机端控制下更加容易地控制设 备端。由上可知,本发明通过自定义的一个应用程序,其中封装了 Vendor子命令,实现了更 为复杂的操作,在实际应用中,为了更好的实现应用,在本发明的自定义的应用程序中还可 以通过自定义的方式封装传统的驱动程序命令,以支持或实现传统的驱动操作。图2为本发明中由主机端控制带有USB接口的设备端的控制方法流程图。请参阅 图2所示,所述方法包括步骤210,开始;步骤220,首先定义好“自定义Vendor操作子命令”,并调用下层的操作系统的设 备驱动程序命令,具体来讲,当需要实现具体的操作时,则定义对应的Vendor操作子命令, 随后调用系统的下层的设备驱动程序命令来实现所述操作;步骤230,将所述“自定义Vendor操作子命令”封装在操作系统设备驱动命令中以 形成供步骤220调用的下层设备驱动程序命令,并由所述操作系统设备驱动命令进一步调 用系统低层驱动以驱动对应的设备端,具体来讲,如在Windows系统中,则需要将“自定义 Vendor操作命令”封装在Windows DDK API函数中以供上述驱动程序调用,而封装后的驱 动命令则调用Windows低层驱动,从而驱动对应的所述设备端120 ;步骤240,响应主机请求,接受所述传递的驱动命令并解析驱动命令,也就是解析 主机端上层操作模块1101中的操作,此时驱动命令是已封装Vendor子命令后的驱动命令, 由此可见,此时解析的Vendor子命令与所述的PC端定义的Vendor子命令是一致的;步骤250,解析完成后,调用USB设备端的驱动程序来完成相应的操作,即调用USB 设备端内相应器件的驱动程序,控制USB设备内相应器件的动作;步骤260,结束。在一个具体的实施例中,为了在烧写电子设备上实现可控的灵活的flash烧写, 可以利用上述方法,具体为首先在主机端的上层操作模块1101中添加flash烧写的 Vendor操作子命令,随后将关于所述flash烧写的Vendor操作子命令添加到系统中的设 备驱动命令中并调用系统中低层驱动将所述封装后的驱动命令传递到所述设备端120上, 随后所述设备端120上的USB响应主机驱动命令(由上可知,其包括Vendor子命令)的请 求并进行解析,之后进一步通过调用控制flash的驱动程序,以实现控制所述设备端120的 flash烧写的目的。需要注意的是,由于本发明中利用USB Vendor的扩展来完成USB设备端中的操作,所以在所述主机端和所述USB设备端传递子命令时,需要按照USB的标准协议。由本发明的实现思想可知,不仅仅上述举的操作flash的烧写,还可以扩展为对flash的读写以及具体到写到什么地方等等,当然还可以控制设备端上的其他器件,只需要 将所述功能定义为Vendor操作子命令就可以通过上述步骤来实现。由此可以看出,对于已 经通过上述方法或装置实现某些功能的所述设备端120而言,若想更新或增加另一些功能 则只需要更改所述自定义的Vendor操作子命令就可以实现了,其在主机端更改的代码量 非常小。在一些较佳的实施例中,所述方法中定义的“自定义Vendor操作子命令”还可以 加入多个参数,使得可以同时实现多个操作,如在进行flash烧写的同时还能进行读写或 计时操作等。所述领域的普通技术人员对本发明的方法均能够通过软件、硬件或软硬件结合来 的方式来实现。综上所述,本发明通过在主机端的操作层上根据设备端要实现的功能来定义好 Vendor操作子命令,并在对应于所述Vendor操作子命令的带有USB接口的设备端进行响应 主机的操作时进行相应的解析,则可以通过主机端来控制设备端。其可以针对设备端的操 作,在主机端直接进行小量的修改,从而完成相应的设备上驱动程序完成功能,使之更加灵 活方便。上述说明已经充分揭露了本发明的具体实施方式
。需要指出的是,熟悉该领域的 技术人员对本发明的具体实施方式
所做的任何改动均不脱离本发明的权利要求书的范围。 相应地,本发明的权利要求的范围也并不仅仅局限于前述具体实施方式
。
权利要求
一种由主机端控制USB设备端的控制方法,其主机端包括上层操作模块、封装驱动命令模块和低层驱动模块,设备端包括主机响应模块和驱动程序模块,其特征在于,其包括在所述上层操作模块中自定义USB协议中Vendor子命令;所述封装驱动命令模块将所述Vendor子命令封装在操作系统中的USB设备驱动命令中;上层操作模块通过封装有所述Vendor子命令的USB设备驱动命令调用所述低层驱动模块中的低层驱动程序以驱动所述USB设备端;所述USB设备端的主机响应模块响应主机驱动请求,接收并解析所述驱动命令中的所述Vendor子命令;和所述USB设备端驱动程序模块根据所述Vendor子命令调用USB设备内相应器件的驱动程序,控制USB设备内相应器件的动作。
2.根据权利要求1所述的由主机端控制USB设备端的控制方法,其特征在于所述操 作系统为Windows操作系统、Unix操作系统或Linux操作系统。
3.根据权利要求1所述的由主机端控制USB设备端的控制方法,其特征在于在所述 主机端和所述设备端传递操作子命令时,需要按照USB的标准协议进行传递。
4.根据权利要求1所述的由主机端控制USB设备端的控制方法,其特征在于在所述 Vendor子命令中可以加入多个参数以实现通过一次性传递多个参数来控制任意多精度的 操作。
5.根据权利要求1所述的由主机端控制USB设备端的控制方法,其特征在于所述驱 动程序包括flash驱动程序或其他驱动程序。
6.一种由主机端控制USB设备端的电子系统,其中所述主机包括上层操作模块、封装 驱动命令模块和低层驱动模块,所述带USB接口的设备端包括主机响应模块和驱动程序模 块,其特征在于所述上层操作模块自定义USB协议中Vendor子命令并调用下层操作系统驱动程序命 令完成功能;所述封装驱动命令模块将所述Vendor子命令封装到所述驱动程序命令中以供上层操 作模块进行调用;所述上层操作模块通过封装Vendor子命令后的驱动程序命令调用低层驱动模块中的 驱动程序以驱动所述与主机端相连的对应的设备端;所述设备端的主机响应模块响应主机驱动请求,接收并解析所述封装后的驱动程序命 令中的Vendor子命令;和所述USB设备端驱动程序模块根据所述Vendor子命令调用USB设备内相应器件的驱 动程序,控制USB设备内相应器件的动作。
7.根据权利要求6所述的由主机端控制USB设备端的电子系统,其特征在于所述操 作系统为Windows操作系统、Unix操作系统或Linux操作系统。
8.根据权利要求6所述的由主机端控制USB设备端的电子系统,其特征在于在所述 主机端和所述设备端传递操作子命令时,需要按照USB的标准协议进行传递。
9.根据权利要求6所述的由主机端控制USB设备端的电子系统,其特征在于在所述Vendor操作子命令中可以加入多个参数以实现通过一次性传递多个参数来控制任意多精 度的操作。
10.根据权利要求6所述的由主机端控制USB设备端的电子系统,其特征在于所述驱 动程序包括flash驱动程序或其他驱动程序。
全文摘要
本发明提供一种由主机端控制USB设备端的控制方法,其主机端包括上层操作模块、封装驱动命令模块和低层驱动模块,设备端包括主机响应模块和驱动程序模块,其中,在所述上层操作模块中自定义USB协议中Vendor子命令;所述封装驱动命令模块将所述Vendor子命令封装在操作系统中的USB设备驱动命令中;上层操作模块通过封装有所述Vendor子命令的USB设备驱动命令调用所述低层驱动模块中的低层驱动程序以驱动所述USB设备端;所述USB设备端的主机响应模块响应主机驱动请求,接收并解析所述驱动命令中的所述Vendor子命令;所述USB设备端驱动程序模块根据所述Vendor子命令调用USB设备内相应器件的驱动程序,控制USB设备内相应器件的动作。
文档编号G06F13/10GK101840381SQ20101016501
公开日2010年9月22日 申请日期2010年5月7日 优先权日2010年5月7日
发明者孙光跃, 艾国 申请人:无锡中星微电子有限公司