First Technology Transfer

Standard and Advanced Technical Training, Consultancy and Mentoring

Course M105 - A Comprehensive Introduction to Embedded TCP/IP and Ethernet Programming Using PIC18 Microcontrollers

Duration: 5 Days

Intended Audience

This course is for engineers who have a good knowledge of C programming and also a sound appreciation of TCP/IP networking. It is aimed specifically at developers who will be implementing socket based, embedded web server based applications on embedded targets


'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 must also to be taken into account. Key topics covered in this course include

  • The Microchip TCP/IP Application Programming Interface functions and how to use them on PIC18 systems with external Ethernet PHY/MAC devices and on-chip PHY/MAC devices, 10 Mbps devices
  • Use of the Microchip TCP/IP stack in an operating system free environment
  • Implementing embedded web server oriented applications on PIC18 target platforms
  • Designing web pages that contain form based functionality
  • Understand how URIs are interpreted and making use of Ajax techniques to implement responsive web based applications
  • Implementing code for generating web pages dynamically

Course Outline

  • Overview of TCP/IP
    • IP addressing and subnet masking - and how they are represented in the Protocol Stack
    • IP, TCP and UDP headers and their underlying data structures
    • The TCP and UDP protocols
  • TCP/IP - client-server implementation strategies
    • Principles of sockets API based programming
    • Implementing higher layer protocols in TCP/IP
    • Case studies exploring uses of:
      • DHCP
      • TFTP
      • FTP
      • HTTP
  • Using and configuring the Microchip TCP/IP Protocol stack on standalone (without an OS) systems
  • MAC and PHY functions and components
  • Understanding how the interface with underlying on chip ethernet hardware works
  • Interfacing via SPI with an external ENC28J60 Ethernet Controller
  • Implementing simple data acquisition and control applications on top of UDP
  • Designing GUI-based control applications running on Windows or Linux workstations to control TCP/IP enabled embedded systems (the GUIs will be Qt based for portability and example use cases will be shown). This part of the course can be tailored to use Microsoft Forms or Microsoft WPF and XAML if required.