驱动程序的调用方法及系统的制作方法

文档序号:10654170阅读:248来源:国知局
驱动程序的调用方法及系统的制作方法
【专利摘要】本发明公开了一种驱动程序的调用方法及系统。所述方法及系统用于智能终端。根据所述方法,所述系统基于所述智能终端中各硬件的注册操作,获取各硬件的驱动信息;从预设的驱动信息与标准驱动信息的转换器集合中,选取对应所获取的各驱动信息的转换器;利用所选择的转换器,为上层应用程序与相应驱动程序之间提供数据传输。本发明实现了在更换不同硬件时,无需更改配套的驱动程序和硬件抽象层的接口,为用户更换智能终端中的硬件提供了极大的方便。
【专利说明】
驱动程序的调用方法及系统
技术领域
[0001]本发明实施例涉及计算处理技术,尤其涉及一种驱动程序的调用方法及系统。【背景技术】
[0002]随着智能终端的广泛应用,智能终端在生产时由于各硬件的价格、供货不足等因素,需要同时用到不同型号的硬件;智能终端中的各硬件在使用时都可能受损、更换。目前, 智能终端中的驱动程序、以及上层对各驱动程序的接口都是一一对应的。当硬件需要更换时,为了防止智能终端中上层应用程序的正常使用,所更换的硬件型号不能变更;当要引进一款新的硬件的时候,必须通过刷机重新加载驱动及对应的上层接口。
[0003]然而,硬件市场上所提供的硬件种类繁多,如加速度传感器等。用户在更换时,可能无法找到相同型号的硬件。这使得用户在更换硬件无法使用。
[0004]因此,需要对现有技术进行改进。
【发明内容】

