minimal-TCP/IP stack is a portable network stack API using the enc28j60 ethernet module on ARM-cortex M4 architecture based board for non OS enviornment. Tested on (Texas Instruments TM4c123gh series processor), developed as a part of course projects (EE6314) at the University of Texas at Arlington. This API was used to provide a network layer interface for the home automation project and MQTT gateway project for low power sensor network.
- Simple and easy to use API.
- Implements Ethernet layer, ARP, ICMP, TCP and UDP protocols.
- Supports Dynamic IP through DHCP.
- API based layers for raw TCP and UDP sockets.
- Supports max MTU of 1500 bytes.
- Lightweight stack usage of approximate 4096 bytes for medium scale MCU based embedded systems.
- Portable, can be ported to other platforms.
- Extensively tested as TCP and UDP clients and also as clients with application layer protocols like MQTT.
- Linux Sockets like API.
- Support for multiple sockets.
- RTOS based testing and support.
The API is tested on TIVA Launcpad by Texas Instruments and enc28j60 module.
ENC28J60 Ethernet controller connected on the following pins :-
- MOSI (SSI2Tx) on PB7
- MISO (SSI2Rx) on PB6
- SCLK (SSI2Clk) on PB4
- ~CS (GPIO) on PB1
Test code is dependent on the following APIs:-
- Clone "clterm" Repo from : https://github.com/adimalla/clTerm
- Clone "MQTT-3.1-C" Repo from : https://github.com/adimalla/MQTT-3.1-C
If you are a student at The University of Texas at Arlington, please take prior permissions from Dr.Jason Losh and author of this repository before using any part of the source code in your project, in order to abide by the academic integrity of the university.