vme and critical systems,avionics          Other topics:   OpenVPX, RTOS, multicore, VPX, AdvancedTCA, microcontroller, FPGAs, analog-to-digital
VME and Critical Systems
home
articles & topics
product search
White Papers
newswire
E-letter
E-cast Schedule
articles >
Technology Feature
vme and critical systems,avionics
RSS Link
Industry News - Top Stories:
vme and critical s...
  • RSS
    • Top Stories Only
    • All Headlines
  • Atom (full text)
    • Top Stories Only
    • All Headlines
  • ALT Software selected to deliver DO- 178B certifiable OpenGL Drivers for ATI RadeonTM E4690 GPU
    1 year ago
  • Kontron XMC-ETH2: Robust dual Gigabit Ethernet mezzanine board with long-term availability
    10 months ago
  • DDC-I Announces Safety-Critical Migration Path for Wind River Users Targeting Non-Intel Platforms
    1 year ago
  • More Industry News headlines...
Technology Partnerships:
vme and critical s...
  • RSS
    • Top Stories Only
    • All Headlines
  • Atom (full text)
    • Top Stories Only
    • All Headlines
  • US Technologies Offers Testing and Repair of VME, MVME, VMEbus Products
    1 year ago
  • LynuxWorks, TTTech Team to Aid Developers Creating Safety-Critical Avionics Systems
    2 years ago
  • Condor Expands Its Commercial Aerospace Presence Through Partnership with Aerotech World Trade
    5 years ago
  • More Technology Partnerships headlines...
Contracts:
vme and critical s...
  • RSS
    • Top Stories Only
    • All Headlines
  • Atom (full text)
    • Top Stories Only
    • All Headlines
  • Ballard Adds Texas/Oklahoma Manufacturer's Representative
    2 years ago
  • Curtiss-Wright Controls Wins Penetrating Radar Contract with US Army Agency to Aid in Hunt for Unexploded Ordnances
    1 year ago
  • Tundra Semiconductor's Serial RapidIO Switch Selected by VMETRO
    2 years ago
  • More Contracts headlines...
New Products:
vme and critical s...
  • RSS
    • Top Stories Only
    • All Headlines
  • Atom (full text)
    • Top Stories Only
    • All Headlines
  • AIM's New USB ARINC-429 Analyzer
    8 months ago
  • Elma Bustronic has Over 30 Standard Slot Sizes for 6U and 7U VME64x Backplanes
    11 months ago
  • New VPX Mesh Hybrid Backplane from Bustronic
    1 year ago
  • More New Products headlines...
People:
vme and critical s...
  • RSS
    • Top Stories Only
    • All Headlines
  • Atom (full text)
    • Top Stories Only
    • All Headlines
  • Ballard Expands its Executive Team with Avionics Veterans Bill Schuh and Jerry V. Birbal
    2 years ago
  • USMC 234th Birthday Tribute Video
    9 months ago
  • AdaCore Appoints Gregory Gicca as Director of Safety and Security Product Marketing
    3 years ago
  • More People headlines...
Mergers and Acquisitions:
vme and critical s...
  • RSS
    • Top Stories Only
    • All Headlines
  • Atom (full text)
    • Top Stories Only
    • All Headlines
  • AIM-USA, LLC Acquires Precision Fibre Channel, LLC to Consolidate Fibre Channel Product Line
    2 years ago
  • SKY Computers Expands Product Portfolio With Addition of Analogic's Test and Measurement Products
    5 years ago
  • Eurotech Acquires Japanese Embedded Systems Company Advanet
    2 years ago
  • More Mergers and Acquisitions headlines...
Conferences and Awards:
vme and critical s...
  • RSS
    • Top Stories Only
    • All Headlines
  • Atom (full text)
    • Top Stories Only
    • All Headlines
  • Avionics Europe 2010 Embedded Graphics Solutions
    5 months ago
  • RapidIO is the Right Serial Interconnect for Critical Embedded Systems
    3 years ago
  • DDC Wins Lockheed Martin Corporation Star Supplier Award
    3 years ago
  • More Conferences and Awards headlines...
Media and Education:
vme and critical s...
  • RSS
    • Top Stories Only
    • All Headlines
  • Atom (full text)
    • Top Stories Only
    • All Headlines
  • OpenSystems Publishing Renames VMEbus Systems Magazine to 'VME and Critical Systems' Magazine
    3 years ago
  • OpenSystems Publishing Launches New VME E-site
    3 years ago
  • Mission Critical COTS Solutions Described in New Aitech Shortform Brochure
    5 years ago
  • More Media and Education headlines...
Standard Certifications and References:
vme and critical s...
  • RSS
    • Top Stories Only
    • All Headlines
  • Atom (full text)
    • Top Stories Only
    • All Headlines
  • Thales Group Adopts AdaCore as Corporate Ada Standard
    4 years ago
  • BittWare Commits to Long Term VITA 41 VXS Roadmap
    4 years ago
  • VITA Releases Summary of Ratified Standards
    7 months ago
  • More Standard Certifications and References headlines...
