飞控计算机及其通用硬件抽象层转让专利

申请号 : CN202110447265.6

文献号 : CN113253640B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 胡俊伟易兰珏李憬龙庄孜郑鹍鹏陈伟强郝伟涛吴漾曦

申请人 : 湖南航天机电设备与特种材料研究所

摘要 :

本发明公开了一种飞控计算机及其通用硬件抽象层,通过硬件接口适配模块将该通用硬件抽象层与具体硬件平台关联的底层硬件驱动接口完全隔离,再通过消息分发/订阅模块将该通用硬件抽象层与顶层的飞控应用层组件完全隔离,从设计根本上保证了该通用硬件抽象层代码具有与硬件平台无关的特性,从而使该通用硬件抽象层具有良好的多种硬件平台的适应性和扩展性,有效地提高了飞控计算机软件的可移植性,使飞控计算机软件能够在不同硬件平台上快速移植和使用。

权利要求 :

1.一种飞控计算机的通用硬件抽象层,其特征在于,包括:

消息分发/订阅模块,与飞控应用层连接,用于对飞控应用层组件需要的虚拟逻辑硬件端口地址及其附属的逻辑收发消息数据地址进行集中管理;用于完成飞控应用层组件与所述虚拟逻辑硬件端口之间消息数据的传递;以及用于实现飞控应用层组件对虚拟逻辑硬件端口及其消息数据的预先订阅功能;

消息收发解析模块,分别与所述消息分发/订阅模块、硬件接口适配模块连接,用于将所述虚拟逻辑硬件端口与所述硬件接口适配模块管理的标准驱动接口的端口地址和数据地址进行一一映射;

硬件接口适配模块,与硬件平台的底层硬件驱动接口连接,用于对各种标准驱动接口进行运行调度。

2.如权利要求1所述的一种飞控计算机的通用硬件抽象层,其特征在于,所述飞控应用层组件包括算法组件和功能组件。

3.如权利要求1所述的一种飞控计算机的通用硬件抽象层,其特征在于,在所述消息分发/订阅模块中,对虚拟逻辑硬件端口地址及其附属的逻辑收发消息数据地址进行集中管理的方式为:按照自定义虚拟功能对虚拟逻辑硬件端口进行分类命名;

对分类后的每类虚拟逻辑硬件端口的地址按照端口顺序号进行编号命名;

对虚拟逻辑硬件端口地址附属的逻辑收发消息数据地址按照数据地址顺序号进行编号命名。

4.如权利要求1所述的一种飞控计算机的通用硬件抽象层,其特征在于,所述飞控应用层组件与所述虚拟逻辑硬件端口之间消息数据的传递包括:飞控应用层组件产生的消息数据到预先订阅的虚拟逻辑硬件端口的分发,以及飞控应用层组件对其预先订阅的虚拟逻辑硬件端口产生的订阅消息数据的接收。

5.如权利要求4所述的一种飞控计算机的通用硬件抽象层,其特征在于,所述消息分发/订阅模块,还用于为飞控应用层组件向预先订阅的虚拟逻辑硬件端口分发消息数据进行初始化操作提供标准分发访问接口函数;

以及用于为飞控应用层组件接收对应的预先订阅的虚拟逻辑硬件端口分发订阅消息数据进行初始化操作提供标准订阅访问接口函数。

6.如权利要求1 5中任一项所述的一种飞控计算机的通用硬件抽象层,其特征在于,所~述硬件接口适配模块包括内置的硬件初始化模块,所述硬件初始化模块用于对各种标准驱动接口进行初始化。

7.一种飞控计算机,包括飞控应用层、硬件平台,其特征在于:还包括权利要求1 6中任~一项所述的通用硬件抽象层。

8.如权利要求7所述的一种飞控计算机,其特征在于,所述硬件平台是以ARM处理器为核心的控制平台。

说明书 :

飞控计算机及其通用硬件抽象层

技术领域

[0001] 本发明属于操作系统技术领域,尤其涉及一种飞控计算机及其通用硬件抽象层。

背景技术

[0002] 随着半导体技术的快速发展,各种型号的ARM处理器在航空技术领域得到广泛的运用。传统的设计思路是,飞控计算机根据相关设计要求,选择某种型号的处理器并围绕其进行电路构架,进而完成硬件平台的设计,然后再基于该硬件平台进行复杂的飞控计算机软件设计。
[0003] 飞控计算机软件中,不同的处理器底层接口驱动存在特定的差异性和复杂性,需要针对这些底层接口驱动开发特定的硬件抽象层,通过硬件抽象层将底层接口驱动与上层飞控计算机软件的控制算法组件进行耦合。这些特定的硬件抽象层可移植性低,且移植难度较高,工作量巨大,使飞控计算机软件无法在不同硬件平台上快速移植、使用。

发明内容

[0004] 本发明的目的在于提供一种飞控计算机及其通用硬件抽象层,以克服不同的处理器底层接口驱动对应的硬件抽象层可移植性低,且移植难度较高,工作量巨大,使飞控计算机软件无法在不同硬件平台上快速移植、使用的问题。
[0005] 本发明是通过如下的技术方案来解决上述技术问题的:一种飞控计算机的通用硬件抽象层,包括:
[0006] 消息分发/订阅模块,与飞控应用层连接,用于对飞控应用层组件需要的虚拟逻辑硬件端口地址及其附属的逻辑收发消息数据地址进行集中管理;用于完成飞控应用层组件与所述虚拟逻辑硬件端口之间消息数据的传递;以及用于实现飞控应用层组件对虚拟逻辑硬件端口及其消息数据的预先订阅功能;
[0007] 消息收发解析模块,分别与所述消息分发/订阅模块、硬件接口适配模块连接,用于将所述虚拟逻辑硬件端口与所述硬件接口适配模块管理的标准驱动接口的端口地址和数据地址进行一一映射;
[0008] 硬件接口适配模块,与硬件平台的底层硬件驱动接口连接,用于对各种标准驱动接口进行运行调度。
[0009] 进一步地,所述飞控应用层组件包括算法组件和功能组件。
[0010] 进一步地,在所述消息分发/订阅模块中,对虚拟逻辑硬件端口地址及其附属的逻辑收发消息数据地址进行集中管理的方式为:
[0011] 按照自定义虚拟功能对虚拟逻辑硬件端口进行分类命名;
[0012] 对分类后的每类虚拟逻辑硬件端口的地址按照端口顺序号进行编号命名;
[0013] 对虚拟逻辑硬件端口地址附属的逻辑收发消息数据地址按照数据地址顺序号进行编号命名。
[0014] 进一步地,所述飞控应用层组件与所述虚拟逻辑硬件端口之间消息数据的传递包括:
[0015] 飞控应用层组件产生的消息数据到预先订阅的虚拟逻辑硬件端口的分发,以及飞控应用层组件对其预先订阅的虚拟逻辑硬件端口产生的订阅消息数据件的接收。
[0016] 进一步地,所述消息分发/订阅模块,还用于为飞控应用层组件向预先订阅的虚拟逻辑硬件端口分发消息数据进行初始化操作提供标准分发访问接口函数;
[0017] 以及用于为飞控应用层组件接收对应的预先订阅的虚拟逻辑硬件端口分发订阅消息数据进行初始化操作提供标准订阅访问接口函数。
[0018] 进一步地,所述硬件接口适配模块包括内置的硬件初始化模块,所述硬件初始化模块用于对各种标准驱动接口进行初始化。
[0019] 本发明还提供一种飞控计算机,包括飞控应用层、硬件平台,还包括如上所述的通用硬件抽象层;所述通用硬件抽象层的消息分发/订阅模块与飞控应用层连接;所述通用硬件抽象层的硬件接口适配模块与硬件平台的底层硬件驱动接口连接。
[0020] 进一步地,所述硬件平台是以ARM处理器为核心的控制平台。
[0021] 有益效果
[0022] 与现有技术相比,本发明的优点在于:
[0023] 本发明所提供的一种飞控计算机及其通用硬件抽象层,通过硬件接口适配模块将该通用硬件抽象层与具体硬件平台关联的底层硬件驱动接口完全隔离,再通过消息分发/订阅模块将该通用硬件抽象层与顶层的飞控应用层组件完全隔离,从设计根本上保证了该通用硬件抽象层代码具有与硬件平台无关的特性,从而使该通用硬件抽象层具有良好的多种硬件平台的适应性和扩展性,有效地提高了飞控计算机软件的可移植性,使飞控计算机软件能够在不同硬件平台上快速移植和使用。

附图说明

[0024] 为了更清楚地说明本发明的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一个实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0025] 图1是本发明实施例中飞控计算机的通用硬件抽象层的结构框图;
[0026] 其中,100‑通用硬件抽象层,110‑消息分发/订阅模块,120‑消息收发解析模块,130‑硬件接口适配模块。

