A weblog focused on interesting circuits, ideas, schematics and other information about microelectronics and microcontrollers.
TCP/IP stacks for microcontrollers
Two TCP/IP libraries for a wide range of microcontrollers.
Thanks towe have two simple and lightweight TCP/IP libraries named uIP and lwIP. Author himself says:
"uIP (micro IP) is the worlds smallest full TCP/IP stack. Intended for tiny microcontroller systems where code size and RAM are severly constrained, uIP only requires 4-5 kilobytes of code space and a few hundred bytes of RAM. uIP has been ported to a wide range of systems and has found its way into many commercial products."
uIP has these features:
- Well documented and well commented source code - nearly every other code line is a comment.
- Very small code size.
- Very low RAM usage, configurable at compile time.
- ARP, SLIP, IP, UDP, ICMP (ping) and TCP protocols.
- Includes a set of example applications: web server, web client, e-mail sender (SMTP client), Telnet server, DNS hostname resolver.
- Any number of concurrently active TCP connections, maxium amount configurable at compile time.
- Any number of passively listening (server) TCP connections, maximum amount configurable at compile time.
- Free for both commercial and non-commercial use.
- RFC compliant TCP and IP protocol implementations, including flow control, fragment reassembly and retransmission time-out estimation.
The second one is a "lightweight IP" or lwIP. Adam says: "lwIP is a small TCP/IP implementation for embedded systems. lwIP is larger than uIP, but provides better throughput. lwIP was initially written by me but is now developed by a group of developers distributed world-wide. lwIP is used in several commercial products."
Features: - IP (Internet Protocol) including packet forwarding over multiple network interfaces
- ICMP (Internet Control Message Protocol) for network maintenance and debugging
- UDP (User Datagram Protocol) including experimental UDP-lite extensions
- TCP (Transmission Control Protocol) with congestion control, RTT estimation and fast recovery/fast retransmit
- Specialized raw API for enhanced performance
- Optional Berkeley-alike socket API
- DHCP (Dynamic Host Configuration Protocol)
- PPP (Point-to-Point Protocol)
- ARP (Address Resolution Protocol) for Ethernet
Both these libraries are licensed under the modified BSD license, so feel free to use it and to modify it.