设备即插即用通用驱动方法

文档序号:7772813阅读:250来源:国知局
设备即插即用通用驱动方法
【专利摘要】一种设备即插即用通用驱动方法,包括建立驱动框架以及开发阶段和运行阶段的即插即用机制,开发阶段的即插即用机制用于集成各种不同设备的驱动程序,运行阶段的即插即用机制用于在系统程序已经运行的情况下,插上新设备就能匹配到对应的驱动程序,实现设备的自动加载。本发明在开发阶段仅需进行少量人工配置信息即可自动生成设备驱动及设备测试程序,在减少了开发人员的工作量的同时,也保证了设备驱动和设备硬件的健壮性;在使用阶段实现了零配置实现即插即用,用户插上设备就能在本地主机或者服务器上获取设备驱动,若没有相应驱动,仅需提供开发人员给的设备描述信息即可自动生成设备驱动。
【专利说明】设备即插即用通用驱动方法
【技术领域】
[0001]本发明属于设备集成自动化【技术领域】,应用于设备具有多样性,异构性的场景,具体涉及一种设备即插即用通用驱动方法。
【背景技术】
[0002]在当今硬件设备不断发展的背景下,越来越多的不同种类的设备需要被集成到一台计算机上,尤其是诸多系统集成应用,通常要集成多种设备到一台主机,或各种外围设备变换的情况下都要求应用程序无需额外配置正常使用。
[0003]在开发阶段,开发过程中的即插即用机制,即集成开发这些新设备是非常耗时耗力的,主要原因在于,现存的开发方式要求开发者花费很多精力在解读设备协议,编码驱动,检测与调试设备驱动上。而完成了驱动程序之后,如何检测驱动与硬件本身对于开发人员也是一个问题,通常,开发人员需要自己编写测试程序区测试。
[0004]在运行阶段,使用过程中的即插即用机制,即设备的自动加载也是一个很重要的方面。主要原因在于,对于一台新的主机与新的设备,主机如何能自动识别新设备,并且能获取相应的驱动程序,使得设备能自动加载是一个问题。
[0005]目前对于设备的开发方面的不足可以归纳如下:
[0006]I)无法实现不同种类设备的即插即用的机制
[0007]2)驱动开发周期长,效率低
[0008]3)无法保证设备驱动与设备硬件的健壮性
[0009]针对以上问题,如何改进现有的驱动方法,实现各种设备在不同阶段的即插即用机制,使得开发人员在开发阶段能更加方便快捷的开发一个新设备,既能提高效率,又能保证驱动与设备硬件的健壮性,还能使用户在使用阶段随时使用插上的新设备,是一个亟待解决的问题。因此,提出一个设备即插即用通用驱动方法,用于实现设备的即插即用机制,在系统开发时集成设备,以及在设备运行维护时动态加载驱动是非常必要的。

【发明内容】

