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