在模拟器中使用的可配置的模块卡的制作方法与工艺

文档序号:11972783阅读:354来源:国知局
在模拟器中使用的可配置的模块卡的制作方法与工艺
本发明涉及模拟器领域。更具体地说,本发明涉及在模拟器中使用的可配置的模块卡。背景商业航空公司和空军使用飞行模拟器来锻炼其飞行员面对各种类型的情况。因为每种航空器都有其特殊性,飞行模拟器通常被建在一种类型或者相近类型的航空器上来锻炼飞行员。飞行模拟器分为几组组件,每组组件对应于航空器的特定功能。例如,第一组组件用于模拟显示器上显示的信息;第二组组件用于模拟航空器的运行;第三组组件用于模拟电路;另一组组件用于模拟液压回路等。上述几组组件由一个或者几个处理器集中控制。因此,需要在模拟器中使用的可配置的模块卡。概述根据第一方面,本发明提供了一种在模拟器中使用的可配置的模块卡。所述卡包括电路板、安装在电路板上的至少一个处理器和安装在电路板上且与处理器进行电子通信的至少一个存储器。所述卡包括可配置的输入/输出单元。可配置的输入/输出单元包括多个可配置的输入端和输出端。可配置的输入/输出单元有用于发送广播消息的预定义的输出端和用于接收广播响应消息的预定义的输入端。所述卡包括以电子方式与可配置的输入/输出单元、至少一个处理器和至少一个存储器连接以便在它们之间提供电子数据交换的总线。所述卡包括存储在存储器中的输入/输出配置代码。输入/输出配置代码当由至少一个处理器执行时,基于广播响应消息配置可配置的输入/输出单元的多个输入端和输出端。所述卡包括电源。电源接收预定电压的输入电力并包括多个可配置的电源电路。所述卡包括存储在所述存储器中的电源配置代码。电源配置代码当由至少一个处理器执行时,基于广播响应消息配置电源的所述多个电源电路。所述卡包括存储在存储器中的测试代码。测试代码当由至少一个处理器执行时,为基于广播响应消息配置的可配置的输入/输出单元的多个输入端和输出端产生测试信号。测试代码进一步为基于广播响应消息配置的电源的多个电源电路产生测试信号。在一个特定的方面,至少一个处理器执行模拟代码以实现模拟器的功能。在另一个特定的方面,配置可配置的输入/输出单元的多个输入端和输出端包括执行输入端和输出端的网络配置。在另一个特定的方面,所述可配置的输入/输出单元与至少一个其他模拟组件交换数据。在另一个特定的方面,配置可配置的输入/输出单元的多个输入端和输出端包括确定哪些输入端和输出端与至少一个其他模拟组件交换数据。在另一个特定的方面,执行模拟代码以实现所述模拟器的功能包括以下项中的至少一项:处理由所述可配置的输入/输出单元接收的数据,及产生由所述可配置的输入/输出单元发送的数据。在另一个特定的方面,所述模拟器的功能包括以下项中的至少一项:模拟显示器上显示的信息、模拟航空器的运动、模拟航空器的电路、模拟航空器的液压回路。在又一个特定的方面,模拟器的功能包括几个子功能,而且配置可配置的多个输入/输出单元的多个输入端和输出端包括确定哪些输入端和输出端被用于接收和发送与特定的子功能相关的数据。在另一个特定的方面,所述电源的特定的电源电路为所述卡的电子元件供电。在另一个特定的方面,配置电源的多个电源电路包括:确定由特定的电源电路提供给电子元件的电力的特定的电流强度和特定的电压中的至少一个。在另一个特定的方面,所述电子元件包括以下项中的一个:所述可配置的输入/输出单元、所述至少一个处理器、所述至少一个存储器和所述总线。在另一个特定的方面,所述电源的特定的电源电路为另一个模拟组件的电子元件供电。在另一个特定的方面,配置所述电源的所述多个电源电路包括确定由所述特定的电源电路提供给所述电子元件的电力的特定的电流强度和特定的电压中的至少一个。在另一个特定的方面,所述可配置的输入/输出单元包括用于通过以太网协议接收/传送数据的以太网板。在另一个特定的方面,所述可配置的输入/输出单元包括用于通过Wi-Fi协议接收/传送数据的Wi-Fi板。在另一个特定的方面,为可配置的输入/输出单元的多个输入端和输出端产生的测试信号允许检验输入端和输出端的网络配置。在又一个特定的方面,为可配置的输入/输出单元的多个输入端和输出端产生的测试信号允许检验输入端和输出端与另一个模拟组件的网络连接。在另一个特定的方面,为电源的多个电源电路产生的测试信号允许检验电源电路工作于规定的电压或者电流强度下。附图简述将仅仅以示例方式参考附图来描述本公开的实施例,在附图中:图1是可配置的模块卡的方框图;图2是根据第一方面包括几个图1中的可配置的模块卡的可配置的模拟器的方框图;图3是根据另一方面包括几个图1中的可配置的模块卡的可配置的模拟器的方框图;图4是根据又一方面的图1中的可配置的模块卡的方框图;图5根据另一方面示出了用于操作包括了多个图1中的可配置的模块卡的可配置的模拟器的方法;以及图6示出了包括几个图1中的可配置的模块卡的示例性飞行模拟器。详细描述在阅读以下只以示例方式参考附图给出的对其说明性实施例的非限制性描述时,上述的和其他特征将变得更加明显。相似的附图标记表示在各个附图中的相似特征。本发明的各个方面总体上解决了具有多个用于执行模拟的计算组件的模拟器的问题中的一个或者更多的问题。在本公开中提到的模拟器可以被用于不同的模拟目的。例如,第一类型的模拟器可以包括交通工具模拟器如航空器模拟器、陆地交通工具模拟器、船模拟器,地下模拟器,矿业模拟器或者核电站模拟器。模拟器是通常包括多个组件的复杂的系统。第一类型组件包括计算组件,所述计算组件包括用于执行特定的模拟软件(模拟软件和模拟代码在本公开中交替使用)的处理器。计算组件通常接收数据、通过特定的模拟软件处理接收到的数据以产生新的数据、并传送新的数据。计算组件也可以能够与一个或者几个专用硬件组件进行交互,所述专用硬件组件如,传感器、机械致动器、气动执行器、液压致动器、显示器、开关、灯、电子元件等。计算组件可以从专用硬件组件接收数据和/或者发送指令到专用硬件组件(例如,从传感器接收数据,并发送致动指令到致动器)。计算组件也可以彼此相互交换数据以执行和同步模拟。模拟器通常实现为用于执行模拟器的多个功能的多个子系统。每个子系统包括多个计算组件和多个专用硬件组件。计算组件由一个或者几个专用的实体来集中控制,专用的实体有执行控制软件的处理器。计算组件通常由专用的卡来实现,具有特定的电子元件的每个专用的卡经设计用于实现模拟器的特定的功能或者子功能。此外,每个专用的卡可仅能够执行存储在专用的卡里的存储器中的专用的软件。因此,当这样的专用的卡不能正常操作,唯一的选择就是修复该专用的卡(可能中断模拟)或者用完全相同类型的专用的卡替换该专用的卡(完全相同类型的专用的卡可能不能立即可用或者可能很贵)。本公开介绍了可配置的模块卡,所述可配置的模块卡可以经配置用于发挥上述的计算组件中的几个计算组件的作用。因此,所述模拟器不再依赖于多个专用的卡,多个专用的卡可以由可配置的模块卡的实例进行替换。可配置的模块卡包括几个可配置的电子元件(如可配置的输入/输出单元、可配置的电源)。由特定的可配置的模块卡执行的模拟软件也是可配置的。可配置的模块卡由一个或者几个有执行配置和控制软件的处理器的专用的实体进行配置和控制。因此,当实现模拟器的关键功能的特定的可配置的模块卡不能正常操作,模拟器的另一个可配置的模块卡可以经重新配置用于代替有缺陷的卡来实现关键的功能。图6示出了示例性飞行模拟器600,飞行模拟器600包括模拟控制器610和几个可配置的模块卡(631、632、641、642、652、661和671)。可配置的模块卡分层地执行飞行模拟器600的两个示例性子系统(发动机620和起落架650)。在之后的描述中将更详细的描述图6。可配置的模块卡现在参考图1,描述了用于在模拟器中使用的可配置的模块卡100。卡100包括电路板10和安装在电路板上的处理器20。尽管图1中示出了一个处理器20,但是卡100可以包括几个并行地运行的处理器,这对于本领域的技术人员来说是众所周知的。此外,每个处理器可以是单核或者多核处理器。至少一个处理器可以执行模拟代码或者模拟代码的一部分来实现模拟器的功能。模拟器的功能的例子包括但不局限于:模拟显示器上显示的信息、模拟航空器的运动、模拟航空器的电路、模拟航空器的液压回路、模拟心跳、模拟身体的功能、和/或者已知的任何其他类型的模拟代码。卡100也包括安装在电路板10上的存储器30,并且存储器30与处理器20进行电子通信。尽管图1中示出了一个存储器30,但是卡100可以包括几个存储器或者几组存储器。存在于卡100上的每个存储器可以专用于卡100的一个处理器或者在卡100的几个处理器之间共享。卡100还包括可配置的输入/输出(I/O)单元40。由处理器20执行的模拟代码可以通过可配置的I/O单元40来接收。可配置的I/O单元40包括多个可配置的输入端和输出端。为便于说明,图1中示出的可配置的I/O单元40包括可配置的输入端41、可配置的输出端42和可配置的输入端/输出端43。可配置的输入端41能够从未在图1中示出的一个或者几个其他组件接收数据。可配置的输出端42能够传送数据到未在图1中示出的一个或者几个组件。可配置的输入端/输出端43能够与一个或者几个组件110交换(传送或者接收)数据。可配置的I/O单元40也可以包括一个或者几个开关。例如,图1中示出的可选择的开关44。开关44能够执行以下动作中的至少一个:对可配置的输入端/输出端43和其他模拟组件110之间交换的信号进行切换、多路复用和解复用。只要可配置的输入端和输出端与电路板10的大小和形状以及由电路板10上的其他电子元件所留下的空间相一致,可配置的I/O单元40就可以包括任意数量的可配置的输入端和输出端。可配置的I/O单元40的每个可配置的输入端和输出端能够与单个或者多个其他的模拟组件进行通信,例如诸如:面板、电子设备、传感器、发动机、和致动器和/或者任何类型的航空器或者交通工具的制导、航空器的航空电子设备等。当处理器20执行模拟代码来实现模拟器的功能,处理器20可以处理由可配置的I/O单元40从其他组件接收的数据,并产生由可配置的I/O单元40要发送到其他组件的数据。可配置的I/O单元40的可配置的输入端和输出端按照一种或者几种类型的通信协议为卡100提供通信能力。例如,可配置的I/O单元40可以包括至少一个用于通过以太网协议接收/传送数据的以太网板。可选择地或者同时地,可配置的I/O单元40可以包括模拟的或者数字的输入端/输出端、串行输入端/输出端、USB输入端、以太网输入端、用于通过Wi-Fi协议接收/传送数据的无线保真(Wi-Fi)板、控制局域网总线、I2输入端/输出端。可配置的I/O单元40也可以包括用于将视频(和音频)数据传送到屏幕的高清晰度多媒体接口(HDMI)卡。其他类型的输入端和输出端可以由可配置的I/O单元40基于与卡100交换数据的各种类型的其他模拟组件(如110)来实现。可配置的I/O单元40还发送广播消息和接收广播响应消息。广播消息可以由可配置的I/O单元40的不同的输出端来发送,而且广播响应消息可以由可配置的I/O单元40的不同的输入端来接收。另外,不同的通信协议可以被用于发送广播消息和接收广播响应消息。在一个特定的方面,可配置的I/O单元40有用于发送广播消息的预定义的输出端和用于接收广播响应消息的预定义的输入端。在图1中示出的实施例中,通过输入端/输出端43发送广播消息120和接收广播响应消息121。可选地,广播消息120可以通过输出端42进行发送,并且广播响应消息121可以通过输入端41进行接收。在另一个实施例中,广播消息120可以通过可配置的I/O单元40的以太网板进行发送,以及广播响应消息121可以通过可配置的I/O单元40的Wi-Fi板进行接收。可选地,广播消息120可以通过可配置的I/O单元40的Wi-Fi板进行发送,以及广播响应消息121可以通过可配置的I/O单元40的以太网板进行接收。当卡100在使用前被制造/预配置时,预定义的输出端和预定义的输入端可以被永久地存储在存储器30中。在卡100启动时,处理器20可以执行永久地存储在存储器中30中的引导程序。引导程序包括通过存储的预定义的输出端发送广播消息120,以及通过存储的预定义的输入端接收广播响应消息121。在一个特定的实施例中,广播消息120包括配置请求、卡100的标识(如,序列号)和预定义输入端的标识(如,以太网或者互联网协议(IP)地址)。广播消息120由配置组件进行接收。配置组件基于卡100的标识来确定配置参数。之后,配置组件通过发送到预定义输入端的广播响应消息121,将配置参数传送给卡100。配置组件可以基于很多可能的变体(如,需要的替换卡、要求的处理能力、要执行的模拟、物理I/O能力等)来确定配置参数。配置参数可以包括其他可配置的模块卡的清单,卡100必须与其他可配置的模块卡通信以执行模拟。例如,配置参数可以包括卡以及与卡相对应的子功能的清单,以使得卡100在执行模拟时,通过识别到由来自清单的特定的卡执行了特定的子功能,可以直接与其他的卡进行通信。配置参数也可以包括专用硬件组件的清单,卡100必须与专用硬件组件通信以执行所述模拟。图1中示出的其他模拟组件110中的一个模拟组件可以执行配置组件。因为卡100没必要知道配置组件,所以使用广播消息120。通过以广播模式发送消息120,卡100确保配置组件(以及其他实体)能接收到消息120。配置组件接收广播消息120、确定其自身为预期的接收者、处理广播消息120并回送广播响应消息121。卡100也包括以电子方式与可配置的输入/输出单元40、与电路板10的至少一个处理器20和与电路板10的至少一个存储器30连接的总线50。总线50在它们之间提供电子数据交换。例如,处理器20通过总线50读取存储器30中的数据、处理所述数据,并通过总线50将处理的数据传送到可配置的I/O单元40(用于由可配置的I/O单元40的输出端进一步地传输到另一个模拟组件)。类似地,处理器20通过总线50从可配置的I/O单元40接收数据(由可配置的I/O单元40的输入端从另一个模拟组件接收数据)、处理所述数据,并通过总线50将处理的数据传送到存储器30用于存储于此。输入/输出(I/O)配置代码(在图1中没有示出)存储在存储器30中。I/O配置代码由处理器20执行,以基于接收到的广播响应消息121来配置可配置的I/O单元40的多个输入端和输出端(例如,41、42和43)。可配置的I/O单元40的配置可以包括其输入端和输出端的网络配置。网络配置对于本领域技术人员来说是熟知的,而且取决于输入端和输出端的具体类型,以及它们所支持的通信协议的具体类型。例如,以太网输入端/输出端的配置可以包括其IP地址的配置。Wi-Fi输入端/输出端的配置可以包括服务集标识符(SSID)、无线密钥以及其IP地址的配置。在这些例子中,IP地址、SSID和无线密钥是通过广播响应消息121传送到卡100的网络配置参数。可配置的I/O单元40的配置可以包括其输入端和输出端的功能配置。例如,卡100的第一子功能与第一输入端/输出端相关。当执行第一子功能时,与其他模拟组件(例如,110)交换的所有数据由第一输入端/输出端传送和接收。卡100的另一个子功能与第二输入端/输出端相关。当执行第二子功能时,与其他模拟组件交换的所有数据由第二输入端/输出端传送和接收。例如,可配置的I/O单元40可以有两个视频输出端。第一视频输出端与受训者的视频屏幕相连接,而且第二视频输出端与指导员的视频屏幕相连接。处理器20运行模拟软件,其为受训者产生特定的视频数据(第一子功能),而且为指导员产生特定的视频数据(第二子功能)。接收到的广播响应消息121提供以下配置:为受训者提供的特定的视频数据应该通过第一视频输出端进行传送,而且为指导员提供的特定的视频数据应该通过第二视频输出端进行传送。可选地,可配置的I/O单元40的输入端和输出端的功能配置可以在于确定多个输入端和输出端中的哪些输入端和输出端被用于与另一个模拟组件交换数据。参考之前其中可配置的I/O单元40有两个视频输出端的例子,接收到的广播响应消息121提供以下配置:被发送到第一屏幕(例如,受训者的屏幕)的视频数据应该通过第一视频输出端进行传送,而且被发送到第二屏幕(例如,指导员的屏幕)的视频数据应该通过第二视频输出端进行传送。广播消息的参数的例子也包括:声音数据、传感器数据、航空器协议数据、交通工具协议数据等。卡100也包括电源60。电源60接收预定电压的输入电力65而且包括多个可配置的电源电路。为便于说明,图1示出的电源60包括两个可配置的电源电路61和62。只要电源与电路板10的大小和形状以及由电路板10上的其他电子元件所留下的空间相一致,则电源60就可以包括任意数量的可配置的电源电路。可配置的电源电路为卡100的一个或者几个电子元件提供电力。此外,可配置的电源电路一些可配置的电源电路可以为一个或者几个其他的模拟组件(例如,110)的电子元件提供电力。为了说明目的,图1中示出的可配置的电源电路61为可配置的I/O单元40提供电力66,而且可配置的电源电路62为处理器20提供电力67。基于实施偏好或者电源60的能力或者由卡100供电的其他组件的电力需求的能力,使用的电力具有与输入电力65相同的电压和电流的组件,可以直接从输入电力65接收电力,而不是通过如由输入电力65和I/O单元40之间的虚线示出的电源60供电。,尽管为了简便目的未在图1中示出,可配置的电源电路61和62也可以为总线50、存储器30和其他模拟组件110提供电力。可选地,另外的可配置的电源电路可以用于为总线50、存储器30和其他模拟组件110提供电力。例如,其他模拟组件110可以包括一个或者几个用于显示数据的屏幕,屏幕从电源单元60的可配置的电源电路中的至少一个可配置的电源电路接收电力。电源配置代码(图1中没有示出)存储在存储器30中。电源配置代码由处理器20执行,以基于接收到的广播响应消息121来配置电源60的多个电源电路(例如,61和62)。每个特定电源电路的配置可以包括特定的电流强度(电压与输入电力65类似)、特定的电压(电流强度与输入电力65类似)、脉宽调制的电力或者电流强度和电压的特定组合,作为由特定的电源电路提供的电力。如果电源电路有几个输出端为几个实体提供电力,则每个电源输出端可以单独进行配置。广播响应消息121包括用于电源60的每个可配置的电源电路的电力配置参数(例如,电流强度和/或者电压)。在图1中示出的实施例中,相同的广播消息120/广播响应消息121被用于配置可配置的I/O单元40和电源60。可选地,专用的广播消息/广播响应消息可以用于相应地配置可配置的I/O单元40和电源60。电源60的一个或者几个电源电路可以有默认配置用于允许卡100在接收到包含电力配置参数的广播响应消息121之前的正确操作。电源电路中的一些电源电路的默认配置可能将被接收到的电力配置参数覆盖,然而,可以保持电源电路中的一些电源电路的默认配置。当卡100在使用前被制造/预配置时,配置代码(I/O配置代码和电源配置代码)可以被永久地存储在存储器30中。一旦卡100启动,在接收到广播响应消息121之后,处理器30可以执行配置代码。配置代码也可以在其他时刻被执行:在卡100复位之后、在卡100故障(软件或者硬件)之后需要完整的重新配置等。通过广播响应消息121接收到的可配置的I/O单元40的配置参数和电源60的配置参数可以被永久地存储在存储器30中,在任何时候可供配置代码使用。可选地,最初配置代码可以不在存储器30中,而是从外部实体进行下载(例如,其他组件110的一个),并存储在存储器30中用于进一步地使用。可配置的I/O单元40的预定义的输出端和预定义的输入端(例如,43)可以被用于执行配置代码的下载。广播消息120/广播响应消息121可以被用于此目的;或者可以使用专用于配置代码的下载的额外的广播消息/广播响应消息。测试代码(图1中没有示出)存储在存储器30中。由处理器20执行测试代码为基于广播响应消息121配置的可配置的I/O单元40的多个输入端/输出端产生测试信号。由处理器20执行测试代码也可以为基于广播响应消息121配置的电源60的多个电源电路产生测试信号。为可配置的I/O单元40的多个输入端/输出端产生的测试信号允许检验输入和输出的操作符合通过广播响应消息121接收的配置参数。所述检验可以包括对输入端和输出端的网络配置的检验。例如,测试信号可以允许确定特定输入端或者特定输出端能够相应地以特定的吞吐量、以特定的延迟、以特定的丢包率等接收和传送数据。所述检验也可以包括检验输入端和输出端与另一个模拟组件的网络连接。同时地或者可选地,所述检验也可以包括对电压状态和电流状态的持续检验。为此目的,为电源60的多个电源电路产生的测试信号允许检验电源电路的操作符合通过广播响应消息121接收的配置参数。例如,测试信号可以允许确定特定的电源电路工作于规定的电压和/或者电流强度下。与配置代码相似地,当卡100在使用前被制造/预配置时,测试代码可以被永久地存储在存储器30中。可选地,最初测试代码可以不在存储器30中,而是从外部实体进行下载(例如,其他组件110中的一个),并存储在存储器30中用于进一步地使用。如果有几个处理器安装在电路板10上,则配置代码和测试代码可以由相同的处理器或者由不同的处理器来执行。此外,测试代码可以被分为由不同的处理器以并行地操作执行的多个功能模块。带有多个可配置的模块卡的可配置的模拟器现在同时参考图1和图2,描述了带有多个可配置的模块卡的可配置的模拟器200。模拟器200包括可配置组件210和多个可配置的模块卡101、102、103和104。多个可配置的模块卡101、102、103和104是先前参考图1已经描述的可配置的模块卡100的实例。尽管4个可配置的模块卡100的实例已经在图2中示出,但是模拟器200可以包括任意数量的这些卡。配置组件210包括输入/输出(I/O)单元211和处理器212。配置组件210可以包括为了简化目的并没有在图2中示出的额外的电子元件,如额外的处理器、至少一个存储器、总线、供电单元。配置组件210配置多个可配置的模块卡101、102、103和104。可配置的模块卡100的实例的配置先前参考图1已经进行了描述。每个可配置的模块卡(例如,101)发送广播消息(在其可配置的I/O单元40的预定义的输出端上)到配置组件210。广播消息由配置组件210的I/O单元211进行接收并传送到处理器212。尽管图2示出了各种I/O单元间的物理连接,但是这里彼此之间的连接有可能是逻辑连接和/或者无线连接。处理器212为可配置的模块卡(例如,101)确定配置参数,并将配置参数传送到I/O单元211。I/O单元211将带有配置参数的广播响应消息发送到可配置的模块卡(例如,101)。在可配置的模块卡(例如,101)的可配置的I/O单元40的预定义的输入端上接收广播响应消息。基于接收到的广播响应消息,每个可配置的模块卡(例如,101)的处理器20执行其I/O配置代码来配置其可配置的输入/输出单元40的多个输入端和输出端。基于接收到的广播响应消息,每个可配置的模块卡(例如,101)的处理器20执行其电源配置代码来配置其电源60的多个电源电路。模拟器200可以包括一个以上的配置组件210。例如,配置组件210可以负责配置可配置的模块卡101和102,而另一个配置组件(图2中没有示出)可以负责配置可配置的模块卡103和104。此外,可以由可配置的模块卡100来执行配置组件。例如,可配置的模块卡103可以由配置组件210进行配置,并为可配置的模块卡104执行配置组件的功能。当模拟器200的可配置的模块卡(例如,101)经过配置,其处理器20能够执行模拟代码来实现模拟器200的功能。其可配置的I/O单元40能够与至少一个其他的模拟组件交换(接收和发送)数据。执行模拟代码来实现模拟器200的功能包括处理由可配置的I/O单元40接收的数据并产生将由可配置的I/O单元40发送的数据。由处理器20执行的I/O配置代码来确定用于与特定的其他模拟组件交换特定类型的通信数据或者用于与特定的其他模拟组件通信的可配置的I/O单元40的特定的输入端和输出端。其他模拟组件可以包括另一个可配置的模块卡100或者与可配置的模块卡100不同的专用硬件组件220(例如,显示器、灯、机械致动器等)。例如,如图2中所示,可配置的模块卡101与可配置的模块卡102交换数据。可配置的模块卡102与可配置的模块卡101和104交换数据。可配置的模块卡103与可配置的模块卡104以及专用硬件组件220交换数据。可配置的模块卡104与可配置的模块卡102和103交换数据。专用硬件组件(例如,220)如显示器、灯、机械致动器由一个或者几个可配置的模块卡(例如,103)来控制。在这种情况下,它们之间交换的数据包括由可配置的模块卡(例如,103)的处理器20执行的模拟软件产生的指令。指令被发送到专用硬件组件(例如,220)来触发代表了模拟的当前状态的事件。这些事件可以包括:在显示器上显示数据、打开或者关闭灯、激活机械致动器(例如,去移动受训者坐着的座位)、控制模拟式仪表(为设备开动仪表,例如诸如,测高仪、泵浦表、压力表等)。可选地,专用硬件组件(例如,220)可以包括传感器,以及在传感器与一个或者几个可配置的模块卡(例如103)之间交换的数据存在于传感器采集并传送到可配置的模块卡的数据中。由可配置模块卡(例如,103)的处理器20执行的电源配置代码,配置其电源60的电源电路来为可配置的模块卡(例如,103)的电子元件(例如,处理器20、可配置的I/O单元40)供电。更具体地,所述配置包括确定供给特定的电子组件的电力的至少一个特定的电流强度或者特定的电压。此外,电源单元60的电源电路中的一些电源电路可以经配置用于为另一个实体的电子元件供电。例如,可配置的模块卡103的电源单元60的电源电路中的一些电源电路可以经配置用于为可配置的模块卡104的电子元件或者专用硬件组件220的电子元件供电。具有分布式模拟功能的可配置的模拟器现在同时参考图1和图3,描述了包括用于执行分布式模拟的多个可配置的模块卡的可配置的模拟器300。模拟器300包括模拟控制器310和多个可配置的模块卡101、102、103和104。多个可配置的模块卡101、102、103和104是先前参考图1已经描述的可配置的模块卡100的实例。尽管4个可配置的模块卡100的实例已经在图3中示出,但是模拟器300可以包括任意数量的这些卡。模拟控制器310与图2中示出的配置组件210相对应,但是具有用于管理分布式模拟和在适当的时候用于重新配置可配置的模块卡的额外的功能。模拟控制器310包括输入/输出(I/O)单元311和处理器312。模拟控制器310可以包括为了简化目的并没有在图3中示出的额外的电子元件,如额外的处理器、至少一个存储器、总线、供电单元。模拟控制器310配置多个可配置的模块卡101、102、103和104。可配置的模块卡100的实例的配置已经先前参考图1进行了描述。每个可配置的模块卡(例如,101)发送广播消息到模拟控制器310。广播消息由模拟控制器310的I/O单元311进行接收并传送到处理器312。处理器312为可配置的模块卡(例如,101)确定配置参数,并将配置参数传送到I/O单元311。I/O单元311将带有配置参数的广播响应消息发送到可配置的模块卡(例如,101)。由可配置的模块卡(例如,101)的可配置的I/O单元40接收广播响应消息。基于模拟器的预定义的配置来确定配置参数。例如,如图3示出,模拟器300可以包括两个子系统350和360。第一子系统350执行模拟器的第一功能,例如,模拟航空器的运动。第二子系统360执行模拟器的第二功能,例如,模拟显示器上显示的信息。功能可以划分为几个子功能,而且模拟器的预定义的配置决定了哪些可配置的模块卡执行哪些功能或者子功能。系统的例子包括:飞行控制、自动驾驶系统、导航系统、电源管理系统等。每个可配置的模块卡(例如,101)的处理器20产生由其可配置的I/O单元40发送到模拟控制器310的广播消息。基于由每个可配置的模块卡(例如,101)的可配置的I/O单元40接收到的广播响应消息(包括配置参数),每个可配置的模块卡(例如,101)的处理器20执行其I/O配置代码来配置其可配置的输入/输出单元40的多个输入端和输出端。基于由每个可配置的模块卡(例如,101)的可配置的I/O单元40接收到的广播响应消息(包括配置参数),每个可配置的模块卡(例如,101)的处理器20执行其电源配置代码来配置其电源60的多个电源电路。每个可配置的模块卡(例如,101)的处理器20执行模拟代码以执行模拟器的功能,基于由每个可配置的模块卡(例如,101)的可配置的I/O单元40接收到的广播响应消息(包括配置参数)来确定要执行的仿真代码。模拟代码可以通过包括引用在模拟中涉及的每个硬件组件和硬件子组件的标签来将硬件与软件去耦。例如,将要被使用的I/O单元40的输入端/输出端被加上标签,而且对在模拟代码中的标签,而不是在输入端/输出端自身的标签进行引用。通过将模拟中涉及的硬件组件和硬件子组件加上标签,并引用在模拟代码中的标签,可以根据需要且甚至在运行中或者动态地,通过简单地重新分配标签其他硬件组件和硬件子组件来使得修改模块卡100以及模块卡与其他组件之间的交互变得可能。当模拟器的特定功能被划分为几个子功能时,几个可配置的模块卡(例如,101和102,或者可选地,103和104)的处理器20执行模拟代码来执行模拟器的特定功能的几个分布式的子功能。在图3中示出的例子中,由第一子系统350执行的模拟器的第一功能可以包括两个分布式的子功能,两个分布式的子功能由两个可配置的模块卡101和102的处理器20执行的模拟代码分别地执行。由第二子系统360执行的模拟器的第二功能可以包括两个分布式的子功能,两个分布式的子功能由两个可配置的模块卡103和104的处理器20执行的模拟代码分别地执行。模拟器300可以包括一个以上的模拟控制器。例如,模拟控制器310负责控制子系统350和360的可配置的模块卡101、102、103和104;而且另外一个模拟控制器(在图3中没有示出)可以负责控制至少一个其他子系统(在图3中没有示出)的可配置的模块卡。此外,模拟控制器可以由可配置的模块卡100来执行。模拟器300也可以包括由模拟控制器的层次结构控制的系统和子系统的层次结构。例如,第二子系统360可以包括至少一个低层次的子系统365。可配置的模块卡103可以类似于模拟控制器310来执行模拟控制器功能。因此,可配置的模块卡103由模拟控制器310进行控制,并且控制低层次的子系统365的可配置的模块卡(在图3中没有示出)。由可配置的模块卡(例如,101)的处理器20执行的模拟代码可以最初存储在可配置的模块卡的存储器30中。模拟代码可以被划分为软件模块来执行模拟器的各种功能和子功能。因此,对应于用接收到的广播响应消息的配置参数指定的功能或者子功能,处理器20可以选择执行特定的软件模块。可选地,特定的软件模块可能最初没有存储在存储器30中,而且可配置的模块卡(例如,101)可能需要去下载它,例如,从预定义的软件服务器或者从模拟控制器310下载。正如前面参考图1和图2所提到的,可配置的模块卡(例如,101)的可配置的I/O单元40能够与至少一个其他模拟组件交换(接收和发送)数据。其他模拟组件可以包括另一个可配置的模块卡100。例如,可配置的模块卡101和102交换由可配置的模块卡101和102的处理器20执行的模拟代码所产生的数据。每个模块卡101和102执行由子系统350执行的全局功能的分布式的子功能。数据交换能让可配置的模块卡101和102分别地执行的子功能同步。同样地,数据交换能让由可配置的模块卡103和104分别地执行的子功能同步。每个模块卡103和104执行由子系统360执行的全局功能的分布式的子功能。尽管在图3中没有示出,不同子系统(例如,102和103)的可配置的模块卡也可以交换数据。其他模拟组件也可以包括专用硬件组件320、321和322。专用硬件组件(如显示器、灯、机械致动器)在一个或者几个可配置模块卡100的控制之下。在这种情况下,它们之间交换的数据包括由可配置的模块卡100的处理器20执行的模拟软件产生的指令。指令被发送到专用硬件组件来触发代表模拟当前状态的事件。可选地,专用硬件组件可以包括传感器,以及由传感器采集数据并发送到可配置的模块卡时在传感器与一个或者几个可配置的模块卡100之间交换的数据。在图3中示出的例子中,由第一子系统350执行的功能模拟了航空器的运动,而且由第二子系统360执行的功能模拟了显示器上显示的信息。专用硬件组件321是用于移动受训者坐着的座位的机械致动器,机械致动器由可配置的模块卡101控制。专用硬件组件322是代表了在航空器的运动中发生的各种事件的一盏灯或者一组灯,其由可配置的模块卡102来控制。专用硬件组件320是用于显示数据的显示器,其由可配置的模块卡103和104同时地进行控制。本领域技术人员应当理解的是,功能并不局限于图3中的例子,而且可以由本模块卡执行其他的功能和子系统如以下的交通工具组件、航空器组件、航空电子设备、座舱面板、交通工具面板等。在一个特定的方面,模拟控制器310的I/O单元311从多个可配置的模块卡中的一个(例如,101)接收带有测试结果的测试通知。模拟控制器310的处理器312分析测试结果,确定可配置的模块卡(例如,101)的操作状态,并基于测试结果和先前确定的配置参数确定重新配置参数。例如,如果负责控制机械致动器321的可配置的模块卡101不正常工作,可以重新配置可配置的模块卡102来控制致动器321。可配置的模块卡102可以经过重新配置用于只控制致动器321,或者可以经重新配置用于同时地控制致动器321和灯322。可选地,其他子系统360的可配置的模块卡(例如,104)可以经重新配置用于控制致动器321。因此,重新配置参数可以影响一个或者几个子系统(例如,350或者360)的一个或者几个可配置的模块卡(例如,102或者104)。模拟控制器310的I/O单元311发送带有重新配置参数的重新配置请求到需要重新配置的可配置的模块卡(例如,102)。一旦可配置的模块卡(例如,102)的可配置的I/O单元40接收到重新配置请求,可配置的模块卡的处理器20基于重新配置请求执行输入/输出配置代码来重新配置可配置的模块卡的可配置的I/O单元40的多个输入端和输出端。处理器20基于重新配置请求也执行电源配置代码来重新配置电源60的多个电源电路。处理器20进一步地执行模拟代码来实现模拟器的功能或者子功能,执行的模拟代码将基于重新配置请求来确定。例如,可配置的模块卡102的处理器20执行模拟代码来控制致动器321,而不是执行先前执行的用于控制灯322的模拟代码。现在参考图6,描述了用于执行分布式模拟的包括多个可配置的模块卡的模拟器的例子。图6示出了包括模拟控制器610和可配置的模块卡的层次结构(631、632、641、642、652、661和671)的飞行模拟器600。飞行模拟器600包括用于模拟航空器的第一功能如发动机的第一子系统620。子系统620包括用于分别地模拟航空器的左侧发动机和右侧发动机的两个低层次子系统630和640。可配置的模块卡631和632负责模拟左侧发动机。卡631和632直接由模拟控制器610进行配置和控制。卡631和632控制几个专用硬件组件:显示器635、灯636(专用于模拟左侧发动机);和座舱致动器635(在模拟左侧发动机和右侧发动机之间共享)。可配置的模块卡641和642负责模拟右侧发动机。卡641和642直接由模拟控制器610进行配置和控制。卡641和642控制几个专用硬件组件:显示器645、灯646(专用于模拟右侧发动机);和座舱致动器635(在模拟左侧发动机和右侧发动机之间共享)。飞行模拟器600包括用于模拟航空器的第二功能(如起落架)的第二子系统650。子系统650包括用于分别地模拟航空器的左侧轮子和右侧轮子的两个低层次子系统660和670。可配置的模块卡652负责模拟起落架子系统650的常见功能。卡652直接由模拟控制器610进行配置和控制。卡652控制几个专用硬件组件:液压回路655和电路656。模拟子控制器651负责子系统650的低层次子系统660和670的控制。模拟子控制器651直接由模拟控制器610进行配置和控制。模拟子控制器651可以与卡652进行交互来控制低层次子系统660和670。模拟子控制器功能651可以集成在卡652上。可配置的模块卡661负责模拟左侧轮子的特定功能。卡661由模拟子控制器651进行配置和控制。卡661控制几个专用硬件组件:灯665(专用于模拟左侧轮子)和座舱致动器657(在模拟左侧轮子和右侧轮子之间共享)。可配置的模块卡671负责模拟右侧轮子的特定功能。卡671由模拟子控制器651进行配置和控制。卡671控制几个专用硬件组件:灯675(专用于模拟右侧轮子);和座舱致动器657(在模拟左侧轮子和右侧轮子之间共享)。有集成的测试能力的可配置的模拟器现在同时回顾图1和图3,在另一方面,模拟器300包括集成的测试能力。模拟控制器310管理由多个可配置的模块卡(101、102、103和104)在其控制下执行的一系列的测试,并集中测试结果。在一个实施例中,可配置的模块卡(例如,101)具有自动测试的能力。它们自动地执行一系列的测试,并将测试结果报告给模拟控制器310。由可配置的模块卡(例如,101)的处理器20执行测试(执行测试代码),而且测试结果通过测试通知被传送给模拟控制器310。测试通知由处理器20通过聚集测试结果生成,并由可配置的模块卡(例如,101)的可配置的I/O单元40进行传送。模拟控制器310的I/O单元311接收测试通知,而且其处理器312处理存在于测试通知中的测试结果。处理对应于特定的可配置的模块卡(例如,101)的特定的测试结果允许确定特定的可配置的模块卡(例如,101)的操作状态。基于在其控制下从多个可配置的模块卡(101、102、103和104)接收到的测试结果,模拟控制器310保持所有的可配置的模块卡在其控制下的全局操作状态。正如先前地描述,基于一些可配置的模块卡(101、102、103和104)的全局操作状态,模拟控制器310可以触发这些可配置的模块卡(101、102、103和104)中的一些可配置的模块卡在其控制下的重新配置。例如,由于可配置的模块卡101上执行的一系列测试检测到可配置的模块卡101的故障,故可配置的模块卡102可以经重新配置用于执行先前由可配置的模块卡101执行的功能。正如先前参考图1所述,由可配置的模块卡(例如,101)的处理器20执行的测试代码包括为基于由可配置的I/O单元40接收到的广播响应消息配置的可配置的模块卡(例如,101)的可配置的I/O单元40的多个输入端和输出端产生测试信号。由可配置的模块卡(例如,101)的处理器20执行的测试代码也包括为基于由可配置的I/O单元40接收到的广播响应消息配置的电源60的多个电源电路产生测试信号。此外,由可配置的模块卡(例如,101)的处理器20执行的测试代码还包括监控由处理器20执行的模拟代码的执行。由处理器20执行的模拟代码实现模拟器300的功能。功能可以被划分为几个分布式的子功能,每个特定的子功能将由特定的可配置的模块卡100来实现。因此,监控模拟代码的执行可以在于监控与特定的子功能相对应的代码。如果可配置的模块卡100实现几个子功能,则测试代码可以只监控这些子功能的子集。正如先前地描述,由可配置的模块卡(例如,101)的处理器20执行的模拟代码可以包括用于以控制发送到专用硬件组件(例如321)的指令的方式来控制专用硬件组件(例如,321)的代码。例如,专用硬件组件321是用于移动受训者坐着的座位的机械致动器。在这种情况下,执行测试代码还包括为专用硬件组件(例如,321)产生测试信号来检验该专用硬件组件正在根据其从其的控制可配置的模块卡(例如,101)接收到的控制指令进行操作。在另一个实施例中,可配置的模块卡(例如,101)执行由配置控制器310确定的一系列的测试。通过从模拟控制器310接收到测试请求来触发特定的可配置的模块卡(例如,101)的处理器20执行测试代码。测试请求指定将通过由处理器20执行测试代码来执行的至少一个特定测试。至少一个特定测试包括以下项中的一个:测试可配置的I/O单元40的输入端和输出端、测试电源60的多个电源电路、监控由处理器20对模拟代码的执行和为另一个模拟组件(例如,321)产生测试信号。现在参考图4,示出了图1中的可配置的模块卡100的简化版,描述了卡100的配置参数和软件代码。卡100的存储器30存储配置参数、配置代码、模拟代码和测试代码。卡100的配置参数最初存储在配置组件410的存储器(图4中没有示出)中;而且经由上述的广播消息120/广播响应消息121,通过卡100的可配置的I/O单元40传送到存储器30。配置组件410相对应于以下项中的一个:图2中示出的配置组件210或者图3中示出的模拟控制器310(具有配置功能)。由卡100执行的模拟代码也最初存储在配置组件410的存储器中,而且通过可配置的I/O单元40被传送到存储器30。上述的广播消息120/广播响应消息121可以被用于此目的。另一种传送机制也可以被用于此目的。可选地,模拟代码可以最初被存储在存储器30中,或者由软件服务器(图4中没有示出)进行传送。存储器30存储由卡的处理器20执行的配置代码。例如,存储在存储器30中的配置代码包括电源配置代码,当处理器20执行电源配置代码时,基于与电源60相关的且存储在存储器30中的特定的配置参数来配置卡100的电源60。存储在存储器30中的配置代码也包括I/O单元配置代码,当由处理器20执行I/O单元配置代码时,基于与可配置的I/O单元40相关的且存储在存储器30中的特定的配置参数来配置可配置的I/O单元40。处理器20执行存储在存储器30中的模拟代码。模拟代码可以包括与几个模拟功能和子功能相对应的多个软件模块。特定的软件模块的执行及它们之间的执行顺序可以由与模拟流程相关的且存储在存储器30中的特定的配置参数来确定。存储器30存储由处理器20执行的测试代码。测试代码可以最初被存储在存储器20中,或者由配置组件410或者由软件服务器(图4中没有示出)进行传送。例如,存储在存储器30中的测试代码包括电源测试代码,当由处理器20执行电源测试代码时,测试电源60。存储在存储器30中的测试代码也包括I/O单元测试代码,当由处理器20执行I/O单元测试代码时,测试可配置的I/O单元40。存储在存储器30中的测试代码还包括模拟测试代码,当由处理器20执行模拟测试代码时,监控模拟代码的执行。用于操作包括多个可配置的模块卡的可配置的模拟器的方法现在同时参考图4和图5,描述了用于操作包括多个可配置的模块卡的可配置的模拟器的方法500。以方法500操作的可配置的模拟器可以与先前关于图2描述的模拟器200或者与先前关于图3描述的模拟器300相对应。可配置的模拟器包括与先前关于图1和图4描述的卡100相对应的多个可配置的模块卡。为了简化目的,图5中只示出了两个可配置的模块卡504和506,但是模拟器可以包括任意数量的可配置的模块卡。图5中示出的模拟控制器502与先前关于图2和图4描述的配置组件210和410相对应,和/或者与先前关于图3描述的模拟控制器310相对应。模拟控制器502可以被集成在可配置的模拟器,或者可以是以通信协议(如以太网协议或者Wi-Fi协议)的方式与可配置的模拟器通信的外围组件。方法500包括步骤510:在模拟控制器502的存储器(没有示出)中为多个可配置的模块卡(504和506)存储配置参数。方法500包括步骤520:即在多个可配置的模块卡(504或者506)的存储器30中存储配置代码、模拟代码和测试代码。在一个特定的方面,配置代码、模拟代码和测试代码中的至少一个可以被存储在模拟控制器502的存储器中,并从模拟控制器502被传送到卡(504或者506)。可选地,所述代码最初存在于卡(504或者506)的存储器30中。方法500包括为特定的卡(504或者506)从模拟控制器502传送特定的配置参数到卡(504或者506)。因此,每个卡(504或者506)可以有其自己的在模拟控制器502中产生并存储的特定的配置参数。在一个特定的方面,传送特定的配置参数包括从卡(504或者506)发送广播消息525到模拟控制器502,并从卡(504或者506)上的模拟控制器502接收带有特定的配置参数的广播响应消息526。方法500包括步骤530:即将接收到的特定的配置参数存储在卡(502或者504)的存储器30中。方法500包括由卡(504或者506)的处理器20基于卡的特定的配置参数执行配置代码(步骤540)。执行配置代码包括基于卡的特定的配置参数配置卡(504或者506)的可配置的输入/输出(I/O)单元40的多个输入端和输出端。在一个特定的方面,配置可配置的I/O单元40的多个输入端和输出端包括执行输入端和输出端的网络配置。在另一个特定的方面,可配置的I/O单元40与至少一个其他模拟组件交换数据。配置可配置的I/O单元40的多个输入端和输出端可以包括确定哪些输入端和输出端与至少一个其他模拟组件交换数据。至少一个其他模拟组件可以是另一个可配置的模块卡。例如,卡504和506可以通过它们各自的I/O单元40交换数据。可选地,至少一个其他模拟组件可以是由卡(502或者504)控制的专用硬件组件(图5中没有示出)。专用硬件组件可以是以下项中的一个:传感器、显示器、灯、开关、机械致动器、气动执行器、液压致动器、电气元件等。执行配置代码也包括基于卡的特定的配置参数配置卡(504或者506)的电源60的多个电源电路。在一个特定的方面,配置电源60的多个电源电路包括:确定由特定的电源电路提供给电子元件的电力的特定的电流强度和特定的电压中的至少一个。电子元件可以位于卡(504或者506)上或者位于由卡控制的专用硬件组件上。方法500包括步骤550,即由卡(504或者506)的处理器20执行模拟代码来实现模拟器的功能。执行模拟代码来实现模拟器的功能可以包括以下项中的至少一个:模拟显示器上显示的信息、模拟航空器的运动、模拟航空器的电路、模拟航空器的液压回路。由处理器20执行的模拟代码也可以包括用于控制上述专用硬件组件的代码。在一个特定的方面,几个可配置的模块卡(例如,504和506)从模拟控制器502接收特定的配置参数用于配置它们各自的处理器20去执行模拟代码,该模拟代码实现模拟器的特定功能的几个分布式的子功能。卡(504或者506)的存储器30可以存储与模拟器的几个功能相对应的多个模拟代码。执行配置代码还可以包括基于卡的特定的配置参数,确定在存储在存储器30中的多个模拟代码中的由处理器20执行的模拟代码。方法500包括步骤560,即由卡(504或者506)的处理器20执行测试代码。执行测试代码包括为基于卡(504或者506)的特定的配置参数配置的可配置的I/O单元40的多个输入端和输出端产生测试信号。在一个特定的方面,为可配置的I/O单元40的多个输入端和输出端产生的测试信号允许检验输入端和输出端的网络配置。在另一个方面,为可配置的I/O单元40的多个输入端和输出端产生的测试信号允许检验输入端和输出端与另一个模拟组件(例如,另一个可配置的模块卡或者专用硬件组件)的网络连接。执行测试代码也包括为基于卡(504或者506)的特定的配置参数配置的电源60的多个电源电路产生测试信号。在一个特定的方面,为电源60的多个电源电路产生的测试信号允许检验电源电路工作于规定的电压或者电流强度下。执行测试代码还包括监控由卡(504或者506)的处理器20执行模拟代码。方法500可以包括由卡(504或者506)的处理器20产生由卡的可配置的I/O单元40发送到模拟控制器502的带有由卡的处理器20执行的测试代码的测试结果的测试通知565。方法500也可以包括步骤570,即基于接收到的测试结果,为多个可配置的模块卡中的至少一个可配置的模块卡(例如,504)在模拟控制器502中确定新的配置参数。新的配置参数被发送到嵌入式卡中的每个嵌入式卡(例如,504)575。于是,步骤580:每个嵌入式卡(例如,504)基于接收到的新的配置参数执行其配置代码,并对自身进行重新配置。方法500还可以包括由从模拟控制器502接收测试请求555来触发在卡(例如,504)上执行测试代码。本公开已经介绍了包括多个可配置的模块卡的可配置的模拟器。这些卡的使用在模拟器的操作上引入了大量的灵活性。每个卡是单独地可配置的(和可重新配置的),模拟器可以很容易地经过配置(重新配置)用于适应添加卡、删除卡、替换卡。模拟器也可以经重新配置用于适应其卡中的一个或者几个卡出现故障。配置或者重新配置模拟器在于配置或者重配置其卡中的一个或者几个卡。因此,可以基于一组可配置的模块卡来设计完整的模拟器或者完整的模拟器的子系统。该组可配置的模块卡被提供为具有通用的硬件以及没有最初的特定的硬件和软件配置的一组通用卡。该组可配置的模块卡于是以如本公开示出的进行配置来实现完整的模拟器的多个功能,或者,可选地,来实现完整的模拟器的子系统的特定功能。虽然已经以非限制性的、其示例性实施例的方式在上文中对本公开进行了描述,但是这些实施例可在所附权利要求的范围内任意修改,而不偏离本公开的精神和实质。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1