[0010]为了克服上述现有技术的缺点,本发明的目的在于提供一种设备即插即用通用驱动方法,使其能够以低成本、高效率的方式去开发一个设备,弥补目前开发驱动过程中繁琐复杂的缺陷,解决目前设备使用过程中无法自动加载的问题,实现设备不同阶段的即插即用机制,达到降低开发成本、加快开发过程、方便使用的目的。
[0011]为了实现上述目的,本发明采用的技术方案是:
[0012]一种设备即插即用通用驱动方法,包括建立驱动框架以及开发阶段和运行阶段的即插即用机制,其中,
[0013]所述驱动框架包括驱动方法定义、驱动自动生成方法、驱动和设备测试方法以及设备加载方法;
[0014]所述开发阶段的即插即用机制建立过程如下:[0015]a,根据驱动框架要求提交设备的描述信息;
[0016]b,驱动框架根据设备描述信息生成设备驱动以及相应的测试程序,并检测驱动以及设备硬件;
[0017]C,若设备及驱动通过测试,则接受该设备以及驱动,将设备驱动放入指定地点,使用动态映射机制实现设备的动态加载,完成开发阶段的集成开发,实现即插即用机制;
[0018]所述运行阶段的即插即用机制建立过程如下:
[0019]a,对于新主机与新设备,当设备被添加到主机上时,主机自动获取设备描述信息与本地已有的设备信息进行匹配;
[0020]b,若匹配成功,则表示主机已有该设备驱动,直接调用该驱动程序实现即插即用机制;
[0021]C,若匹配不上,则表示主机没有该设备驱动,需从服务器段获取设备驱动;
[0022]d,若服务器端有对应的设备驱动程序,则下载到本地;
[0023]f,若服务器端没有对应的设备驱动程序,服务器或者本地主机则根据设备描述信息和驱动框架自动产生相应的驱动程序,并在获取设备驱动之后,将其放入指定地点,使用所述动态映射机制去实现设备的动态加载,完成使用阶段的设备自动加载,实现即插即用机制。
[0024]上述开发阶段的即插即用机制用于集成各种不同设备的驱动程序,运行阶段的即插即用机制用于在系统程序已经运行的情况下,插上新设备就能匹配到对应的驱动程序,实现设备的自动加载,而驱动框架的提出是为了服务于即插即用机制的实施。
[0025]所述驱动方法定义中,将各个驱动程序进行模块化编写,将设备本身的每一项功能对应于驱动中的一个函数,同时驱动程序中还包含对收到数据进行解析的函数,通过调用驱动程序中的函数即可实现设备的相应功能。
[0026]所述驱动自动生成方法实现步骤如下:
[0027]a,根据设备描述信息判定设备所用设备通信协议;
[0028]b,根据设备通信协议确定设备与主机建立连接的具体方法;
[0029]C,根据设备描述信息中的每一个功能,对应与设备驱动中的一个函数,该函数发送相应指令给设备;
[0030]d,设备驱动中还应包括对收到数据进行解析的函数,解析方法从设备描述信息中获取;
[0031]e,根据设备通信协议断开连接,完成驱动函数。
[0032]在根据设备的描述信息生成驱动程序的同时,根据如下方法自动生成一个设备模拟器程序,便于测试中使用:
[0033]a,根据设备描述信息判定设备所用通信协议;
[0034]b,根据设备通信协议确定设备与主机建立连接的具体方法;
[0035]C,根据设备描述信息确定设备模拟器收到不同指令后应该返回的对应数据,这里应当考虑到数据边界;
[0036]d,根据设备通信协议断开连接,完成设备模拟程序。
[0037]所述设备的描述信息为两个配置文件,devSpec.xml和devAP1.xml, devSpec.xml包含设备的具体功能函数信息以及解析数据的方法,devAP1.xml包含设备设备驱动程序可被外部程序调用的所有接口,即devSpec.xml中描述的所有函数。
[0038]在开发阶段检测驱动以及设备硬件的方法是:驱动框架根据设备描述信息生成设备驱动以及相应的测试程序后,通过轮询方式得到端口号,然后对设备驱动进行单元测试,并对设备硬件进行可用性测试。在驱动程序根据设备描述信息生成的同时,一个设备模拟器程序也会同时自动生成,便于测试中使用。
[0039]为了实现即插即用功能,设备的端口号是必要的。设备即插即用通用驱动方法采用了自动搜寻端口号的方式去定位设备,方法如下:
[0040]I)获取当前主机的所有该设备类型的端口号
[0041]2)对所有该设备类型的端口号顺序的发出该设备的识别指令
[0042]3)匹配返回数据与devSpec.xml中描述的ACK (设备收到指令后应该返回的数据),若匹配上则确认该设备的端口号,否则转向下一端口。若所有端口都匹配不上,则该设备不存在与此主机上。
[0043]对于一些没有识别指令的设备,可以在该设备的所有指令中选择一个类似的指令,使用该指令为识别指令。
[0044]所述驱动和设备测试方法包括单元测试与可用性测试,所述单元测试为对设备的软件测试,即设备驱动的测试,利用一个遵从规范的设备驱动与设备模拟器程序,从devAP1.xml中读取所有需要被测试的接口,从devSpec.xml中读取相应的具体信息,通过与模拟器的交互检验设备驱动的正确性;对于通过单元测试的设备,需要进行可用性测试去检测设备的硬件,所述可用性测试为设备的硬件测试,即设备本身的测试,可用性测试分为功能测试与压力测试;功能测试用来检测设备能够提供驱动中实现的所有功能,压力测试检验设备硬件在长时间的运行状态下能否正常工作。
[0045]功能测试的程序与单元测试的程序是一样的,唯一的差别是用真实的设备去代替了设备模拟器程序。通过调用devAP1.xml中的所有接口去测试硬件设备功能。
[0046]压力测试与功能测试的程序也几乎是一样的,只不过增加了长时间运行的要求,故通过少量的源代码修改,使得功能测试程序循环运行即可实现在长时间运行状态下检测硬件是否正常工作。
[0047]所述设备加载方法为程序加载设备时使用动态映射机制去加载设备,获取端口号之后,把通过测试的驱动程序放入指定路径下即可实现设备的自动加载。
[0048]所述动态映射机制包括但不局限于java,c#的反射机制等,所述设备的描述信息包括设备ID以及设备描述文件。
[0049]与现有技术相比,本发明两种不同阶段的即插即用机制,在开发阶段仅需进行少量人工配置信息即可自动生成设备驱动及设备测试程序,在减少了开发人员的工作量的同时,也保证了设备驱动和设备硬件的健壮性;在使用阶段实现了零配置实现即插即用,用户插上设备就能在本地主机或者服务器上获取设备驱动,若没有相应驱动,仅需提供开发人员给的设备描述信息即可自动生成设备驱动。
【专利附图】