Browse topics
Search Articles
Browse Articles
See Also:
Military Articles
Embedded Computing Articles
CompactPCI Articles
Magazine >

About the Magazine
Editorial Topics
Free Subscription
Reader Service Card
Search Articles
Search Products
Contact Information
Columns

Editor's Foreword
VITA News
VITA Standards
Technology in Europe
Military Technology Insider
Guest Editorial
Defining Standards
Departments

Editor's Choice Products
by Chris A. Ciufo
VMEnow Blog
What is VME?
VME: Then & NOW
Webcasts

Upcoming E-casts
Archived E-casts
Submissions

Submit a Press Release
Submit a New Product
Submit an Abstract for Review
Vendors/Sponsors

Do an E-cast
Preferred Vendors
Upcoming Issue
Advertise
Editorial Calendar
Media Kits










August 2008

Next-gen C++ API for avionics apps enhances application development

By
Troy Troshynski
AIM-USA

Avionics applications that require I/O access to aircraft data buses typically access these buses via the low-level C style API libraries supplied with bus interface modules, for example a MIL-STD-1553 or ARINC 429 PMC module. These low-level APIs are commonly focused on the hardware implementation of the interface module and therefore require the avionics application programmer to become very familiar with a particular hardware module. Additionally, these APIs do not provide inherent support for object-oriented software design or distributed multiprocess applications. Accordingly, a new generation of C++ high-level APIs has been designed to provide intuitive support for object-oriented, distributed applications. These C++ APIs allow the system programmer to focus on the avionics application and to more efficiently develop the avionics applications, while also supporting legacy applications.

Critical airborne and ground-based aerospace software appli-cations commonly require access to avionics data buses for communications with remote computing nodes, sensors, and actuators. In a typical avionics system, this interface is achieved by mounting an embedded interface module, for example a MIL-STD-1553 or ARINC 429 PMC module onto an embedded single board computer as shown in Figure 1.

Figure1
Figure 1
(click graphic to zoom by 2.2x)

The embedded single board computer typically hosts an embedded RTOS and the application software. The applications software typically accesses the aircraft data bus through the low-level C style Applications Programming Interface (API) libraries supplied with the PMC interface modules. These low-level APIs are commonly focused on the hardware implementation of the data bus interface module and therefore require the avionics application programmer to become very familiar with and focused on the hardware implementation of the particular interface module being used. Additionally, because these low-level APIs are composed of C language functions, they do not inherently support Object Oriented (OO) programming and design methods, which are commonly used to efficiently build high quality, fault tolerant, and reusable applications software modules using C++. These APIs also do not provide inherent support for multiprocess, distributed applications, which are becoming more common as aerospace and avionics applications become increasingly complex.

To support modern avionics applications designed using the latest OO design methodologies and programming languages, a new generation of high-level C++ APIs has been developed. This new API is designed to provide inherent support for multiprocess applications and distributed computing paradigms and to be easily portable to multiple operating systems and the latest programming languages such as C# and Python. Most importantly, it has been designed to provide an intuitive programming interface that allows the applications developer to focus on the avionics application instead of the specifics of the interface hardware or the details of managing multiple distributed processes.

Supporting state-of-the-art designs

The new high-level API architecture's primary software module is the API Core, which is based on a core Object Wrapper Layer (OWL) software module (see Figure 2). Additionally, the API Core provides an object-oriented encapsulation of the MIL-STD-1553 and ARINC 429 functions and features of the hardware interface module. The API Core is implemented in C++ and utilizes only standard external libraries, such as the Standard Template Library (STL). Usage of any operating system specific external libraries is strictly prohibited in order to allow the API Core to be easily ported to almost any operating system and Integrated Development Environment (IDE). When coupled with the newly added support for C++ compilation within many commonly used embedded operating systems (such as VxWorks, INTEGRITY, QNX, LynxOS, Linux, and Windows XP Embedded), this design requirement allows applications programmers to take advantage of the latest OO design methods to speed application development and ultimately reduce development and maintenance costs when compared to the usage of legacy C based procedural languages and methodologies.

Figure2
Figure 2
(click graphic to zoom)

The new API Core technology also focuses the API on the data bus protocol for which it provides an interface (MIL-STD-1553 and ARINC 429) and shields the user from any details of the underlying hardware interface module. This results in a very intuitive programming interface that frees the applications programmer from the requirement to learn the low-level details of the interface hardware. Additionally, it promotes the development of applications that are independent of the underlying hardware, which increases flexibility and the potential future cost savings should newer and less expensive hardware become available.

The sample code snippet below shows how a Bus Controller command sequence is built and executed using the new MIL-STD-1553 C++ API, demonstrating the hardware independence and intuitive nature of the new library. The implementation of similar functionality using existing low-level APIs could easily take double the lines of source code.

