Skip to content

Minimal TCP/IP stack for non OS based micrcontroller enviornment.

Notifications You must be signed in to change notification settings

adimalla/Minimal-TCP-IP-Stack

Repository files navigation

Minimal-TCP-IP-Stack

Minimal-TCP/IP stack for enc28j60 module.

Version:1.0 IDE:CCStudio Terminal:Putty

License:MIT

Description

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.

Features

Current:-
  • 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.
Future Version:-
  • Linux Sockets like API.
  • Support for multiple sockets.
  • RTOS based testing and support.

Testing

The API is tested on TIVA Launcpad by Texas Instruments and enc28j60 module.

Hardware Configuration

ENC28J60 Ethernet controller connected on the following pins :-

  • MOSI (SSI2Tx) on PB7
  • MISO (SSI2Rx) on PB6
  • SCLK (SSI2Clk) on PB4
  • ~CS (GPIO) on PB1
Dependencies

Test code is dependent on the following APIs:-

Disclaimer

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.

Contact