CN109871244A - 硬件驱动装置、方法、芯片及非暂态计算机可读存储介质 - Google Patents
硬件驱动装置、方法、芯片及非暂态计算机可读存储介质 Download PDFInfo
- Publication number
- CN109871244A CN109871244A CN201910142434.8A CN201910142434A CN109871244A CN 109871244 A CN109871244 A CN 109871244A CN 201910142434 A CN201910142434 A CN 201910142434A CN 109871244 A CN109871244 A CN 109871244A
- Authority
- CN
- China
- Prior art keywords
- component
- hardware
- layer
- interface
- call instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及计算机技术领域,特别是涉及一种硬件驱动装置及方法、芯片及非暂态计算机可读存储介质。硬件驱动装置包括:业务逻辑层,用于发送组件驱动请求;组件层,用于根据组件驱动请求,选择并执行组件,以产生接口调用指令;接口层,用于根据接口调用指令,调用与组件对应的应用程序编程接口;硬件驱动层,硬件驱动层包括与组件对应的硬件驱动程序,硬件驱动层用于根据应用程序编程接口的调用结果,执行硬件驱动程序。因此,其简化了业务逻辑层的逻辑设计,业务逻辑层只需根据业务需求发送组件驱动请求,便可促使组件层选择并执行对应组件,从而完成底层硬件的驱动,其能够降低不同层之间的耦合度,提升产品的移植性以及功能裁剪性。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种硬件驱动装置及方法、芯片及非暂态计算机可读存储介质。
背景技术
随着产品应用功能的增加,人们可在同一产品中不断地开发新应用功能,从而使得该产品的应用功能更具多样化。
在应用开发过程中,业务逻辑层至少需要完成各类驱动模块的接口调用,以完成对各类硬件的驱动,因此,驱动模块与业务逻辑层的耦合度比较高,产品移植性比较差。
发明内容
本发明实施例一个目的旨在提供一种硬件驱动装置及方法、芯片及非暂态计算机可读存储介质,其移植性比较高。
为解决上述技术问题,本发明实施例提供以下技术方案:
在第一方面,本发明实施例提供一种硬件驱动装置,包括:
业务逻辑层,用于发送组件驱动请求;
组件层,所述组件层包括组件,所述组件层用于根据所述组件驱动请求,选择并执行所述组件,以产生接口调用指令;
接口层,所述接口层包括与所述组件对应的应用程序编程接口,所述接口层用于根据所述接口调用指令,调用所述应用程序编程接口得到调用结果;以及
硬件驱动层,所述硬件驱动层包括与所述组件对应的硬件驱动程序,所述硬件驱动层用于根据所述调用结果,执行所述硬件驱动程序。
可选地,所述组件层包括:
N个组件,每个组件用于配置不同数据协议,N为正整数;
组件线程池,用于根据所述组件驱动请求,从所述N个组件中选择并执行与所述组件驱动请求对应的所述组件,以使所述组件产生所述接口调用指令。
可选地,每个所述组件包括:
组件逻辑层,用于执行预设处理逻辑得到执行结果;
组件接口单元,用于根据所述执行结果,产生接口调用指令。
可选地,所述组件可用于采集与所述硬件驱动程序对应的硬件的工作数据,每个所述组件还包括:
组件获取单元,用于获取所述组件的工作数据。
可选地,每个所述组件还包括:
组件监测单元,用于监测与所述硬件驱动程序对应的硬件的故障状态。
可选地,不同所述组件共用所述组件线程池。
可选地,所述组件线程池用于根据所述组件驱动请求,选择并执行组件,包括:
根据所述组件驱动请求,判断每个所述组件是否完成初始化,若是,对每个所述组件执行轮询操作,所述轮询操作包括组件功能轮询与数据采集;若否,继续判断下一个所述组件是否完成初始化。
在第二方面,本发明实施例提供一种硬件驱动方法,包括:
根据组件驱动请求,选择并执行组件;
根据所述组件的执行结果,产生接口调用指令;
根据所述接口调用指令,调用与所述组件对应的应用程序编程接口得到调用结果;
根据所述调用结果,执行与所述组件对应的硬件驱动程序。
可选地,所述组件的数量为N个,每个所述组件用于配置不同数据协议,N为正整数。
可选地,所述根据所述组件的执行结果,产生接口调用指令,包括:
执行预设处理逻辑得到执行结果;
根据所述预设处理逻辑的执行结果,产生接口调用指令。
可选地,所述方法还包括:
获取与所述硬件驱动程序对应的硬件的工作数据。
可选地,所述方法还包括:
监测与所述硬件驱动程序对应的硬件的故障状态。
可选地,根据所述组件驱动请求,判断每个所述组件是否完成初始化;
若是,对每个所述组件执行轮询操作,所述轮询操作包括组件功能轮询与数据采集;
若否,继续判断下一个所述组件是否完成初始化。
在第三方面,本发明实施例提供一种芯片,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够用于执行如上所述的硬件驱动方法。
在第四方面,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使芯片执行如上所述的硬件驱动方法。
在第五方面,本发明实施例提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被芯片执行时,使所述服务器执行如上所述的硬件驱动方法。
在本发明各个实施例提供的硬件驱动装置中,首先,业务逻辑层用于发送组件驱动请求,组件层包括组件,组件层用于根据组件驱动请求,选择并执行组件,以产生接口调用指令,接口层包括与组件对应的应用程序编程接口,接口层用于根据接口调用指令,调用应用程序编程接口,硬件驱动层包括与组件对应的硬件驱动程序,硬件驱动层用于根据应用程序编程接口的调用结果,执行硬件驱动程序。因此,其简化了业务逻辑层的逻辑设计,业务逻辑层只需根据业务需求发送组件驱动请求,便可促使组件层选择并执行对应组件,从而完成底层硬件的驱动,因此,其能够降低不同层之间的耦合度,提升产品的移植性。若需要增加或裁剪产品功能时,只需要增加新应用功能的组件或裁剪对应组件,便可以提升产品的功能裁剪性。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本发明实施例提供的一种智能家居系统的结构示意图;
图2是本发明实施例提供的一种冰箱的电路原理框图;
图3是本发明实施例提供的一种硬件驱动装置的结构示意图;
图4是图3中组件层的结构示意图;
图5是图4中组件的结构示意图;
图6a是本发明实施例提供的一种硬件驱动方法的流程示意图;
图6b是图6a中S62的流程示意图;
图6c是本发明另一实施例提供的一种硬件驱动方法的流程示意图;
图6d是本发明又另一实施例提供的一种硬件驱动方法的流程示意图;
图6e是本发明又另一实施例提供的一种硬件驱动方法的流程示意图;
图7是本发明实施例提供的一种芯片的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
随着集成化技术的发展,人们可在同一产品上开放出较多的软件功能。例如,在物联网领域中,物联网设备的应用越来越广泛,诸如智能穿戴设备、智能灯、智能冰箱或智能插座等等,其中,物联网设备需要将相关物联网数据上传到云端,因此,各类物联网设备中的无线模组在数据交换纽带中起到重要作用。为了实现将底层硬件的各个物联网数据上传到云端,人们在无线模组的基础上作片内开发,以将底层硬件对应的产品功能移植到无线模组的软件架构中。
请参阅图1,图1是本发明实施例提供的一种智能家居系统的结构示意图。如图1所示,智能家居系统10包括冰箱11、云端服务器12及客户端13,客户端13与云端服务器12通讯,云端服务器12与冰箱11通讯。
冰箱11采集自身工作数据,并将自身工作数据上传至云端服务器12。客户端13可访问云端服务器12,从中获取冰箱11的工作数据。并且,客户端13还可以向云端服务器12发送控制指令,云端服务器12根据控制指令,控制冰箱11的运行状态或冰箱11及时上传自身的工作数据。
云端服务器12可以是一个物理服务器或者多个物理服务器虚拟而成的一个逻辑服务器。云端服务器12也可以是多个可互联通信的服务器组成的服务器群,且各个功能模块可分别分布在服务器群中的各个服务器上。
客户端13的数量可为一个或多个,客户端13包括平板电脑、手机、便携式个人电脑及固定个人电脑。
请参阅图2,图2是本发明实施例提供的一种冰箱的电路原理框图。如图2所示,冰箱11包括温度传感器111、流量传感器112、开关传感器113及无线模组114,无线模组114分别与温度传感器111、压力传感器112及开关传感器113连接。
温度传感器111用于采集冰箱11的温度,流量传感器112用于采集冰箱11的制冷剂流量,开关传感器113用于监测冰箱11的关闭状态或打开状态。
无线模组114用于处理、分析及上传上述各类传感器的数据。无线模组114可作为系统级芯片(System on Chip,SOC),其集成数据处理、分析及无线通讯功能。用户可在无线模组114上,作片内开发,以开发出更多应用功能,例如,用户可在无线模组114中开发出将开关传感器113采集的数据上传至云端服务器12的应用功能,还可开发出将温度传感器111采集的数据上传至云端服务器12的应用功能。
在一些实施例中,用户可在无线模组114基础上,设计多种类型软件架构,以实现将各类底层硬件的数据作逻辑处理,该逻辑处理包括上传数据、分析数据而产生预警或监测底层硬件工作状态等等。
作为本发明实施例的一方面,本发明实施例提供一种硬件驱动装置,可应用于任何类型产品中。本发明实施例的硬件驱动装置可以作为其中一个软件功能单元,使得产品执行作为软件功能单元的硬件驱动装置,其中,硬件驱动装置包括若干指令,该若干指令存储于存储器内,处理器可以访问该存储器,调用指令进行执行,以完成硬件驱动装置或者硬件驱动方法对应的功能。
请参阅图3,硬件驱动装置30包括业务逻辑层40、组件层50、接口层60及硬件驱动层70。
业务逻辑层40封装有产品的各类应用功能的业务逻辑,业务逻辑是指一个服务对象按照预设规则与流程,向另一个服务对象提供服务。业务逻辑层40负责定义业务逻辑(规则、工作流或数据完整性等),接收外部控制指令,根据外部控制指令,结合业务逻辑,产生组件驱动请求,例如,业务逻辑层40接收上传控制指令,该上传控制指令用于指示上传开关传感器的工作数据,使得用户能够远程监控冰箱的关闭状态或打开状态,业务逻辑层40解析出该上传控制指令为上传开关传感器的工作数据的指令,于是,产生与开关传感器对应的组件驱动请求,使得与开关传感器对应的组件选择组件驱动A,以使组件驱动A调用与开关传感器对应的应用程序编程接口,从而跳转到与该应用程序编程接口对应的硬件驱动程序,执行该硬件驱动程序,从而获取到开关传感器的工作数据。
在本实施例中,组件驱动请求由业务逻辑层40根据业务规则而分发出,其能够指示组件层50执行对应的组件。其中,在一些实施例中,组件驱动请求可封装有组件层50中各个组件的组件标识、数据请求类型或数据协议等等,例如,组件层50包括与开关传感器对应的组件K1、与温度传感器对应的组件K2及与流量传感器对应的组件K3,组件驱动请求可封装有组件K1和/或组件K2和/或组件K3的组件标识。
在本实施例中,业务逻辑层40并未封装有各个组件的组件驱动,其中,该组件驱动用于产生接口调用指令以从接口层60调用对应的应用程序编程接口并跳转至对应的硬件驱动程序执行。因此,业务逻辑层40只关注业务逻辑的处理,无需关注对应硬件驱动程序的驱动调动,对应硬件驱动程序的驱动调动放在组件层50完成,因此,业务逻辑层40能够更好地与各个层兼容。
组件层50包括组件,组件层50用于根据组件驱动请求,选择并执行组件,以产生接口调用指令,例如,组件驱动请求封装有组件K1的组件标识,于是,组件层50从该组件驱动请求解析出组件K1的组件标识,于是,组件层50选择组件K1,并且执行组件K1的组件驱动,以产生接口调用指令,其中,该接口调用指令用于调用开关传感器的应用程序编程接口的指令。
接口调用指令用于指示接口层50选择并调用对应的应用程序编程接口,每个应用程序接口皆可选择并执行硬件驱动层中对应的硬件驱动程序,例如,接口调用指令指示接口层50选择并调用组件K1对应的应用程序编程接口,于是,接口层50选择并调用组件K1对应的应用程序编程接口,并且,通过调用组件K1对应的应用程序编程接口,便跳转至开关传感器对应的硬件驱动程序进行执行。
接口层50封装有各类产品应用功能的各类应用程序编程接口以及操作系统的各类系统应用程序编程接口,每个产品应用功能的各类应用程序编程接口可被事先按照业务需求,自行封装好。每次调用每个产品应用功能的每个应用程序编程接口时,其都可以完成相对的应用功能。操作系统的各类系统应用程序编程接口由对应操作系统提供的原始应用程序编程接口,操作系统在完成相关的系统操作时,其可通过调用相应的系统应用程序编程接口。
接口层50用于根据接口调用指令,调用与组件对应的应用程序编程接口,例如,如前所述,该接口调用指令用于指示调用与组件K1对应的应用程序编程接口,于是,接口层50从中选择与组件K1对应的应用程序编程接口进行调用,调用后,便可跳转至硬件驱动层60中,从硬件驱动层60中选择开关传感器的硬件驱动程序进行执行,以便分析出开关传感器的关闭状态或打开状态。
硬件驱动层60封装有各类硬件的硬件驱动程序以及操作系统下各个原生态硬件的系统硬件驱动程序,每类硬件驱动程序被配置于libsigrok文件,libsigrok文件是一个采用C语言编写的共享库,为逻辑分析仪提供了基本的硬件访问驱动程序,以及输入/输出文件格式的支持。
硬件驱动层60用于根据应用程序编程接口的调用结果,执行与组件对应的硬件驱动程序,例如,接口层50选择与组件K1对应的应用程序编程接口进行调用,调用后,向硬件驱动层60发送执行请求,请求执行与组件K1的应用程序编程接口对应的硬件驱动程序,于是,便可以获得开关传感器的工作数据,该工作数据可包括各类数据,诸如开关传感器的监测到冰箱门关闭状态或打开状态对应的数据、工作电流数据、工作电压数据等等。
传统技术中,若完成如本发明实施例所公开的各类产品应用功能,人们要在业务逻辑层中完成驱动模块的功能接口的调用,并且,还在业务逻辑层中对实现各类产品应用功能的底层硬件的工作数据的采集、故障数据的采集等等,因此,驱动模块与业务逻辑层之间的耦合度比较高,产品功能裁剪和移植性比较差。
或者,在其它传统技术中,人们直接在业务逻辑层内调用底层硬件的硬件驱动程序库实现驱动模块的功能,此类方案的驱动模块与业务逻辑层之间的耦合度比较高,产品功能裁剪和移植性比较差。尤其,随着芯片升级,此类方案越来越受到局限。
然而,采用本发明实施例提供的硬件驱动装置,其简化了业务逻辑层40的逻辑设计,业务逻辑层40只需根据业务需求发送组件驱动请求,便可促使组件层50选择并执行对应组件,从而完成底层硬件的驱动。因此,其能够降低不同层之间的耦合度,提升产品的移植性。若需要增加或裁剪产品功能时,只需要增加新应用功能的组件或裁剪对应组件,便可以提升产品的功能裁剪性。
在一些实施例中,请一并参阅图4与图5,组件层50包括组件51与组件线程池52。
一个产品可以根据产品特性定义1个或多个组件,产品可以根据实际需求自由配置所需组件,每一次组合都可以自动形成新的产品逻辑和产品数据协议,为产品快速迭代提供了基础。例如,组件层50包括N个组件51,其中,N为正整数,例如,组件层50包括组件1、组件2、组件3……、组件N。每个组件用于配置不同产品逻辑及数据协议,亦即,每个组件皆可以单独完成相应产品的应用功能。
组件是一种高效的复杂应用系统,其更好地明确功能模块的作用方式。采用组件式开发方式,单个组件包括模板、数据结构、程序及样式。组件的接口表达了由该组件提供的功能和调用它时所需要的参数。组件是可以单独开发、测试。允许多人同时协作,编写及开发、研究不同的功能模块。
组件层50执行相关逻辑操作时,各个组件可组成组件队列,从而有序地完成各个组件对应的处理逻辑。
组件线程池52采用多线程处理形式,处理过程中,将每个对应组件的任务添加到队列,然后在创建线程后自动启动上述任务。
在本实施例中,组件线程池52用于根据组件驱动请求,选择并执行组件,以使组件产生接口调用指令,例如,组件线程池52根据组件驱动请求,选择组件K1,并且执行组件K1的处理逻辑。
在一些实施例中,不同组件共用组件线程池52,因此,组件线程池52能够很好地协调与执行各个组件,从而节省相关开销。
在一些实施例中,组件线程池52用于根据组件驱动请求,判断每个组件是否完成初始化,若是,对该组件执行轮询操作,轮询操作包括组件功能轮询与数据采集;若否,继续判断下一个组件是否完成初始化。例如,组件线程池52根据组件驱动请求,依序判断组件K1、组件K2、组件K3是否完成初始化,例如,各个组件的相关函数或参数是否配置好,若配置好,则完成初始化,若没配置好,则初始化失败。当组件K1完成初始化后,组件线程池52判断组件K1是否为开关传感器对应组件的功能,若是,指示组件K1产生接口调用指令,以选择开关传感器对应的硬件驱动程序进行执行,从而获得开关传感器的工作数据。若否,组件线程池52继续判断其它组件是否为开关传感器对应组件的功能。
在一些实施例中,每个组件51包括:组件逻辑层511与组件接口单元512。
组件逻辑层511用于执行预设处理逻辑得到执行结果,组件接口单元512用于根据预设处理逻辑的执行结果,产生接口调用指令,其中,预设处理逻辑可由用户根据业务需求自行定义,例如,在一些实施例中,对于开关传感器对应的组件K1,预设处理逻辑包括两种,第一种是关闭冰箱的箱门,第二种是打开冰箱的箱门,组件逻辑层511根据组件驱动请求,分析出用户需要“关闭冰箱的箱门”,于是选择第一种预设处理逻辑进行执行,组件接口单元512用于根据第一种预设处理逻辑的执行结果,产生接口调用指令,通过接口层60调用应用程序编程接口,从而使得开关传感器返回工作数据,组件逻辑层511处理与分析该工作数据,若分析到“当前冰箱的箱门处于打开状态”,则组件逻辑层511重新控制开关传感器工作,以将“当前冰箱的箱门设置与关闭状态”。若分析到“当前冰箱的箱门处于闭合状态”,则组件逻辑层511无需重新控制开关传感器工作。
在一些实施例中,每个组件51还包括组件获取单元513,组件获取单元513用于获取组件的工作数据,组件可用于采集与硬件驱动程序对应的硬件的工作数据。例如,执行开关传感器的硬件驱动程序时,组件获取单元513便可以采集到开关传感器的工作数据。
在一些实施例中,每个组件51还包括组件监测单元514,组件监测单元514用于监测与硬件驱动程序对应的硬件的故障状态。例如,执行开关传感器的硬件驱动程序时,组件监测单元514也采集到开关传感器的工作数据,并且分析该开关传感器的工作数据,若分析到开关传感器的工作数据出现异常时,组件监测单元514自动提示,提示方式包括短信通知方式、闪灯方式、声音提示等等。若分析到开关传感器的工作数据正常时,组件监测单元514维持原先状态。
综上,本发明实施例提供的硬件驱动装置,其能够充分发挥组件的强大自运行能力,业务逻辑层只需要调用简单的开启/关闭功能,即可实现对底层硬件的控制,并能够实时通过调用get接口函数获取各个组件的工作数据和故障数据,极大地简化了业务逻辑层,同时降低开放难度以及减少硬件开放成本,因此,其能够从软件和硬件上同时减小开发成本。与此同时,本发明实施例提供的硬件驱动装置还充分利用组件架构的强大功能以及可自由组合的特性,使得各层代码之间的耦合度降到最低,同时,组件具备有高效的移植性,其也可以快速地进行多平台移植。因此,其不仅能够简化业务逻辑层,还可以利用组件的可裁剪性以及各个组件可自由组合的能力,实现产品逻辑多样化,降低系统中各个层之间的耦合性,提升代码的可移植性。
作为本发明实施例的另一方面,本发明实施例还提供一种硬件驱动方法。请参阅图6a,硬件驱动方法S600包括:
S61、根据组件驱动请求,选择并执行组件;
S62、根据组件的执行结果,产生接口调用指令;
S63、根据接口调用指令,调用与组件对应的应用程序编程接口;
S64、根据应用程序编程接口的调用结果,执行与组件对应的硬件驱动程序。
因此,采用本发明实施例提供的硬件驱动方法,其简化了业务逻辑层的逻辑设计,业务逻辑层只需根据业务需求发送组件驱动请求,便可促使组件层选择并执行对应组件,从而完成底层硬件的驱动,因此,其能够降低不同层之间的耦合度,提升产品的移植性。若需要增加或裁剪产品功能时,只需要增加新应用功能的组件或裁剪对应组件,便可以提升产品的功能裁剪性。
在一些实施例中,组件的数量为N个,每个组件用于配置不同产品逻辑及数据协议,N为正整数。
在一些实施例中,请参阅图6b,S62包括:
S621、执行预设处理逻辑得到执行结果;
S622、根据预设处理逻辑的执行结果,产生接口调用指令。
在一些实施例中,请参阅图6c,硬件驱动方法S600还包括:
S65、获取与硬件驱动程序对应的硬件的工作数据。
在一些实施例中,请参阅图6d,硬件驱动方法S600还包括:
S66、监测与硬件驱动程序对应的硬件的故障状态。
在一些实施例中,请参阅图6e,硬件驱动方法S600还包括:
S67、根据组件驱动请求,判断每个组件是否完成初始化;
S68、若是,对询组件执行轮询操作,轮询操作包括组件功能轮询与数据采集;
S69、若否,继续判断下一个组件是否完成初始化。
需要说明的是,在上述各个实施例中,上述各步骤之间并不必然存在一定的先后顺序,本领域普通技术人员,根据本发明实施例的描述可以理解,不同实施例中,上述各步骤可以有不同的执行顺序,亦即,可以并行执行,亦可以交换执行等等。
需要说明的是,未在硬件驱动方法实施例中详尽描述的技术细节,可参见本发明实施例所提供的硬件驱动装置。
作为本发明实施例的另一方面,本发明实施例提供一种服务器。请参阅图7,该芯片700包括:一个或多个处理器71以及存储器72。其中,图7中以一个处理器71为例。
处理器71和存储器72可以通过总线或者其他方式连接,图7中以通过总线连接为例。
存储器72作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的硬件驱动方法对应的程序指令/模块。处理器71通过运行存储在存储器72中的非易失性软件程序、指令以及模块,从而执行上述各个实施例的硬件驱动方法,或者上述各个实施例的硬件驱动装置的各种功能应用以及数据处理。
存储器72可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器72可选包括相对于处理器71远程设置的存储器,这些远程存储器可以通过网络连接至处理器71。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述程序指令/模块存储在所述存储器72中,当被所述一个或者多个处理器71执行时,执行上述任意方法实施例中的硬件驱动方法,例如,从而执行上述各个实施例的硬件驱动方法,或者上述各个实施例的硬件驱动装置的各种功能应用以及数据处理。
本发明实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使芯片执行如上所述的硬件驱动方法。
本发明实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被芯片执行时,使所述芯片执行如上所述的硬件驱动方法。
综上,其简化了业务逻辑层的逻辑设计,业务逻辑层只需根据业务需求发送组件驱动请求,便可促使组件层选择并执行对应组件,从而完成底层硬件的驱动,因此,其能够降低不同层之间的耦合度,提升产品的移植性。若需要增加或裁剪产品功能时,只需要增加新应用功能的组件或裁剪对应组件,便可以提升产品的功能裁剪性。
以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (15)
1.一种硬件驱动装置,其特征在于,包括:
业务逻辑层,用于发送组件驱动请求;
组件层,所述组件层包括组件,所述组件层用于根据所述组件驱动请求,选择并执行所述组件,以产生接口调用指令;
接口层,所述接口层包括与所述组件对应的应用程序编程接口,所述接口层用于根据所述接口调用指令,调用所述应用程序编程接口得到调用结果;以及
硬件驱动层,所述硬件驱动层包括与所述组件对应的硬件驱动程序,所述硬件驱动层用于根据所述调用结果,执行所述硬件驱动程序。
2.根据权利要求1所述的装置,其特征在于,所述组件层包括:
N个组件,所述N个组件中每个组件用于配置不同数据协议,N为正整数;
组件线程池,用于根据所述组件驱动请求,从所述N个组件中选择并执行与所述组件驱动请求对应的所述组件,以使所述组件产生所述接口调用指令。
3.根据权利要求2所述的装置,其特征在于,每个所述组件包括:
组件逻辑层,用于执行预设处理逻辑得到执行结果;
组件接口单元,用于根据所述执行结果,产生接口调用指令。
4.根据权利要求3所述的装置,其特征在于,所述组件可用于采集与所述硬件驱动程序对应的硬件的工作数据,每个所述组件还包括:
组件获取单元,用于获取所述工作数据。
5.根据权利要求3所述的装置,其特征在于,每个所述组件还包括:
组件监测单元,用于监测与所述硬件驱动程序对应的硬件的故障状态。
6.根据权利要求2至5任一项所述的装置,其特征在于,不同所述组件共用所述组件线程池。
7.根据权利要求6所述的装置,其特征在于,
所述组件线程池用于根据所述组件驱动请求,选择并执行组件,包括:
根据所述组件驱动请求,判断每个所述组件是否完成初始化,若是,对每个所述组件执行轮询操作,所述轮询操作包括组件功能轮询与数据采集;若否,继续判断下一个所述组件是否完成初始化。
8.一种硬件驱动方法,其特征在于,包括:
根据组件驱动请求,选择并执行组件;
根据所述组件的执行结果,产生接口调用指令;
根据所述接口调用指令,调用与所述组件对应的应用程序编程接口得到调用结果;
根据所述调用结果,执行与所述组件对应的硬件驱动程序。
9.根据权利要求8所述的方法,其特征在于,所述组件的数量为N个,每个所述组件用于配置不同数据协议,N为正整数。
10.根据权利要求8所述的方法,其特征在于,所述根据所述组件的执行结果,产生接口调用指令,包括:
执行预设处理逻辑得到执行结果;
根据所述预设处理逻辑的执行结果,产生接口调用指令。
11.根据权利要求8所述的方法,其特征在于,所述方法还包括:
获取与所述硬件驱动程序对应的硬件的工作数据。
12.根据权利要求8所述的方法,其特征在于,所述方法还包括:
监测与所述硬件驱动程序对应的硬件的故障状态。
13.根据权利要求8至12任一项所述的方法,其特征在于,所述方法还包括:
根据所述组件驱动请求,判断每个所述组件是否完成初始化;
若是,对每个所述组件执行轮询操作,所述轮询操作包括组件功能轮询与数据采集;
若否,继续判断下一个所述组件是否完成初始化。
14.一种芯片,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够用于执行权利要求8-13任一项所述的硬件驱动方法。
15.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使芯片执行权利要求8-13任一项所述的硬件驱动方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910142434.8A CN109871244A (zh) | 2019-02-26 | 2019-02-26 | 硬件驱动装置、方法、芯片及非暂态计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910142434.8A CN109871244A (zh) | 2019-02-26 | 2019-02-26 | 硬件驱动装置、方法、芯片及非暂态计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109871244A true CN109871244A (zh) | 2019-06-11 |
Family
ID=66919297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910142434.8A Pending CN109871244A (zh) | 2019-02-26 | 2019-02-26 | 硬件驱动装置、方法、芯片及非暂态计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109871244A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110377272A (zh) * | 2019-06-21 | 2019-10-25 | 深圳市元征科技股份有限公司 | 一种基于tbox的sdk的实现方法及装置 |
CN111132097A (zh) * | 2019-12-31 | 2020-05-08 | 深圳移航通信技术有限公司 | 无线模块的驱动方法及装置、无线模块、终端及存储介质 |
CN112650512A (zh) * | 2020-12-11 | 2021-04-13 | 展讯通信(天津)有限公司 | 硬件驱动方法及装置、终端、存储介质 |
CN112698814A (zh) * | 2020-12-30 | 2021-04-23 | 深圳酷派技术有限公司 | 电子设备、驱动开发方法及计算机可读存储介质 |
CN113448653A (zh) * | 2020-03-27 | 2021-09-28 | 北京猎户星空科技有限公司 | 一种业务处理方法、系统、电子设备和计算机可读介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102420966A (zh) * | 2011-11-24 | 2012-04-18 | 中兴通讯股份有限公司 | 一种会议电视视频输出edid处理方法及系统 |
CN107959709A (zh) * | 2017-10-25 | 2018-04-24 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 基于通信中间件数据解耦交互结构的方法 |
CN109101018A (zh) * | 2018-07-30 | 2018-12-28 | 浙江工业大学 | 面向Windows环境的服务机器人运行控制系统 |
-
2019
- 2019-02-26 CN CN201910142434.8A patent/CN109871244A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102420966A (zh) * | 2011-11-24 | 2012-04-18 | 中兴通讯股份有限公司 | 一种会议电视视频输出edid处理方法及系统 |
CN107959709A (zh) * | 2017-10-25 | 2018-04-24 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 基于通信中间件数据解耦交互结构的方法 |
CN109101018A (zh) * | 2018-07-30 | 2018-12-28 | 浙江工业大学 | 面向Windows环境的服务机器人运行控制系统 |
Non-Patent Citations (1)
Title |
---|
21IC中国电子网: "嵌入式应用软件架构如何设计?", 《HTTPS://WWW.SOHU.COM/A/296704403_100281310》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110377272A (zh) * | 2019-06-21 | 2019-10-25 | 深圳市元征科技股份有限公司 | 一种基于tbox的sdk的实现方法及装置 |
CN111132097A (zh) * | 2019-12-31 | 2020-05-08 | 深圳移航通信技术有限公司 | 无线模块的驱动方法及装置、无线模块、终端及存储介质 |
CN111132097B (zh) * | 2019-12-31 | 2023-09-26 | 深圳移航通信技术有限公司 | 无线模块的驱动方法及装置、无线模块、终端及存储介质 |
CN113448653A (zh) * | 2020-03-27 | 2021-09-28 | 北京猎户星空科技有限公司 | 一种业务处理方法、系统、电子设备和计算机可读介质 |
CN113448653B (zh) * | 2020-03-27 | 2024-01-26 | 北京猎户星空科技有限公司 | 一种业务处理方法、系统、电子设备和计算机可读介质 |
CN112650512A (zh) * | 2020-12-11 | 2021-04-13 | 展讯通信(天津)有限公司 | 硬件驱动方法及装置、终端、存储介质 |
CN112698814A (zh) * | 2020-12-30 | 2021-04-23 | 深圳酷派技术有限公司 | 电子设备、驱动开发方法及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109871244A (zh) | 硬件驱动装置、方法、芯片及非暂态计算机可读存储介质 | |
US11637918B2 (en) | Self-descriptive orchestratable modules in software-defined industrial systems | |
US11243814B2 (en) | Diagnosing slow tasks in distributed computing | |
US11829801B2 (en) | Mesh agents for distributed computing | |
Levis | Experiences from a Decade of {TinyOS} Development | |
EP3862872A1 (en) | Dynamic user interface in machine-to-machine systems | |
US11397620B2 (en) | Deployment of event-driven application in an IoT environment | |
CN101713964A (zh) | 模块化对象和主机匹配 | |
WO2020068132A1 (en) | Interactive environments using visual computing and immersive reality | |
CN109731334A (zh) | 状态的切换方法和装置、存储介质、电子装置 | |
US20090234786A1 (en) | Method for Governing the Operation of a Generalist Agent within a Complex Multi-Agent Adaptive System | |
Ramgir | Internet of Things-Architecture, Implementation, and Security | |
Incerto et al. | Symbolic performance adaptation | |
Babaoglu et al. | The self-star vision | |
Tomforde | An architectural framework for self-configuration and self-improvement at runtime | |
Florio | Design and management of distributed self-adaptive systems | |
Gullstrand et al. | Forming Emergent Configurations in Smart Office IoT Systems | |
Terrill et al. | Building the Autonomous Networks of the Future | |
Bellavista et al. | The IoTwins Methodology and Platform to Implement and Operate Digital Twins-based I4. 0 Applications in the Cloud Continuum | |
Wang et al. | Autonomic element design based on mind agent model | |
Miller et al. | Human factors issues and challenges in research on ‘Many-Agent’control applications | |
Ryan et al. | The Only Constant Is Change: Lessons from a 25 Year {SRE} Career | |
Bach | Representations for a complex world: Combining distributed and localist representations for learning and planning | |
Avila-García et al. | D3. 2–WP 3 Scientific Report and Prototype Description–Y2 | |
Feltin | Distributed computing at the smart device edge |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190611 |
|
RJ01 | Rejection of invention patent application after publication |