The SimpleLink Wi-Fi Internet-on-a-chip devices provide comprehensive networking functionality. To simplify the integration and development of networking applications using the SimpleLink Wi-Fi devices, TI provides a simple and user-friendly host driver.
The SimpleLink host driver is responsible for:
- Providing a simple API to the user application
- Handling the communication with the device, including:
- Building and parsing commands
- Handling asynchronous events
- Handling the flow control for the data path
- Serialization of concurrent commands
- Working with the existing UART or SPI physical interface drivers
- Working with an OS adaption layer, providing flexibility in working with or without an OS
- Enable porting to any platform
The host driver is written in strict ANSI C89 for full compatibility with most embedded platforms and development environments.
The host driver key architecture concepts are:
- Microcontroller
- Can run on 8-bit, 16-bit, or 32-bit microcontrollers
- Can run on any clock speed – no performance or time dependency
- Supports both big and little endian formats
Standard interface communication port:
- SPI – Supports standard 4-wire SPI:
- 8-, 16-, or 32-bit word length
- Default mode 0 (CPOL=0, CPHA=0)
- SPI clock can be configured up to 20 Mbps.
- CS is required.
- Additional IRQ line is required for async operations.
- UART
- Standard UART with hardware flow control (RTS/CTS) up to 3 Mbps.
- The default baud rate is 115200 (8 bits, no parity, 1 start/stop bit).
- Supporting systems using or not using OS:
- Simple OS wrapper, requiring only two object wrappers:
- Sync Obj (event/binary semaphore)
- Lock Obj (mutex/binary semaphore)
- Built-in logic within the driver for system not running OS
The SimpleLink host driver includes a set of six logical and simple API modules:
- Device API – Manages hardware-related functionality such as start, stop, set, and get device configurations.
- WLAN API – Manages WLAN, 802.11 protocol-related functionality such as device mode (station, AP, or P2P), setting provisioning method, adding connection profiles, and setting connection policy.
- Socket API – The most common API set for user applications, and adheres to BSD socket APIs.
- NetApp API – Enables different networking services including the Hypertext Transfer Protocol (HTTP) server service, DHCP server service, and MDNS client\server service.
- NetCfg API – Configures different networking parameters, such as setting the MAC address, acquiring the IP address by DHCP, and setting the static IP address.
- File System API – Provides access to the serial flash component for read and write operations of networking or user proprietary data.
Figure 1-2 shows the host driver anatomy.