QNX CAR Application Platform
QNX works with partners in its large ecosystem to offer the best possible foundation for building vehicle infotainment systems, as well as to help OEMs and Tier 1 suppliers reduce costs and time to market. Technologies provided by partners include:
The Weather Network
|HMI and frameworks||
|Software updates||Red Bend Software|
(codecs & databases)
|Graphics and displays||
Select the Technology tab for more detailed information about hardware support.
The QNX CAR application platform is a unique set of pre-integrated and optimized technologies from QNX and dozens of ecosystem partners. Its reference implementations and reskinable HMI allow development teams to rapidly create world-class infotainment systems.
The QNX CAR application platform's business model offers a low-risk path for building compelling, connected products that improve the bottom line. It reduces projects risks, improves the revenue-to-cost balance, and enables rapid development of high quality products.
Reduced project risks
- Quick proof of concepts and prototyping development
- Clean IP (intellectual property)
- Visibility into the platform roadmap and innovations
- An open ecosystem philosophy for supplier independence
Reduced costs and new revenues
- Out-of-the-box, pre-integrated reference implementations that are easily productized
- New sources of revenue for OEMs — services, app store
- Reusable software assets
- Scalability — use the same software solution for low-end and high-end systems
- New business model — free software during prototyping, and pre-integrated third-party evaluation software
Compelling products, rapid development
- Early access to leading-edge technologies
- Visually rich HMIs and a customizable environment
- Reliable, responsive user experience
- Support for the latest consumer electronics devices
- Internet connectivity
- Upgradeability — downloadable software updates
Sales and marketing opportunities
Companies who join QNX CAR can participate in joint QNX CAR marketing and sales initiatives, and they can contribute products to the QNX CAR reference implementations. As part of these reference implementations, their products will go out to all QNX CAR automotive tier-one and OEM members — a large and ever-increasing audience.
QNX CAR includes a wide array of QNX technologies: the QNX®Neutrino® RTOS (shipped in the majority of 2011 infotainment systems), a powerful multimedia framework, a superior hands-free solution with HD stereo, HTML5-based HMI technology, and a direct development path from mobile to automotive.
The QNX CAR HTML5-based HMI framework allows the OEM to leverage apps from the consumer electronics space. HTML5 is the only cross-mobile development tool that works with Apple iOS, Android, BlackBerry, Windows 7, and now the car. To that, we add automotive hardening required for production-crash resiliancy, embedded optimization, and fast booting.
The first QNX reference vehicle is a working example of HTML5 development and QNX CAR 2 technology.
Modular and connected
To keep pace with the frantic schedule of consumer electronics updates, QNX CAR includes modular software building blocks, device connectivity, a software update strategy, and an application store.
The QNX CAR application platform enablement model reduces the risks and costs inherent to developing and bringing to market advanced software systems for the automotive market.
QNX CAR is an integration of our automotive-specific frameworks and components with third party technologies delivered through a simple and low-risk business model.
Companies building prototypes, demos, or proofs-of-concept can get access to all the pieces in these implementations through a subscription that allows customers to always get the most up-to-date technology.
The QNX CAR program is currently accepting select automotive customers in an early access engagement. Please contact us to get more details.
QNX CAR reference implementations
The QNX CAR reference implementations provide out-of-the-box, operational systems that significantly reduce the engineering effort required to prototype and productize in-vehicle systems. Automotive suppliers can simply adapt and extend the software to meet the specific needs of an automaker.
These reference implementations provide integrated solutions consisting of standard QNX products, QNX created automotive solutions and pre-integrated partner technologies running on a variety of automotive development platforms.
In addition, QNX CAR members receive QNX BSPs, QNX technology incubator code, access to Foundry27 (the QNX developer forum where engineers and developers share their experience and expertise), and QNX technology.
By providing preassembled reference implementations, QNX CAR allows customers to skip first-level integration efforts and to work immediately on product development and differentiation.
|Apple||iPhone/iPod multimedia integration|
|Best Parking||parking search|
|vehicle-integrated facebook posts|
|iAnywhere/Cybercom||integrated Bluetooth profiles|
|PacketVideo||DLNA stack for Android mobile integration|
|Pandora||streaming internet radio|
|Poynt||location based services|
|Redbend||FOTA software updates|
|Slacker||streaming internet radio|
|Tunein||streaming internet radio|
|mobile-based twitter app|
|Vlingo/AT&T Watson||cloud-based natural language voice rec + TTS|
|Weather Network||integrated weather services|
See also: Automotive.
As part of the QNX CAR program, we’ve worked with an initial list of third-party technology providers to create a pre-integrated offering. There are three categories of third parties involved, each with specific licensing considerations.
Sublicensing and redistribution
A key benefit of the program is the streamlined licensing model QNX and its partners have created. In many cases, QNX is able to license customers with the ability to prototype and evaluate third party technology as part of QNX CAR membership. Note that specific licensing does vary from partner to partner so please contact your sales representatives for exact details.
Some third parties participating in the QNX CAR program have enabled QNX Software Systems to provide evaluation copies of their technology as part of QNX CAR.
Our customers do not need to engage with the third party until they have concluded their prototyping and wish to start commercial development for a production-based program, or to redistribute their derivative work for demonstration or commercial sale. At this point, customers will need to work directly with the third parties involved to negotiate whatever sublicensing and redistribution rights they may need.
Other licensing models
Some third parties have licensing models that do not easily fit into the QNX CAR model. Customers will need to engage directly with these companies to secure evaluation and redistribution rights before they begin using their technology.
Additional third-party integrations
The QNX automotive ecosystem includes almost 100 companies with products that work with QNX, but which are not yet part of QNX CAR. We are working with these companies to add more integrated partner products to QNX CAR right out of the box. Until these products are integrated, customers are encouraged continue engaging with these companies directly.
See also Automotive.
QNX CAR membership includes access to a team of QNX engineers specialized in automotive systems.
If at any point you need help, you can call on these engineers to help you design and work through even the toughest problems. For example, they can help you turn the integration phase — frequently glossed over, yet always of unanticipated complexity — into a straightforward and well-defined task.
Like all QNX Foundry27 projects, QNX CAR comes with community support. All engineers and developers participating in the project try help each other by answering questions posted to the forums.
To address the mix of QNX and third-party products in our technology incubator, we have developed a new service offering designed to help customers in their adoption and deployment of QNX CAR technology.
The QNX CAR application platform includes a wide array of QNX technologies: the QNX Neutrino® RTOS, a powerful multimedia framework, HMI technology based on HTML5, a best-in-class acoustic processing solution, and hundreds of services and utilities — with more being added every day.
- HMI frameworks
- Mobile device gateway
- HTML5 engine
- UI core
- Reference applications
Mobile applications, based on technologies such as HTML5, are rapidly growing in popularity on pretty much every type of platform available today: smartphones, tablets, desktops and laptops, and automotive infotainment systems.
What is QNX CAR?
QNX CAR is an extensible, configurable software platform for building automotive systems that combine traditional automotive and mobile user interface technologies. As an infotainment system platform, QNX CAR contains key automotive software components, such as a media engine, an HTML5 browser engine, a mobile device gateway, a speech recognition module, and an acoustic module that includes echo cancellation and noise reduction.
The QNX CAR application platform offers automakers the ability to:
- Mix and match a variety of Human-Machine Interface (HMI) technologies to deliver a compelling user experience (e.g., HTML5, OpenGL ES, Qt)
- Securely deploy applications to the vehicle
- Connect with consumer devices to make use of brought-in media and mobile applications
- Meet a number of stringent automotive requirements, such as fast system initialization and boot
- Leverage the mobile community, developers and applications
QNX product manager, Kerry Johnson, demonstrates the platform’s many features, including mobile device connectivity, HTML5 support, voice-enabled apps, hands-free acoustic processing, and so on.
QNX CAR comes bundled with reference applications that demonstrate the power of HTML5 and the QNX CAR architecture. These applications include a home screen, media player, phone, web browser, and navigation app that can be adapted to meet specific automaker requirements.
The home screen showcases how an HTML5 engine can be used to render displays from disparate sources. It displays a summary view of current activity, network and Bluetooth connection status, audio volume, and other information and controls. Tabs at the bottom of the Home screen provide access to other applications or groups of applications. For example, the Apps tab, at the far right, opens a screen displaying all available applications.
QNX CAR home screen, showing current information, including turn-by-turn navigation, currently playing media, and recently received phone, text and e-mail messages.
The media player is an HTML5 UI with native media player capabilities, including media detection (e.g., USB, CD), metadata retrieval and synchronization, media streaming, etc.
The media player lets the user search, select and play digital media from a variety of sources, including connected devices, radio, Internet streaming radio (Pandora and others) and CDs. Other entertainment options include YouTube and AM/FM/HD Radio.
The communications component is an HTML5 UI managing native phone applications. These applications include Phone, Messaging and Address Book for Bluetooth connected phones.
The virtual mechanic is a framework for retrieving and displaying information from the vehicle, including the CAN bus. The virtual mechanic provides an automobile diagnostic center with graphical displays showing the state of critical vehicle functions (lubricants, brakes, etc.), as well and maintenance alerts.
The climate control component is a framework for receiving information and sending instructions to the vehicle HVAC system. It provides multi-zone climate control in the vehicle.
The weather application renders information from on-line sources: weather information for selected locations, updated regularly through the vehicle's Internet connection.
App World demonstrates how users can download and install pre-packaged applications on the QNX CAR platform. It offers an entry point into a cloud-hosted App World.
QNX CAR provides three third-party navigation engines, using a combination of HTML5, OpenGL and Qt graphical frameworks, and on-board and off-board mapping engines. Information from the engines is published to a PPS object, making details about the route available to other applications. For example, trip information can be made available to the weather application, which can then display the weather forecast for the estimated arrival time at the destination. Navigation applications include TeleNav off-board, Elektrobit embedded, and TCS off-board.
The QNX CAR HMI frameworks include the HTML5 Engine and other HMI Frameworks such as Qt. The User Interface (UI) Core combines input from multiple rendering engines into one physical display.
HTML5 application environment
In contrast to previous iterations of HTML, the HTML5 standard expressly attempts to ensure compatibility between browsers, making the QNX CAR environment compatible with mobile, desktop and web environments: the same HTML code can be used in all these environments. In fact, in order to ensure broad adoption of HTML5 in a manner that will be compatible across platforms, the W3C is specifying HTML5 down to the implementation level when needed to ensure compatibility.
Support for multiple HMI technologies
The QNX CAR user interface doesn't need to be in HTML5. QNX CAR supports other HMI technologies, such as:
- Elektrobit GUIDE – popular in the automotive industry
- Qt – a lighter-weight comprehensive framework
- Crank Storyboard – a full design-to-execution environment
HTML5 is the recommended way to bring post-production content in to QNX CAR. However, a non-HTML5 environment may be appropriate when the automaker prefers a different HMI tool, where legacy assets exist in other tooling frameworks, or if a system is being built without extensibility.
The QNX CAR architecture supports easy integration of multiple HMI technologies simultaneously.
QNX CAR uses Persistent Publish/Subscribe (PPS), a loosely coupled asynchronous messaging architecture, to communicate between its layers (HMI to services) and most of its components. The QNX implementation of PPS is an object-based service with publishers and subscribers where any PPS client can be a publisher only, a subscriber only, or both a publisher and a subscriber, as required by the implementation.
PPS messaging is technology- and language-agnostic, with only a small number of APIs needed to provide the interfaces between the QNX CAR HTML5 HMI and the underlying components. Specifically a PPS API handles communications between the HMI and the PPS service.
UI core APIs handle communications between the HTML5 layer and a user-interface core component, and between this component and other HMI technologies, such as Qt and Elektrobit GUIDE.
PPS clients and objects. Clients A and B are in the HMI and Client C is in native code. Clients A and C publish and subscribe to PPS objects, while Client B is only concerned with updates from Client C, so it only subscribes.
The QNX CAR mobile device gateway enables passengers to link mobile devices to QNX CAR using technologies such as Bluetooth, USB, DLNA, MirrorLink, 3G, LTE, and Wi-Fi. Each such connection has associated PPS objects which QNX CAR applications can use to interact with the linked mobile device, so applications don't need to know the details of the physical connection that links them to QNX CAR.
QNX CAR supports connections to external devices over Bluetooth. It is able to initiate a Bluetooth connection or accept a connection request. The supported profiles include:
- HFP (Hands Free Profile)
- MAP (Message Access Profile)
- PBAP (Phone Book Access Profile)
- SPP (Serial Port Profile)
- A2DP/AVRCP (Audio Profiles)
Network interfaces: Wi-Fi, WAN (3G/LTE) and wired
QNX's io-pkt resource manager is a low-level networking interface used for handling connectivity to wired Ethernet, Wi-Fi and other radio devices (3G/LTE). It integrates low-level drivers and the TCP/IP stack, as well as a number of network connection management technologies.
QNX CAR handles USB connections in the same manner as Bluetooth and the networking interfaces: with a combination of PPS messaging and low-level support (io-usb). USB connections can be used to integrate CDC-ECM (USB Ethernet dongle), CDC-NCM (for Mirror Link), Android Accessory Protocol or USB Blackberry MUX.
Digital Living Network Alliance (DLNA) support
QNX CAR includes pre-integrated support for Digital Living Network Alliance (DLNA), which provides media streaming capabilities from smartphones and tablets.
Apple iOS interfaces
QNX CAR provides a Made for iPod interface (iAP) for Apple iOS products (iPods and iPhones), and provides the iPod Out protocol for Apple devices that support it.
QNX CAR can be paired with BlackBerry smartphones over a Bluetooth connection.
When QNX CAR is paired with a BlackBerry device a web server on the BlackBerry device uses standard web protocols (HTML5/HTTP) to serve content to the QNX CAR head unit, enabling access to and rendering of content from BlackBerry applications.
QNX CAR relies on the RealVNC Mobile Solution for MirrorLink interfaces. RealVNC provides the VNC protocols and MirrorLink-specific protocols. The QNX composition manager is used to scale the VNC graphics output and integrate them into the QNX CAR HMI.
QNX CAR can connect with Android devices through Bluetooth (supported profiles include HFP, A2DP, AVRCP), DLNA, and MirrorLink where available.
QNX CAR automotive services includes interfaces for phones, radio, navigation systems and speech recognition. This component also manages software updates and multimedia synchronization, playback, etc.
|HMI settings||Configuration settings for the system HMI, including support for swipe gestures, display update behaviors, menu animation and other behaviors, media player HMI characteristics|
|Application controls||Application navigation and launching|
|App World installer and uninstaller||Application installation and removal|
|Media player and multimedia manager||Track session creation and managements, media playback (play, import, rip), attaching output devices and zones, etc.|
|Digital Living Network Alliance (DLNA) services||Digital Rights Management (DRM) services, including network state changes, playback state (play, pause, etc.), Digital Media Server (DMS) playback and subscriptions, DMS settings|
|Mobile device gateway||Connections to mobile devices via Bluetooth, USB, DLNA, MirrorLink, 3G, LTE, and Wi-Fi|
|HVAC and climate control||Controls for fan temperature and speed, seat heating, defrosting, air conditioning and air circulation|
|Vehicle/Virtual mechanic||Key vehicle sensors accessed through the vehicle CAN bus, including fuel level, washer, transmission and brake fluid levels, brake wear and ABS status, oil pressure and level, engine RPM, status of lights, and transmission temperature, fluid life and PRNDL|
QNX CAR runs on the QNX Neutrino RTOS, a full-featured, robust real-time operating system that is the foundation of thousands of mission- and safety-critical systems running in environments ranging from spacecraft to automotive head units – and almost everything in between.
Designed for the constrained resource requirements of embedded systems, the QNX Neutrino RTOS provides unparalleled dependability and performance on single- and multi-core systems, and low total cost of ownership. Board Support Packages (BSPs) are bundled with the OS, and are available for all the more popular board architectures.
The QNX Neutrino RTOS is so reliable because it is a true microkernel operating system. Every driver, protocol stack, file system and application runs in the safety of memory-protected user space, outside the kernel. Virtually any component can fail – and be automatically restarted – without affecting other components or the kernel. No other commercial RTOS offers this degree of protection.
With the unique QNX microkernel architecture, a fault in one component cannot corrupt other processes or the kernel. The RTOS can automatically move to a safe state, or restart any failed component.
Instant device activation
QNX offers instant device activation (IDA), allowing in-vehicle systems to perform intelligently even before the operating system is operational.
With IDA, code is directly linked into the startup component of the boot loader so that it can perform all the functions necessary to meeting critical 50 millisecond startup requirements: 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 power mode messages transmitted over the CAN bus.
Instant device activation brings a mini-driver up before the kernel initialization to meet early boot requirements, then hands control over to the OS once the OS is fully booted.
Reduced hardware costs
IDA allows system developers to manage data from buses such as CAN without adding external hardware. Conventional operating system implementations often take several seconds to boot up from a cold or low-power state, so they require auxiliary communications processors in order to meet timing and response requirements. Using QNX IDA technology, this problem can be solved in software, eliminating hardware components and decreasing BOM costs.
Infotainment systems typically use a large amount of data storage for media, music metadata, map data and points of interest. In addition, consumers bring media in a variety of formats into the vehicle on portable devices. To accommodate this data, the operating system must provide a variety of file systems on numerous types of media.
QNX provides a full set of file systems on common media formats, including:
- QNX power-safe file systems for hard drives
- FAT, ext2, NTFS, and HFS for USB sticks, hard disk drives and mobile devices
- embedded file systems for flash memory (managed NAND and NOR)
- ISO9660, Joliet, and UDF for CDs and DVDs
- NFS and CIFS (SMB) for network file systems
The QNX NOR Flash File System (FFS3) provides the convenience of saving persistent data to the same Flash drive that holds the system firmware image. Managed NAND media with FAT, ext2 or QNX6 file systems can be used for larger storage needs.
The QNX Neutrino RTOS supports IPv4 and IPv6 over Ethernet, as well as Wi-Fi 802.11. The standard complement of network services are available, including DNS, DHCP, inetd, firewall, FTP, TFTP, HTTP, Telnet, PPP, NFS and NTP. Thanks to its support for POSIX APIs, incorporating additional open-source networking components (e.g. Asterisk for VoIP) is a simple matter.
QNX Software Systems provides a full Wi-Fi access point as part of the QNX CAR reference implementations. This access point can be used in conjunction with a Bluetooth-capable mobile phone to provide an Internet gateway for use throughout the cab of an automobile.
Transparent distributed processing
When it is used as a distributed operating system, the QNX Neutrino RTOS uses Transparent distributed processing (TDP), an underlying networking approach also known as Qnet. All TDP-connected nodes can share devices and operating system resources. For example, any node on a network can transparently communicate with a Bluetooth connected phone, even if that particular node doesn't have a Bluetooth interface. This capability provides overall cost savings by reducing the system memory footprint and removing the cost of duplicating software that already exists somewhere in the distributed system.
The QNX Porsche concept car provides just one example of how TDP can simplify design and reduce overall system cost. This car has running on the head unit a multimedia library that the two rear-seat entertainment units can share. On the head unit, the library is accessed through a POSIX path such as /db/mmlibrary.db. When accessed from the two TDP-connected rear-seat units, however, the path for this resource would be /net/headunit/db/mmlibrary.db. The simplicity of TDP allows the underlying source code to remain the same for the head unit and the rear-seat units. The only change required is to the resource path, even when accessing resources across the network. Note that even the name change can be avoided by using a file system soft link.
The QNX Neutrino RTOS has a very light footprint, which naturally leads to faster boot times. The 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.
This approach allows the system to meet startup audio and video requirements on each and every reboot. By starting specific device drivers and applications early in the startup cycle, the software can respond to events quickly and give audio (or other) responses shortly after power-up.
The QNX Neutrino RTOS also supports instant device activation requirements. See "Instant device activation".
The QNX Neutrino RTOS makes many debugging and tuning tasks easier. 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 monolithic operating systems.
QNX also provides a powerful, instrumented kernel. This kernel traces all system activity, including interrupts, thread scheduling and inter-process communications. The QNX Momentics Tool suite's system profiler can be used to visualize this trace log to help diagnose system problems and optimize the software.
High availability framework
The QNX Neutrino RTOS modular, microkernel architecture enables the isolation of faults right down to the driver level. QNX's high availability technology provides:
- Instant fault notification – the watchdog automatically detects process faults and triggers recovery procedures. Heart beating is also used to detect non-fatal errors.
- Customized failure recovery – using the high availability framework library, the system can tell the watchdog actions to take in the event of an error: specific recovery procedures, move to a design safe state, etc.
- Instant reconnections – the high availability framework provides a client-recovery library so that, after a component failure, the system can instantly re-establish broken connections.
- Post mortem analysis – if a process faults, the high availability framework can generate a full memory dump for analysis.
- Resilience to internal failures – the watchdog employs a self-monitoring “guardian” that can take over if the watchdog fails.
When the watchdog detects component failures, it notifies the system and manages recovery. Together with its backup "guardian" process, the high availability framework provides the basis for self-healing systems.
Task or process starvation is a fundamental concern for any embedded system. Services provided by lower-priority threads – including diagnostic services that protect the system from software faults or denial-of-service attacks – can be starved of CPU cycles for unbounded periods, compromising system availability.
Increasing CPU power can help, but it comes at the cost of increased power consumption (hence heat generation), and cost – and it offers no guarantees that processes will not be starved.
QNX's adaptive partitioning technology provides an efficient and low-cost mechanism for ensuring that critical processes always get the CPU cycles they need, and that no CPU cycles are wasted. It allocates unused CPU cycles to processes that can benefit from them, while at the same time guaranteeing that all partitions get their budgeted share of CPU time when they need it.
The QNX CAR automotive reference platform has currently been implemented for the following processor types:
- Freescale i.MX6x Sabre Lite
- Texas Instruments J5 Eco
- Texas Instruments OMAP 4430 Panda
Each chip includes a Graphics Processing Unit (GPU). OpenGL ES drivers are available for each chip.
Other platforms may become available, based on customer demand.
Specific requirements for any system will of course depend on expected capabilities (e.g. 3D graphics) and performance.
|System profile||Expected features||Estimated system RAM|
|Headless||Vehicle features, speech recognition, navigation, multimedia, webserver||256 MB|
|Low-end||Headless + fixed HTML5-based HMI||512 MB|
|Mid to high-end||Low-end + downloadable applications||1 GB|
|High to ultra-high||High-end + application sandboxes, and room for growth||2 GB|
|The table above shows estimated memory requirements for running QNX CAR|
The QNX CAR HTML5 engine is the foundation for the QNX CAR HTML5 HMI support. It is based on the WebKit (www.webkit.org) open source web browser engine, which QNX has optimized for embedded environments, and to which QNX has added numerous capabilities to provide a full-featured web browser.
The QNX performance optimizations to WebKit include:
- power consumption management to decrease CPU temperature (and extend battery life in hybrid vehicles); for example by throttling background threads so that they use less CPU cycles and hence less power
- overall speed optimizations; for example, by selective image down-sampling and file size reductions (e.g., not loading a large image when a thumbnail will do)
- intelligent tile system for scrolling and zooming while reducing RAM use
QNX CAR web browser
QNX has added numerous capabilities to its optimized WebKit browser in order to provide a full-featured web browser that includes:
- a platform abstraction layer
- image caching, page caching
- multi-modal event handling for touch, mouse, keyboard, gesture
- history, bookmarks, page navigation
- user configuration and settings
- networking, URL management
- multimedia support, GPU acceleration
- plug-in support
- download management
- pixel-accurate zooming
- physics-based scrolling and panning
HTML5 engine features
The QNX CAR HTML5 engine is a fully-featured web engine that QNX updates regularly with the latest WebKit technology. It supports HTML5-specific features such as WebSocket, WebGL, session storage, offline applications, worker threads, DOM improvements, and the <canvas>, <audio>, and <video> elements.
Both QNX CAR and next generation BlackBerry devices running BB10 use the QNX HTML5 Engine.
Support for HTML5
HTML5 applications can support a variety of user interface technologies, including interactive displays, audio, video, speech recognition and haptic controls. With HTML5, developers can use a common toolset to build applications for QNX CAR or mobile devices, or that will be hosted on the cloud.
Partitioned UI and sandbox
The UI core consists of components that allow dynamic loading, launching and screen sharing of applications developed with a variety of HMI technologies.
The components in UI core are not tied to the HTML5 application environment and can be used with other, third-party HMI frameworks such as Qt, Elektrobit GUIDE or Crank Storyboard, which QNX CAR supports in addition to HTML5. The UI design is modular, and allows for straightforward support of additional technologies to be added in the future.
Combining multiple HMI technologies
With an open list of HMI technologies to choose from, system developers can choose the technology that works best for each application.
When multiple HMI technologies are active concurrently, their outputs are merged together with the QNX composition manager, as decided by the primary controlling application (the home screen for QNX CAR). The composition manager was designed to provide the most highly optimized path from the applications to the screen.
UI core components
The main components of the UI core are the application installer, the authorization manager, the composition manager and the launcher.
The application installer un-packages the application, validates its signature, and installs the application on the QNX CAR platform.
The authorization manager controls which APIs and system services can be used by each application, enforcing the security model defined by the system developers. This authorization ensures that downloaded applications cannot use interfaces they are not authorized to use.
The composition manager integrates multiple graphics and user interface technologies into a single scene that can be rendered on screen. User interface technologies that the composition manager can combine include HTML5, Elektrobit GUIDE, Crank Storyboard, Qt and native (e.g. OpenGL ES) code.
The launcher enables any application to launch any other application in any user interface environment (subject to system permissions).
A unified HMI
The composition manager allows developers to create of a separate pane for the output of each rendering engine (HTML5, Qt, Video, or OpenGL ES). Each frame buffer can be transformed (scaling, translation, rotation, alpha blend, etc.) to build the final display.
To build the display as optimally as possible, whenever possible the composition manager uses GPU accelerated operations, falling back on software only when the hardware cannot satisfy a request.
The composition manager brings together disparate outputs to constructs a unified interface for a complex in-car navigation and multimedia system.
The image below shows how each application that supplies a portion of the HMI allocates a separate window and frame buffer from the composition manager:
- An HTML page provides the background wallpaper and navigation controls
- iPod Out, which digitizes a video capture chip into a frame buffer, brings in analog video from an iPod or iPhone
- The underlying OpenGL ES map rendering software builds the navigation display on the right
- Qt overlays the navigation control on the navigation display
The home screen gives a consolidated look at all information important to the driver
The HMI can be individually personalized by every driver of the car
The application screen contains all downloaded apps
Voice integration gives the driver safe command and control of all infotainment features
A centralized contact screen allows drivers to contact friends or coworkers through their preferred channel
The contact list provides multiple safe ways to reach someone
The keypad supports traditional dialing for numbers that aren’t in the driver’s contact list
The media player provides much more than music playback: video playback, music management, music import, music search, and streaming radio
The cover-flow interface makes it easy to see and select albums
The radio app talks directly to a radio DSP on selected platforms, greatly simplifying the integration effort
Video playback enhances the in-car experience for rear-seat passengers and drivers when in park
The media player integrates every multimedia option including streaming radio apps like Pandora and Stitcher
Automotive specific features are conveniently grouped in one place
The virtual mechanic helps owners manage their vehicles
The virtual mechanic flags potentially problematic areas by reading DTCs off the CAN bus
The virtual mechanic also gives an at-a-glance view of the vehicle’s vital fluids