Design and development of a real-time.pdf

NOMENCLATURE
Design and Development
of a Real-Time DSP and
FPGA-Based Integrated
GPS-INS System for Compact
and Low Power Applications
V. AGARWAL, Senior Member, IEEE
H. ARYA
S. BHAKTAVATSALA
Indian Institute of Technology–Bombay
Emphasis of the present work is on an elegant real-time
solution for GPS/INS integration. Micro-electro mechanical
system (MEMS) based inertial sensors are light but not accurate
enough for inertial navigation system (INS) applications. An
integrated INS/GPS system provides better accuracy compared
with either INS or GPS, used individually. This paper describes
an improved design and fabrication of a loosely coupled INS-GPS
integrated system. The systems currently available use commercial
off-the-shelf (COTS) hardware and are, therefore, not optimized
for compact, single supply, and low power requirements. In the
proposed system, a digital signal processor (DSP) is used for
inertial navigation solution and Kalman filter computations.
A field programmable gate array (FPGA) is used for creating
an efficient interface of the GPS with the DSP. Direct serial
interface of the GPS involve tedious processing overhead on
the navigation processor. Therefore, a universal asynchronous
receiver transmitter (UART) and dual port random axis memory
(DPRAM) are created on the FPGA itself. This also reduces the
total chip count, resulting in a compact system. The system is
designed to give real time processed navigation solutions with an
update rate of 100 Hz. All the details of this work are presented.
Manuscript received December 2, 2005; revised January 9 and
December 28, 2007; released for publication March 29, 2008.
IEEE Log No. T-AES/45/2/932997.
Refereeing of this contribution was handled by Tahk.
Authors’ current addresses: V. Agarwal, Dept. of Electrical
Engineering, Indian Institute of Technology–Bombay,
Powai, Mumbai, Maharashtra 400 076, India, E-mail:
([email protected]); H. Arya, Dept. of Aerospace Engineering,
Indian Institute of Technology–Bombay, Powai, Mumbai,
Maharashtra 400 076, India; S. Bhaktavatsala, KLA-Tencor
Software India Pvt. Ltd., Chennai, India.
c 2009 IEEE
0018-9251/09/$25.00 °
ADC
ANSI
COTS
DOS
DPRAM
DSP
EKF
EOC
FDC
FPGA
GIDAC
GPS
IMU
INS
INT0
INT1
ISR
JTAG
MAV
MCDMA
MEMS
MFLOPS
NCU
NMEA
NPC
PAL
RISC
SINS
SRAM
TTL
UART
VHDL
VLSI
SDLC
Analog-to-digital converter
American National Standards Institute
Commercial off-the-shelf
Disk operating system
Dual port random axis memory
Digital signal processor
Extended Kalman filter
End of conversion
Flight dynamic control
Field programmable gate array
GPS and IMU data acquisition card
Global positioning system
Inertial measurement unit
Inertial navigation system
Interrupt 0
Interrupt 1
Interrupt service routine
Joint test action group
Mini aerial vehicle
Micro-programming controlled direct
memory access
Micro-electro mechanical system
Million floating pointing operations per
second
Navigation computer unit
National Marine Electronics Association
Navigation processor card
Programmable array logic
Reduced instruction set computer
Strapdown inertial navigation system
Static random access memory
Transistor transistor logic
Universal asynchronous receiver
transmitter
VLSI hardware description language
Very large scale integration
Synchronous data link control.
I. INTRODUCTION
For accurate functioning of autonomous navigation
systems, reliable position information in real-time
must be available at regular intervals of time. High
accuracy inertial measurement units (IMUs), used
in avionic systems, exhibit superior performance
specifications. However, the high cost and weight
of a standard inertial navigation system (INS) limits
its application in general areas, such as navigation
and positioning of mini aerial vehicles (MAV) [1].
With the development of low cost micro-electro
mechanical systems (MEMS) devices, however, the
situation has changed. Commercial off-the-shelf
(COTS), MEMS-based IMU systems have proved
to be highly popular and feasible for autonomous
navigation systems [1—9]. These systems are cost
IEEE TRANSACTIONS ON AEROSPACE AND ELECTRONIC SYSTEMS VOL. 45, NO. 2
APRIL 2009
443
effective, compact and light weight. But they have an
inherent limitation–that of precision.
This limitation is overcome by the use of extended
Kalman filter (EKF), augmented by GPS estimates
[1—9], leading to the integration of INS and GPS. The
time critical nature of autonomous navigation systems
requires that processing of INS computations and EKF
algorithm should be completed before the next update
from the IMU sensors. This imposes severe constraint
on the integration software, processor speed, and
system’s architecture. Only a few papers are available
[3—6] that are related to the hardware development of
such systems.
Many of the available integrated INS/GPS systems
either have used a serial interface link or multiplexed
analog-to-digital converter (ADC) for INS data
acquisition [1—9]. Serial interface of sensor output
involves a tedious processing overhead on navigation
processor. Further, with the multiplexed-type ADC,
all the position information being considered
for calculations may not correspond to the same
instant [2—9]. Accurate estimates of position and
attitude can be obtained using integration technique.
Different techniques of GPS-INS integration have
been implemented to predict accurate position
information in navigation systems. A loosely coupled
integrated approach [1, 4] using a GPS receiver and
a low cost strap down INS, is used to overcome
the sensor errors or random disturbances. Different
errors that are present in an accelerometer and a
gyroscope are bias, scale factor, drift, and input/output
nonlinearity. Most of the systems discussed [3—5, 7]
are based on the commercially available embedded
computer boards and COTS hardware. This hardware
may not be optimized for the space and power
constraints imposed by a given application as they
are general purpose hardware. This may cause space
and reliability problems which are very critical for
aerospace applications. The existing systems also
require power supplies at different levels, causing
space, weight, and volume constraints. Also, all the
integrated systems discussed employ either two or
more power supplies [3, 4] for their operation.
Many papers have reported the processing of the
GPS and IMU signals offline [7], i.e., IMU signal and
GPS data are collected in real time and its processing
for INS solution and the Kalman filter integration
is done off line. The correctness of the real-time
integrated GPS-INS systems depends not only on
the logical result of computation, but also on the time
duration during which the results are produced. When
the system has more computation intensive tasks to
perform, dedicated DSPs are used as the processor.
The inertial navigation computation is performed at
100 Hz. This inertial data is then integrated with the
GPS data (position, velocity, course) at 1 Hz. This
is a simple strategy and requires continuous valid
GPS measurements. IMU data is also coupled with
444
Fig. 1. Loosely coupled integrated GPS-INS system.
Fig. 2. Tightly coupled integrated GPS-INS system.
raw measurement (pseudo range and carrier phase)
of GPS, as it is more robust and can work with less
number of GPS measurements [10].
Coupling of low cost inertial sensors with GPS is
broadly classified as follows.
1) Loosely coupled system.
2) Tightly coupled system.
3) Ultra-tightly coupled system.
a) Loosely coupled system: In this system GPS
data, i.e., position, velocity, etc. are coupled with INS
data using an EKF as shown in Fig. 1. It is highly
dependent on the availability of GPS data. In the
present work, a nine state Kalman filter is used.
b) Tightly coupled system: In this system the
INS data is directly fused with GPS raw measurement
data inside the GPS Kalman filter. It is more robust
compared with the loosely coupled system. However,
it is also more complex. There is no separate GPS
Kalman filter used in GPS position calculation. The
GPS update is used to calibrate INS, while the INS
is used to aid the GPS receiver during interference.
The external navigation filter receives raw GPS
measurement of pseudo-range and Doppler or delta
range. The raw GPS observations are directly passed
on to the combined GPS/INS Kalman filter as shown
in Fig. 2. The main advantage here is that the solution
can use the GPS measurement update even if there are
less than four satellites available. But errors might be
induced due to the reduced observability of the states.
c) Ultra-tightly coupled system: An INS can
aid a GPS receiver at different levels. INS output
of position, velocity, and attitude, used as external
input to the GPS receiver, aid in prepositioning
IEEE TRANSACTIONS ON AEROSPACE AND ELECTRONIC SYSTEMS VOL. 45, NO. 2 APRIL 2009
Fig. 3. Architecture of integrated GPS-INS system proposed by
Shang et al. [3].
calculation for faster signal acquisition and in
interference rejection during signal tracking. This type
of integration method requires access to the receiver’s
firmware. As a result, this scheme of integration
is usually implemented only by the equipment
manufacturer.
Apart from Kalman filter and EKF, several other
filters have also been used for integrated INS-GPS
solutions. For example, the particle filter [11] has
been used in place of the EKF. Rao-Blackwellized
filters [11] have been used to reduce the variance
of the state estimates. Some authors have reported
the use of artificial neural network based techniques
[12] to track the direction changes and mimic the
motion dynamics utilizing the latest available INS
and GPS data. The use of Bayes filter [13] has also
been reported for GPS-INS integration. Improvement
in GPS and GPS-INS integrated navigation systems
has been proposed by incorporating more robust
techniques in fusing the data [14, 15].
Multiple GPS can be used for attitude
determination using carrier phase information. But
such a system will be bulky and will require a
reasonable separation distance between the two GPS
antennas for good accuracy. Such systems are reported
in literature for aiding INS where space and weight
are not major concerns [16]. In the presented work a
single, 12 channel GPS receiver (Laipac TF11 make)
with SIRF II as core, is used which works with 5V
power supply [17]. Various INS/GPS configurations
found in the available literature are summarized below.
An integrated system, based on PC/104 embedded
microcomputer operating on three different power
supplies is described by Shang et al. [3]. The system
architecture, as shown in Fig. 3, uses a PC/104
bus for data transfer from ADC to an embedded
computer. In this work, multiplexer-based A/D
conversion of inertial sensor signals is achieved using
customized data acquisition board. Real-time data
calculation and rapid data exchanging is achieved
using micro-programming controlled direct memory
access (MCDMA) technique.
An integrated system based on low cost IMU
and GPS receiver has been proposed by Moon et al.
[4]. In this work, an IMU sensor with a navigation
computer unit (NCU) is interfaced using serial
communication. The NCU operates in a multi-tasking
environment using pSOS+ real-time operating system.
In another architecture, analog sensor signals are
Fig. 4. Architecture of integrated GPS-INS system proposed by
Lichuan et al. [9].
interfaced with the NCU using serial data link [9].
NCU is based on a high speed reduced instruction
set computer (RISC) floating point processor and is
operated in multi-tasking environment (Fig. 4).
Faulkner et al., [5] have described a development
program in which a PC/104 computer is used for
loosely coupled system and digital signal procesor
(DSP) based navigation processor is used for
developing the closely (tightly) coupled integrated
system. Serial link communication is operated at
higher baud rates and a modular integrated navigation
Kalman filter has been used in their prototype system.
The system developed by Hegg [6] uses six
different power supplies for their integrated scheme.
Data from IMU sensors is transferred through serial
communication to the navigation processor. Some
attractive features of their system are: in-space
initialisation, flight control output signals, and other
redundancy management platforms are provided.
Bridging GPS outages for tens of seconds using a
low cost inertial device, and integration with GPS
information and its feasibility are described by Cao
et al., [7, 8]. Results show that the position accuracy
of a low cost strapdown INS (SINS)/GPS is just
the same as that of the GPS receiver when the GPS
data is available. A position error of 10 m after 10 s
with complete loss of GPS signals is observed in this
system.
This paper proposes a new architecture for an
elegant integrated GPS-INS system with improved
data acquisition, processing overheads, interfacing
technique, and time criticality issues. Details of the
development of a real-time system based on floating
point DSP suitable for autonomous navigation systems
are presented. It may be noted that the emphasis is
on real time issues related to hardware integration. A
loosely coupled integrated approach [1, 4] is chosen
to overcome the sensor errors and obtain accurate
estimates of position and attitude. The whole system
uses a single power supply of 9V. Though various
circuits and ICs work at different voltage levels, the
PCBs are designed in such a way (using voltage level
shifter circuits), so that a single 9V source is able
to feed all the circuit boards. Further, the proposed
system is more compact and reliable due to the use of
configurable field programmable gate array (FPGA)
for GPS data acquisition and DSP interface.
AGARWAL ET AL.: DESIGN AND DEVELOPMENT OF A REAL-TIME DSP AND FPGA-BASED
445
Fig. 5. Proposed system architecture.
To summarize, the scheme proposed in this paper
offers the following advantages:
1) processing GPS data on a reconfigurable FPGA
chip which ensures compactness and reduced weight;
2) DPRAM on an FPGA for asynchronous GPS
data transmission between GPS and DSP;
3) use of a single power supply which reduces
size, weight, and volume;
4) use of specially designed, dedicated hardware
that is optimized for speed, size, and power.
The remaining part of this paper is organized as
follows. System architecture of the proposed system
is described in Section II. In Section III, real-time
implementation details of both the hardware and the
software are presented. Results and discussions are
included in Section IV, followed by conclusions of
this work in Section V.
II. PROPOSED SYSTEM ARCHITECTURE
The proposed integrated system with a lightweight
package providing the navigation system function
is shown in Fig. 5. For better understanding, the
system can be divided into two main blocks and their
subblocks as below:
A) GPS and IMU data acquisition card (GIDAC)
1) analog signal acquisition
2) GPS serial data acquisition.
B) Navigation Processor Card (NPC).
The proposed architecture is now explained in details.
A. GPS and IMU Data Acquisition Card
GIDAC consists of two parts. The first part is
the analog signal acquisition block which processes
IMU signal input and converts them into digital data.
The second part handles the GPS data. FPGA-based
processing of the GPS signal is carried out to extract
data from the required “fields” of the GPS data train.
This data is sent to the NPC.
1) Analog Signal Acquisition: The analog
signals from IMU are passed through a second-order
Butterworth low-pass filter, and scaled to data
acquisition input range and sampled simultaneously,
thus preserving the phase information among all the
446
Fig. 6. Sampling of input signals. (a) Sampling of input signals
using multiplexer at input stage of ADC. (b) All input signals are
sampled at the same instant of time.
signals in the GIDAC card. As seen in Fig. 6, there
is a delay (¢) between the sampling of each input
signal in case a multiplexer is used at the input stage
of ADC. Thus, there is a delay of 5¢ by the time
the sixth input signal is sampled. Considering ax,
ay, az, p, q, and r as input channels ch1 to ch6, the
position information being considered for calculation
from all input signals is not actually correct as it
does not belong to the same time instant due to
the delays [3—6]. It may be noted that even if all
channels are not sampled simultaneously, but the
sampling and A/D conversion rate are significantly
high, then the effect of errors due to phase delays
will be minimal. Nonsimultaneous sampling will have
impact if computation cycle time is comparable with
conversion time. In the present case simultaneous
sampling helps in saving valuable DSP time which
is otherwise used for controlling the ADC, whereas
the correct relative information among all the signals
(ch1 to ch6) is maintained by simultaneous sampling.
2) PS Serial Data Acquisition: To relieve the main
processor from processing overheads during slow
speed serial I/O operation, FPGA-based serial port
interface is used in the proposed architecture. The
FPGA chip is programmed to receive the GPS data
from GPS receiver, and generates a busy signal when
accessing the in-built dual port RAM (DPRAM). This
low-going busy signal interrupts the DSP processor,
and the processor fetches the data from the internal
DPRAM of the FPGA chip.
B. Navigation Processor Card
The INS computations and integration with GPS
data are carried out on a floating point TMS320vc33
DSP present on the NPC card. Control logic signals
for selecting peripheral chips are generated using
the programmable array logic (PAL). Asynchronous
communication is maintained between the GPS
module and the NPC card using DPRAM, thus saving
the processor time during data transfer.
The design implementation of the prototype
integrated GPS/INS sytem, software flow of the
IEEE TRANSACTIONS ON AEROSPACE AND ELECTRONIC SYSTEMS VOL. 45, NO. 2 APRIL 2009
Fig. 7. INS data acquisition board developed.
entire system, INS computations, and Kalman filter
implementation are discussed in detail in the next
section.
III. HARDWARE AND SOFTWARE IMPLEMENTATION
This section describes the hardware and software
implementation of the proposed scheme which is
operated on a single +5 V supply.
A. GPS-INS Data Acquisition Card (GIDAC)
As described in Section II, this card has two
stages:
1) INS data acquisition
2) GPS data acquisition.
1) INS Data Acquisition: Low cost dual axis §2 g
accelerometer ADXL202E [18] and §300± /s gyro
ADXRS300 [19] from analog devices are selected as
inertial sensors. These two sensors are operated on
a single supply +5 V, and give 2.5 V as their initial
null value in both the sensors. The sensitivity of the
accelerometer and gyro is 312 mV/g and 5 mV/± /s,
respectively.
Analog sensor output signals are filtered using
second-order Butterworth filter and preprocessing
of the sensor signal is performed before data
acquisition to make it compatible with the data
acquisition input requirements. Single-supply
operated, OP491 quad op-amp [20], with features
such as rail-to-rail inputs and outputs, is used to
build the multi-stage filters and to maintain high
signal-to-noise (S/N) ratios. A 16 bit, 250 kHz ADC
from Texas Instruments (ADS8364) [21] is chosen
for sampling all the channels simultaneously. The
developed printed circuit board for the INS data
acquisition circuit is shown in Fig. 7. The input
channels are grouped into pairs for high-speed
simultaneous signal acquisition, and offer high-speed
parallel interface in cycle mode (Fig. 8). The
control signals are generated from the NPC card
for accessing the signals. The time sequence of the
control signals of the ADC is shown in Fig. 8. The
various control signals/lines, of the ADC used, are as
follows:
1) start of conversion for all the six channels,
2) end of conversion for all the channels (two at a
time),
3) chip select to enable read from ADC (six low
going pulses),
4) read signals to ADC (six low going pulses).
As shown in Fig. 8, making the /HOLDx pin low,
places all the sample-hold amplifiers in the hold state
simultaneously and the conversion process is started
on each channel. The output data for each channel is
available as a 16 bit word from channel A0 through
channel C1.
Fig. 8. Experimental waveforms of ADS8364 showing simultaneous sampling.
AGARWAL ET AL.: DESIGN AND DEVELOPMENT OF A REAL-TIME DSP AND FPGA-BASED
447
Fig. 10. NPC board layout.
Fig. 9. GPS receiver serial link interface implemented on FPGA
for proposed system.
2) GPS Data Acquisition: GPS transmits data
using RS232 protocol. This data is further sorted out
to extract the useful information. Conventionally, a
microcontroller and a DPRAM are used to perform
this job. However, in this approach, both hardware
components remain underutilized. Alternately, an
FPGA-based system will render a single chip solution
with a small board size and can operate on a single
power supply. The development is not very trivial
compared with a microcontroller-based system. In
the presented study, an FPGA-based solution is
implemented as explained below.
The National Marine Electronics Association
(NMEA) sentences [17], received from the GPS
receiver, are fed into the FPGA chip. This FPGA
chip is operated at 8 MHz and programmed using
the very large scale integration (VLSI) hardware
description language (VHDL) code [22]. A clock
divider circuit (to generate the desired baud rate), a
receiver (RDR receiver), a RAM, and a DPRAM are
all realized on the FPGA chip itself. This is shown in
Fig. 9.
The receiver is based on the state machine of a
universal asynchronous receiver transmitter (UART)
of a microcontroller. The RDR receiver (Fig. 9)
computes the check sum of the received data and
crosschecks with the received GPS sentence data.
These data are temporarily stored in the RAM within
the FPGA chip, and once the checksum matches, the
RDR receiver generates update flag, enabling the
transfer of GPS data to the internal DPRAM of the
FPGA along with a low (busy) DPRAM signal, which
is sent as an interrupt to the navigation processor.
B. Navigation Processor Card
This card is built around a DSP TMS320vc33 chip
[23, 24] and other control electronics. It is a floating
point processor and provides up to 150 million
floating point operations per second (MFLOPS). It has
448
a 34K word dual access static random access memory
(SRAM), boot loader, and on-chip peripherals. Its
power requirements are minimal. The DSP chip is
operated with 1.8V and 3.3V, whereas the external
interface to this card is based on transistor transistor
logic (TTL). A 74LS4245 level shifter with buffer
is provided at the input and output stage of the
NPC card. Control logic signals are generated using
programmable array logic PAL22V10 chip. The NPC
board layout is shown in Fig. 10.
The NPC board can communicate with the host
PC either through parallel port or JTAG cable. The
applications are developed on host PC. The program
code is downloaded and run in DOS emulator mode.
This card gets digitized sensor inputs from the GIDAC
card. Inertial navigation computing is performed at
100 Hz, and the inertial data is fused with the GPS
data at 1 Hz (Fig. 11). Inertial/GPS sensor fusion
amounts to dynamically determining weights which
are combined with the position determined by the
INS data and the position output from the GPS
receiver.
The software flow of GPS-INS integration code
has several subprograms and header files, along with
assembly coding for initialisation of DSP [25] and
its peripherals. Timer0 and Timer1 are configured
using Timer Global control registers and Timer
Period registers in the initialisation routine. In the
interrupt vector table, /INT1 and /INT0 are defined
as interrupts from IMU and GPS data acquisition
process. Interrupt /INT0, received from the FPGA
chip (GPS update every 1 s), is considered a highest
priority. A variable “count = 2” is initialized for
counting EOC (/INT1) signal from ADC. Variables
Start INS and GPS available are set low. Timer0 is
dedicated for generating a clock of 5 MHz (for ADC)
and Timer1 for generating interrupts at a frequency of
100 Hz. These timers are enabled by configuring the
Timer Count register.
ADC chip is initialized by giving software
reset and configured to operate in CYCLE MODE.
Whenever Timer1 overflows (i.e., the overflow flag
gets set), the /HOLDx signals are made low, thus
IEEE TRANSACTIONS ON AEROSPACE AND ELECTRONIC SYSTEMS VOL. 45, NO. 2 APRIL 2009
Fig. 11. (a) Flowchart showing different ISR tasks. (b) Flowchart showing software flow of proposed system.
making the ADC to sample all the six channels
simultaneously. So, the main program waits in
an infinite loop (IDLE mode) and based on the
interrupts, the respective interrupt service routines
(ISRs) are enabled. Various tasks associated with
different external interrupts and ISRs are as follows
(Fig. 11(a)).
1) When EOC of ADC (/INT1) occurs, the data of
all six channels are stored. The Start INS is set high.
The program returns from /INT 1 ISR.
2) When GPS read of FPGA (/INT0) occurs, the
data is read from the internal DPRAM within FPGA,
variable GPS available is set high and the program
returns.
In the main loop, INS and KF computations are
performed when Start INS bit and GPS available
are set high. A nine-state Kalman filter is applied to
combine the inertial solutions with the GPS position
and velocity errors in the inertial navigation solutions
[26]. In the present system nine states, namely, three
positions, three velocities, and three attitudes are used
in the Kalman filter. The emphasis of the work is
more on the real time hardware and programming
aspects related to the integration rather than the
TABLE I
Sensor Specifications used in Simulations
Quality
Value
Standard
Deviation
Scale factor of the accelerometer
250 mV/g §25=3 mV/g
Zero offset of the accelerometer
2500 mV §625=3 mV/g
Scale factor of the gyroscope
1.11 mV/± /s §10=3 %
–
Typical turn-on drift of the gyroscope
0.12 ± /s
Random noise incorporated in the GPS
–
§20 m
Kalman filter development. Sensor specifications used
in the simulation are given in Table I.
The actual implementation of the filter in the
program was done using a set of matrix functions
built on standard ANSI C routines. ANSI C is used
to aid in portability in case there is a need to use the
software on another platform.
IV. RESULTS AND DISCUSSIONS
As mentioned earlier the present paper describes
the real time hardware development for a typical
INS-GPS integration. The various hardware developed
AGARWAL ET AL.: DESIGN AND DEVELOPMENT OF A REAL-TIME DSP AND FPGA-BASED
449
TABLE II
Memory Map of TMS320vc33
TABLE III
Computation Time for INS Parameters and Kalman Filter
Algorithm
Name
Origin
Length
Used
Words
ROM
RAM2
RAM3
MMRS
RAM0
RAM1
00000000
00800000
00804000
00808000
00809800
00809c00
000001000
000004000
000004000
000000100
000000400
000000400
00000120
00002F81
00000e18
00000000
00000400
00000000
4 K
16 K
16 K
Total words
16.58 K
1 K
are:
1) FPGA-based GPS data extractor which uses a
DPRAM for asynchronous data transmission.
2) Interface of FPGA and DSP.
3) ADC interfacing with DSP.
The complete hardware works on a single power
supply resulting in a compact system. It may be
noted that DSP TMS320VC33 does not have an
asynchronous serial communication port. To interface
GPS (which is an asynchronous device) with the DSP,
additional components are required. This could be
a microcontroller which will receive data from the
GPS and give output at the parallel interface. But the
microcontroller will remain highly underutilized in
this case. A USART can also be used, but in that case
the data sorting load will come on a DSP chip. Hence
using an FPGA is a good solution.
The proposed integrated system has been tested
by testing the individual blocks GIDAC and NPC.
Serial link GPS data is fed to FPGA and its output is
interfaced with NPC. Input for the system is read from
the data stored on the hard drive and the program
is run just as if the collection (of data) was taking
place in real-time. The simulated sensor data are
generated using trajectories obtained from flight
dynamic and control tool box (FDC) in MATLAB.
Different trajectories were obtained by giving step
and pulse inputs to elevator and ailerons. Aircraft
states were stored to simulate sensors. To analyze the
prediction accuracy of INS, it was compared with a
true trajectory generated using MATLAB.
From the simulation results obtained, as shown in
Table II, it was observed that the total memory usage
is about 17 K words out of the available 34 K words.
The DSP on the NPC card is operated at 75 MHz.
This corresponds to 26 nsec per instruction cycle and
hence the execution time is computed using this value.
On an average, each INS computation took about
1.17ms to execute on DSP (Fig. 12). Similarly, each
Kalman filter computation took around 6.33 ms, with
243461 instruction cycles, to execute on the DSP. One
cycle is of 26 nsec. Hence, dividing the total time by
the time taken by one cycle, we can find the total
number of cycles involved which comes out to be
243461. This is summarized in Table III.
450
Computation
During
No. of Cycles
Involved
Execution Time on DSP
Operated with 75 MHz
INS
Kalman Filter
Simultaneous
Sampling ADC
DPRAM access
44940
243461
–
1.17 ms
6.33 ms
10.4 ¹s
–
1 ¹s
Fig. 12. NPC timing requirement for INS and KF computations
tasks.
The bench tests were conducted in which the
simulated sensor inputs were fed into the proposed
integrated system and navigation results were
computed. These were found to be in agreement
with the simulated results. The developed integrated
GPS-INS system weighs about 183 g and consumes
1.7 W and 62 mW when the system is in active
and idle modes, respectively. The overall size of
the developed prototype system is 1500 £ 12:500 . For
verification of the results, MATLAB code developed
in [26] was used. Simulated results include various
errors in inertial sensors and the GPS. Same sensor
outputs were given to the present hardware and
the results were compared. The output waveforms
obtained from the integrated GPS-INS system are
shown in Figs. 13—15. Another example trajectory
(more complex than previous one) was simulated and
the flight data was fed into the DSP TMS320VC33.
The plots for latitude, longitude, and altitude obtained
directly from the hardware (DSP output) are shown in
Fig. 16. They show good agreement with the actual
trajectory.
V.
CONCLUSIONS
The paper discussed a new approach in acquiring
signals from IMU and GPS for a given Kalman filter
to fuse the data. A fast sampling ADC has been used
and interfaced with DSP. GPS data acquisition, using
the FPGA approach, reduced the chip count from 2 to
1 by implementing the UART and the DPRAM on the
FPGA chip itself. This provided an efficient interface
between the GPS and the DSP.
The prototype real-time integrated system based on
DSP lays the foundation for the development of future
systems of this type. As far as the time constraint and
the memory of the system is considered, the DSP
IEEE TRANSACTIONS ON AEROSPACE AND ELECTRONIC SYSTEMS VOL. 45, NO. 2 APRIL 2009
Fig. 13. Distance along North in meters versus time.
Fig. 14. Distance along East in meters versus time.
Fig. 15. Altitude in meters versus time.
TMS320VC33 chosen as navigation processor has
an edge over other processors or COTS hardware.
Moreover, there is no requirement of any external
interface of RAM as the internal SRAM of the
processor is quite sufficient for computations. Present
filter used ¼ 50% of available memory and ¼ 60%
of the available computation time. Thus, the same
configuration can be used for a more complex filter
also. Overall, the prototype system developed operates
on a single power supply and consumes less power.
AGARWAL ET AL.: DESIGN AND DEVELOPMENT OF A REAL-TIME DSP AND FPGA-BASED
451
Fig. 16. DSP (hardware) output. (a) Latitude versus time
(x-axis = 0:01 s/data sample). (b) Longitude versus time
(x-axis = 0:01 s/data sample). (c) Altitude versus time
(x-axis = 0:01 s/data sample).
Two example trajectories were considered to test the
developed system. The results obtained for the first
example trajectory are found to be in close agreement
with the actual trajectory. For the second trajectory,
both the maximum error and standard deviation of
error are observed to be higher.
452
Fig. 17. Plots with GPS outage from 100 to 105 s. (a) Latitude
versus time. (b) Longitude versus time; (c) Height versus time.
IEEE TRANSACTIONS ON AEROSPACE AND ELECTRONIC SYSTEMS VOL. 45, NO. 2 APRIL 2009
From the test results over a span of 300 s, it is
observed that after initialization, the position accuracy
of GPS-INS system is comparable to that of the
GPS receiver. It must be noted that the output of
the Kalman filter is bounded by the GPS output.
Trajectory plots (for the first example) showing a GPS
“outage” and its effect are shown in Fig. 17. If more
Kalman filter states are considered, the GPS outages
can be handled better.
[10]
[11]
[12]
ACKNOWLEDGMENT
The authors would like to thank Prof. K. Sudhakar,
Mr. Vikas Kumar Naresh, Mr. Lalit Saptarshi, and
Mr. Chetan Patki, all from IIT-Bombay, for their help
during the course of this work.
[13]
[14]
REFERENCES
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
Grewal, M. S., Weill, L. R., and Andrews, A. P.
Global Positioning Systems. Inertial Navigation, and
Integration.
New York: Wiley, 2001.
Sukkarieh, S., Nebot, E. M., and Durrant-Whyte, H. F.
A high integrity IMU/GPS navigation loop for autonomous
land vehicle applications.
IEEE Transactions on Robotics and Automation, 15, 3
(June 1999), 572—578.
Shang, J., Mao, G., and Gu, Q. T.
Design and implementation of MIMU/GPS integrated
navigation systems.
In IEEE Position Location and Navigation Symposium,
Apr. 2002, 99—105.
Moon, S. W., Hwang, D. H., Sung, T. K., and Lee, S. J.
Design and Implementation of an Efficient
Loosely-Coupled GPS/INS integration scheme.
Technical Report, Chungnam National University, Korea,
1998.
Faulkner, N. M., Cooper, S. J., and Jeary, P. A.
Integrated MEMS/GPS navigation systems.
In IEEE Position Location and Navigation Symposium,
Apr. 2002, 306—313.
Hegg, J.
Enhanced space integrated GPS/INS(SIGI).
IEEE Aerospace and Electronic Systems Magazine, 17, 4
(Apr. 2002), 26—33.
Cao, F. X., Yang, D. K., Xu, A. G., Ma, J., Xiao, W. D.,
Law, C. L., Ling, K. V., and Chua, H. C.
Low cost SINS/GPS integration for land vehicle
navigation.
In IEEE 5th International Conference on Intelligent
Transportation Systems, Sept. 2002, 910—913.
Jaffe, R., Qi, H., Carter, P., and Madni, A. M.
MMQ-G, A low cost MEMS INS-GPS.
In ION GNSS 18th International Technical Meeting of the
Satellite Division, Long Beach, CA, Sept. 13—16, 2005,
956—966.
Lichuan L., Zengshan, T., and Shun-ji, H.
An algorithm for integrating GPS/INS attitude
determination system.
In CIE International Conference on Radar, 2001, 167—170.
[15]
[16]
[17]
[18]
[19]
[20]
[21]
[22]
[23]
[24]
[25]
[26]
Qi, H., and Moore, J. B.
Direct Kalman filtering approach for GPS/INS
integration.
IEEE Transactions on Aerospace and Electronic Systems,
38, 2 (Apr. 2002), 687—693.
Giremus, A., Doucet, A., Calmattes, V., and Tourneret, J.-Y.
A Rao-Blackwellized particle filter for INS/GPS
integration.
IEEE ICASSP, 2004, 964—967.
Chiang, K.-W., Noureldin, A., and El-Sheimy, N.
A new weight updating method for INS/GPS integration
architectures based on neural networks.
Measurement Science and Technology, Institute of Physics
Publishing, June 2004, 2053—2061.
Schaffrin, B., and Kwon, J. H.
A Bayes filter in Friedland form for INS/GPS vector
gravimetry.
Geophysical Journal International, 149, 1 (Apr. 2002), 64.
Rao, K. D.,Swamy, M. N. S., and Plotkin, E. I.
GPS navigation with increased immunity to modeling
errors.
IEEE Transactions on Aerospace and Electronic Systems,
40, 1 (Jan. 2004), 2—11.
Crassidis, J. L.
Sigma-point Kalman filtering for integrated GPS and
inertial navigation.
IEEE Transactions on Aerospace and Electronic Systems,
42, 2 (Apr. 2002), 750—756.
Farrell, J. A., Givargis, T. D., and Barth, M. J.
Real-time differential carrier phase GPS-aided INS.
IEEE Transactions on Control Systems Technology, 8, 4
(July 2000), 709—721.
GPS-Receiver JP3 Falcom Wireless Communication, users
manual.
www.falcom.de; accessed 2004.
ADXL202AE Analog Devices, datasheet.
http://www.analog.com/UploadedFiles/Data Sheets/
70885338ADXL202 10 b.pdf; accessed 2004.
DXRS300 Analog Devices, datasheet.
http://www.analog.com/UploadedFiles/Data Sheets/
732884779ADXRS300 b.pdf; accessed 2004.
OP491 Analog Devices, datasheet.
http://www.analog.com/UploadedFiles/Data Sheets/
813995969OP191 291 491 c.pdf; accessed 2004.
ADS8364, Texas Instruments, datasheet.
http://focus.ti.com/lit/ds/symlink/ads8364.pdf; accessed
2005.
Bhaskar, J.
A VHDL Primer (Innovative Technology series).
Upper Saddle River, NJ: Prentice-Hall, 1992.
TMS320C3X User’s Guide, Texas Instruments SPRU031f.
http://focus.ti.com/lit/ug/spru031f/spru031f.pdf; accessed
2005.
TMS320VC33 User’s Guide, Texas Instruments SPRS087e.
http://focus.ti.com/lit/ds/sprs087e/sprs087e.pdf; accessed
2005.
Code Composer Studio User’s Guide, Texas Instruments
SPRU296a.
http://focus.ti.com/lit/ug/spru296/spru296.pdf; accessed
2005.
Naresh, V. K.
Integration of inertial navigation system and Global
Positioning System using Kalman filtering.
Dual Degree Master’s Thesis, Dept. of Aerospace
Engineering, IIT-Bombay, 2004.
AGARWAL ET AL.: DESIGN AND DEVELOPMENT OF A REAL-TIME DSP AND FPGA-BASED
453
Vivek Agarwal (M’93–SM’01) received a bachelor’s degree in physics from
St. Stephen’s College, Delhi University. He then obtained an integrated master’s
degree in electrical engineering from the Indian Institute of Science, Bangalore,
India. Subsequently, he pursued a Ph.D. degree in the dept. of Electrical and
Computer Engineering, University of Victoria, Canada.
After completing the Ph.D. degree in 1994, he briefly worked for Statpower
Technologies, Burnaby, Canada as a research engineer. In 1995 he joined the
Department of Electrical Engineering, Indian Institute of Technology–Bombay,
India, where he is currently a professor. His main areas of interest are power
electronics and electronic systems. He works on the modeling and simulation
of new power converter configurations, intelligent and hybrid control of power
electronic systems, power quality issues, EMI/EMC issues, and conditioning of
energy from nonconventional energy sources. He is a Fellow of IETE and a life
member of ISTE.
Hemendra Arya received the M.Tech. and Ph.D. degrees from IIT-Bombay,
India, in 1991 and 1997, respectively, from the Aerospace Engineering
Department.
He is currently an assistant professor with the Department of Aerospace
Engineering, IIT-Bombay. He is actively involved in modelling and simulation
activities related to mini and micro aerial vehicles. His research interests are
autonomous aerial vehicles and sensor fusion related to these.
Bhaktavatsala Shivaram was born in Bangalore, India, on February 1, 1973. He
received the Bachelor’s Eng. degree in 2001 from Bangalore University, and the
Master’s degree in electronic systems in 2004 from IIT-Bombay, India.
He started his professional career from 1991 after his Diploma in Electronics
and Telecommunication Eng. from Board of Technical Education, Bangalore.
From 1991 to 1998 he was with BPL SANYO Ltd, as assistant technical officer
in the Consumer Electronics Research and Product Group. From May 1998
to 2006 he was with the Aeronautical Development Establishment, engaged
in research and new product development in the field of electronic systems
development based on single board computers for flight control computers.
Currently he is an electrical design engineer at KLA-Tencor Software India Pvt
Ltd, Chennai, engaged in research and new product development of electronic
systems for semiconductor wafer inspection tools. His current research lies in the
field of embedded, low cost, highly reliable compact systems.
454
IEEE TRANSACTIONS ON AEROSPACE AND ELECTRONIC SYSTEMS VOL. 45, NO. 2 APRIL 2009