qnx industrial software architecture

25
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

Upload: luciano-cardoso-vasconcelos

Post on 12-Mar-2015

319 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Qnx Industrial Software Architecture

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

Page 2: Qnx Industrial Software Architecture

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

Page 3: Qnx Industrial Software Architecture

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.

Page 4: Qnx Industrial Software Architecture

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.

Page 5: Qnx Industrial Software Architecture

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.

Page 6: Qnx Industrial Software Architecture

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.

Page 7: Qnx Industrial Software Architecture

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.

Page 8: Qnx Industrial Software Architecture

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.

Page 9: Qnx Industrial Software Architecture

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.

Page 10: Qnx Industrial Software Architecture

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

Page 11: Qnx Industrial Software Architecture

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.

Page 12: Qnx Industrial Software Architecture

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.

Page 13: Qnx Industrial Software Architecture

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.

Page 14: Qnx Industrial Software Architecture

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.

Page 15: Qnx Industrial Software Architecture

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.

Page 16: Qnx Industrial Software Architecture

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

Page 17: Qnx Industrial Software Architecture

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.

Page 18: Qnx Industrial Software Architecture

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

Page 19: Qnx Industrial Software Architecture

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.

Page 20: Qnx Industrial Software Architecture

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.

Page 21: Qnx Industrial Software Architecture

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

Page 22: Qnx Industrial Software Architecture

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

Page 23: Qnx Industrial Software Architecture

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.

Page 24: Qnx Industrial Software Architecture

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

Page 25: Qnx Industrial Software Architecture

© 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.