Features of the Beck IPC WLAN module WL05:
- Wireless standards IEEE 802.11a, 802.11b, 802.11g, 802.11n
- Data rates 802.11b : 1, 2, 5.5, 11 Mbps
Data rates 802.11a/g : 6, 9, 12, 18, 24, 36, 48, 54 Mbps
Data rates 802.11n : MCS0 to MCS7 with and without Short GI
Modulation techniques: OFDM with BPSK, QPSK, 16-QAM, and 64-QAM 802.11b with CCK and DSSS
Transmit Power: 18 dBm
Receive Sensitivity: -97 dBm
- Security features:
- Open authentication
- Regulatory domain support:
- US FCC, Japan, EU, World
- Compiled driver library wl05.lib with C-API interface for building user specific driver applications. It supports the WLAN functionalities as an additional TCP/IP device interface. The library provides the installation of WLAN as an independent @CHIP-RTOS® TCP/IP device of the IPC@CHIP® with an own IP address configuration, similar to the internal @CHIP-RTOS® Ethernet or PPP device drivers.
- SPI interface with max. 24MHz clock rate
- Required are Sc1x3 PIOs for SPI ChipSelect, Reset signal and an IRQ line.
WL03 hardware compatibility:
The WL03 and WL05 modules are pin-compatible, WL05 provides the same connectors with identical SPI interface, Reset-PIO, CS-PIO and IRQ line. The electrical characteristics are nearly identical. From a hardware point of view the WL05 module is a drop-in replacement for existing designs with WL03.
WL03 software compatibility:
The software driver and the API for the WL03 and WL05 are not compatible. Due to the different chip sets, different firmware and new features it was required to provide a new driver library for the WL05 module, with a similar (but different) API.
Care has been taken so that the software API of the WL05 be similar to the WL03. Therefore it should be minor effort to port existing user specific driver applications for WL03 to WL05.
A comprehensive list of the software differences between WL03 and WL05 may be found in the following Migration Guide. It is targetted mainly at users who already have experience with the WL03 software and would like to migrate to using a WL05 module.
WL05 Usage summary:
For using the WL05 module at IPC@CHIP® TCP/IP applications, Beck IPC provides a compiled driver library for IPC@CHIP® target SC1x3. The application programmer shall use this library and the provided API for building their own customized WL05 driver executable or to integrate it direct into their IPC@CHIP® application. The WL05 functionalities are provided as a library for better flexibility. This allows a customized usage of several different WLAN features e.g. of the different network types, authentication and encryption modes. Therefore, Beck IPC provides several examples as templates for the users.
This library is mainly based on the usage of the TCP/IP Device driver API and the SPI API of the @CHIP-RTOS®, described at the @CHIP-RTOS® API documentation. The library provides the installation of a new TCP/IP device interface with own IP address configuration, which is used for IP communication in the same way as other internal devices (Ethernet or PPP) installed by @CHIP-RTOS®. If the WL05 device is configured and associated to a BSS or IBSS network, user applications may use the interface transparently via the TCP/IP socket interface. The driver application programmer has to use the provided API for their own customized WL05 configuration, association, scanning, error handling, etc.
Main driver functionalities
The driver initialization executes, when the driver application has called the TCP/IP API function Dev_Open_Interface(), which creates/starts the TCP/IP WLAN device interface.
- Driver startup (Reset, SPI Initialization, Firmware load):
As a first step, the Dev_Open_Interface() function executes a hardware reset of the WL05 by toggling the RST PIO. For the following initialization of the SPI interface and the IRQ line the driver uses the configuration parameters of the global struct variable wl05_hwCfg of type WL05_HW_Cfg.
The default settings of this variable are adapted for the FB60 board. The user is able to access this variable and modify the settings for their specific requirements.
After reset of the module and successful configuration of the SPI interface, the driver loads the WL05 firmware onto the module and activates the WL05 device. The WL05 module is now ready to run and requires some further configuration data for association to a BSS or IBSS network.
The described initialization steps execute after the driver application has called the function Dev_Open_Interface(), or at runtime by calling wl05_restart.
Errors occurred during the initialization phase may be retrieved via the API function wl05_get_init_error, after the execution of Dev_Open_Interface().
Association to an BSS (access point) may be done by calling one the wl05_connect API function.
- Association(Connection)/DisAssociation to an BSS
wl05_connect requires a set of configuration parameters, namely a structure variable of type WL05_Connect_Params.
The structure must be filled by the user application with its customized parameters.
For disAssociation the user has to call the function wl05_disassociate.
IPv4 address configuration (static or DHCP) may be done by writing the variables of the main driver struct variable devuserdrv at startup. At runtime the configuration (e.g. Triggering DHCP after wl05_connect) may be changed by calling wl05_reconfig_ipv4.
- IPv4 configuration
Changes of the internal WL05 status are reported by interrupt to the driver host software. The user is able to request the latest status change by calling wl05_get_drv_indication.
- WL05 status changes/events
It is also possible to install a callback function with the wl05_register_usercallback API function. The callback is then immediately executed by the driver, if the WL05 has reported a status change/event.
A scan for available (I)BSS can be done by executing the API function: wl05_scan.
- WL05 scan for available (I)BSS
A list of all found access points (max. 12 entries) is returned by this function.
The WEP encryption keys and the transmit key index are part of the connection structure WL05_Connect_Params.
- Configure WEP encryption
As demonstrated at the provided driver examples, the application programmer should implement inside the main() function, or elsewhere at their driver application, an infinite loop, for polling the latest occurred WL05 status indication by calling wl05_get_drv_indication, and handle the eventually incoming events of type WL05_DrvIndicationCodes.
- Driver control by user driver application
For implementing user specific roaming procedure, the WL05 driver API facilitates the installation of an RSSI threshold trigger. In case of an established network connection, the driver application will be immediately informed, if the specified RSSI ranges are breached.
The RSSI trigger conditions can be defined inside the connection structure WL05_Connect_Params when calling wl05_connect.
The API function wl05_enable_rssi_trigger enables or disables the trigger.