Abstract:
An example method of verifying avionic data includes establishing a first cyclical redundancy check value associated with a data file. The first cyclical redundancy value is established on an aircraft. The method transmits the data file from the aircraft to a ground system. The method receives a second cyclical redundancy check value associated with the data file. The second cyclical redundancy check value is established by the ground system. The method determines the transmitted data file integrity by comparing the first cyclical redundancy check value to the second cyclical redundancy check value. An example aircraft avionic data verification arrangement includes a collector device that assembles avionic data into a data file that is transmittable to a ground system. A controller is programmed to provide a first cyclical redundancy check value associated with the data file and to identify errors in the data file received by the ground system based on a comparison between the first cyclical redundancy check value and a second cyclical redundancy check value established by the ground system.

Description:
BACKGROUND 
       [0001]    This disclosure relates generally to avionic data. More particularly, this disclosure relates to validating that avionic data transmitted from an aircraft is accurate. 
         [0002]    Avionic data is collected from various areas of aircraft. The avionic data is typically assembled into data files using equipment on the aircraft. The data is then transferred to a ground system where the avionic data is used to make maintenance decisions about components of the aircraft. 
         [0003]    The accuracy of data within data files that have not been validated is questionable. To retrieve the data files for the ground system, a mechanic may use a device that plugs into the equipment on the aircraft. The data files are copied to directly to the device, and the device is then manually transported to the ground system. In another example, the data files are transferred from the equipment on the aircraft to a server of the ground system using a standard network protocol, such as File Transfer Protocol or Virtual Private Network. To make the data available for critical decisions, the final data file on the ground system must be verified using hardware and software that has been validated to the equivalent avionic software and hardware assurance standards as for the data collection and transfer process. 
       SUMMARY 
       [0004]    An example method of verifying avionic data includes establishing a first cyclical redundancy check value associated with a data file. The first cyclical redundancy value is established on an aircraft. The method transmits the data file from the aircraft to a ground system. The method receives a second cyclical redundancy check value associated with the data file. The second cyclical redundancy check value is established by the ground system. The method determines if the data file was transmitted accurately using the first cyclical redundancy check value and the second cyclical redundancy check value. 
         [0005]    Another example method of verifying avionic data includes receiving a data file from an aircraft. The data file is associated with a first cyclical redundancy check value. The method establishes a second cyclical redundancy check value for the data file. The method identifies an error in the data file received from the aircraft based on a comparison of the first and second cyclical redundancy check values. 
         [0006]    An example avionic data verification arrangement includes a collector device that assembles avionic data into a data file that is transmittable to a ground system. A controller is programmed to provide a first cyclical redundancy check value associated with the data file and to identify errors in the data file received by the ground system based on a comparison between the first cyclical redundancy check value and a second cyclical redundancy check value established by the ground system. 
         [0007]    These and other features of the disclosed examples can be best understood from the following specification and drawings, the following of which is a brief description: 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0008]      FIG. 1  shows a partial schematic view of an example data collection system within gas turbine engine. 
           [0009]      FIG. 2  shows a schematic view of an arrangement for communicating data files from an aircraft to a ground system. 
           [0010]      FIG. 3  shows a flow of an example method of verifying data files from an aircraft. 
           [0011]      FIG. 4  shows a flow of another example method of verifying data files from an aircraft. 
       
    
    
     DETAILED DESCRIPTION 
       [0012]      FIG. 1  schematically illustrates an example turbofan gas turbine engine  10  of an aircraft  12 . The gas turbine engine  10  includes (in serial flow communication) a fan section  14 , a low-pressure compressor  18 , a high-pressure compressor  22 , a combustor  26 , a high-pressure turbine  30 , and a low-pressure turbine  34 . The gas turbine engine  10  is circumferentially disposed about an engine centerline X. 
         [0013]    During operation, air is pulled into the gas turbine engine  10  by the fan section  14 , pressurized by the compressors  18  and  22 , mixed with fuel, and burned in the combustor  26 . The turbines  30  and  34  extract energy from the hot combustion gases flowing from the combustor  26 . The residual energy is then expanded through the nozzle section to produce thrust. 
         [0014]    In a two-spool design, the high-pressure turbine  30  utilizes the extracted energy from the hot combustion gases to power the high-pressure compressor  22  through a high speed shaft  38 , and the low-pressure turbine  34  utilizes the extracted energy from the hot combustion gases to power the low-pressure compressor  18  and the fan section  14  through a low speed shaft  42 . 
         [0015]    In this example, a prognostic and health monitoring system  46  is mounted to the aircraft  12 . The prognostic and health monitoring system  46  communicates with a plurality of sensors  50  mounted within the engine system  10 . The sensors  50  collect avionic data about the engine  10  during operation. Examples of the collected avionic data include temperatures, pressures, altitudes, etc. 
         [0016]    The examples described in this disclosure are not limited to any specific engine architecture or to the engine system. Additional examples may include data from any system installed on the aircraft such as the landing gear system, environmental control system, braking system, navigational system, entertainment system, etc. 
         [0017]    Further, although the avionic data is collected from sensors  50  mounted in the engine  10 , those skilled in the art and having the benefit of this disclosure will understand that avionic data could be collected from sensors  50  or other data collection devices mounted in other areas of the aircraft  12  or from any data source that may include intermediate calculation output or memory locations not directly associated with a sensor. 
         [0018]    Referring now to  FIG. 2  with continuing reference to  FIG. 1 , the example prognostic and health monitoring system  46  includes a programmable controller  54 , a wireless transmitter  58 , a wireless receiver  60 , and a memory portion  62 . The controller  54  includes a collector device, i.e., a processor module  66  programmed to collect data from the sensors  50  and store them in one or more of the data files  68  within the memory portion  62 . The collection and storage takes place during flight of the aircraft  12 , for example. 
         [0019]    A ground system  70  includes a communication device  74  having a controller  78 , a wireless transmitter  80 , a wireless receiver  82 , and a memory portion  84 . The ground system  70  is configured to wirelessly communicate with the prognostic and health monitoring system  46  of the aircraft  12  along a wireless communication path  88 . 
         [0020]    In this example, the ground system  70  wirelessly communicates with the aircraft  12  when the aircraft  12  is docked at a gate. In other examples, the ground system  70  wirelessly communicates with the aircraft  12  when the aircraft  12  is in flight, or when the aircraft  12  is docked in a maintenance facility. 
         [0021]    Many computing devices can be used to implement various functions described herein. For example, the controller  54 , transmitter  58  and memory portion  62  may comprise portions of a dual architecture micro server card within the prognostic and health monitoring system  46 . 
         [0022]    Further, in terms of hardware architecture, prognostic and health monitoring system  46  can additionally include one or more input and/or output (I/O) device interface(s) that are communicatively coupled via a local interface. The local interface can include, for example but not limited to, one or more buses and/or other wired or wireless connections. The local interface may have additional elements, which are omitted for simplicity, such as additional controllers, buffers (caches), drivers, repeaters, and receivers to enable communications. Further, the local interface may include address, control, and/or data connections to enable appropriate communications among the aforementioned components. 
         [0023]    The example processor module  66  executes software code, particularly software code stored in the memory portion  62 . The processor module  66  can be a custom made or commercially available processor, a central processing unit (CPU), an auxiliary processor among several processors associated with the computing device, a semiconductor based microprocessor (in the form of a microchip or chip set) or generally any device for executing software instructions. 
         [0024]    The memory portion  62  can include any one or combination of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, VRAM, etc.)) and/or nonvolatile memory elements (e.g., ROM, hard drive, tape, CD-ROM, etc.). Moreover, the memory may incorporate electronic, magnetic, optical, and/or other types of storage media. Note that the memory can also have a distributed architecture, where various components are situated remotely from one another, but can be accessed by the processor. 
         [0025]    The software in the memory portion  62  may include one or more additional or separate programs, each of which includes an ordered listing of executable instructions for implementing logical functions. A system component embodied as software may also be construed as a source program, executable program (object code), script, or any other entity comprising a set of instructions to be performed. When constructed as a source program, the program is translated via a compiler, assembler, interpreter, or the like, which may or may not be included within the memory. 
         [0026]    The Input/Output devices that may be coupled to system I/O Interface(s) may include input devices, for example but not limited to, a keyboard, mouse, scanner, microphone, camera, proximity device, etc. Further, the Input/Output devices may also include output devices, for example but not limited to, a printer, display, etc. Finally, the Input/Output devices may further include devices that communicate both as inputs and outputs, for instance but not limited to, a modulator/demodulator (modem; for accessing another device, system, or network), a radio frequency (RF) or other transceiver, a telephonic interface, a bridge, a router, etc. 
         [0027]    In this example, the processor module  66  of the prognostic and health monitoring system  46  is programmed with software code that has been certified by the appropriate Avionic Certification Authority, such as the Federal Aviation Administration (FAA). For example, the software code is certified to DO178: Software Considerations in Airborne Systems and Equipment Certification, for use in Level C applications, where failure of the software results in a major failure condition for the vehicle, or higher. The certified software code is configured to assemble the collected data into the data files  68  that are transferred wirelessly to the ground system  70 . 
         [0028]    In this example, the certified software code also generates a first Cyclical Redundancy Check (CRC) value  92  based on the data files  68 . The first CRC value  92  is stored in the memory portion  62  in this example. CRC calculations are standard in many industries as is known. 
         [0029]    After the ground system communication device  74  receives the data files  68 , a program executed in a module  90  of the controller  78  generates a second CRC value (not shown) based on the data files  68  received by the communication device  74 . In this example, the hardware and software executed in the module  90  is not certified to the commensurate DO178 level or applicable avionic software assurance level. That is, the first CRC value  92  is generated using certified software code, and the second CRC value is generated using software code that has not been certified. 
         [0030]    The wireless transmitter  80  wirelessly communicates the second CRC value to the prognostic and health monitoring system  46 . The controller  54  then compares the first CRC value  92  stored in memory portion  62  with the second CRC value created by the ground system. In this example, if the first CRC value  92  matches the second CRC value, the transmission of the data files  68  is considered successful. That is, the data files  68  were received by the ground system  70  without errors. Maintenance decisions about the aircraft  12  can be made based on the data within the data files  68  received by the ground system  70  if the data files  68  do not contain errors. 
         [0031]    In this example, the transmitter  58  communicates a message to the ground system indicating whether the data files  68  were transmitted without error. The ground system then attaches the received indication to the file as meta data for later use. 
         [0032]    Referring to  FIG. 3 , a flow of an example data verification method  100  includes a step  110  of establishing a first CRC value associated with one or more data files. The data files are then transmitted from an aircraft to a ground system at a step  120 . The ground system establishes a second CRC value associated with the one or more data files that are received by the ground system at a step  130 . 
         [0033]    The first and second CRC values are compared at a step  140 . In this example, the comparison talks place in the aircraft. Other examples include comparing the first and second CRC values in the ground system or elsewhere. 
         [0034]    If the first and second CRC values do not match, the method  100  indicates that, at a step  150 , the data files received by the ground system contain an error or are corrupted. If the first and second CRC values do match, the method indicates, at a step  160 , that the data files received by the ground system do not contain an error. 
         [0035]    Referring to  FIG. 4 , another example data verification method  200  uses certified software running within a FAST box on an aircraft to record aircraft data at a step  210 . The FAST box is an example of a Dual Architecture Micro Server Card, an avionic device that resides on the aircraft for collecting, securing, and transmitting data. The method  200  next uses the certified software to package the data into a data file at a step  220 . The certified software within the FAST box then calculates an aircraft CRC value for the data file at a step  230 , and saves the aircraft CRC value at a step  240 . The FAST box compresses and encrypts the data file at a step  250 , and communicates the data file to a ground system at a step  260 . 
         [0036]    In this example, software programs executed on the ground system decrypt and decompress the data file at a step  270 . The software programs executed on the ground system then calculate a ground system CRC value for the decrypted and decompressed raw data file at a step  280 . The ground system sends the ground system calculated CRC value back to the FAST box on the aircraft at a step  290 . 
         [0037]    At a step  300 , the certified software running within the FAST box on the aircraft compares the aircraft calculated CRC value to the ground system calculated CRC value. The FAST box sends the results of the comparison to the ground system at a step  310 . The ground system, at a step  320 , tags or associates the data file with the results of the comparison by the FAST box in the step  310 . The tag identifies the data file as acceptable (if the aircraft CRC value matches the ground system CRC value) or corrupted (if the aircraft CRC value does not match the ground system CRC value). 
         [0038]    Features of the disclosed examples include ensuring the integrity of a wireless transmission of data files to a ground system without requiring the ground system, or intermediate “hops”, to be programmed with software qualified to avionic software assurance levels. 
         [0039]    The preceding description is exemplary rather than limiting in nature. A person of ordinary skill in this art may recognize certain variations and modifications to the disclosed examples that do not depart from the essence of this disclosure. For that reason, the following claims should be studied to determine the true scope of legal protection given to this disclosure.