TCP/IP Products

smxWiFi™
smxWiFi is a robust 802.11 MAC stack specifically designed and developed for embedded systems. It is written in C, and can run on any hardware platform. While optimized for SMX®, smxWiFi can be ported to another RTOS or another hardware platform to support a different WiFi chipset.
An 802.11 Network is a wireless local area network (WLAN) that is using 802.11 standards. smxWiFi provides the necessary software to add wireless connectivity to an embedded system.
Layers
- Network Interface Layer Provides the interface to a TCP/IP stack.
- Application Interface Layer Provides the interface to the application to manage the networking connection, retrieve the signal and link quality information, and do a site survey.
- MLME Layer Provides services for the MAC Layer Management Entity, such as scan, authentication,
association, and synchronization.
- Chipset Driver Layer Provides a unique interface for different WiFi MAC and RF chipsets such as the Ralink RT2500.
- Porting Layer Provides service functions related to the hardware, OS, and compiler.
Code Size
Component |
ARM IAR (KB) |
CF CW (KB) |
Core (Network, Application, MLME |
38 |
41 |
Security (WEP, WPA) |
22 |
27 |
Ralink T2500 Driver |
22 |
27 |
Data Size
| Component |
Size (KB) |
| Core (Network, Application, and MLME layers) |
15 |
| Security |
5 |
| Ralink RT2500 Driver |
4 |
Performance
For performance testing, TCP packets are sent and received simultaneously.
Both sides are using WiFi Dongle to transfer data through one Access Point.
The following is a table of performance for read/write of 512 bytes network socket packets, without security
| USB Host Controller |
Reading |
Writing |
| X86/ISP1761 |
120 KB/s |
120 KB/s |
| MCF5329 |
98 KB/s |
98 KB/s |
| AT91SAM9260 |
67 KB/s |
67 KB/s |
The following is a table of performance for read/write of 1024 bytes network socket packets, without security
USB Host Controller |
Reading |
Writing |
| X86/ISP1761 |
205 KB/s |
205 KB/s |
| MCF5329 |
155 KB/s |
155 KB/s |
| AT91SAM9260 |
90 KB/s |
90 KB/s |
Adding security causes a decrease in performance of less than 5%.
See the smxWiFi User’s Guide for additional performance test results.
smxWiFi API
swf_iInit();
swf_Open();
swf_Close();
swf_Release();
swf_RegisterNotify();
swf_GetNodeID();
swf_SendPacket();
swf_GetLinkStatus();
swf_Connect();
swf_Disconnect();
swf_IsConnected();
swf_ScanBss();
swf_GetBssNum();
swf_GetBssInfo();
swf_SetBssType();
swf_SetAuthMode();
swf_SetWepDefaultKeyID();
swf_SetWepSharedKey();
swf_GenerateWPAKey();
swf_SetWPAKey();
Porting
The porting layer is contained in wfport.h and wfport.c. These files have definitions,
macros, and functions to port smxWiFi to a particular target, such as another compiler and RTOS.
In addition, if the WiFi chipset is not already supported, a new driver will need to be written.
smxWiFi was developed for use with SMX® and smxNS, but it can be ported to another RTOS and TCP/IP stack.
Tested Devices
WiFi Dongles
- Belkin F5D7050 v3002
- Linksys WUSB54GC
Access Points
- Linksys WRT54G Wireless Router
- TRENDnet TEW-432BRP 11g Wireless Router
- NETGEAR WGR614 v6 Wireless Router
For more information
|