You are on page 1of 25

QNX Industrial Software Architecture

Rapidly building the systems that make the world work

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

QNX Software Systems

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

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 worlds 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. Heres 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 Earths 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

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 systems reliability. Caterpillar Caterpillars 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. Aquilas 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

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 industryleading 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

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

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

Tools
The QNX Momentics Tool Suite provides world-class tools based on the software industrys 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 havent 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

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

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 tools 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-andfeel 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

10

QNX Industrial Software Architecture

QNX Software Systems

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 controllers 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 QNXs OpenKode composition manager Font library

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

11

QNX Industrial Software Architecture

QNX Software Systems

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.

12

QNX Industrial Software Architecture

QNX Software Systems

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 QNXported Netfront browser.
Web server

To give a browser-based interface to an industrial devices 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.

13

QNX Industrial Software Architecture

QNX Software Systems

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.

14

QNX Industrial Software Architecture

QNX Software Systems

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

15

QNX Industrial Software Architecture

QNX Software Systems

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 systems 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, missioncritical 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 RTOSs 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 CPUs 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

16

QNX Industrial Software Architecture

QNX Software Systems

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.

17

QNX Industrial Software Architecture

QNX Software Systems

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

18

QNX Industrial Software Architecture

QNX Software Systems

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 userinstallable 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 industrys 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 multicore/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.

19

QNX Industrial Software Architecture

QNX Software Systems

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 SOM6760 SOM-6761 AIMB-256G2-00A1E PCM-9588F-S0A1E AMCC PPC405EX EVK PPC440 EP/GR EVK PPC460EX EVK Atmel AT91SAM9RL64-EK AT91SAM9263-EK EVB AT91SAM9261-EK EVB AT91SAM9260-EK EVB AT91SAM9M10-EK EVB AT91SAM9G45-EK EVB Cavium Octeon Plus CN58xx Octeon Plus CN57xx Freescale i.MX21 ADS i.MX27 ADS i.MX31 ADS i.MX31 PDK i.MX35 ADS i.MX51 ADS i.MX53 ADS Lite/Media5200 MPC5121E ADS MPC8313E RDB MPC8323E RDB MPC8349E MDS MPC8360E MDS MPC85x0 ADS MPC8536DS MPC8548 CDS MPC8572 DS MPC8641D HPCN QorIQ 2020DS QorIQ 4080DS Kontron nanoETXexpress-SP ETXpress-PC microETXpress-PC KTQ45/Flex microETXpress-SP Renesas 7723-EVM SH7785 SDK SH7786 SDK SH7723 SDK SH7761 SDK SH777xSDK Texas Instruments DM355 EVM DM644x EVM OMAP 2420 SDP OMAP 5912 OSK OMAP L137 EVM OMAP L138 EVM OMAP 3505 EVM OMAP 3517 EVM OMAP 3530 EVM

Many other BSPs are planned or are currently in development. Check QNXs transparent development website Foundry27 (www.foundry27.com) or contact QNX for details.

20

QNX Industrial Software Architecture

QNX Software Systems

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 BitCtrl Systems Cogent Realtime Systems Electronic System Design IBV Automation proconX Nautsilus Real-Time Systems Steinhoff Automation Connectivity solutions Atheros Communications Arada Systems Broadcom Commercial Timesharing Data Connection Limited Devicescape Marvell Technology Group Red Bend Software Sybase (formerly iAnywhere) Graphics technologies Adobe ALT Software Altia Presagis (formerly Engenuity Technologies) The Imagination Group NVIDIA/Hybrid Graphics Virtualization IBV Automation Real-Time Systems Database technologies Birdstep Technology Encirq Empress Software Hitachi Data Systems McObject MySQL Oracle IBM (formerly Solid Information Tech.) Tools Abatron Cimtech IBM KW Software Lauterbach MathWorks National Instruments Ncapsa Steinhoff Automation I/O and Peripherals Active Silicon CyberOptics Semiconductor Prosilica Quanser Sealevel Systems

21

QNX Industrial Software Architecture

QNX Software Systems

Hardware technology AMD/Spansion Atmel Advantech (x86) Freescale Semiconductor Fujitsu Kontron (x86) Texas Instruments Xilinx Java technology Aonix IBM ProSyst

System Integration/Consultants 4D Engineering Acontis Technologies Ascolab Centris Technologies Global Edge Software Harmonic Software Systems IBV Echtzeit und Embedded ICS Triplex Isagraf ITK Engineering Real-Time Systems Steinhoff Automation Systemic Realtime Design Teng

22

QNX Industrial Software Architecture

QNX Software Systems

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 todays and tomorrows 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.

23

QNX Industrial Software Architecture

QNX Software Systems

Abbreviations
API ASIC BOM BSP CIFS DHCP DNS DSP FTP FPGA GUI HMI HTTP IDE MMU NFS NTP OS RAM RTOS SDK SMP SOC SPI TDP TFTP UDF UI application programming interface application specific integrated circuit bill of materials board support package common internet file system dynamic host configuration protocol domain name server digital signal processor file transfer protocol field-programmable gate array graphical user interface human machine interface hypertext transfer protocol integrated development environment memory management unit network file system network time protocol operating system random access memory real-time operating system software development kit symmetric multiprocessing systems-on-a-chip serial peripheral interface transparent distributed processing trivial file transfer protocol universal disk format user interface

24

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

www.qnx.com

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.