Embedded Ethernet and Internet Complete is a guide to designing and programming embedded systems to communicate in local Ethernet networks and on the Internet.
An embedded system is a device that has computer intelligence and is dedicated to performing a single task, or a group of related tasks. Embedded systems often perform monitoring and control functions such as gathering and reporting sensor readings or controlling motors and switches. They’re called embedded systems because the program code is an integral part of, or embedded in, the devices.
Ethernet is the networking technology used in many offices and homes to enable computers to communicate and share resources. Many Ethernet networks also connect to a router that provides access to the Internet.
For many years, embedded systems and Ethernet networks existed in separate worlds. Ethernet was available only to desktop computers and other large computers. Embedded systems that needed to exchange information with other computers were limited to interfaces with low speed, limited range, or lack of standard application protocols.
But developments in technology and the marketplace now make it possible for embedded systems to communicate in local Ethernet networks as well as on the Internet. Network communications can make an embedded system more powerful and easier to monitor and control. An embedded system can host a Web site, send and receive e-mail, upload and download files, and exchange information of any kind with other computers connected via a network interface. More...
Some computers are independent units, with little need to exchange information with other computers near or far. At most, these computers may use local interfaces such as USB or RS-232 to communicate with printers or other devices close at hand.
But with a network connection, a computer can reach beyond its local interfaces to send and receive information of any kind, over distances large and small, via wires or through the air. Computers of different types can communicate using network protocols supported by all. In a network of embedded systems, each system can communicate with the other systems in the network, sharing information and sending and responding to requests as needed. Desktop computers in the network can monitor and control the operation of the embedded systems.
Many local networks follow the networking standard popularly known as Ethernet. Ethernet networks are capable and flexible. Many products designed for use in networks have support for Ethernet built in. A router, or gateway, enables an Ethernet network to communicate with computers in other networks, including computers on the Internet.
Two or more computers that share a network connection form a local area network, or LAN. The smallest network links just two computers. For example, a data logger might connect to a remote computer that receives and displays the logger’s data. Or a personal computer (PC) may use a network connection to monitor and control a piece of equipment. At the other extreme, the Internet is the largest network. With an Internet connection, the computers in a local network can access resources on the Internet and make local resources available to any computer on the Internet.
To design and program embedded systems for networking, you need to understand the elements that make up a network, so this chapter begins with the basics of how networks are structured. Following this is an introduction to Ethernet, including its capabilities and how Ethernet networks manage network traffic. More...
The Embedded Ethernet Code Web page contains PC applications and firmware for the examples in the book.
Networking Basics: Quick Start: The Elements of a Network: Components. Modular Design. The Network Protocol Stack. Clients and Servers. Requirements for Internet Communications. A Word about Web Servers. In Depth: Inside Ethernet: Advantages. Limits. Using a PC for Network Communications. The IEEE 802.3 Standard. Frames. Media Access Control: Deciding When to Transmit. Physical Addresses. Using a Protocol Analyzer to View Ethernet Traffic.
Building a Network: Hardware Options: Quick Start: Connecting to a PC: Components and Configurations. Other Options In Depth: Cables, Connections and Network Speed: Cable Types for Different Uses. Twisted Pair Cable. Fiber Optic Cable. Coaxial Cable. Connections for Harsh Environments. Supplying Power. Going Wireless. Media Systems. Interfacing to Ethernet Controllers. Using Repeater Hubs, Ethernet Switches, and Routers
Design Choices: Quick Start: Selecting Components: Complete Solutions. Special-Purpose Modules. In Depth: Ethernet Controllers: What the Hardware Does . Ethernet Controller Basics. The ASIX AX88796. Realtek RTL8019AS. SMSC LAN91C96. Cirrus Logic CS8900A
Using the Internet Protocol in Local and Internet Communications: Quick Start: Connecting to the Internet: Considerations in Obtaining Internet Service. Technologies for Connecting. Static and Dynamic IP Addresses. Connecting Multiple Computers to the Internet. Communicating through a Firewall Obtaining and Using a Domain Name. In Depth: Inside the Internet Protocol: What IP Does IP Addresses. The IP Header. Assigning an IP Address to a Host. Matching an IP Address to an Ethernet Interface How a Datagram Finds Its Way to Its Destination. The Internet Control Message Protocol (ICMP)
Exchanging Messages Using UDP and TCP: Quick Start: Basic Communications. Configuring a Device for Network Communications. Sending UDP Datagrams. Receiving UDP Datagrams. Exchanging Messages using TCP. UDP and TCP from PC Applications. In Depth: Inside UDP and TCP: About Sockets and Ports. UDP: Just the Basics. TCP: Adding Handshaking and Flow Control.
Serving Web Pages with Dynamic Data: Quick Start: Two Approaches: Serving a Page with Dynamic Data. Rabbit Real-time Web Page. TINI Real-time Web Page. In Depth: Protocols for Serving Web Pages. Using the Hypertext Transfer Protocol. HTTP Versions . Elements of an HTTP Message. Inside the Hypertext Markup Language . Server Side Include Directives
Serving Web Pages that Respond to User Input: Quick Start: Device Controller: The Device Controller’s Web Page. Rabbit Device Controller. TINI Device Controller. In Depth: Using CGI and Servlets. CGI for Embedded Systems. Servlets for Embedded Systems. Receiving Form Data
E-mail for Embedded Systems: Quick Start: Sending and Receiving Messages. Sending an E-mail from a Rabbit. Sending an E-mail from a TINI. Receiving E-mail on a Rabbit. Receiving E-mail on a TINIIn Depth: E-mail ProtocolsHow E-mail Works: Using the Simple Mail Transfer Protocol. Sending E-mail with a URL. Using the Post Office Protocol
Using the File Transfer Protocol: Quick Start: FTP Clients and Servers: Rabbit FTP Client. TINI FTP Client. Rabbit FTP Server. TINI FTP Server. In Depth: Inside the File Transfer Protocol: Requirements.Transferring a File. Commands. Requesting a File with a URL
Keeping Your Devices and Network Secure: Quick Start: Limiting Access with Passwords: Using Basic Authentication. Basic Authentication on the Rabbit. Basic Authentication on the TINI. In Depth: Four Rules for Securing Your Devices and Local Network: Use a Firewall. Restrict Access with User Names and Passwords. Validate User Data. Encrypt Private Data
Embedded-device programmers, Anyone who wants to design, program, or learn about networking with embedded systems.
More and more equipment includes built-in Ethernet ports that communicate with computers and equipment across a lab bench or across a continent. But without the practical information Axelson provides in her latest book, designing an Ethernet port and getting it to work properly can present engineers with a challenge. So if you plan to design an embedded system with a built-in network connection, buy this book.
The hands-on approach and real software examples make this book invaluable. It serves as a how-to manual for designers and as a reference book for people who need to better understand how networks operate. Readers don't get a lot of useless block diagrams and academic descriptions of networking. Instead, they receive practical information they can immediately apply. Jon Titus, ECN.
Axelson has struck an ideal blend of detail where needed and summary when detail is not required. The book is organized well and should satisfy both the casual bathroom reader and the rigorous, horribly-cracked-binding, lab-bench-reference reader.
I like Axelson's writing style; it's an ideal blend of assume I'm an idiot-style when you need it and in-depth when you want to dig. - Tim Drury, slashdot.org. Complete review.
Recently, I took my daughter to a play about a giant. At turns, the giant was played by an actor and a 30-foot effigy. The other characters were each played both by a person and a 12-inch marionette. It was technically well done: the scale shifted up and down effortlessly.
This book does the same thing, swooping from a description of the bitfields in an Ethernet frame, to the nuances of multithreaded network programming, to details of HTTP, SMTP, POP, and FTP; from making network patch cables (really!) to choosing network-ready embedded processor boards, to architecting whole networks. Somehow, the reader doesn't notice the transitions; this vast range of information is all integrated flawlessly. - Ernest Friedman-Hill, JavaRanch.com. Complete review.
[Jan] presents everything in the context of embedded systems, especially systems with limited resources. And that’s where the real strength of this book lies. Jack Ganssle, The Embedded Muse. Complete review.
From integrating hardware with device needs to creating such embedded Web site to respond to user input and exchanging messages, here's a detailed treasure trove of data. Midwest Book Review. Complete review.
Both network programming and developing for embedded devices have reputations as black arts for programmers. Put the two together and you'd think that a developer would need some high wizardry to make any progress. Author Jan Axelson tackles both in 'Embedded Ethernet and Internet Complete: Designing and Programming Small Devices for Networking,', and she does it in a fairly painless fashion too. - TechBookReport.com. Read the whole review.
Either of these books (Embedded Ethernet and Internet Complete and Embedded Internet Design) will convince you of one thing: The network is everywhere. There’s nothing like looking at a Web page sent by a server the size of a dollar bill that allows you to monitor your pool water temperature and control the pump and the heater while you are on vacation. Ethernet-enabled embedded systems are finally inexpensive and combined with Java, writing network software is fairly straightforward. - Dr. Dobb's Java Newsletter, Al Williams, December 2003.
All of the details, plenty of examples, and none of the hype. Jan shows you how to build embedded networks that work! - Ed Nisley , columnist, Dr. Dobb's Journal andCircuit Cellar.
Jan successfully blends her broad hands-on expertise with a methodical presentation style in a way that translates a tough subject into something both understandable and practical. - Steve Ciarcia, Founder and Editorial Director, Circuit Cellar magazine.
This book is remarkably practical and complete. Beginners and experts alike will benefit from Jan's clear exposition of the embedded Internet. - Norman Rogers, President, Rabbit Semiconductor.
A good read for embedded-device programmers as well as anyone wanting to learn about network programming. Examples written for popular embedded devices serve as an introduction to a thorough discussion of network programming concepts. - Don Loomis, Executive Director, Microcontroller Business Unit, Dallas Semiconductor.