Architecture

The QNX Wireless Framework (QWF) integrates Wi-Fi and cellular services in embedded systems. Using the QWF solution, you can manage modems through a high-level, feature-rich API, to provide reliable wireless connectivity.

QWF can be used to implement a full range of connectivity strategies, from SMS only over a cellular network, to any combination of connection types, including voice and eCall. It is intended for all types of connected, embedded devices, from small, headless monitoring units (e.g., a home energy meter) to more complex systems with multimedia UIs and third-party application support (e.g., infotainment).

The figure below illustrates the layers in the QWF architecture:

Figure 1. QWF Architecture

This layered design gives applications a common interface for managing wireless connections and for sending and receiving wireless data, independent of the underyling modem hardware.

QWF runs on the QNX Neutrino RTOS and requires the QNX SDP and the QNX SDK for Apps and Media platforms. This latter platform supplies numerous services used by QWF and supports multimedia technologies such as HTML5 and Qt.

QWF uses these software layers to support wireless communication:

Service layer

The service layer exposes a PPS API to allow applications to interact with QWF modules. Applications can send commands through PPS to perform actions such as starting and stopping modem services, initiating or answering phone calls, and sending and receiving data over wireless connections. The service layer publishes the outcome of these commands through PPS. An explanation of the PPS objects used by the various QWF modules can be found in "PPS Interface".

The general functions supported by this layer are:

Cellular radio and SIM handling
  • Determine the capabilities and state of a connected cellular network
  • Retrieve status and state information for an inserted SIM card
Wi-Fi modem handling
  • Setup and control of Wi-Fi modes (Access Point, Station mode)
  • Configure Wi-Fi Protected Access (WPA) connections
  • Retrieve status and state information for Wi-Fi connections
Networking
  • Common data-plane handling (sockets) for all connection types (e.g., Wi-Fi, cellular)
  • Special carrier APN handling required for cellular data access, allowing for independent billing for different connections
  • Routing and interface prioritization, resolver (DNS), VPN clients for a secure connection over a public cellular network
Telephony
  • Listen for incoming calls, place outgoing calls, manage multiple calls
  • Retrieve detailed call information, such as call ID, call state, and call type
  • Support for manual and autonomous eCall (i.e., Cellular Emergency Call for Vehicle)
Messaging
  • Support for Short Message Service

Radio libraries

The Common Cellular Radio Libraries provide an internal C interface to the service layer and translate requests received from that layer into lower-level commands that are then sent to the resource layer. The libraries perform a similar translation when they receive data from the resource layer and must pass it back to the service layer.

QWF contains radio libraries for each logical service area. These libraries are dynamically linked to the cellular services executables.

Resource layer

On the cellular side, the resource layer contains the Cellular Resource Manager component, which translates requests from radio libraries into modem commands that are directed to device drivers. When they receive data from the device drivers, the resource managers in this layer convert that data to a common representation, independent of the modem type, and pass it back to those libraries.

Each resource manager supports a specific brand of modems; for example, there's one for Telit modems and another one for Gemalto modems. The resource managers handle these operations:

On the Wi-Fi side, the QNX Neutrino RTOS layer contains components that manage Wi-Fi connections; these are described below.

QNX Neutrino RTOS

The QNX Neutrino components used by QWF include the io-pkt TCP/IP stack service, device drivers, and the WPA supplicant.

io-pkt

To configure wireless connections and communicate over them, QWF uses system services that talk directly to hardware. Among these services is io-pkt, which implements the TCP/IP stack and runs device drivers that manage the physical transport of wireless data.

Device drivers

The drivers offer these capabilities:

WPA supplicant

The Wi-Fi Protected Access (WPA) supplicant is included as part of the QNX SDP, for supported Wi-Fi modules. The WPA supplicant: