Crs 285
TCP/IP and Ethernet Programming for Embedded Applications

Programmers developing embedded systems with ethernet and TCP/IP "on board" need to master a number of programming skills that are not covered in C programming books. The programming skills needed may range from implementing ethernet controller device drivers through to devising new application layer protocols. 

 

Course Outline

  • Intensive overview of ethernet and TCP/IP
  • Structured programming approaches to device driver implementation 
    • on a system without an operating system
    • on a system with an operating system
  • deterministic protocols and how to design and implement them
  • aspects of industrial ethernet
  • design and implementation of TCP/IP protocol stacks - "the good, the bad and the ugly"
  • ARP - and related protocols such as RARP and BOOTP
  • Stripping out non-essential IPv4 features
  • Static vs. dynamic assignment of IP addresses
  • UDP or TCP or both ?
  • Implementing simple file and data transfer protocols
  • Implementing simple authentication and security mechanisms
  • The implementation and deployment of minimalist HTTP servers
  • The implementation and desployment of minimalist SNMP and SNMP like servers
  • WAP and its applicability to embedded systems applications

The course book - handed out on the course will be

"TCP/IP Lean 2/e - Web Servers for Embedded Systems" by Jeremy Bentham. 

You can also obtain copies of the book from the Internet Technical Bookshop ( sales@itbs.co.uk , http://www.itbs.co.uk/specials/tcp_ip_books.html )

Intended Audience

The course is aimed at experienced embedded systems C programmers and engineers who understand TCP/IP theory, and who need to delve into implementation details. 

The emphasis in this course is to understand the various ways in which a TCP/IP protocol stack might be implemented and how it might be "slimmed down" for use in an embedded system. 

 

Key Skills

  • Understanding how ethernet controllers work, how they can be interfaced to a microcontroller, and how data can be transferred between the application and the ethernet controller. 
  • Know how to implement a software layer above the basic driver layer to run ethernet in a  more deterministic mode
  • Understand how to interface an ethernet driver to a TCP/IP protocol stack
  • Be able to install or develop application layer code on top of TCP/IP
 

Practical Work

Exercises take up around 50% of the course time.  These will involve

  • implementing and testing code
  • studying and modifying existing implementations
  • design and implementation of simple static and dynamic web pages
  • implementing VB (Visual Basic) / Visual Tcl programs to access an embedded system over TCP/IP
  • using TCP/IP over PPP to access an embedded system
  • studying and adapting a simple SNMP like server
  • implementing a simple data/file transfer protocol