qnx industrial software architecture
TRANSCRIPT
Abstract
The industrial market is broad, encompassing systems for energy distribution and transfer,
transportation, factory automation, building automation and home automation. The range of
devices within this huge space requires a highly adaptable set of technologies, scaling from
tiny sensors to large-scale control units, covering full graphical displays or no display,
connecting many devices together, and servicing a wide range of features and functions. The
QNX industrial software architecture offers a large menu of technology solutions designed to
service the connectivity requirements of distributed automation systems, provide the richest
and most compelling HMIs, all the while retaining rock-solid reliability.
QNX Industrial Software Architecture
Rapidly building the systems that make the world work
QNX Industrial Software Architecture QNX Software Systems
2
Contents
Abstract......................................................................................................................................1 Contents.....................................................................................................................................2 QNX in Industrial .......................................................................................................................3 Technology Summary...............................................................................................................5 QNX Industrial Software Architecture.....................................................................................7
Tools .....................................................................................................................................8 Graphics / HMI......................................................................................................................9
QNX Photon microGUI .....................................................................................................10 OpenVG............................................................................................................................10 OpenGL ES ......................................................................................................................11 Advanced graphics framework .........................................................................................11 OpenKODE.......................................................................................................................11 Font library........................................................................................................................11
Middleware services ...........................................................................................................13 Media rendering................................................................................................................13 Browser ............................................................................................................................13 Web server .......................................................................................................................13 Java ..................................................................................................................................13
OS services ........................................................................................................................14 Networking........................................................................................................................14 Industrial Protocols ...........................................................................................................14 File systems......................................................................................................................16 High availability.................................................................................................................16 Database ..........................................................................................................................17 Connectivity ......................................................................................................................17 User Input .........................................................................................................................18
QNX Neutrino Core OS layer .............................................................................................18 Microkernel .......................................................................................................................18 Resource manager framework .........................................................................................18 Multi-core..........................................................................................................................19 Fast boot...........................................................................................................................19 Instant device activation ...................................................................................................19
BSP layer............................................................................................................................20 The QNX Industrial Ecosystem..............................................................................................21 Summary..................................................................................................................................23
QNX Industrial Software Architecture QNX Software Systems
3
QNX in Industrial
The QNX industrial software architecture is a complete suite of software including a real-time
operating system, middleware and tools, with additional third party middleware, tools, and
industrial protocols that enables developers to quickly construct systems that are fully
functional and compelling, without sacrificing reliability.
The QNX® Neutrino
® RTOS has proven itself in some of the world’s most important industrial
systems, with a pedigree including a huge number of applications that require reliable realtime
operation and constant availability. About one quarter of all wind turbines sold today use the
QNX Neutrino RTOS, and the QNX Neutrino RTOS ships in hundreds of thousands of
industrial systems each year. The QNX Neutrino RTOS is in such diverse applications as
precision machining, air traffic control systems, automated drawbridges, laser vision correction
systems, emergency dispatch systems, and blast furnace controls.
Why is QNX Software Systems the natural choice for all these demanding products? The
QNX industrial software architecture provides the most comprehensive set of software
components for industrial applications currently available. The QNX Neutrino RTOS has the
microkernel advantage, catching failures before they are deployed, with the field-proven
reliability of nearly thirty years in the most critical industrial environments. With broad support
for networking and connectivity, a QNX-based system can communicate and connect with
almost any device or sensor. QNX Software Systems provides middleware components for
graphics, HMIs, and multimedia for systems with demanding visual needs. And QNX Software
Systems provides powerful development tools in the QNX® Momentics
® IDE, allowing you to
analyze and optimize your system, making your products cost effective and reliable
performers.
Here’s a sample of industrial applications that rely on QNX technology:
General Electric — The Mark VIe Turbine Controller is a scalable workhorse control that can
be applied to small systems such as an industrial steam turbine control, large gas turbine
control systems, and plant controls. It uses the QNX Neutrino RTOS to control the precise
timing required to operate turbines properly and effectively.
Westinghouse and Atomic Energy of Canada Limited (AECL) — It is hard to imagine an
application more critical than a nuclear power plant, where failure can have catastrophic
results. Both Westinghouse and AECL chose the QNX Neutrino RTOS for its uncompromising
reliability in complex realtime control systems.
Fortna — To keep on top of the number of books shipped from Earth’s largest bookstore,
Amazon.com relies on a warehouse control system from Fortna. The FortnaWCS system is
built using QNX Software Systems’ industrial software architecture for high speed and
industrial-strength reliability.
QNX Industrial Software Architecture QNX Software Systems
4
GE Transportation — The GE Evolution series locomotive uses the QNX Neutrino RTOS
with QNX graphics technology for in-cab control systems, replacing traditional levers and
gauges with a full graphics panel.
Kieback & Peter — The Neutrino GLT Building Management System from Kieback & Peter is
designed for managing building automation and, as the control center, ensures optimal
operation of all technical building equipment and plants. The system is connected to
automation stations and devices throughout the building or plant with BACnet and LonWorks,
and uses the QNX Neutrino RTOS for the underlying system’s reliability.
Caterpillar — Caterpillar’s mining division Aquila has installed over 35 surface mine control
systems in more than 20 different coal, iron, copper, and gold mines in Canada, the US,
Australia, South Africa, and Russia. Aquila’s managers consider the QNX Neutrino RTOS to
be an extremely robust and stable platform and credit it with being a significant factor in the
success of their product.
U.S. Postal Service — The Delivery Bar Code Sorter (DBCS) is a postal sorting machine
provided by ElectroCom Automation L.P. The DBCS can sort 35,000 to 40,000 letters per
hour. The QNX RTOS is a vital part of the DBCS, serving as the OS that controls and
monitors the machine's functions.
Precitech — Precitech provides a complete line of ultra-precision, single-point, and multi-axis
diamond turning, grinding, grooving, and milling machines for producing components by the
electro-optic, ophthalmic, and precision metal-working industries. This line is powered by the
QNX Neutrino RTOS and QNX graphics technologies.
Intalysis — QNX technology is used in a low-frequency microwave (LFM) ore analyzer that
continuously measures the moisture content of ore in real time as it moves along conveyer
belts. A mining company uses this measurement information to add just the right amount of
moisture to keep ore both safe and easy to handle.
Tridium — The JACE 600 is a self-contained embedded client/server platform running the
QNX Neutrino RTOS that can be used in a multitude of applications, including building
automation applications and hospital bed monitoring.
Novar/Honeywell — Novar provides the Heating Ventilation Air Conditioning (HVAC) systems
that run big-box retail stores like Walmart and Staples. Their systems employ the QNX
Neutrino RTOS for robust and reliable control.
Emerson Process Management — General-purpose production, manufacturing, monitoring,
and control systems from Emerson run operations from oil refineries to food manufacturing.
Emerson chose the QNX industrial portfolio for their products because of the reliability and
security of the QNX Neutrino RTOS.
QNX Industrial Software Architecture QNX Software Systems
5
uControl — uControl creates a home security and monitoring system that relies on the
reliability of the QNX Neutrino RTOS with the graphics capabilities of the QNX Aviage® HMI
Suite. The system has a user-friendly touch screen panel to control all aspects of household
systems.
The QNX partner ecosystem expands the technology available for industrial applications, by
adding companies that specialize in providing QNX compatible networking and SCADA
protocols, device connectivity, hardware platforms, development tools, peripheral hardware,
and consulting services. Over 100 companies are part of the QNX partner network, ensuring
that a solution exists for whatever needs must be addressed.
Technology Summary
The QNX industrial software architecture addresses everything from hardware support (BSPs)
to human machine interface technology and is complemented by development tools,
professional services, and a community portal.
QNX Neutrino RTOS — The award-winning QNX Neutrino RTOS uses a unique microkernel
design to offer unparalleled reliability and scalability for applications across the industry,
backed up by certifications like EAL 4+, ISO 9001:2001, SIL3, and POSIX.
Board Support Packages (BSPs) — QNX Software Systems works closely with industry-
leading silicon vendors targeting the industrial market to create board support packages and
drivers for commercial-grade chips. Strategic partners include Intel, Freescale, Texas
Instruments, and others. And QNX supports many board makers creating boards from that
silicon, like Kontron and Advantech.
QNX Neutrino services — QNX Software Systems offers extensive software component
fundamentals required to build a system above and beyond the RTOS, including networking,
core graphics, high availability, file systems, and connectivity.
Middleware services — QNX Software Systems provides the key middleware components of
graphics and multimedia required for full-featured industrial applications, saving engineers
from the significant technical challenges in doing so themselves.
Third-party technologies — The QNX ecosystem of third-party companies provide
technology components from industry leaders: industrial protocols (e.g. Steinhoff, Cogent),
connectivity (e.g. DCL, Broadcom), graphics (e.g. Adobe, NVIDIA), and tools (e.g. Abatron,
National Instruments). A more complete list of all the partner companies in the QNX
ecosystem is available later in this document.
HMI layer — A variety of options exist for HMI development that span the range from simple
to rich, including the QNX Aviage HMI Suite based on Adobe Flash, the lightweight QNX
Photon® microGUI
®, as well as third-party HMI technologies.
QNX Industrial Software Architecture QNX Software Systems
6
QNX Momentics Tool Suite — Based on the industry standard Eclipse framework, this tool
chain offers both an IDE and command-line tools for editing, compiling, debugging, and
repository integration, as well as many IDE tools for target information and control, code
coverage, system and application profiling, and memory analysis.
QNX Professional Services — A seasoned software engineering group with extensive
experience in enabling the customer to be successful no matter what the challenge: design,
implementation, or triage. Services include architectural review, SIL3 certification assistance,
secure kernel extension, and custom engineering.
Foundry27 and transparent development — The QNX community portal offers access to
QNX source code, QNX developers, QNX community, forums, and third-party software in a
one-stop shop.
QNX Industrial Software Architecture QNX Software Systems
7
QNX Industrial Software Architecture
Developing software without all the necessary components is frustrating. The QNX industrial
software architecture alleviates that frustration through the huge selection of software
components and tools available for every industrial design.
Figure 1 — The cornerstone of the QNX industrial software architecture is a wide breadth of software
components that gives companies the freedom to choose their approach to building a system.
QNX Industrial Software Architecture QNX Software Systems
8
Tools
The QNX Momentics Tool Suite provides world-class tools based on the software industry’s
standard Eclipse Integrated Development Environment (IDE) platform.
Figure 2 — QNX tools cover the complete software development lifecycle.
The QNX Momentics Tool Suite has the standard tools available for developing code on all
the supported hardware architectures, including such powerful features like code and
structure completion, source code browsing, and connections to almost every source code
configuration management system available today: Clearcase, CVS, MKS, Perforce, PVCS,
SVN, Synergy and more. Board Support Packages (BSPs) and target images can be built and
transferred to the target completely seamlessly from within the environment, making the
command line a thing of the past. For developers that still rely on the command line, it is
available alongside the QNX Momentics IDE, giving full access to the GCC make environment
and tool chain.
QNX Momentics debugging support does not require a JTAG connection, and can handle
debugging multicore and multi-threaded applications just as easily as single processes. An
Ethernet connection to the target system gives the developer all kinds of information about the
live running system: what processes and threads are running and their status, system and
process memory use, the ability to transfer files to and from the target, and the ability to kill
and restart processes on the fly. For problems that need JTAG support, QNX compatible
JTAG tools are provided by companies such as Lauterbach and Abatron.
The QNX Momentics Tool Suite includes a full suite of specialized tools designed to enhance
developer productivity. The memory analysis tool allows the developer to analyze and find the
toughest memory leaks before they become problems in the field. The application profiler
provides the means to understand and optimize those stretches of code that have critical
performance requirements. Code coverage tools give the validation team the ability to
determine what code paths haven’t been tested, or confirm requirements that necessitate
exercising the full source code. The system profiler captures a snapshot of a running system
to get an in-depth look at exactly what is happening between all threads, processes, and
interrupts in the system. All of these advanced tools make it easy to find complex real-time
problems, unexpected interactions, or lurking bugs that would be impossible to detect any
other way.
QNX Industrial Software Architecture QNX Software Systems
9
Graphics / HMI
The QNX software architecture clearly separates the HMI layer from the core functions that
reside in the middleware services and OS services layers. This offers a number of benefits:
• The logic and system behavior implemented by the supporting software can be used by
any HMI implementation, reducing the development effort required to make a specialized
user interface
• Applications can be changed independently thanks to the robust interfaces of the HMI and
middleware services.
Figure 3 — QNX graphics technologies give the flexibility of HMI choice to the designers
Adobe Flash Lite 3
To build the most graphically sophisticated HMI designs, QNX Software Systems provides
Adobe Flash as part of the QNX Aviage HMI Suite. Many design shops today use a variety of
graphic design and animation tools including Adobe Flash in the initial, creative stage of an
HMI design, and then recode the interfaces using alternate technologies such as C/C++ or
Java. This creates inefficiency of design as the whole HMI has to be created twice — once in
the creative stage and again in the implementation phase. Using the QNX Aviage HMI Suite
eliminates this costly step, significantly saving time and money during the development
process.
QNX Industrial Software Architecture QNX Software Systems
10
Figure 4 — Example screen developed with the QNX Aviage HMI Suite
QNX Software Systems has adopted an HMI development approach using Adobe Flash that
unifies the overall graphic design and subsequent development cycle. With the QNX Aviage
HMI Suite, the whole HMI can now be prototyped in Adobe Flash and then taken directly to
production, greatly reducing development time and effort.
QNX Photon microGUI
If your requirements are for a simple and lower-weight solution, the QNX Photon microGUI
gives the designer the tools to create user interfaces for tiny embedded handheld industrial
devices, HMI panels, or full desktop windowing systems. Although compact in size, the user
interface provides all the features needed for a complete desktop environment: window and
focus control, an extensive number of customizable widgets, complete TrueType and scalable
font support, and support for a huge number of graphics cards and input devices. Advanced
features such as alpha blending for transparency, and video playback for canned training
videos or cameras, and animations give the HMI designers the power to create an industrial
product with a powerfully compelling user interface.
The GUI Application Builder is an intuitive design tool for creating user interface applications
for Photon. Using a point-and-click interface, the developer can select from a huge palette of
UI widgets to create screens and dialogs. Although the interface is event-driven, the tool’s
code generation allows seamless creation of callback functions for any window message
without resorting to massive switch case statements. Designers can use the default look-and-
feel of the QNX-provided buttons and widgets or supply bitmap images for a custom visual
design.
OpenVG
Scalable 2D vector graphics are the tool of choice for some applications that need to render
2D graphics in a scalable and flexible way, like building plans or schematics. Our standard
OpenVG 1.0 API is available for some platforms and provides the added performance boost
QNX Industrial Software Architecture QNX Software Systems
11
that can come only from hardware-supported graphics acceleration. When using Adobe Flash
with an OpenVG compatible program, the Flash rendering be configured to take advantage of
the graphic controller’s hardware acceleration for even further performance gains.
OpenGL ES
Some applications require the use of 3D graphic visualization, like display of plant models or
building flythroughs, or illustration of complex mechanical systems. QNX Software Systems
provides OpenGL ES as a 3D API, allowing your development staff to leverage standard
OpenGL code to create and display 3D models.
Advanced graphics framework
Underneath all the QNX graphics technologies is the advanced graphics framework, which
acts as the gatekeeper, allowing individual processes to simultaneously write to the display
without colliding with each other. Process priority to the display is automatically sorted by
thread priority so that the highest priority application always is the next to get the display.
OpenKODE
The OpenKODE composition manager allows merging of multiple display output sources into
a single display. For example, a mixed display can be created where QNX HMI applications
share the display with non-Flash based graphics applications, such as a video feed from a
remote camera. OpenKODE provides a standardized API to create and manipulate (scale,
rotate, offset) program video output for multi-source displays without requiring addition of
complicated logic to each individual program.
Figure 5 —- Creating a single display from multiple processes using QNX’s OpenKode composition
manager
Font library
Bitstream’s Font Fusion library powers the font support under the QNX Neutrino RTOS,
supporting true type fonts, scalable vector font, and bitmap fonts. Full Unicode font support is
provided, allowing applications to be localized into Chinese, Japanese, and Korean.
QNX Industrial Software Architecture QNX Software Systems
12
Image library
Displaying images is a standard part of graphics HMI development, but unfortunately those
images come from many different sources in many different formats. The QNX image library
supports all of the formats you will likely to encounter: JPG, GIF, PNG, BMP, SGA, and TGA.
Video capture
Whether the application is image processing, automated object detection, remote operation,
or simply video surveillance, QNX Software Systems provides the software needed to accept
video input.
QNX Industrial Software Architecture QNX Software Systems
13
Middleware services
The middleware services layer of the QNX industrial software architecture provides a reusable set of applications middleware that allows developers to separate application logic from the HMI layer.
Figure 6 — Middleware services layer of the QNX industrial software architecture
Media rendering
Media rendering capabilities are becoming increasingly important in industrial applications,
especially for systems with a rich user interface. QNX Software Systems has support for a
wide range of middleware technologies available for industrial applications. Video playback is
useful for playing training videos, illustrating specific system features, or even for highly
interactive user interfaces. Audio playback can be used for simple beeps and bings, short
verbal prompts, audible warnings, or spoken word instructions. QNX Software Systems
includes support for MPEG-2, MPEG-4, H.264, and H.263 video decode and mp3, wma9,
OggVorbis, aac, and PCM (WAV) audio decoding. Support for RTP, RTSP, and HTTP
streaming is also supported for applications such as network security cameras.
Browser
QNX Software Systems provides browsers based on several web browser engines. The 6.4.1
version of the QNX Neutrino RTOS comes with a Webkit based browser engine, the same
engine that underlies Google Chrome and Apple Safari browsers. For x86 platforms, the
Firefox browser has been ported and is available, as well as Mozilla. For applications that
need highly embedded features and a smaller customizable engine, Access provides a QNX-
ported Netfront browser.
Web server
To give a browser-based interface to an industrial device’s control panel, or to expose an
HTML-based help system requires a web server, and QNX Software Systems provides two
options. Slinger is a tiny embedded HTTP 1.1 web server that supports CGI 1.1,
authentication, and dynamic HTML. For more full-featured, higher-performance web server
requirements, a port of the industry standard Apache web server is also available.
Java
Third-party companies provide Java support on the QNX Neutrino RTOS for customers who
desire a Java user interface or use Java code in their designs.
QNX Industrial Software Architecture QNX Software Systems
14
OS services
The OS services are built on the proven QNX Neutrino RTOS, and provide all the key lower
level components that the application software relies on to access files and devices,
networking, and provide system reliability.
Figure 7 — OS services layer of the QNX industrial software architecture
Networking
QNX Software Systems supports IPv4 and IPv6 over Ethernet as well as Wi-Fi 802.11, which
makes it easy to integrate advanced designs into any industrial system. To make this process
more efficient, QNX Software Systems provides the standard complement of network services
(DNS, DHCP, inetd, firewall, FTP, TFTP, HTTP, Telnet, PPP, NFS, SSH, RSH, NTP, etc.) that
most applications need. And QNX POSIX APIs make transferring and building any other
open-source networking components (such as Asterisk for VoIP) a simple task.
As a distributed operating system, the QNX Neutrino RTOS makes use of an underlying
networking approach known as Transparent Distributed Processing (TDP). This technology
allows all connected nodes to share devices and operating system resources. For example,
any node on a network can transparently communicate with a Bluetooth-connected phone,
even if the node does not have a Bluetooth interface. This provides overall cost savings by
reducing the memory footprint and removing additional software costs.
Industrial Protocols
QNX supports the vast majority of protocols used in the industrial space today through its
strong relationships with third-party companies, like industry leaders Steinhoff and Cogent.
QNX Industrial Software Architecture QNX Software Systems
15
Figure 8—- QNX supports the protocols required by industrial applications
Protocols supported for industrial applications include:
• Modbus and Modbus/TCP
• PROFIBUS
• PROFINET
• Interbus
• EtherCAT
• CANopen
• EtherNet/IP
• Ethernet PowerLink (EPL)
• OLE for Process Control (OPC)
• DeviceNet
• ControlNet
• AS Interface (ASi)
The wide range of supported fieldbus protocols allows developers to to connect together any
device (controllers, sensors, actuators, I/O devices, etc.) on any topology (master/slave, star,
branch, tree, ring).
The QNX industrial software architecture strongly supports standard IP networking. QNX
technology is used in some of the world’s largest and most complex networking equipment,
and that pedigree helps industrial companies with their networking needs. In addition to the
standard complement of Ethernet-based protocols and services required by many industrial
applications, the architecture supports technologies of special interest to the industrial market,
like Network Time Protocol (NTP), IEEE 1588 (Precision Time Protocol), and SNMP.
QNX Industrial Software Architecture QNX Software Systems
16
File systems
The breadth of industrial systems means that there are many different possibilities for storage
depending on the application, from hard drives, to CDs and DVDs, to USB sticks or Compact
Flash cards, to standard embedded fare like NOR or NAND flash. QNX Software Systems
provides options for almost any storage requirement:
• QNX power-safe file systems for hard drives
• FAT, Ext2, NTFS, and HFS for USB sticks and hard disk drives
• Embedded file systems for flash memory (NAND and NOR)
• ISO9660, Joliet, and UDF for CDs and DVDs
• NFS and CIFS (SMB) for network file systems on Unix/Linux or Windows compatible
systems
• RAM disks for instantaneous access to structured storage
The QNX NOR Flash File System (FFS3) provides the convenience of saving persistent data
to the same flash that holds the system’s firmware image. For larger embedded storage
needs, the QNX Embedded Transaction File System (ETFS) for NAND flash devices resists
power failure corruption and offers wear leveling features.
High availability
The QNX Neutrino RTOS has been built from the ground up for deployment in harsh, mission-
critical applications. High availability is inherent in the microkernel architecture. To further
enhance system availability, QNX provides a high availability framework consisting of a
system health monitor and adaptive partitioning.
The system health monitor provides a heartbeat function (software watchdog) to monitor
processes and ensure they are operating in the anticipated fashion. In addition, the health
monitor catches process failures that result in abnormal termination. When it detects failures,
the health monitor performs a configurable recovery sequence that system architects can
define. This recovery sequence can include restarting an application or driver, resetting a
protocol stack, logging fault codes, or even restarting the system. Unlike other operating
system architectures, the QNX Neutrino RTOS’s microkernel design allows restarting any
driver or software stack on-the-fly, reducing or eliminating the need to resolve system
problems with a potentially long reboot process.
QNX Software Systems also provides adaptive partitioning, which allows a system designer to
create a responsive product by guaranteeing performance of individual subsystems. Adaptive
partitioning is a CPU time partitioning scheme unique to the QNX Neutrino RTOS. It allows
division of the CPU’s available cycles into partitions that are a percent of the total CPU time.
Each partition is guaranteed to have at least the percentage allocated to it for all the contained
processes. The scheduler distributes any remaining idle time among the processes that
QNX Industrial Software Architecture QNX Software Systems
17
require it. This maximizes CPU utilization while ensuring processes enjoy a guaranteed
portion of CPU time processes.
Most software requires periodic updates: either bug fixes or incremental features. QNX
Software Systems provides a means to help the manufacturer keep their customers happy by
allowing the update process to be seamless and transparent. Application and driver software
can be upgraded or fixed either through an Internet connection or by user-introduced update
images from USB sticks, adding new capabilities or correcting issues in a reliable, secure
manner without the down time introduced by requiring a system reboot.
Database
QNX Software Systems provides the QDB database (based on SQLite) to handle the
persistent storage needs of most industrial applications. QDB has been built for embedded
systems with the following features:
• Easy to use with common SQL access
• Reliable and lightweight
• Network enabled, allowing database access across nodes
• Runs on embedded hardware with flash file systems
• Offers checkpointing backups with different storage options including DMA copy and
compressed (bzip2, lzo)
• Supports transactions
In addition, QNX Software Systems maintains close working relationships with many of the
leading embedded database providers. Databases from vendors including Birdstep
Technology, Encirq, Empress, Hitachi Data Systems, McObject, MySQL, Oracle, and Solid
Information can also be used for any other application uses.
Connectivity
The device connectivity components of the QNX industrial software architecture provide the
software stacks needed to connect to all the sensors and controllers required for any
particular design. Serial, I2C, and SPI drivers connect a system-on-a-chip (SOC) to the
necessary A/D, D/A, steppers, video input, and any other peripheral needed.
USB support includes a full USB stack that supports class drivers for serial, networking, mass
storage, MTP, and audio streaming. QNX Software Systems partners with leading Bluetooth
providers to ensure that a Bluetooth solution is available for every application, such as the
Blue SDK Bluetooth stack from Sybase iAnywhere.
To connect to devices, sensors, and other equipment over a CAN bus, QNX provides a
reference CAN implementation on most BSPs. Third party CAN experts like Cogent have
QNX-ready ports on a wide variety of hardware.
QNX Industrial Software Architecture QNX Software Systems
18
User Input
The user input subsystem in the QNX industrial software architecture handles input from
devices such as buttons, knobs, joysticks, and touch screens (including gestures).
QNX Neutrino Core OS layer
The QNX Neutrino RTOS provides a scalable, reliable OS foundation for the QNX industrial
software architecture.
Figure 9 — The QNX Neutrino core OS components can be scaled down to meet the constrained resource requirements of an embedded system or scaled up to support large multi-processing systems.
Microkernel
The QNX Neutrino RTOS uses a true microkernel architecture, which allows developers to
create extremely reliable, self-healing systems. In this architecture, device drivers, networking
stacks, and file systems can all run outside of the kernel as memory-protected user-space
processes. Because of their isolation, any of these services can fail without corrupting other
services or the OS kernel. In a conventional OS, a single fault in any of these services can
lead to erratic behavior or a system crash; the only remedy is to reset the system. In fact,
under the QNX Neutrino RTOS, “software watchdogs” can continuously monitor the system
for faults and restart the offending service dynamically, without resetting the entire system or
involving the user in any way. Likewise, drivers and other services can be dynamically stopped,
started, or upgraded, again without a system reset.
The QNX Neutrino RTOS relies on the QNX Momentics Tool Suite to find bugs fast. Keeping
components isolated through memory protection lets the operating system do the hard work of
finding stray pointers and crashes, and finding difficult bugs that can elude a system deployed
on other monolithic operating systems. QNX Software Systems also provides a powerful
instrumented kernel that traces all system activity, including interrupts, thread scheduling, and
interprocess communications. In addition, the system profiler in the QNX Momentics Tool
Suite can be used to visualize this trace log to help diagnose system problems and optimize
the software.
The QNX Neutrino RTOS supports a wide variety of processor architectures for industrial
applications, including x86, ARM (ARM9, ARM11, Cortex), Power Architecture, MIPS, and
Renesas SH-4.
Resource manager framework
The resource manager framework provides a standard way to integrate new technologies and
services through a standard POSIX interface that all applications can use. Developers can
QNX Industrial Software Architecture QNX Software Systems
19
use this framework for any requirement, from adding a new device type (driver level) to a
whole software subsystem
A resource manager is a user-level server program that accepts messages from other
programs and, optionally, communicates with hardware. Since the QNX Neutrino RTOS is a
distributed, microkernel OS with virtually all non-kernel functionality provided by user-
installable programs, a clean and well-defined interface is required between client programs.
In this framework, resource managers have a common, POSIX interface (open, read, write,
and close) to provide a wrapper around the underlying technology. Once this resource
manager is implemented, it becomes instantly available locally as well as network distributed.
Multi-core
More and more silicon makers are moving to multi-core solutions to add more processing
horsepower without increasing power consumption and heat. The QNX Neutrino RTOS has
the industry’s most mature multi-core solution, which has supported symmetric
multiprocessing (SMP) since 1997. QNX SMP technology has been field deployed in
industrial, medical, military, and networking applications on a number of multi-
core/multiprocessing architectures, including x86, ARM, Power Architecture, and MIPS.
All QNX Neutrino RTOS components and frameworks take advantage of multi-core
processors. In addition, the QNX Momentics Tool Suite is fully multi-core aware, providing
high-level visualization tools needed for multi-core processing.
Fast boot
Some small control panels or other deeply embedded devices need to be up-and-running as
quickly as possible. Despite being a full-featured MMU-enabled RTOS, the QNX Neutrino
RTOS has a very light footprint, which naturally leads to faster boot times. A full QNX kernel
can be up and running in as little as 250 milliseconds. The microkernel design gives system
architects the flexibility to control which operating system and application components start,
and in which order, making it easy to rearrange the system startup sequence to suit specific
design needs.
Instant device activation
QNX Software Systems offers instant device activation (IDA), which allows systems that
require an almost instantaneous response time to perform intelligently even before the
operating system is operational.
With IDA, the code is directly linked into the startup component of the boot loader. In this way
it can perform all the necessary functions, such as responding to external events, accessing
hardware, and storing data for use by the full driver. For example, a system can be configured
to provide immediate response to warning alert messages transmitted over the CAN bus as
the system is booting.
QNX Industrial Software Architecture QNX Software Systems
20
BSP layer
The board support package layer and the QNX Neutrino RTOS abstract hardware interfaces
so that developers can build application software once and reuse it on whatever hardware
makes sense cost-wise or feature-wise for each new project.
QNX Software Systems maintains relationships with all leading silicon vendors serving the
automotive market. Strategic partners include Freescale, Texas Instruments, Atmel, and Intel.
QNX Software Systems continues to build support for a wide variety of industrial grade
platforms. To obtain a BSP for any given platform simply visit Foundry27.com or contact QNX
Software Systems for the latest updates. (QNX Software Systems also creates BSPs on a
services contract.) Some of the industrial BSPs include:
Advantech Freescale Kontron
SOM6760 i.MX21 ADS nanoETXexpress-SP
SOM-6761 i.MX27 ADS ETXpress-PC
AIMB-256G2-00A1E i.MX31 ADS microETXpress-PC
PCM-9588F-S0A1E i.MX31 PDK KTQ45/Flex
i.MX35 ADS microETXpress-SP
AMCC i.MX51 ADS
PPC405EX EVK i.MX53 ADS Renesas
PPC440 EP/GR EVK Lite/Media5200 7723-EVM
PPC460EX EVK MPC5121E ADS SH7785 SDK
MPC8313E RDB SH7786 SDK
Atmel MPC8323E RDB SH7723 SDK
AT91SAM9RL64-EK MPC8349E MDS SH7761 SDK
AT91SAM9263-EK EVB MPC8360E MDS SH777xSDK
AT91SAM9261-EK EVB MPC85x0 ADS
AT91SAM9260-EK EVB MPC8536DS Texas Instruments
AT91SAM9M10-EK EVB MPC8548 CDS DM355 EVM
AT91SAM9G45-EK EVB MPC8572 DS DM644x EVM
MPC8641D HPCN OMAP 2420 SDP
Cavium QorIQ 2020DS OMAP 5912 OSK
Octeon Plus CN58xx QorIQ 4080DS OMAP L137 EVM
Octeon Plus CN57xx OMAP L138 EVM
OMAP 3505 EVM
OMAP 3517 EVM
OMAP 3530 EVM
Many other BSPs are planned or are currently in development. Check QNX’s transparent
development website Foundry27 (www.foundry27.com) or contact QNX for details.
QNX Industrial Software Architecture QNX Software Systems
21
The QNX Industrial Ecosystem
QNX Software Systems and its industrial ecosystem together offer an unparalleled solution for
customers developing industrial platforms. Over 100 industry leading vendors have rallied
around QNX Software Systems to dramatically reduce development complexity and
accelerate time to market. Silicon, middleware, connectivity, tools, graphics, and HMI
technology come together in the QNX ecosystem to enable rapid development of every type
of industrial design. Please visit www.qnx.com for a list of the most current ecosystem
partners.
Industrial protocols Database technologies
BitCtrl Systems Birdstep Technology
Cogent Realtime Systems Encirq
Electronic System Design Empress Software
IBV Automation Hitachi Data Systems
proconX McObject
Nautsilus MySQL
Real-Time Systems Oracle
Steinhoff Automation IBM (formerly Solid Information Tech.)
Connectivity solutions Tools
Atheros Communications Abatron
Arada Systems Cimtech
Broadcom IBM
Commercial Timesharing KW Software
Data Connection Limited Lauterbach
Devicescape MathWorks
Marvell Technology Group National Instruments
Red Bend Software Ncapsa
Sybase (formerly iAnywhere) Steinhoff Automation
Graphics technologies I/O and Peripherals
Adobe Active Silicon
ALT Software CyberOptics Semiconductor
Altia Prosilica
Presagis (formerly Engenuity Technologies) Quanser
The Imagination Group Sealevel Systems
NVIDIA/Hybrid Graphics
Virtualization
IBV Automation
Real-Time Systems
QNX Industrial Software Architecture QNX Software Systems
22
Hardware technology System Integration/Consultants
AMD/Spansion 4D Engineering
Atmel Acontis Technologies
Advantech (x86) Ascolab
Freescale Semiconductor Centris Technologies
Fujitsu Global Edge Software
Kontron (x86) Harmonic Software Systems
Texas Instruments IBV Echtzeit und Embedded
Xilinx ICS Triplex Isagraf
ITK Engineering
Java technology Real-Time Systems
Aonix Steinhoff Automation
IBM Systemic Realtime Design
ProSyst Teng
QNX Industrial Software Architecture QNX Software Systems
23
Summary
As industrial feature demands change, and as the need for more advanced connectivity,
safety, and functionality requirements evolve, equipment makers will be faced with increasing
software development and integration challenges. The QNX industrial software architecture
offers all the flexibility required to develop advanced software systems that meet today’s and
tomorrow’s feature, safety, and functionality needs. QNX software is flexible and easily
customizable, and its key software building blocks can be easily integrated into an existing
design.
This complete approach is the result of hundreds of person years of development, support,
and integration experience that has helped manufacturers around the world meet their critical
design milestones and production commitments. That experience and expertise forms the
foundation of QNX software development and integration support services, making it easier
for industrial suppliers to bring their systems to market quickly, efficiently, and cost-effectively.
QNX Industrial Software Architecture QNX Software Systems
24
Abbreviations
API application programming interface
ASIC application specific integrated circuit
BOM bill of materials
BSP board support package
CIFS common internet file system
DHCP dynamic host configuration protocol
DNS domain name server
DSP digital signal processor
FTP file transfer protocol
FPGA field-programmable gate array
GUI graphical user interface
HMI human machine interface
HTTP hypertext transfer protocol
IDE integrated development environment
MMU memory management unit
NFS network file system
NTP network time protocol
OS operating system
RAM random access memory
RTOS real-time operating system
SDK software development kit
SMP symmetric multiprocessing
SOC systems-on-a-chip
SPI serial peripheral interface
TDP transparent distributed processing
TFTP trivial file transfer protocol
UDF universal disk format
UI user interface
© 2008 QNX Software Systems GmbH & Co. KG. All rights reserved. QNX, Momentics, Neutrino, Aviage, Photon and Photon microGUI are trademarks of QNX Software Systems GmbH & Co. KG, which are registered trademarks and/or used in certain jurisdictions, and are used under license by QNX Software Systems Co. All other trademarks belong to their respective owners.
www.qnx.com
About QNX Software Systems QNX Software Systems is the leading global provider of innovative embedded technologies, including middleware, development tools, and operating systems. The component-based architectures of the QNX® Neutrino® RTOS, QNX Momentics® Tool Suite, and QNX Aviage® middleware family together provide the industry’s most reliable and scalable framework for building high-performance embedded systems. Global leaders such as Cisco, Daimler, General Electric, Lockheed Martin, and Siemens depend on QNX technology for vehicle telematics and infotainment systems, industrial robotics, network routers, medical instruments, security and defense systems, and other mission- or life-critical applications. The company is headquartered in Ottawa, Canada, and distributes products in over 100 countries worldwide.