Microchip Ethernet, TCP/IP and Embedded TCP/IP Server Application Programming Using the Microchip TCP/IP Protocol Stack — A 5 day course
Synopsis
'C' programming of TCP/IP applications requires a good understanding of the TCP/IP protocol and how to use the API functions supplied with Protocol Stack implementation.
Where the Protocol Stack has been optimized for use in embedded systems configuration and building of the protocol stack to include just those features that need to be included in a given application need also to be taken into account.
The course will concentrate on the Microchip TCP/IP protocol stack for PIC18, PIC24, dsPIC and PIC32 based applications.
The course will cover both embedded target programming and the development of applications on a PC running Windows (it is possible to run a Linux variant of this course) that communicate with the PIC embedded system over ethernet and TCP/IP.
The course is a hands on course with around 50% of the time devoted to hands on exercises. These will also cover network troubleshooting and the use of protocol analysers (Wireshark will be used on the course).
Objectives
After attending this course you will be able to:
- Understand the Microchip TCP/IP Application Programming Interface functions and how to use them
- Understand how to use the stack both stand-alone and together with a small embedded/real time operating system (RTOS)
- Implement embedded web server oriented applications on dsPIC target platforms RTOS such as FreeRTOS
- Be able to design web pages that contain form based functionality as well as Java applets that can be used as a means by which the embedded web server can continually push information down onto the web page
- Implement code for generating web pages dynamically
- Develop AJAX web applications for updating web page content dynamically
- Implement an SNMP agent on a PIC24/dsPIC/PIC32 target system
- Implement simple SMTP applications for sending mail from the embedded system
Contents
Introduction to Networking Concepts
- ISO/OSI 7 layer model
- a brief history of TCP/IP
- principles of client-server applications
- where the internet fits in
- service oriented computing
Ethernet - Physical and Link Layer aspects
- Ethernet II
- Ethernet 802.3
- Ethernet media - a survey
- repeaters, hubs and switches
- advanced switches - VLANs,full duplex working, spanning tree protocol
- adapting ethernet for industrial applications (an overview of industrial ethernet)
Understanding the IPv4 layer
- the ARP protocol
- static IP address assignment vs. DHCP
- IPv4 as a classful addressing scheme
- subnets and subnet masking
- private IP addresses
- routers and IPv4 routing - an overview
- interfacing private IP networks to the Web - Network Address Translation (NAT)
- configuring simple routers
The ICMP network management layer
- troubleshooting networks with PING
The IP Transport Layer - TCP and UDP
The TCP Layer
- connection oriented vs. connectionless transport
- client-server applications
- analysis of the TCP protocol
- three way handshake - connection setup
- connection takedown
- role of sequence numbers and acknowledgement numbers
- positive acknolwedgement - timeout and retransmit
- keep alive messages
- quality of service issues
- TCP port numbers
- performance overheads of TCP
The UDP layer
- overview
- UDP port numbers
- building more reliable protocols on top of UDP
Understanding application layer protocols and services
- Implementing higher layer protocols in TCP/IP
- case studies exploring implementation of:
- DHCP
- TFTP
- FTP
- HTTP
- SNMP
- SMTP
Configuring and programming with the Microchip TCP/IP Protocol stack on standalone (without an OS) systems - and interfacing to the underlying hardware ethernet controllers
Overview of using the TCP/IP protocol stack together with a small RTOS
An introduction to implementing SNMP agents on embedded targets so that these targets can be managed via an SNMP management application
Designing GUI and command line based control applications running on Windows to control TCP/IP enabled embedded systems
Designing web-based applications for controlling TCP/IP enabled embedded systems
Transferring files to and from an embedded system
Suitable For
This course is aimed specifically at developers who will be implementing socket based, embedded web server based and embedded SNMP based applications.
Prerequisites
This course is for engineers who have a good knowledge of C programming and also a sound appreciation of TCP/IP networking.