Ing. STEFAN Vlad Ionut , Technical University of Cluj-Napoca
Creating an application to receive and interpret in real-time the information from ADS-B messages sent by inflight commercial aircraft equipped with ADS-B transceivers and finding a way to maintain continuous acquisition while processing data and running a real-time display at the same time.
Using a USRP-2920 device, LabVIEW software, and the Static Maps API from Google to develop a parallel producer consumer architecture for the code with five major loops in which each one manages a specific task and passes data to the next higher-level loop for further data processing using queues.
Our goal was to create an ADS-B receiver to decode and interpret the information from ADS-B messages transmitted by commercial inflight aircraft and display aircraft position in real time using the Static Maps API from Google.
Figure 1 shows a brief description of how ADS-B works.
From the start, we chose NI technology based on our previous experiences. We felt it would suit the purposes of the project, and the equipment would be available in the university laboratory.
The hardware equipment application uses the USRP-2920 software defined radio device for communications applications. Along with the USRP-2920, we use a custom antenna that connects through SMA-type connector to the USRP (Universal Software Radio Peripheral) and a PC that connects to the USRP over the local area network. The PC runs LabVIEW software.
Figure 2 shows an overview of the code’s block diagram.
We structured the code in five major execution loops, with each performing parts of the information extraction, interpretation, storage, or display processes. The first loop contains the raw data acquisition, manages chunks of samples, and has a queue that connects the first loop to the second.
The second loop contains the code that searches in each of the chunks for the preamble of an ADS-B frame; thus, performing a frame-level synchronization. When the frame preamble is detected the frame is enqueued in the second queue that connects the second loop to the third loop.
The third loop contains the code that interprets the received signal, the signal being oversampled, this loop also performs symbol time recovery. The received baseband signal is demodulated obtaining the received bits (data block) after which a parity check is performed.
The messages of interest are enqueued along with the aircraft address and GPS position in the third queue that connects to the fourth loop.
The fourth loop contains the code that manages the display list, coverage of the antenna and store data list.
The fifth loop contains the code that manages the real-time map making use of the Google Static Maps API.
In the application, we used the following features from the USRP-2920:
The equipment works well in collaboration with the Static Maps API services for mapping provided by Google through the LabVIEW integrated browser using an Internet connection.
Figure 3, Figure 4, and Figure 5 show images with the running application.
The application performs very well as a receiver of ADS-B signals from distances of up to 300 km, even more if the antenna is well placed, offering great results. We implemented the solution easily, in a short time, and with low cost.
Ing. STEFAN Vlad Ionut
Technical University of Cluj-Napoca
28 Memorandumului
Cluj-Napoca 400114
Romania
Tel: +4 0264 401 200
Fax: +4 0264 592 055
stefan.vlad.ionut@gmail.com