Application of the Embedded Real-Time Operating System VxWorks in Inertial Navigation Systems
Abstract #
This paper presents an analysis of the performance characteristics of the embedded real-time operating system VxWorks and its application in inertial navigation systems (INS). The development process based on VxWorks is described, along with practical application examples in navigation interface machines. The necessity and feasibility of transitioning existing INS software from assembly language to operating-system-supported high-level languages are discussed. This transition significantly improves software maintainability, testability, and reliability while fully utilizing the processing capabilities of modern navigation computers to meet increasingly complex navigation computation requirements.
1. Introduction #
An inertial navigation system (INS) is a real-time control system that integrates sensitive signal acquisition, platform control, navigation computation, human–machine interaction, and data transmission. It provides critical navigation information such as heading, attitude, and position for maritime and aerospace platforms. At the core of an INS is an embedded computer system responsible for data acquisition, filtering, control loop execution, navigation parameter computation, and system interaction.
In many legacy INS designs, embedded computers are based on Intel 80486 (PC/104) processors, with application software developed directly on the hardware using 8086 assembly language. Debugging and control are typically performed using monitor programs such as the Intel 957B. In such designs, management of memory, peripherals, and interrupts is tightly coupled with application logic, resulting in excessive software complexity.
Although assembly language offers high execution efficiency and precise hardware control, it has several inherent disadvantages. Poor readability and limited portability make long-term maintenance, modification, and system upgrades difficult. Moreover, modern PC/104 platforms are 32-bit processors capable of real-time multitasking and concurrent execution. Relying solely on manually implemented control programs makes it difficult to exploit these capabilities, leading to inefficient resource utilization and reduced system reliability. Additionally, outdated debugging and testing methods for assembly-language software significantly increase maintenance effort and require prolonged operational testing to verify correctness and stability. As new peripheral devices and highly integrated components emerge, many of which are supported by vendor-supplied drivers, traditional development methods are no longer sufficient.
To address these issues, it is necessary to introduce an embedded real-time operating system (RTOS) into INS software development. An RTOS abstracts and manages system resources such as CPU scheduling, memory, peripherals, interrupts, and communication interfaces, allowing developers to focus on application logic. Acting as the core of the software stack, the operating system provides a stable runtime platform for application software.
Real-time multitasking operating systems form the foundation of modern embedded systems. They encapsulate hardware resources and provide standardized APIs, allocating CPU time deterministically according to task priorities. VxWorks, a widely used embedded real-time multitasking operating system, is designed to be processor-independent, highly configurable, and tightly integrated with application software to form compact and reliable real-time systems.
VxWorks is accompanied by the Tornado integrated development environment, which supports C and C++ development and provides powerful tools such as cross-compilers, simulators, target debuggers, performance analysis utilities, and software testing tools. Using Tornado, VxWorks-based application software has been successfully developed for multiple INS interface machines, establishing a solid foundation for migrating existing INS software from assembly language to high-level, OS-supported development.
2. Advantages of VxWorks Compared with Bare-Metal INS Control Programs #
VxWorks, developed by Wind River Systems, has been widely deployed since its introduction in 1983 and is well known for its successful use in military, aerospace, and other mission-critical real-time control systems.
2.1 High-Reliability Real-Time Performance #
One of the most critical requirements for INS computers is reliable real-time performance. In traditional INS control programs, a fixed control cycle—typically 0.1 seconds—is used. Pulse increments from horizontal accelerometers are read at each cycle, and torquing signals are computed based on data from the previous cycle. This introduces an inherent delay, as control outputs always lag behind the most recent sensor data, which conflicts with strict real-time control requirements.
VxWorks effectively addresses this issue through its multitasking and interrupt-driven execution model. Its high-performance microkernel, Wind, provides priority-based preemptive scheduling, interrupt management, inter-task synchronization, inter-process communication, watchdog timers, and memory management. Real-time applications can be decomposed into independent tasks, each with its own execution context and stack, enabling concurrent processing of sensor input, control computation, and output generation.
The Wind kernel minimizes interrupt latency and context-switch overhead by combining priority-based scheduling with interrupt-driven execution. Tasks can be dynamically created, suspended, resumed, delayed, or deleted, and their priorities can be adjusted at runtime. Synchronization mechanisms such as semaphores, along with communication mechanisms including message queues, pipes, and sockets, allow precise coordination between tasks.
2.2 Flexible Debugging and Efficient Software Testing #
Developing INS control software in assembly language offers limited debugging capabilities. Typically, software self-tests are performed first, followed by hardware–software joint debugging using emulators or monitor programs. Fault localization often relies on manual code tracing, which is inefficient and time-consuming.
VxWorks provides a far more flexible debugging environment. Using Tornado, application software is developed on a host system and cross-compiled into executable images for the target platform. Debugging can be performed using simulators or through remote connections to the target via Ethernet or serial interfaces. Performance analysis tools such as WindView enable developers to observe task execution, context switching, and CPU utilization in real time.
Software testing is also significantly improved through the availability of coverage analysis and profiling tools, which help identify untested code paths and performance bottlenecks. These tools contribute to higher software quality and reduced validation effort.
3. Development Process Based on VxWorks #
3.1 Hardware Configuration #
The INS navigation interface machine is built on a PC/104 modular architecture, including CPU, input/output, and communication modules. A VxWorks Board Support Package (BSP) is customized to support the specific PC/104 hardware configuration, including device drivers and boot configuration.
3.2 Software Development Workflow #
The typical VxWorks-based development process includes the following steps:
- Install the Tornado development environment on the host system.
- Configure and customize the BSP for the target hardware platform.
- Develop application software in C or C++, using VxWorks APIs for task management, synchronization, and communication.
- Compile and link the application with the VxWorks kernel to generate a bootable system image.
- Download the image to the target system using a bootloader.
- Perform debugging, testing, and performance analysis.
4. Application Example in a Navigation Interface Machine #
In the navigation interface machine, VxWorks manages multiple real-time tasks responsible for data acquisition, navigation computation, control output, and system monitoring. Tasks are assigned priorities according to real-time requirements: the highest priority for control and sensor processing, medium priority for navigation computation, and lower priority for monitoring and diagnostic functions.
Inter-task communication is implemented using message queues to ensure deterministic data exchange. Interrupt service routines handle sensor data acquisition promptly, minimizing latency between measurement and control output.
This task-based architecture eliminates the delays inherent in traditional cyclic control schemes and achieves true real-time performance in torquing signal output.
5. Conclusion #
Introducing VxWorks into INS software development clearly separates system resource management from application logic, enabling the use of high-level programming languages and significantly improving software maintainability, portability, and reliability. By fully leveraging the multitasking and real-time capabilities of modern 32-bit processors, VxWorks-based INS software meets the demands of increasingly complex navigation computations. Successful application in navigation interface machines demonstrates the feasibility and effectiveness of this approach and provides a practical path for upgrading legacy INS software systems.