![]() |
||
![]() |
|
![]() |
![]() |
In this appendix, we'll look at a number of TCP/IP Stack implementations that target integration into embedded devices. We’ll look at commercial implementations as well as those available in the open source domain and academic designs.
The implementations discussed in this section are those that are not tied to any particular Real Time Operating System (RTOS). For example, Wind River and QNX Software Systems Limited (QSSL) include TCP/IP stacks which are efficient, but tied to their parent RTOS. The following stacks are portable to numerous computer architectures and may be integrated into a variety of operating system/kernels.
Many embedded devices need access only to the UDP transport protocol. This provides support for SNMP, name resolution through DNS, and other non-TCP related protocols. UDP/IP stacks are also much simpler and therefore require fewer resources and computational expense of the host processor.
EmStack is a small footprint TCP/IP stack designed for embedded devices. It scales down to 30KB of ROM but includes more advanced features such as Slow Start, Congestion Avoidance, Fast Retransmit and Fast Recovery algorithms. EmStack requires no target operating system and provides zero-copy mechanisms for high throughput.
See the GlobespanVirata Web site for licensing details.
URL http://www.agranat.com/emweb/solutions/options.html#Stack
FlatStack is a specialized hardware/software device that was designed specifically for deeply embedded devices that typically include no network connectivity. The FlatStack integrates with the embedded system to provide Ethernet or Serial-based connectivity to the Internet.
The Fusion TCP/IP stack is designed for embedded systems (both microprocessors and DSPs). It includes the standard suite of protocols as well as a BSD sockets API. The stack can run without an RTOS and includes run-time configuration to dynamically alter the behavior of the stack. Netsilicon also offers a variety of other protocols for routing, management and other application layer protocols.
The Fusion TCP/IP stack is sold with a royalty-free license.
URL http://www.netsilicon.com/SftwrksWeb/InternetProtocol/fusion_tcp_ip.asp
KwikNet is a small TCP/IP stack focused on embedded Internet-enabled devices. It’s compact (code footprint and RAM), reentrant and can be ROMed. KwikNet includes a configuration builder (for Windows) that can be used to configure the stack for your particular application.
The Mentat TCP stack, although appropriate for embedded systems, requires Mentat Streams or another SVR4-compatible STREAMS infrastructure. Mentat TCP is a fully functional TCP/IP stack and includes other necessary protocols such as ICMP and IGMP.
The MicroNet TCP/IP stack was designed for embedded systems over a wide range of processor architectures (8 and 16 bit). It includes the standard TCP/IP protocol suite along with SLIP, DHCP, FTP and other application layer protocols.
MicroNet is written in pure C for portability.
NexGenIP is an operating-system independent TCP/IP stack implementation designed for embedded devices (no CPU/OS dependencies). It’s written in ANSI C and optimized for minimal footprint (< 40KB). NexGenIP provides a BSD4.4 socket-like interface and provides other useful protocols such as ICMP, IGMP, ARP and multicast.
NexGenIP includes a royalty-free license and can be purchased in source code or library form.
URL http://www.nexgen-software.com/Modules/Products/NexGenIP.html
The NicheStack is a tiny footprint TCP/IP stack that includes a variety of application layer protocols. A full-featured TCP/IP stack including DHCP compiles in under 43KB. It is designed to be portable to a variety of architectures and operating systems and includes a BSD 4.4 sockets interface.
Interniche also provides a minimal version of their NicheStack called NicheLite. NicheLite includes a smaller version of the BSD sockets API with support for one interface.
ROM-DOS includes a compact TCP/IP stack designed for the embedded device market. As a separate product, ROM-DOS can be accompanied by Sockets, the ROM-DOS Sockets API.
RTIP is a portable TCP/IP stack designed for embedded applications. It includes support for a number of operating systems/kernels and is written in 100% ANSI-C. RTIP can operate with a kernel or with no kernel in a polled mode. A BSD-like socket API is included with proprietary extensions. RTIP provides a simple porting layer where all modification occurs in one set of files (C and H).
The Socket Library SDK is an API for DOS environments (MS-DOS, DR-DOS). It provides a BSD 4.3-compliant sockets interface and includes a TCP/IP stack supporting ODI, Packet and NDIS drivers. It requires minimal RAM and supports Ethernet, PPP/SLIP and Token Ringer interfaces.
The TargetTCP TCP/IP stack is a small reentrant stack designed for embedded systems. It is architecture and operating system-independent and includes optimization for RISC processors (at the data link layer). TargetTCP includes a BSD sockets layer with modifications for embedded systems (including time-outs and stack event callbacks).
USNet is a TCP/IP stack designed for real-time embedded applications. It is architecture- and operating system-independent and can be configured for minimal footprint. On most processors, the footprint is approximately 25KB. USNet is reentrant and can be ROMed.
![]() |
||
![]() |
|
![]() |
![]() |