Hardware Design of a Flight Control Computer System based on Multi-core Digital Signal Processor and Field Programmable Gate Array

: Flight Control System is an integrated avionics system equipped with the minimum required components for an autonomous flight. This paper focuses on the Hardware Design of the Flight Control System and presents specific details of the components and its interface. The system architecture is based on Field Programmable Gate Array and Digital Signal Processor. Employing these two processors in the flight control system would improve the Flight Control System performance in terms of fast sequential processing of high-level control algorithms. In addition to Field Programmable Gate Array and Digital Signal Processor, the flight control computer system will also make use of Global Positioning System and Micro Electro Mechanical System sensors. The project will be implemented using Altera’s System On Programmable Chip builder, currently known as Qsys – Platform Designer implemented in Quartus-II. The system employs Nios-II processor which is 32-bit soft-core embedded-processor architecture designed especially for the Altera’s family of Field Programmable Gate Array. From conceptualization to final design, this paper presents the functionality of the different modulus and complex interfaces employed in this Flight Control System.


Introduction
The Unmanned Aircraft Vehicles (UAV's) have surely made a huge impact in today's world technology and currently, the UAV's are widely being used in real world applications in different sectors of technology, military as well as civil.It's right to define the UAV as an aircraft which doesn't require a pilot on board, but capable of autonomous flight because of it's on board equipped flight control system.The FCS is an embedded system with specialized functions, in which its complexity depends on the required tasks to be performed during the mission.The basic functions of the FCS is to collect data from its surroundings and following, process the data into useful information to be used in order to stabilize the aircraft during the flight.
The size-to-weight ratio is a very important aspect to be considered in the world of UAV's and because of this aspect, various small size Unmanned Aircraft Vehicles , also known as (UAV) are facing a huge challenge concerning to limited processing power [2].The challenge is to maintain highend performance and high capabilities in small size UAV's, seen that it's a challenge to maintain this features into smaller vehicles.However, this features are in demand, note that the UAV's are widely being used in real world applications and different sectors of technology.Currently, there are multiple projects ongoing in the industry in order to improve numerous aspects concerning the unmanned aircraft vehicles.This project, aims to develop a hardware system design for UAV's based on FPGA and DSP.The implementation of the two processors in the system is expected to improve the processing power of the system.Also, the interface between the system components would be improved, resulting in a better FCS performance.

Hardware Architecture
The main objective of this hardware design is to improve the processing power and optimize the performance to size ratio for a widely applicable flight control system (satisfactory for larger size vehicles as well as smaller size) a system enabled by Micro Electro Mechanical System (MEMS) sensor and embedded processing technologies.
A. Field Programmable Gate Array and Digital Signal Processor.
Field Programmable Gate Array (FPGA) plays a huge role in the system, seen that the Soft-Core CPU is build inside the FPGA and all system components are connected to the Soft-Core CPU through the FPGA.Digital System Processor (DSP) plays also an important role by providing the board its sequential processing power, while the FPGA perform low-level and parallel interface functions for external components such as GPS and the IMU.The DSP is multi-core based TMS320C6678 with many advantages for processing abilities, and it communicates with the FPGA through UART port to Avalon Data Bus.

B. Sensors and Actuators
The sensor board is represented by ADIS16350, which is a Tri Axis Gyroscope and Accelerometer, which is basically the complete IMU set.This is augmented with absolute and differential pressure sensors and a μBlox GPS OEM module.

C. System Design with Nios-II
The embedded system in the FPGA employs Nios-II which is a processor system equivalent to a microcontroller or "computer on a chip" that includes a processor and a combination of peripherals and memory on a single chip [4,6].The idea is to combine a microcontroller based system with the FPGA in order to overcome the limitations of most FCS currently in the market, and improve the performance.
Fig. 2 System On Programmable Chip (SOPC) Hardware Design Architecture

System Interface
System components communicate within each other through a data bus called Avalon Interface.
The Avalon interface family defines interfaces appropriate for streaming high-speed data, reading and writing registers and memory, and controlling off-chip devices.

D. Avalon Data Bus and Memory
The Avalon interface is a synchronous interface defined by a set of signal types with roles for supporting data transfer.There are two types of Avalon interface port, Avalon Master Port and Avalon Slave Port.The Avalon Master Port initiates transfer and the Avalon Slave Port responds to transfer requests.The Avalon Bus communicates with the system memory (On-Chip Memory and SDRAM) in order to store data for the system [5,6].

E. Universal Asynchronous Receiver/Transmitter
The Universal Asynchronous Receiver/Transmitter (UART) core with Avalon interface implements a method to communicate serial character streams between an embedded system on an  A simple register structure is in charge of handling the outputs and user programmable functions.
Each of this registers is 16-bits in length with its own unique bit map.The SPI interface of ADIS16350 includes four different signals: Chip Select   CS , Serial Clock (SCLK), Data Input (DIN), and Data Output (DOUT) [10].Figure 3.5 shows the SPI interface between the FPGA and ADIS16350 device.
The signal symbol might be different than in figure 3.6, but they have the same functions.Master Out Slave In (mosi) -Output data from the master to the inputs of the Slaves.Master In Slave Out (miso) -Output data from a slave to the input of the master.Serial Clock (sclk) -Clock driven by the master to slaves, used to synchronize the data bits.Slave Select (ss_n) -Select signal (active low) driven by the master to individual slaves, used to select the target slave.

JTAG-UART
The JTAG UART core with Avalon interface implements a method to communicate serial character streams between a host PC and a Platform Designer system on an Intel FPGA.The user-visible interface to the JTAG UART core consists of two 32-bit registers, data and control, which are accessed through an Avalon slave port.An Avalon master, such as a Nios-II processor, accesses the registers to control the core and transfer data over the JTAG connection.The core operates on 8-bit units of data at a time; eight bits of the data register serve as a one-character payload [6].

System Design Flow
For research purpose, an embedded system is built on Altera's Platform Designer also known as Qsys.Qsys-Platform Designer is a system-level integration tool included as part of the Intel Quartus Prime software.

I. Nios-II System Design Flow
The Nios-II Development Flow consists of Hardware and Software system design.After selecting and configuration of the system components, Qsys-Platform Designer automatically generates interconnect logic to integrate component into hardware system.Following is the design flow of Nios-II system.settled, the system is generated and Quartus-II is ready to provide the schematic view of the generated system, as shown in fig.12. Based on the target board, the pins need to be assigned and the system is ready to be compiled.

Discussion
This research results proves that it is possible to build a Flight Control Computer System based on Field Programmable Gate Array, with a Soft-Core CPU feature, and combined with a Digital Signal Processing, for the improvement of processing power.After the system generates the schematic view in figure .12, the user can assign the pins, based on the user's board.The system can be then, loaded in the board and further experimentations can be done.

Conclusions
Various small size Unmanned Aircraft Vehicles are facing a huge challenge concerning to limited processing power.The challenge is to maintain high-end performance and high capabilities in small size UAV's, seen that it's a challenge to maintain this features into smaller vehicles.In this paper, a new method to overcome this challenge has been shown and performed.The method is a combination of FPGA/Soft-Core CPU and a Multi-Core DSP.Employing these two processors in the flight control system improves the FCS performance in terms of fast sequential processing of highlevel control algorithms.A demonstration has been made on how to implement a soft-core CPU in the FPGA and a schematic view of the generated system has been show.There is no doubt that this method is perfectly adaptable into real world application.

Fig. 8 .
Fig. 8. ADIS16350 DIN Bit Sequence and SPI sequence for Read Commands