【附图说明】
[0050]图1是本发明驱动规范的结构图。
[0051]图2是本发明的开发流程图。[0052]图3是本发明的使用流程图。
【具体实施方式】
[0053]下面结合附图和实施例详细说明本发明的实施方式。
[0054]以串口设备血压计为例说明即插即用机制的实现过程。
[0055]开发阶段:
[0056]1、设备描述信息
[0057]血压计设备提供3项功能,显示如下:
[0058]
【权利要求】
1.一种设备即插即用通用驱动方法,包括建立驱动框架以及开发阶段和运行阶段的即插即用机制,其特征在于, 所述驱动框架包括驱动方法定义、驱动自动生成方法、驱动和设备测试方法以及设备加载方法; 所述开发阶段的即插即用机制建立过程如下: a,根据驱动框架要求提交设备的描述信息; b,驱动框架根据设备描述信息生成设备驱动以及相应的测试程序,并检测驱动以及设备硬件; C,若设备及驱动通过测试,则接受该设备以及驱动,将设备驱动放入指定地点,使用动态映射机制实现设备的动态加载,完成开发阶段的集成开发,实现即插即用机制; 所述运行阶段的即插即用机制建立过程如下: a,对于新主机与新设备,当设备被添加到主机上时,主机自动获取设备描述信息与本地已有的设备信息进行匹配; b,若匹配成功,则表示主机已有该设备驱动,直接调用该驱动程序实现即插即用机制; C,若匹配不上,则表示主机没有该设备驱动,需从服务器段获取设备驱动; d,若服务器端有对应的设备驱动程序,则下载到本地; f,若服务器端没有对应的设备驱动程序,服务器或者本地主机则根据设备描述信息和驱动框架自动产生相应的驱动程序,并在获取设备驱动之后,将其放入指定地点,使用所述动态映射机制去实现设备的动态加`载,完成使用阶段的设备自动加载,实现即插即用机制。
2.根据权利要求1所述的设备即插即用通用驱动方法,其特征在于,所述驱动方法定义中,将各个驱动程序进行模块化编写,将设备本身的每一项功能对应于驱动中的一个函数,同时驱动程序中还包含对收到数据进行解析的函数,通过调用驱动程序中的函数即可实现设备的相应功能。
3.根据权利要求1所述的设备即插即用通用驱动方法,其特征在于,所述驱动自动生成方法实现步骤如下: a,根据设备描述信息判定设备所用设备通信协议; b,根据设备通信协议确定设备与主机建立连接的具体方法; c,根据设备描述信息中的每一个功能,对应与设备驱动中的一个函数,该函数发送相应指令给设备; d,设备驱动中还应包括对收到数据进行解析的函数,解析方法从设备描述信息中获取; e,根据设备通信协议断开连接,完成驱动函数。
4.根据权利要求3所述的设备即插即用通用驱动方法,其特征在于,在根据设备的描述信息生成驱动程序的同时,根据如下方法自动生成一个设备模拟器程序,便于测试中使用: a,根据设备描述信息判定设备所用通信协议; b,根据设备通信协议确定设备与主机建立连接的具体方法; c,根据设备描述信息确定设备模拟器收到不同指令后应该返回的对应数据,这里应当考虑到数据边界; d,根据设备通信协议断开连接,完成设备模拟程序。
5.根据权利要求3所述的设备即插即用通用驱动方法,其特征在于,所述设备的描述信息为两个配置文件,devSpec.xml和devAP1.xml, devSpec.xml包含设备的具体功能函数信息以及解析数据的方法,devAP1.xml包含设备设备驱动程序可被外部程序调用的所有接口,即devSpec.xml中描述的所有函数。
6.根据权利要求5所述的设备即插即用通用驱动方法,其特征在于,所述驱动和设备测试方法包括单元测试与可用性测试,所述单元测试为对设备的软件测试,即设备驱动的测试,利用一个遵从规范的设备驱动与设备模拟器程序,从devAP1.xml中读取所有需要被测试的接口,从devSpec.xml中读取相应的具体信息,通过与模拟器的交互检验设备驱动的正确性;对于通过单元测试的设备,需要进行可用性测试去检测设备的硬件,所述可用性测试为设备的硬件测试,即设备本身的测试,可用性测试分为功能测试与压力测试;功能测试用来检测设备能够提供驱动中实现的所有功能,压力测试检验设备硬件在长时间的运行状态下能否正常工作。
7.根据权利要求6所述的设备即插即用通用驱动方法,其特征在于,在开发阶段检测驱动以及设备硬件的方法是:驱动框架根据设备描述信息生成设备驱动以及相应的测试程序后,通过轮询方式得到端口号,然后对设备驱动进行单元测试,并对设备硬件进行可用性测试。
8.根据权利要求1所述的设备即插即用通用驱动方法,其特征在于,所述设备加载方法为程序加载设备时使用动态映射机制去加载设备,获取端口号之后,把通过测试的驱动程序放入指定路径下即可实现设备的自动加载。
9.根据权利要求1所述的设备即插即用通用驱动方法,其特征在于,所述动态映射机制为java或者c#的反射机制 ,所述设备的描述信息包括设备ID以及设备描述文件。
【文档编号】H04L29/06GK103488513SQ201310462409
【公开日】2014年1月1日 申请日期:2013年9月30日 优先权日:2013年9月30日
【发明者】吕勇强, 陈渝, 史元春, 秦永强, 刘伟, 王弋洋 申请人:北京水木元生科技有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1