具体实施方式

[0027] 下面结合本发明实施例中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0028] 由于不同硬件平台的底层硬件驱动接口差异性大、且复杂性高,针对不同的底层硬件驱动接口需要开发特定的硬件抽象层,以通过硬件抽象层实现飞控计算机软件与底层硬件驱动接口之间的耦合,这些特定的飞控计算机硬件抽象层可移植性低,且移植难度较高,工作量巨大,使飞控计算机软件无法在不同硬件平台上快速移植、使用。
[0029] 基于上述技术问题,本发明提供一种飞控计算机及其通用硬件抽象层,通过硬件接口适配模块将该通用硬件抽象层与具体硬件平台关联的底层硬件驱动接口完全隔离,再通过消息分发/订阅模块将该通用硬件抽象层与顶层的飞控应用层组件完全隔离,从设计根本上保证了该通用硬件抽象层代码具有与硬件平台无关的特性,从而使该通用硬件抽象层具有良好的多硬件平台的适应性和扩展性,有效地提高了飞控计算机软件的可移植性,使飞控计算机软件能够在不同硬件平台上快速移植和使用。
[0030] 下面以具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
[0031] 如图1所示,本实施例所提供的一种飞控计算机的通用硬件抽象层100,包括消息分发/订阅模块110、消息收发解析模块120以及硬件接口适配模块130;消息分发/订阅模块110与飞控应用层连接;消息收发解析模块120分别与消息分发/订阅模块110、硬件接口适配模块130连接;硬件接口适配模块130与硬件平台的底层硬件驱动接口连接。
[0032] 消息分发/订阅模块110是将顶层的飞控应用层组件与通用硬件抽象层100进行隔离的关键组件,保证了通用硬件抽象层100的代码与顶层的飞控应用层组件无关。本实施例中,飞控应用层组件包括算法组件和功能组件。
[0033] 消息分发/订阅模块110用于对飞控应用层组件需要的(或使用到的)虚拟逻辑硬件端口地址及其附属的逻辑收发消息数据地址进行集中管理;用于完成飞控应用层组件与虚拟逻辑硬件端口之间消息数据的传递;为飞控应用层组件提供标准的访问接口函数,用于实现飞控应用层组件对虚拟逻辑硬件端口的预定初始化功能。消息分发/订阅模块对虚拟逻辑硬件端口地址及其附属的逻辑收发消息数据地址进行集中管理,不存在动态管理的不确定性,提高了飞控程序的鲁棒性,进而提升了飞行安全保障。本实施例中,消息分发/订阅模块110对虚拟逻辑硬件端口地址及其附属的逻辑收发消息数据地址进行集中管理的方式为:
[0034] 按照自定义虚拟功能对虚拟逻辑硬件端口进行分类命名,例如com,spi,iic,adc,pwm、can、io等,在硬件接口种类上适用范围上更为广泛;对分类后的每类虚拟逻辑硬件端口的地址按照端口0至端口N的顺序进行编号命名为port 0,…,port N;虚拟逻辑硬件端口地址附属的逻辑收发消息数据地址相应的也以其对应的地址顺序号命名为data0,…,dataN。
[0035] 飞控应用层组件与虚拟逻辑硬件端口之间消息数据的传递包括:飞控应用层组件产生的消息数据到预先初始化为发布所用的虚拟逻辑硬件端口的分发,以及飞控应用层组件对预先初始化为订阅所用的虚拟逻辑硬件端口产生的订阅消息数据的接收。具体的,飞控应用层各组件使用消息分发/订阅模块110提供的标准分发访问接口函数pub(name,port,data)完成向某一虚拟逻辑硬件端口地址分发消息数据的初始化操作;以及飞控应用层各组件使用消息分发/订阅模块110提供的标准订阅访问接口函数sub(name,port,data)完成接收某一虚拟逻辑硬件端口地址产生的订阅消息数据的初始化操作。需要说明的是,标准订阅访问接口函数中的参数name为虚拟逻辑硬件端口的分类号,port为端口号,data为附属的逻辑收发消息数据地址指针。例如,飞控应用层某一组件想向com类虚拟逻辑硬件的X号端口分发其某一数据mydata,即可使用标准分发访问接口函数pub(com,portX,dataX)实现,pub函数内部会自动将消息数据地址指针dataX指向mydata。
[0036] 飞控应用层各组件调用pub函数、sub函数实现向一个或多个虚拟逻辑硬件端口分发/订阅指定数据的初始化操作后,消息分发/订阅模块110会启动内部的数据即时监听模块即时的将各飞控应用层组件产生的消息数据分发到该飞控应用层组件预先初始化的一个或多个虚拟逻辑硬件端口;或者将各飞控应用层组件预先初始化的一个或多个虚拟逻辑硬件端口产生的消息数据传递到相应的飞控应用层组件。
[0037] 消息分发/订阅模块110为飞控应用层组件提供标准的访问接口函数,用于实现飞控应用层组件对虚拟逻辑硬件端口的预先订阅或分发功能,即飞控应用层组件对虚拟逻辑硬件端口及其数据的访问时只需初始化一次即可,后续消息分发/订阅模块110将会启动内部的分发/订阅数据即时监听模块即时的将各飞控应用层组件产生的消息数据分发到该飞控应用层组件预先初始化为分发的一个或多个虚拟逻辑硬件端口;或者将各飞控应用层组件预先初始化为订阅的一个或多个虚拟逻辑硬件端口产生的消息数据传递到相应的飞控应用层组件。不需要飞控应用层组件频繁向消息分发/订阅模块发起数据分发和订阅请求,提升了程序运行效率和安全性,运行效率和安全性是飞控计算机最为关心的问题。
[0038] 消息收发解析模块的内部核心为端口地址和消息数据地址映射表,用于将虚拟逻辑硬件端口与硬件接口适配模块130管理的标准驱动接口的端口地址和数据地址进行一一映射。与底层具体硬件相关的底层硬件接口驱动无法访问到硬件抽象层中的虚拟逻辑端口,因此具有更好的隔离特性,更高的运行效率,在开发标准驱动接口程序时也无需再关心硬件抽象层内部设置的虚拟逻辑端口,开发的程序具备更为安全和高效的运行效果。消息收发解析模块内部存在的端口地址和消息数据地址映射表,是预先制定好的,无需增加其他配置模块,且不可在程序运行过程中进行修改,具有更高的安全性。因飞控计算机关乎飞行器的飞行安全,需要程序在运行中具有唯一确定性,避免了因动态修改核心映射表而引起数据传递安全性和稳定性的问题,提高了飞行安全。
[0039] 消息收发解析模块根据其内部的映射表进行端口地址和数据地址的解析,将消息分发/订阅模块110内各虚拟逻辑硬件端口及发送或请求的消息数据,转发到对应的由硬件接口适配模块130管理的标准驱动接口;或者将硬件接口适配模块130管理的标准驱动接口接收的消息数据转发到对应的消息分发/订阅模块110的虚拟逻辑硬件请求数据端口。
[0040] 硬件接口适配模块130与消息收发解析模块连接,对硬件接口适配模块130内部包含的各种标准驱动接口进行初始化和运行调度。其中,对各种标准驱动接口进行初始化的工作由硬件接口适配模块130内置的硬件初始化模块专门负责。
[0041] 硬件接口适配模块130内部的多种标准驱动接口调用与硬件平台相关联的底层硬件驱动接口,将消息收发解析模块发送或请求的消息数据转发到具体的底层硬件驱动接口。需要近一步说明的是,硬件接口适配模块130内部的多种标准驱动接口,是一种指导性的代码规范和代码书写模板,需要专门的驱动工程师结合代码规范和现有的具体硬件平台底层驱动程序,按照代码书写模板封装出具体的接口驱动程序,以实现与底层硬件驱动接口的数据交互。正是这一特性,屏蔽了不同硬件平台底层硬件驱动接口的差异性,实现了通用硬件抽象层100与底层硬件驱动接口的分离,从而使通用硬件抽象层100具有良好的跨平台移植性。
[0042] 如图1所示,本实施例还提供一种飞控计算机,包括如上所述的通用硬件抽象层100、飞控应用层以及硬件平台;通用硬件抽象层100的消息分发/订阅模块110与飞控应用层连接;通用硬件抽象层100的硬件接口适配模块130与硬件平台的底层硬件驱动接口连接。
[0043] 本实施例中,通用硬件抽象层100包括消息分发/订阅模块110、消息收发解析模块120以及硬件接口适配模块130;消息分发/订阅模块110与飞控应用层连接;消息收发解析模块120分别与消息分发/订阅模块110、硬件接口适配模块130连接;硬件接口适配模块130与硬件平台的底层硬件驱动接口连接。硬件平台是以ARM处理器为核心的控制平台。
[0044] 以上所揭露的仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或变型,都应涵盖在本发明的保护范围之内。