UAV Navigation in depth: Autopilot memory management
Data management is a fundamental aspect of any information system, including those used within the aeronautical sector. The processing of information reported by different sensors and subsystems must be accurately recorded within the information system in order to ensure that flight operations are not adversely affected.
Types of Memory. There are a variety of different types of memory available to developers of flight control systems for UAVs. Generally, two types are used in UAV Navigation's onboard systems, including autopilots:
Flash Memory. Flash memory is a Non-Volatile Memory (NVM) and is generally used to store information. Although data transfer rates are not as fast as RAM, it is safer for longer term storage as the data is preserved when power is turned off.
Random Access Memory (RAM). RAM is generally used to manage any information which has been stored. RAM can typically transfer data faster than flash, although it suffers from an important characteristic: it can only hold onto that data when it has power; once the power is turned off, the data is lost - hence it must be stored for the longer term in Flash memory.
UAV Navigation uses NVM memory to record data which may be required in flight, such as autopilot software, serial number, configuration, waypoints in a Flight Plan (FP) etc. This is essential information which the autopilot will need in order to restart safely, for instance in case of a power outage.
NVM Use in the Autopilot. When the autopilot is powered on, NVM is used during the boot sequence. The autopilot loads software from its NVM into RAM during startup. This autopilot software can only be modified when a software update is carried out. However, some of the information stored in NVM is updated with data acquired during a flight.
Data Management. In recognition of the fundamental importance of information management within the flight control system, UAV Navigation has invested considerable time and effort into ensuring that the data is managed efficiently, safely and absolutely accurately, thus ensuring a robust system which contributes to flight safety.
Information saved in NVM is organized by 'pages' within the autopilot's memory. In order to ensure consistency and reliability, a proven system of addresses and a Cyclic Redundancy Check (CRC) is used.
Errors. Errors in data management systems, including autopilots, can and do occur. They may be caused by a variety of factors, including power failures or a 'brown out' in the middle of a read/write event which causes a corrupted byte of data. It is vital that the system should be able to detect such an error; it must also be able to isolate and correct the error.
Should an error be detected by the system, then UAV Navigation's data management structure allows for simple and quick diagnosis in order to correct the problem, without having to reconfigure the entire autopilot (GPIOs, servos, etc.) or having to return the autopilot for maintenance.
Should the UAV Navigation system detect such an error, then it will automatically recover by using a copy of the byte in the redundant module of the memory (see image below). The system features logic which is able to identify which backup copy is correct and to replace any corrupted information in the byte with accurate backup information.
Wear Leveling. All kinds of NVM suffer from hardware fatigue caused by multiple read/write events over extended periods of time. This reduces the service life of the memory module. Typically, hardware developers either ignore this effect or do nothing about it. However, recognising the effect that such fatigue might have on the safety and reliability of mission-critical systems (such as an autopilot), UAV Navigation has implemented a wear leveling protocol in its memory management system. This method of data management ensures that critical data is recorded onto different pages, not the same one every time, thereby extending service life significantly.
Different types of memory are used within an autopilot; each type of memory has its strengths and weaknesses and should be used accordingly within a system.
Flight safety is the first priority for UAV Navigation. Management of the data in an autopilot is vital to ensuring flight safety. In addition to using only the highest quality memory modules, UAV Navigation extends their service life by implementing an intelligent wear leveling protocol.
The UAV Navigation system contains software features which allow for recovery from data corruption, even when the autopilot is still flying the aircraft. They are also protected against power outages and brown outs.