Embedded Network Controller with Web Interface Bradley University Department of Electrical & Computer Engineering By: Ed Siok Advisor: Dr. Malinowski April 27 th, 2006
Topics Summary Detailed Description System Block Diagram Software Description Internet Theory TCP/IP Software Methods of Implementation Current Status
Summary Embedded Network Controller with Web Interface Proof-Of-Concept project showing the use of network and internet protocols with embedded systems
Applications The internet protocols create an efficient method of communication among devices Networked devices are being used to control many things Factory Automation Industrial Plants Security & Surveillance Many can be controlled remotely through a web interface
Topics Summary Detailed Description System Block Diagram Software Description Internet Theory TCP/IP Software Methods of Implementation Current Status
System Block Diagram
Microcontroller Board: M5282 LITE 5282 Coldfire Processor Complete Development Board On board Network Controller
Internet / Network Network Interface Input & Output – All interaction with users Addition of XML information output to be used by a data collection server
Topics Summary Detailed Description System Block Diagram Software Description Internet Theory TCP/IP Software Methods of Implementation Current Status
Internet Theory Internet is merely the interconnection of many networks (internetworking) Internet Protocol suite: defines how information is sent over the hardware networks Different network hardware / same communication Internet works over ethernet, satellite, coaxial cables, wireless
Internet Theory Goals of Internet Communication: Efficiency Reliability These goals are achieved through the Internet Protocol Suite Consider the analogy of the internet vs. postal mail in the protocol suite
Internet Protocol Suite
Internet Protocols
Topics Summary Detailed Description System Block Diagram Software Description Internet Theory TCP/IP Software Methods of Implementation Current Status
TCP/IP Data Flow How packet data flows through the TCP/IP stack to its final application
Software Main Loop: Manages all connections and applications
HTTP Request
HTTP Function Receive TCP Data into Buffer, Call HTTP Check if received data includes “GET”, parse file name, parse desired variables Generate hash value to decide which file to host Store variables in local memory Depending upon file name, run functions to update web pages desired
Topics Summary Detailed Description System Block Diagram Software Description Internet Theory TCP/IP Software Methods of Implementation Current Status
Methods of Implementation 1 st method: uClinux Positives: Embedded Linux for Microcontrollers Contains everything needed for development Multithreading Capabilities Negatives: Large footprint, many involved files Difficult to troubleshoot and make an environment for Took 1 month to build a Cross-Compiler and toolchain
Methods of Implementation 2 nd method: OpenTCP stack Positives: Less files to modify and troubleshoot with Already had a toolchain and cross-compiler built No linux knowledge necessary Negatives: Several bugs in the software to fix Missing some parts of the TCP stack: IGMP, Multicasting No file system
Methods of Implementation As an experiment, both methods were using Cygwin, a linux environment in Windows and a GNU cross compiler Metrowerks Codewarrior is expensive (not on my laptop) Command based compiling using makefiles and the GNU C Compiler
Implemented using OpenTCP
Topics Summary Detailed Description System Block Diagram Software Description Internet Theory TCP/IP Software Methods of Implementation Final Status
Final Status: Completed: Simple TCP stack implemented DHCP, HTTP, simple CGI applications implemented Parsing of URLs and storage of variables Dynamic web pages
Current Status Summary Internet Protocols are implemented on an embedded microcontroller board A simple web server is implemented Expansion The next logical step is to interface with sensors and actuators Expanding the network software to support IGMP / Multicasting
Any Questions?