Embodiments of the invention relate generally to performant data caching, and more specifically to systems and methods for capturing important data such as faults during initial system start-up by writing certain data to a local cache and transmitting such data to one or more receiving systems once an initialization process for an external embedded data processing system is complete.
Various methods of data caching are known. For example, U.S. Patent Application No. 2012/0303942 to Peacock describes systems and methods for storing data in a cache based on whether a system requesting the data is currently booting. However, such methods involve caching data associated with initialization of a primary computer, while the primary computer is going through a bootstrap process. U.S. Patent Application No. 2010/0306522 to Wang describes systems and methods for accessing user level data (e.g., faults) during a computer system boot process. The methods described in Wang describe accessing user-level data during the boot process, wherein the associated users are users of the primary computer. U.S. Patent Application No. 2003/0142561 to Mason et al. describes systems and methods for saving data during an initial boot sequence in non-volatile memory for future boot processes to improve the efficiency of future boot processes, which similarly involves the concept of accessing user level data during the boot process. U.S. Pat. No. 10,353,829 to Butcher et al. describes systems and methods for controlling the transmission of data from cache across several chipsets. Specifically, the cache controller controls the flow of data from external I/O devices to the processor (i.e. computer). Butcher does not explicitly disclose the caching of fault data during the boot process, much less fault data associated with a separate system which would subsequently be monitored by a primary computer system. Butcher describes controlling a flow of information from a cache to a processor where one of the criteria is the “age” of the data, however nothing in Butcher teaches or suggests pre-initialization data caching of parameters, whose values could not be observed or preserved prior to initialization of a primary monitoring computer system.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Other aspects and advantages of the invention may be apparent from the following detailed description of the embodiments and the accompanying drawing figures.
In particular, an embodiment includes an aircraft recording system device providing performant data caching for capturing events during aircraft recording system startup and writing to one or more local caches, the aircraft recording system device comprising: an aircraft recording system operatively coupled to a data caching interface, wherein the aircraft recording system captures events upon power up that would otherwise be lost during a full aircraft recording system initialization, one or more data acquisition endpoints associated with the aircraft recording system, capable of locally caching pre-initialization aircraft data within a pre-initialization acquisition period, and an external embedded data processing system adapted to retrieve, read, and store the locally cached pre-initialization aircraft data in combination with subsequently-acquired aircraft data.
Another embodiment includes a method for providing performant, pre-initialization data caching for capturing faults during aircraft recording system startup and writing to one or more local caches an aircraft recording system device, the method comprising: capturing one or more candidate input parameter values upon power up of the aircraft recording system, the one or more candidate input parameter values associated with one or more aircraft input parameters corresponding to one or more aircraft system controls, wherein the one or more candidate input parameter values could not be captured prior to a full aircraft recording system initialization, initializing an external embedded data processing system, retrieving locally cached pre-initialization aircraft data, and storing the locally cached pre-initialization aircraft data in combination with subsequently-acquired aircraft data.
Yet another embodiment includes one or more non-transitory computer-readable media storing computer-executable instructions that, when executed by a processor, perform a method for providing performant, pre-initialization data caching for capturing faults during aircraft recording system startup and writing to one or more local caches an aircraft recording system (ARS) device, the method comprising: capturing one or more candidate input parameter values upon power up of the aircraft recording system, the one or more candidate input parameter values associated with one or more aircraft input parameters corresponding to one or more aircraft system controls, wherein the one or more candidate input parameter values could not be captured prior to a full aircraft recording system initialization, initializing an external embedded data processing system, retrieve locally cached pre-initialization aircraft data, acquiring subsequently-acquired aircraft data, and storing the locally cached pre-initialization aircraft data in combination with the subsequently-acquired aircraft data.
Embodiments of the invention are described in detail below with reference to the attached drawing figures, wherein:
The drawing figures do not limit the invention to the specific embodiments disclosed and described herein. The drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the invention.
ARS 102, 152 consistent with the present teachings may be advantageously used by various types of users. Customer service technicians can use the recorded data to troubleshoot notifications from the field regarding aircraft functionality. Flight data can be analyzed or archived during aircraft manufacture or pre-delivery. Manufacturing personnel can use the system to run functional tests, and engineers can use the data in investigating system anomalies. ARS 152 consistent with the present teachings may be capable of receiving and/or transmitting data on multiple types of avionics data buses, such as: ARINC 429, ARINC 717, CAN, and other data buses. ARS 102, 152 consistent with the present teachings may employ one or more data collection interface boards, which may be connected by LAN and which may interact with additional hardware and/or software interfaces which may be located onboard an aircraft. Consistent with the present teachings, more data and more different types may be recorded in a scalable manner and with full native rate sampling and full instrumentation.
As shown in
As shown in
In embodiments, data collectors 164, 166, 168, 170 are data buses dispersed in remote locations (i.e., remotely located from the cockpit or another centralized computing station within the aircraft), which provides shorter wire paths from many input sources (e.g., sensors) leading to an overall reduction in wire weight. For example, data collector 164 may be located in the cockpit and configured to receive cockpit data (e.g., autopilot, GPS); data collector 166 may be located in or near the baggage compartment and configured to receive data from within a baggage compartment (e.g., a pressurization controller); data collector 168 may be located in a right-hand tail cone section and configured to receive data from sensors in the right-hand tail cone; and, data collector 170 may be located in the left-hand tail cone section and configured to receive data from sensors in the left-hand tail cone. Other aircraft locations may be used for housing these or additional data collectors since one of the key features of avionics diagnostics network 150 is a scalable architecture connectable to a virtually unlimited number of data collectors, providing a built-in capability to increase data input sources. Data received by data collectors 164, 166, 168, 170 may be any diagnostics output from other printed circuit boards (PCBs) on the aircraft (e.g., PCBs for a full-authority digital engine controller (FADEC), spoiler monitor, flap monitor, flap control, weight on wheels, dimming control, etc.).
In embodiments, data collectors 164, 166, 168, 170 may be communicatively coupled for data transfer to one another while being indirectly coupled to ARS 152. For example, as depicted in
In embodiments, ARS 152 comprises a microprocessor unit 154 (
Ethernet switch 218 is communicatively coupled to MCU 202. Ethernet switch 218 is for example a KSZ8895MQI from Microchip Technology. Ethernet switch 218 is configured to manage data flow across the ethernet network (e.g., ethernet pathways 172, 174, 176 shown in
Data provided to ARS 152 is in the form of output User Datagram Protocol (UDP) data frames 220. Commands provided to MCU 202 comprise input UDP commands 224. These data are transmitted between MCU 202 and ARS 152 over ethernet, such as 100Base-TX 222 for example, which is a 100 Mbit/s baseband signaling fast ethernet connection. Alternatively, a 1 Gbps ethernet link may be used.
In embodiments, MCU 202 hosts the controllers to interact with FPGA 206, SDRAM 204 (e.g., SDRAM Controller), and ethernet switch 218 (e.g., Ethernet MAC Controller).
As shown in
In step 402, candidate input parameter values are captured at aircraft power up, which in some cases corresponds with the startup of an aircraft recording system. In an example of step 410, candidate input parameter values are cached via SDRAM 204 immediately upon supply of main aircraft electrical power or shortly thereafter but before initialization of one or more external embedded systems. In some cases, such captured candidate input parameters may be of critical nature such that failure to capture the candidate input parameters because of delays in initialization of the one or more external embedded systems would result in loss of important aircraft status information as non-capture of such information would otherwise result in a loss of such information.
Examples of data to cache include status information for systems behaving normally as well as faults, including but not limited to FADEC data, avionics data, and data from diagnostics collector PCBs. Other data to cache may be related to a cabin door control and monitor system that assists with opening/closing the cabin door. Such caching may involve writing data to be cached to a volatile memory subsystem. The control and monitor circuitry are energized when the door unlatches and starts to fall open. Various conditions/faults may be cached as this system is coming online (e.g., via signals from proximity switches). Another example includes voltage/bus monitoring. After a main bus is turned on, a variety of systems may still be booting up. The circuit boards that monitor the bus voltages come online immediately upon power on enabling related information to be cached prior to recording by ARS 152. For example, information related to transient current spikes and voltage drops during the power on phase of various systems may be cached. In some embodiments, such a pre-initialization period may take less than approximately 100 milliseconds. In some other embodiments, such a pre-initialization period may take more than approximately one or two seconds.
In step 404, an external embedded system is initialized. In an example of step 404, microprocessor unit 154 has booted up and is initialized. Microprocessor unit 154 comprises an external (i.e., external to data collection interface 200A) embedded system for data recording and storage. In some embodiments, the external embedded system may include a system-on-a-chip or other type of embedded single board microcontroller system. In some cases, this may be a resource constrained single board microcontroller system. In some such embodiments, the external embedded system may include an ARM-based microcontroller system or other microcontroller-based embedded system that for reasons of power, space, or other constraints is loosely-coupled to one or more main aircraft control systems that may begin to receive important information regarding aircraft state prior to a time at which the embedded system may be prepared to begin processing and logging aircraft status information.
In step 406, locally cached pre-initialization data is retrieved. In an example of step 406, pre-initialization data cached in SDRAM 204 is retrieved by microprocessor unit 154. In some embodiments, a loosely-coupled embedded system may be communicatively coupled with ARS 152 by way of one or more conventional (or subsequently discovered) wired or wireless networks, such as mobile telecommunication networks, Ethernet, or IEEE 802.11 (Wi-Fi standards-based) network connections. Such connections may also include any other standards-body-based or defacto standard wired- or wireless-based network connections capable of relaying cached information from an ARS 152 to an external embedded microcontroller system.
In step 408, subsequently-acquired aircraft data are acquired. In an example of step 408, after microprocessor unit 154 has booted, subsequent aircraft data are acquired by ARS 152 and stored via microprocessor unit 154. In some embodiments, such data may be acquired before or during an initialization period associated with the external embedded control system. In such embodiments, caching and synchronization mechanisms consistent with the present teachings enable aircraft event data to be acquired and/or characterized locally such that when the one or more external embedded systems are initialized and ready to process additional events received by the ARS 152, such subsequent events may be prioritized and processed within the context of earlier received aircraft information. Such events may include successful initialization of aircraft components and/or fault conditions such as errors or warnings associated with the aircraft components.
In step 410, locally cached data are stored in combination with subsequently-acquired data. In an example of step 410, microprocessor unit 154 stores locally cached data in combination with subsequently-acquired data. In the context of such an example, such subsequently-acquired data may be interpreted differently in the context of previously acquired (and cached) data. In some such embodiments, previously acquired (and potentially cached) data may be characterized by timestamps or sequence numbers that enable interpretation of previously acquired aircraft data in temporal relation with subsequently-acquired aircraft data.
Aircraft data are provided via a data source 502. For example, the data source 502 may be one or more external data collection interfaces 200B, 200C, 200D. Data storage system 504 includes a data caching platform 506, a data recording process 512, and long term non-volatile data storage 514. Data storage system 504 may be embodied as ARS 152 with platform 506 being embodied as internal data collection interface 200A, for example. As data are received from data source 502, platform 506 determines whether the data storage system 504 has booted in step 508. For example, as data are received from data collection interface 200B, MCU 202 determines whether microprocessor unit 154 has booted. In embodiments, MCU 202 determines whether microprocessor unit 154 is powered on and whether an ethernet connection has been established with microprocessor unit 154. When microprocessor unit 154 is powered on but an ethernet connection has not yet been established, MCU 202 determines that microprocessor unit 154 is booting. While microprocessor unit 154 is booting, data are cached (i.e., stored temporarily) to a cache 510. Cache 510 may be embodied as SDRAM 204, for example. Once microprocessor unit 154 has completed booting (e.g., once an ethernet connection has been established with microprocessor unit 154), then the recording process 512 stores the cached data in long term non-volatile storage 514. Microprocessor unit 154 may perform the recording process 512 to store data in its flash memory, for example. Subsequently-acquired data from data source 502 is then stored via recording process 512 without being cached in cache 510.
Although the invention has been described with reference to the embodiments illustrated in the attached drawing figures, it is noted that equivalents may be employed and substitutions made herein without departing from the scope of the invention as recited in the claims.
This application claims the benefit of U.S. Provisional Patent Application No. 63/597,650, filed Nov. 9, 2023, the entire contents thereof are herein incorporated by reference.
Number | Date | Country | |
---|---|---|---|
63597650 | Nov 2023 | US |