Home > Embedded Ethernet and Internet
Embedded Ethernet and Internet
Ethernet and Internet communications for embedded systems.
Articles | Device Modules | Specifications | Books
Embedded Ethernet and Internet Complete
Embedded Ethernet and Internet Complete: Designing and Programming Small Devices for Networking
Articles
Network Security for Small Systems
Pick the Network Protocol thats Right for your Device
Device Modules
Modules that support Ethernet and Internet communications.
RabbitCore
Digi International (formerly Rabbit Semiconductor)'s RabbitCore modules use a fast Z80-derivative Rabbit CPU. The Rabbit 3000 CPU has extremely low EMI. The development system includes the Dynamic C compiler with extensive software libraries to support Ethernet and Internet protocols. Library source code is included. The modules have excellent documentation.
For help in using RabbitCore modules, see the independently run e-mail discussion group rabbit-semi.
TINI
These modules are no longer available from the manufacturer.
The TINI modules from Maxim Integrated Products (formerly Dallas Semiconductor) use a CPU with an enhanced 8051 architecture (DS80C400) and include a Java virtual machine (JVM). The DSTINIm400 module contains a DS80C400 and supports 10BASE-T and 100BASE-TX Ethernet. The DSTINIm400 plugs into the DSTINIs400 Sockets Evaluation Board, which contains the Ethernet PHY circuits and RJ-45 connector. The DSTINI-1 was the original TINNo, I and contains a DS80C390 and 10BASE-T support.
The TINI software is free for use and distribution within the restrictions stated in the license agreement.
The TINI software includes a basic HTTP server for serving static (unchanging) Web pages. The addition of a servlet engine enables the TINI to serve pages that contain real-time data and other dynamic content and enable users to provide input to the TINI. Two servlet engines for the TINI are Shawn Silverman's Tynamo Web server and Smart SC Consulting's TiniHttpServer. (TiniHttpServer hasn't been updated in a while, but it does run on newer TINI firmware.)
Other sources of TINI hardware:
The SNAP from Imsys uses Imsys' CPU, which is around 20 times faster than the Dallas CPU. The JVM is a superset of J2ME/CLDC and is certified by Sun. The board has a SIMM connector.
The TINI SoM-400EM uses a DS80C400 CPU and adds an on-board Ethernet transceiver, hardware SPI port, other I/O, and faster memory. From EMAC, Inc.
Additional TINI resources:
The TINI Webring pages include project descriptions, product vendors, and tutorials.
General-purpose Modules with Ethernet Support
EZ Web Lynx from Custom Computer Services, Inc.
uClinux on Blackfin BF533 STAMP - A DSP Linux Port project. With 10/100 Ethernet. From Jesslyn Abdul Salam.
Saelig has the WIZnet (Ethernet and TCP/IP on a chip) and more.
Special-purpose Modules
Lantronix Device Server enables a device with an asynchronous serial port to communicate over a network.
Netmedia SitePlayer is can serve Web pages and perform UDP communications with a minimum of user programming. Requires a serial link to a CPU to update Web page data and receive data from clients.
Serial-to-Ethernet Bridges
These bridges, or serial servers, enable RS-232 and RS-485 devices to communicate over networks.
R.E. Smith's ESPSX3 Serial Port Server has two RS-232 ports and one port that is configurable as an RS-232 port or an isolated RS-485 port.
Netburner's has serial-to-Ethernet devices.
Serial to Ethernet Connector software. From Eltima.
USB Ethernet Emulation
USB devices can emulate Ethernet by complying with the Ethernet emulation model (EEM), Ethernet control model (ECM), or Network Control Model (NCM) in the USB communications-class device (CDC) class or by using a vendor-specific interface such as Remote NDIS for Windows.
The Network Control Model builds on the CDC ECM specification with improvements to support higher data rates. The CDC Mobile Broadband Interface Model (MBBIM) defines a protocol for exchanging control commands and data frames with mobile broadband devices.
Vendors with EEM and ECM host drivers include HCC Embedded, Jungo, and MCCI. MCCI also has an NCM host driver and MBIM implementation..
Protocol Analyzers
Wireshark network protocol analyzer. Open source.
Advanced TCP/IP Data Logger from AGG Software.
ProfiShark 1G Gigabit Ethernet Troubleshooter from PROFITAP.
Specifications
Links to various specification documents for Ethernet and Internet Communications
CGI and SSI
Server Side Includes (SSI). In the documentation for the Apache HTTP Server
Common Gateway Interface (CGI).
Internet Message Format. RFC2822: Internet Message Format specifies the format for text messages sent as e-mail.
Interactive Mail Access Protocol (IMAP). RFC 1730: Internet Message Access Protocol - Version 4.
MAILTO URL scheme. RFC2368: The mailto URL scheme for sending E-mail.
Multipurpose Internet Mail Extensions (MIME). RFC RFC1521: MIME (Multipurpose Internet Mail Extensions) Part One: Mechanisms for Specifying and Describing the Format of Internet Message Bodies. Multipurpose Internet Mail Extension (MIME) types defined in RFC2045, RFC2046, RFC2047, RFC2048, and RFC2049.
Post Office Protocol (POP). RFC1939: Post Office Protocol - Version 3. For receiving E-mail. First described in RFC0918.
Simple Mail Transfer Protocol (SMTP). RFC2821: Simple Mail Transfer Protocol. For sending E-mail.
Ethernet and Wireless Networks
The main Ethernet standard is IEEE 802.3: Part 3: Carrier sense multiple access with collision detection (CSMA/CD) access method and physical layer specifications.
Wireless networks. IEEE
802.11: Part 11: Wireless LAN Medium Access Control (MAC) and Physical
Layer (PHY) Specifications.
File Transfer Protocol (FTP)
File Transfer Protocol (FTP). RFC0959: File Transfer Protocol (FTP). Also see RFC 1123: Requirements for Internet Hosts -- Application and Support and RFC 2428: FTP Extensions for IPv6 and NATs.
Internet Protocol and Related
Address Resolution Protocol (ARP). RFC0826: An Ethernet Address Resolution Protocol: Or converting network protocol addresses to 48.bit Ethernet address for transmission on Ethernet hardware. Also available as standards-track document STD0037. Reverse Address Resolution Protocol (RARP) is RFC0903: A Reverse Address Resolution Protocol, also available as standards-track document STD0038.
Domain Name System (DNS). RFC1034: Domain names - concepts and facilities. RFC1035: Domain names - implementation and specification. Both are incorporated in STD0013.
Dynamic Host Configuration Protocol (DHCP). RFC2131: Dynamic Host Configuration Protocol. RFC2132: DHCP Options and BOOTP Vendor Extensions.
Internet Control Message Protocol (ICMP). RFC0792: Internet Control Message Protocol. For additional ICMP type codes, see RFC0950: Internet Standard Subnetting Procedure and RFC 1256: ICMP Router Discovery Messages.
Internet Protocol (IP). RFC0791: Internet Protocol. Incorporated in STD0005. RFC 3330: Special-Use IPv4 Addresses lists reserved ranges of IP addresses. IPv6 is described in RFC2460: Internet Protocol, Version 6 (IPv6) Specification. Also see RFC2373: IP Version 6 Addressing Architecture and RFC1519: Classless Inter-Domain Routing (CIDR): an Address Assignment and Aggregation Strategy.
Point-to-Point Protocol (PPP). RFC1661: The Point-to-Point Protocol (PPP).
Protocol Numbers (obsoletes RFC0790:and similar documents). From IANA.
Uniform Resource Locators (URL). RFC1738: Uniform Resource Locators (URL).
Java Servlets
Servlets. Java Servlet Specification.
Security
MD5 algorithm. RFC1321: The MD5 Message-Digest Algorithm.
Rijndael Algorithm. Federal Information Processing Standard (FIPS) 197 describes the Rijndael algorithm (also known as the Advanced Encryption Standard (AES)).
Security Roadmap. RFC2411: IP Security Document Roadmap.
Transmission Control Protocol (TCP)
Transmission Control Protocol (TCP). RFC0793: Transmission Control Protocol. Also available as STD0007.
RFC1122: Requirements for Internet Hosts -- Communication Layers clarifies RFC0793 by saying that URG should point to the last byte of urgent data.
Also see RFC2581: TCP Congestion Control.
User Datagram Protocol (UDP)
RFC0768: User Datagram Protocol. Also available as STD0006.
Web (HTTP and HTML)
Hypertext Markup Language (HTML). HTML 4.01 Specification.
Hypertext Transfer Protocol (HTTP). RFC2616: Hypertext Transfer Protocol -- HTTP/1.1. RFC1945:Hypertext Transfer Protocol -- HTTP/1.0 contains the previous versions, HTTP 1.0 and 0.9. RFC 1123.:Requirements for Internet Hosts -- Application and Support contains the rfc1123-date format specified in HTTP 1.1.
Books
Books about developing embedded systems for use in Ethernet networks or on the Internet. Listed alphabetically, except for my book, which is first. :)
Embedded Ethernet and Internet Complete: Designing and Programming
Small Devices for Networking
Jan Axelson
My introduction to Ethernet and Internet Communications for small systems,
with examples for Rabbit Semiconductor's Rabbit Core and Maxim/Dallas Semiconductor's
TINI modules. More info.
Designing Embedded Internet Devices
Brian DeMuth and Dan Eisenreich
A guide to using the TINI.
Embedded Internet Design
Al Williams
Examples use Parallax's Javelin and the TINI.
Embedded Systems Design using the Rabbit 3000 Microprocessor
Kamal Hyder, Bob Perrin
For anyone using Rabbit Semiconductor's CPUs.
Ethernet: The Definitive Guide
Charles E. Spurgeon
All about Ethernet. Charles'
website.
Networking and Internetworking with Microcontrollers
Fred Eady
Network communications with AVRs and PICs. Fred's
website.
TCP/IP Application Layer Protocols for Embedded Systems
M. Tim Jones
Examples for Linux.
TCP/IP Clearly Explained
Pete Loshin
Inside networking protocols.
TCP/IP Lean: Web Servers for Embedded Systems
Jeremy Bentham
How to write low-level networking code, with Microchip PIC examples.
The TINI Specification and Developer's Guide
Don Loomis
From the lead architect and developer of the TINI. Also
available as a free
download (PDF).