[0005]本发明提供一种驱动程序的调用方法及系统,以解决智能终端对主流硬件不能自动适配,设备维护复杂的问题。
[0006]第一方面,本发明实施例提供了一种驱动程序的调用方法,用于智能终端,包括: 基于所述智能终端中各硬件的注册操作,获取各硬件的驱动信息;从预设的驱动信息与标准驱动信息的转换器集合中,选取对应所获取的各驱动信息的转换器;利用所选择的转换器,为上层应用程序与相应驱动程序之间提供数据传输。
[0007]第二方面,本发明实施例还提供了一种驱动程序的调用系统,包括:驱动信息获取模块,用于基于所述智能终端中各硬件的注册操作,获取各硬件的驱动信息;
[0008]转换模块,用于从预设的驱动信息与标准驱动信息的转换器集合中,选取对应所获取的各驱动信息的转换器;调用模块,用于利用所选择的转换器,为上层应用程序与相应驱动程序之间提供数据传输。
[0009]本发明通过提取各驱动程序的驱动信息、并按照转换器构建各类型的驱动程序与上层应用程序之间的通信桥梁,如此实现了在更换不同硬件时,无需更改配套的驱动程序和硬件抽象层的接口,在添加新的硬件支持时,只需添加驱动,不需要修改硬件抽象层,为用户更换智能终端中的硬件提供了极大的方便。【附图说明】
[0010]图1为本发明实施例一中的驱动程序的调用方法的流程图;
[0011]图2是本发明实施例二中的驱动程序的调用系统的结构示意图。【具体实施方式】
[0012]下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0013]实施例一
[0014]图1为本发明实施例一提供的驱动程序的调用方法的流程图,本实施例可适用于智能终端中替换硬件后驱动程序自动适配调用的情况,该方法可以由调用系统来执行,其中,所述调用系统安装在智能终端中。所述智能终端包括但不限于:手机、平板电脑、游戏机、数码相机等带有CPU及操作系统的电子设备。具体包括如下步骤:
[0015]S110、基于所述智能终端中各硬件的注册操作,获取各硬件的驱动信息。
[0016]在智能终端上电启动时,智能终端中的各硬件向启动程序进行注册操作,所述调用系统根据注册操作获取各硬件的驱动信息。其中,所述硬件包括但不限于:各类传感器、 触摸屏、摄像装置、话筒、扬声器、显示屏等。所述传感器包括但不限于:压力传感阵列、红外传感器、加速度传感器等等。
[0017]在一种可选方案中,当智能终端中的一个或多个硬件被更换后,部分硬件在未得到上电指示的情况下,可能并不执行注册操作。针对该种情况,本发明中步骤S110进一步包括:步骤3111、3112、3113。(均未予图示)
[0018]步骤S111、基于所述智能终端中各硬件在上电时的注册操作,获取各硬件驱动信息中的硬件设备信息。
[0019]当智能终端上电时,所述调用系统检测注册表中的各驱动信息是否为空,若是,则暂停执行后续步骤,并进行各硬件的注册操作,反之,则将注册后的各驱动信息以列表形式保存,并执行步骤S112。
[0020]在此,各硬件的注册操作是指通过对各硬件的驱动程序初始化,来获取各硬件的驱动信息中的硬件设备信息,以及各硬件所连接的总线信息等。其中,硬件设备信息包括但不限于:设备ID号、所属硬件类型、硬件打开/关闭方式信息、和硬件休眠/唤醒方式信息等。 再得到注册后的各硬件的驱动信息后,所述调用系统还验证是否有新更换的硬件未予注rm册。
[0021]步骤S112、基于预设的对应所述智能终端中的硬件类型,确定所获取的各硬件设备信息所属硬件类型,以及未注册硬件的硬件类型。
[0022]在此,所述调用系统预设有智能终端所能提供的所有硬件类型。其中,所述硬件类型包括但不限于:红外传感类型、压力传感类型、加速度传感类型、存储类型、和显示屏类型等。
[0023]所述调用系统根据预设的硬件类型,确定所获取的已注册的各硬件设备信息所属硬件类型,并通过排除法,确定未注册硬件的硬件类型。当确定了有未注册的硬件类型时, 执行步骤S113。
[0024]步骤S113、搜索并启动未注册硬件类型的硬件,并获取相应硬件的驱动信息中的硬件设备信息。
[0025]在此,所述调用系统对应每个硬件类型都预设有至少一个驱动程序。当调用系统确定未注册的硬件类型时,按照预设的对应未注册硬件类型的驱动方式,对未注册的硬件进行上电操作;读取上电硬件的驱动信息中的硬件设备信息。
[0026]具体地,对未知硬件进行上电时,所述调用系统通过对每个未注册的硬件类型中的驱动程序的初始化操作,将未知硬件与相应驱动程序进行关联,并利用关联的驱动程序的初始化操作,获取未知硬件的驱动信息中的硬件设备信息。
[0027]针对智能终端的实际应用,智能终端在实际使用时,每个硬件类型仅设置一个硬件。因此,当调用系统在一个硬件类型中获取了一英加妮的驱动信息时,将不再搜索同一硬件类型中的其他驱动信息。[〇〇28]所述调用系统将所得到的所有驱动信息整理到一工作链表中。该工作链表可为上层应用程序/硬件抽象层提供驱动信息。其中,硬件抽象层可作为驱动程序和上层应用程序之间的衔接接口,用于管理和传递上层应用程序与驱动程序之间的数据、指令等。[〇〇29]在此,所述调用系统可直接通过执行步骤S120将基于工作链表所得到的各硬件的驱动信息进行转换;也可以在硬件抽象层内嵌转换器及其转换接口,并进行转换。
[0030]一种可选实施例是,在执行步骤S120之前,所述调用系统先执行步骤S114、S115。 (均未予图示)
[0031]步骤S114、将所获取的所有驱动信息提供给硬件抽象层,由所述硬件抽象层遍历所有驱动信息,并根据每个驱动信息创建对应的硬件对象。
[0032]具体地,所述调用系统将所获取的工作链表传递给硬件抽象层,由位于硬件抽象层的程序遍历工作链表中的所有驱动信息,并根据各驱动信息中的硬件设备信息选取包含硬件设备信息和功能信息的硬件对象。
[0033]例如,在硬件抽象层,所述调用系统利用预设的配置文件找到红外传感驱动信息 A1所对应的硬件对象,在硬件对象中包含了红外传感器的中断触发方式,红外传感器的打开关闭方式,红外传感器的休眠唤醒方式、以及基于预设的上报数据的速度所构建的接口等。
[0034]步骤S115、基于所选取的硬件对象读取各硬件的功能信息,并将所读取的功能信息添加到相应的驱动信息中。
[0035]具体地,在硬件抽象层,所述调用系统读取各硬件对象中各功能信息,并将各功能信息添加到工作链表中的对应驱动信息中。所述调用系统按照该工作链表执行步骤S120。 [〇〇36]步骤S120、从预设的驱动信息与标准驱动信息的转换器集合中,选取对应所获取的各驱动信息的转换器。
[0037]具体地,在所述调用系统中预设有针对各驱动程序的驱动信息与标准驱动信息的转换器。其中,所述转换器可以是xml格式、或其他自定义格式,用以将驱动程序所能提供的驱动信息和上层应用程序所能接受的标准驱动信息进行转换。
[0038]其中,每个转换器包括以下至少一种信息对应关系:硬件的调用方式与标准的调用方式之间的对应关系,和硬件功能项与标准的功能项之间的对应关系。所述调用方式包括以下至少一种:中断号,中断触发方式,打开和关闭方式,休眠和唤醒方式,硬件类型的描述方式。所述硬件的功能项包括但不限于以下至少一种:精度、量程、上报数据的速度、功耗等,有独立的上报数据的方式(数据分为向量和标量两种)、和能单独设置上报数据的速度等。
[0039]在此,所述调用系统根据工作链表中的各驱动信息,直接找到对应的转换器,并利用该转换器执行步骤S130。
[0040]步骤S130、利用所选择的转换器,为上层应用程序与相应驱动程序之间提供数据传输。
[0041]在此,当所述调用系统监测到上层应用程序调用一驱动程序时,利用已设定的转换器,将上层应用程序所发出的标准指令/信息,转换成对应驱动程序的指令/信息,并发送给相应的驱动程序,同时建立该上层应用程序与驱动程序之间的关联关系。当所述调用系统监测到驱动程序发送感应到的数据时,利用所对应的转换器,将所接收的数据格式转换成标准的数据格式,并按照关联关系将标准格式的数据传递给上层应用程序。
[0042]本实施例中通过提取各驱动程序的驱动信息、并按照转换器构建各类型的驱动程序与上层应用程序之间的通信桥梁,如此实现了在更换不同硬件时,无需更改配套的驱动程序和硬件抽象层的接口,为用户更换智能终端中的硬件提供了极大的方便。另外,通过遍历智能终端中的各硬件类型,来查找尚未注册的硬件,并启动未注册的硬件,以便更换后的硬件能够被启动运行。另外,将驱动信息传递给硬件抽象层,由硬件抽象层选取硬件对象并确定转换器,能够统一硬件抽象层与下层各驱动程序之间的匹配关系,有效减少在更换硬件时对硬件抽象层的对应调整,极大的减少了技术人员对已销售产品的后期维护。[〇〇43] 实施例二
[0044]图2为本发明实施例二提供的驱动程序的调用系统的结构示意图,本实施例可适用于智能终端中替换硬件后驱动程序自动适配调用的情况,所述调用系统安装在智能终端中。所述智能终端包括但不限于:手机、平板电脑、游戏机、数码相机等带有CHJ及操作系统的电子设备。所述调用系统包括:驱动信息获取模块、转换模块、调用模块。
[0045]所述驱动信息获取模块用于基于所述智能终端中各硬件的注册操作,获取各硬件的驱动信息。
[0046]在智能终端上电启动时,智能终端中的各硬件向启动程序进行注册操作,所述调用系统根据注册操作获取各硬件的驱动信息。其中,所述硬件包括但不限于:各类传感器、 摄像装置、话筒、扬声器、显示屏等。所述传感器包括但不限于:压力传感阵列、红外传感器、 加速度传感器等等。
[0047]在一种可选方案中,当智能终端中的一个或多个硬件被更换后,部分硬件在未得到上电指示的情况下,可能并不执行注册操作。针对该种情况,本发明中所述驱动信息获取模块进一步包括:第一驱动信息获取子模块、未注册类型确定子模块、第二驱动信息获取子模块。(均未予图示)
[0048]所述第一驱动信息获取子模块用于基于智能终端中各硬件在上电时的注册操作, 获取各硬件驱动信息中的硬件设备信息。
[0049]当智能终端上电时,所述第一驱动信息获取子模块检测注册表中的各驱动信息是否为空,若是,则暂停执行后续步骤,并进行各硬件的注册操作,反之,则将注册后的各驱动信息以列表形式保存,并执行未注册类型确定子模块。
[0050]在此,各硬件的注册操作是指通过对各硬件的驱动程序初始化,来获取各硬件的驱动信息中的硬件设备信息,以及各硬件所连接的总线信息等。其中,硬件设备信息包括但不限于:设备ID号、所属硬件类型、硬件打开/关闭方式信息、和硬件休眠/唤醒方式信息等。 再得到注册后的各硬件的驱动信息后,所述调用系统还验证是否有新更换的硬件未予注rm册。
[0051]所述未注册类型确定子模块用于基于预设的对应所述智能终端中的硬件类型,确定所获取的各硬件设备信息所属硬件类型,以及未注册硬件的硬件类型。
[0052]在此,所述未注册类型确定子模块预设有智能终端所能提供的所有硬件类型。其中,所述硬件类型包括但不限于:红外传感类型、压力传感类型、加速度传感类型、存储类型、和显示屏类型等。[〇〇53]所述未注册类型确定子模块根据预设的硬件类型,确定所获取的已注册的各硬件设备信息所属硬件类型,并通过排除法,确定未注册硬件的硬件类型。当确定了有未注册的硬件类型时,执行第二驱动信息获取子模块。
[0054]所述第二驱动信息获取子模块用于搜索并启动未注册硬件类型的硬件,并获取相应硬件的驱动信息中的硬件设备信息。
[0055]在此,所述第二驱动信息获取子模块对应每个硬件类型都预设有至少一个驱动程序。当第二驱动信息获取子模块确定未注册的硬件类型时,按照预设的对应未注册硬件类型的驱动方式,对未注册的硬件进行上电操作;读取上电硬件的驱动信息中的硬件设备信息。
[0056]具体地,对未知硬件进行上电时,所述第二驱动信息获取子模块通过对每个未注册的硬件类型中的驱动程序的初始化操作,将未知硬件与相应驱动程序进行关联,并利用关联的驱动程序的初始化操作,获取未知硬件的驱动信息中的硬件设备信息。
[0057]针对智能终端的实际应用,智能终端在实际使用时,每个硬件类型仅设置一个硬件。因此,当第二驱动信息获取子模块在一个硬件类型中获取了一英加妮的驱动信息时,将不再搜索同一硬件类型中的其他驱动信息。[〇〇58]所述第二驱动信息获取子模块将所得到的所有驱动信息整理到一工作链表中。该工作链表可为上层应用程序/硬件抽象层提供驱动信息。其中,硬件抽象层可作为驱动程序和上层应用程序之间的衔接接口,用于管理和传递上层应用程序与驱动程序之间的数据、 指令等。
[0059]在此,所述第二驱动信息获取子模块可直接通过执行转换模块将基于工作链表所得到的各硬件的驱动信息进行转换;也可以在硬件抽象层内嵌转换器及其转换接口,并进行转换。
[0060]—种可选实施例是,在执行转换模块之前,所述调用系统还包括:硬件对象选取模块、驱动信息补充模块。(均未予图示)[0061 ]所述硬件对象选取模块用于将所获取的所有驱动信息提供给硬件抽象层,由所述硬件抽象层遍历所有驱动信息,并根据每个驱动信息创建对应的硬件对象。
[0062]具体地,所述硬件对象选取模块将所获取的工作链表传递给硬件抽象层,由位于硬件抽象层的程序遍历工作链表中的所有驱动信息,并根据各驱动信息中的硬件设备信息选取包含硬件设备信息和功能信息的硬件对象。
[0063]例如,在硬件抽象层,所述硬件对象选取模块利用预设的配置文件找到红外传感驱动信息A1所对应的硬件对象,在硬件对象中包含了红外传感器的中断触发方式,红外传感器的打开关闭方式,红外传感器的休眠唤醒方式、以及基于预设的上报数据的速度所构建的接口等。
[0064]所述驱动信息补充模块用于基于所选取的硬件对象读取各硬件的功能信息,并将所读取的功能信息添加到相应的驱动信息中。
[0065]具体地,在硬件抽象层,所述驱动信息补充模块读取各硬件对象中各功能信息,并将各功能信息添加到工作链表中的对应驱动信息中,并启动转换模块。
[0066]所述转换模块用于从预设的驱动信息与标准驱动信息的转换器集合中,选取对应所获取的各驱动信息的转换器。
[0067]具体地,在所述转换模块中预设有针对各驱动程序的驱动信息与标准驱动信息的转换器。其中,所述转换器可以是xml格式、或其他自定义格式,用以将驱动程序所能提供的驱动信息和上层应用程序所能接受的标准驱动信息进行转换。
[0068]其中,每个转换器包括以下至少一种信息对应关系:硬件的调用方式与标准的调用方式之间的对应关系,和硬件功能项与标准的功能项之间的对应关系。所述调用方式包括以下至少一种:中断号,中断触发方式,打开和关闭方式,休眠和唤醒方式,硬件类型的描述方式。所述硬件的功能项包括但不限于以下至少一种:精度、量程、上报数据的速度、功耗等,有独立的上报数据的方式(数据分为向量和标量两种)、和能单独设置上报数据的速度等。
[0069]在此,所述转换模块根据工作链表中的各驱动信息,直接找到对应的转换器,并将该转换器提供给调用模块。
[0070]所述调用模块用于利用所选择的转换器,为上层应用程序与相应驱动程序之间提供数据传输。
[0071]在此,当所述调用模块监测到上层应用程序调用一驱动程序时,利用已设定的转换器,将上层应用程序所发出的标准指令/信息,转换成对应驱动程序的指令/信息,并发送给相应的驱动程序,同时建立该上层应用程序与驱动程序之间的关联关系。当所述调用模块监测到驱动程序发送感应到的数据时,利用所对应的转换器,将所接收的数据格式转换成标准的数据格式,并按照关联关系将标准格式的数据传递给上层应用程序。
[0072]本实施例中通过提取各驱动程序的驱动信息、并按照转换器构建各类型的驱动程序与上层应用程序之间的通信桥梁,如此实现了在更换不同硬件时,无需更改配套的驱动程序和硬件抽象层的接口,为用户更换智能终端中的硬件提供了极大的方便。另外,通过遍历智能终端中的各硬件类型,来查找尚未注册的硬件,并启动未注册的硬件,以便更换后的硬件能够被启动运行。另外,将驱动信息传递给硬件抽象层,由硬件抽象层选取硬件对象并确定转换器,能够统一硬件抽象层与下层各驱动程序之间的匹配关系,有效减少在更换硬件时对硬件抽象层的对应调整,极大的减少了技术人员对已销售产品的后期维护。[〇〇73]注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解, 本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、 重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
【主权项】
1.一种驱动程序的调用方法,用于智能终端,其特征在于,包括:基于所述智能终端中各硬件的注册操作,获取各硬件的驱动信息;从预设的驱动信息与标准驱动信息的转换器集合中,选取对应所获取的各驱动信息的 转换器;利用所选择的转换器,为上层应用程序与相应驱动程序之间提供数据传输。2.根据权利要求1所述的驱动程序的调用方法,其特征在于,所述基于所述智能终端中 各硬件的注册操作,获取各硬件的驱动信息包括:基于所述智能终端中各硬件在上电时的注册操作,获取各硬件驱动信息中的硬件设备 信息;基于预设的对应所述智能终端中的硬件类型,确定所获取的各硬件设备信息所属硬件 类型,以及未注册硬件的硬件类型;搜索并启动未注册硬件类型的硬件,并获取相应硬件的驱动信息中的硬件设备信息。3.根据权利要求2所述的驱动程序的调用方法,其特征在于,所述搜索并启动未注册硬 件类型的硬件,并获取相应硬件的驱动信息中的硬件设备信息包括:按照预设的对应未注册硬件类型的驱动方式,对未注册的硬件进行上电操作;读取上电硬件的驱动信息中的硬件设备信息。4.根据权利要求1所述的驱动程序的调用方法,其特征在于,在从预设的驱动信息与标 准驱动信息的转换器集合中,选取对应所获取的各驱动信息的转换器之前,还包括:将所获取的所有驱动信息提供给硬件抽象层,由所述硬件抽象层遍历所有驱动信息, 并根据每个驱动信息选取对应的硬件对象;基于所选取的硬件对象读取各硬件的功能信息,并将所读取的功能信息添加到相应的 驱动信息中。5.根据权利要求1所述的驱动程序的调用方法,其特征在于,每个转换器包括以下至少 一种信息对应关系:硬件的调用方式与标准的调用方式之间的对应关系,和硬件功能项与 标准的功能项之间的对应关系。6.—种驱动程序的调用系统,用于智能终端,其特征在于,包括:驱动信息获取模块,用于基于所述智能终端中各硬件的注册操作,获取各硬件的驱动 信息;转换模块,用于从预设的驱动信息与标准驱动信息的转换器集合中,选取对应所获取 的各驱动信息的转换器;调用模块,用于利用所选择的转换器,为上层应用程序与相应驱动程序之间提供数据 传输。7.根据权利要求6所述的驱动程序的调用系统,其特征在于,所述驱动信息获取模块包 括:第一驱动信息获取子模块,用于基于所述智能终端中各硬件在上电时的注册操作,获 取各硬件驱动信息中的硬件设备信息;未注册类型确定子模块,用于基于预设的对应所述智能终端中的硬件类型,确定所获 取的各硬件设备信息所属硬件类型,以及未注册硬件的硬件类型;第二驱动信息获取子模块,用于搜索并启动未注册硬件类型的硬件,并获取相应硬件的驱动信息中的硬件设备信息。8.根据权利要求7所述的驱动程序的调用方法,其特征在于,所述第二驱动信息获取子 模块用于按照预设的对应未注册硬件类型的驱动方式,对未注册的硬件进行上电操作;读 取上电硬件的驱动信息中的硬件设备信息。9.根据权利要求6所述的驱动程序的调用系统,其特征在于,还包括:硬件对象选取模块,用于将所获取的所有驱动信息提供给硬件抽象层,由所述硬件抽 象层遍历所有驱动信息,并根据每个驱动信息选取对应的硬件对象;驱动信息补充模块,用于基于所选取的硬件对象读取各硬件的功能信息,并将所读取 的功能信息添加到相应的驱动信息中,并执行所述转换模块。10.根据权利要求6所述的驱动程序的调用系统,其特征在于,每个转换器包括以下至 少一种信息对应关系:硬件的调用方式与标准的调用方式之间的对应关系,和硬件功能项 与标准的功能项之间的对应关系。
【文档编号】G06F9/44GK106020807SQ201610317923
【公开日】2016年10月12日
【申请日】2016年5月13日
【发明人】曹福昂
【申请人】上海井蛙科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1