Sidebar1
Sidebar 1
(click graphic to zoom)

Due to the recently increasing popularity of new object-oriented programming languages such as C# (C Sharp) and Python, the API Core also addresses the need to provide inherent support for multiple languages. Because the new high-level API Core provides a C++ API that is simple and utilizes uniform method prototyping constructs, API designers are able to use the Simplified Wrapper and Interface Generator (SWIG) interface compiler to automatically generate extremely simple and thin software wrappers for the purpose of exporting APIs for other OO languages. In the past, when using existing low-level C based APIs, the task of creating an interface for another language was typically a time consuming and manual process that fell to the applications programmer and added to the overall cost of development.

Distributed multiprocess applications

Another common theme for modern MIL-STD-1553 and ARINC 429 applications and simulations is the use of multi-process and distributed software architectures. When developing these types of applications using old-style APIs, the tedious tasks of managing shared object lifetimes, access to shared data, and the low-level communications between remote processes were left to the applications programmer and therefore added to project costs and impeded the developer's focus on the avionics application. Thus, to provide more intuitive support for multiprocess (and possibly distributed) applications, new API Core technology includes a Remotable API Server consisting of a Server process and additional features and functions within the API Core to support Client operations. The purpose of the Remotable API service is to free the application developer from the tedious details of interprocess communications and to therefore reduce the cost of implementation while at the same time improving overall quality and performance characteristics of the application software.

The Remotable API Server provides the functionality needed to make the avionics interface hardware APIs available simultaneously to multiple Client processes residing on the local host computer and on remote hosts available via a TCP/IP network. The details of the communications between the server and client processes are completely hidden from applications programmers, freeing them to focus on the avionics applications and not the synchronization and communications details of the host-to-host interactions.

Additionally, platform-independent standard communications protocols (such as IIOP) are used to implement the internal communications interface between the Remotable API Server and remote clients. This allows new API architecture technology to seamlessly support distributed applications residing on multiple hosts using different operating systems. For example, a single distributed application could be spread across three hosts – two running Linux and one running Windows XP.

Supporting legacy applications

Sidebar2
Sidebar 2
(click graphic to zoom)

Due to the abundance of existing applications in service that are heavily based on legacy architectures that cannot support C++ and OO methodologies, the API Core was also designed to provide a complementing ANSI C Application Binary Interface (ABI). The C ABI allows the new API to also be effectively used in more traditional MIL-STD-1553 and ARINC 429 applications while at the same time providing some of the intuitive and hardware independent advantages of the C++ API. The C ABI is designed for binary compatibility, which allows subsequent versions of the C ABI to be used by avionics applications without the requirement for the application to be rebuilt and redistributed. The C ABI is also modeled as a complement to the C++ API to allow applications programmers to easily move from one interface to the other. The code snippet shown below demonstrates how the object-oriented and intuitive nature of the C++ API has been reflected in the C ABI.

Taking avionics APIs into the future

MIL-STD-1553 and ARINC 429 are widely used avionics data buses that can be found in many military and commercial aerospace applications where lifetimes can span decades. These data bus technologies have been proven to withstand the test of time and are still found to be central to many new aircraft and vehicle designs, ensuring their existence well into the future. As a result, there is a need for MIL-STD-1553 and ARINC 429 interface module programming interfaces to effectively and efficiently support both legacy and new system software design techniques that focus on object-oriented methods and multiprocess and distributed architectures. As a result, the systems programmer is freed from focusing on the specific hardware module and can concentrate on more efficient applications development. These were the primary design goals of AIM-USA's software design team during the development of this new high-level software library architecture, designed to support multiple existing and new avionics applications on multiple hardware and operating systems platforms. CS

Troy Troshynski is V.P. of Marketing and Product Development for AIM-USA, a leading manufacturer of MIL-STD-1553 and ARINC 429 avionics interface modules and software. Troy has more than eight years of experience working with high-speed avionics and data communications protocols and has worked in developing MIL-STD-1553, ARINC 429, and ARINC 664 real-time embedded software at both the device driver and application levels. Troy holds a Bachelor of Science degree in Physics from Doane College in Crete, NE and a Bachelor of Science degree in Electrical Engineering from Washington University in St. Louis, MO. He can be contacted at TroyT@aimusa-online.com.

Gabe Cook is a Principal Software Engineer at AIM-USA, and he leads AIM-USA’s software development team in Omaha, NE. Gabe is the chief designer of the OWL software architecture. He has more than nine years of experience developing state-of-the-art test and simulation software applications utilizing object-oriented methodologies and languages on multiple operating systems and hardware platforms. Gabe holds a B.S. in Electrical Engineering and an MBA with an MIS emphasis from the University of Nebraska. He can be reached at GabeC@aimusa-online.com.

AIM-USA
402-763-9644
www.aimusa-online.com




©MMIX VME and Critical Systems. An OpenSystems Media, LLC publication.
About this Magazine and Website | Contact Us | VME and Critical Systems Media Kit