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.
- Automatic: It’s always on and requires no operator intervention
- Dependent: It depends on an accurate GNSS signal for position data
- Surveillance: It provides radar-like surveillance services, much like RADAR
- Broadcast: It continuously receives broadcasted aircraft positions and other data from any aircraft or ground station equipped to transmit ADS-B signals
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:
- Tunable RF transceiver tuned to 1090 MHz, within the frequency range 50 MHz to 2.2 GHz
- Transmits and receives bandwidth up to 40 MHz
- High-speed A/D converter and D/A converter for streaming baseband I and Q signals to a host PC over gigabit Ethernet, facilitating real-time operations (offered the possibility of oversampling and thus enabled symbol time recovery that allowed demodulation of the baseband signal of all of the operations taking place in real time)
- Programmable with the USRP instrument driver with LabVIEW
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
Tel: +4 0264 401 200
Fax: +4 0264 592 055