Embedded Web Server (microcontroller with TCP-IP).pdf

(3483 KB) Pobierz
AVR460: Embedded Web Server
AVR460: Embedded Web Server
Introduction
Intelligent homes will be connected to the Internet and require a microcontroller to
communicate with the other network devices. The AVR ® embedded web server can
simplify the design process for embedded web server applications. The AVR embed-
ded web server design includes a complete web server with TCP/IP support and
Ethernet interface. It also includes support for sending mail, and software for auto-
matic configuration of the web server in the network. The AVR web server reference
design includes complete source code written in C-language. A comprehensive
designers guide describes all web server components and gives embedded systems
designers a quick start to embedded web servers.
Embedded
Web Server
Application
Note
System Description
The AVR embedded web server reference design is designed for integration in digital
equipment. The AVR embedded web server can be plugged into any Ethernet inter-
face and communicate with a standard web browser. Figure 2 illustrates some
situations where the web server can be used.
As shown in Figure 2, various consumer electronics can be controlled from a com-
puter connected to the Internet. The web page is the “Control Center” for the AVR
embedded web server.
Figure 1. AVR Embedded Web Server
Rev. 2396B–11/01
1
326829637.010.png 326829637.011.png
 
326829637.012.png
 
326829637.001.png 326829637.002.png
 
Suppose the AVR embedded web server is embedded in several units in a house. Every
server is connected to the network. A computer located at home as on Figure 2 controls
all devices and can receive requests from other computers on the Internet. The web
server is identified by its unique IP address and can be controlled remotely from any-
where in the world as long as the authorization is in order.
Figure 2. Monitoring Home Equipment from the Office
Workstation
Server
Internet
Hub
Office
Home Computer
Refridgerator
Television
Hub
Home
TCP/IP Protocol Suite The TCP/IP protocol suite allows computers of all sizes, running different operating sys-
tems, to communicate with each other. It forms the basis for what is called the worldwide
Internet, a Wide Area Network (WAN) of several million computers.
TCP/IP Suite Layers
The TCP/IP protocol suite is a combination of different protocols at various layers.
TCP/IP is normally considered to be a 4-layer system as shown in Figure 3.
Figure 3. Four Layers of TCP/IP Protocol Suite
Application
Telnet, FTP, HTTP
Transport
TCP, UDP
Network
IP, ICMP
Link
Device Driver and Interface Card
2
AVR Embedded Web Server
2396B–11/01
326829637.003.png 326829637.004.png
AVR Embedded Web Server
Application Layer
The Application layer handles the details of a particular application. Common TCP/IP
applications include:
• Telnet for remote login
• Browser support for displaying web pages
• File transfer applications
• E-mail applications
The three lower layers do not know anything about the specific application and only take
care of communications details.
Transport Layer
TCP is responsible for a reliable flow of data between two hosts. Typically, TCP divides
data passed to it from the application into appropriately sized chunks for the network
layer below, acknowledging received packets that are sent and retransmits lost packets.
Since this reliable, flow of data is provided by the Transport Layer, the Application Layer
above can ignore these details.
UDP is a much simpler service to the Application Layer. It sends packets of data called
datagrams from one host to the other, but with no guarantee that the datagrams reach
the other end. Desired reliability must be added by the Application Layer.
Network Layer
This layer is sometimes called the Internet Layer. It handles the movements of packets
around the network. Routing of packets, for example, takes place here. IP (Internet Pro-
tocol) and ICMP (Internet Control Message Protocol) provides the Network Layer in the
TCP/IP Protocol Suite.
Link Layer
Data-link or Network Interface Layer is another common name of this layer. The Link
Layer normally includes the device driver in the operating system and the corresponding
network interface (card) in the computer. Together they handle all the hardware details
of physically interfacing with the cable.
Figure 4 shows an example that includes two hosts on a Local Area Network (LAN) such
as Ethernet, using HTTP.
Figure 4. Example with Protocols Involved
Application
HTTP
Client
HTTP
Server
Transport
TCP
TCP
Network
IP
IP
Link
Ethernet
Driver
Ethernet
Driver
3
2396B–11/01
326829637.005.png 326829637.006.png
One side represents the client, and the other the server. The server provides some type
of service to clients, in this case, access to web pages on the server host. Each layer
has one or more protocols for communicating with its peer at the same layer. One proto-
col, for example, allows the two TCP layers to communicate, and another protocol lets
the two IP layers communicate.
The Application Layer is normally a user-process while the lower three layers are usu-
ally implemented in the kernel (the operating system).
Port Numbers
Different applications can use TCP or UDP at any time. The Transport layer protocols
store an identifier in the headers they generate to identify the application. Both TCP and
UDP use 16-bit port numbers to identify applications. TCP and UDP store the source
port number and the destination port number in those respective headers.
Servers are normally known by their well-known port number. Every TCP/IP implemen-
tation with a FTP server provides that service on TCP port 21. Every Telnet server is on
TCP port 23. Services provided by any implementation of TCP/IP have well-known port
numbers between 1 and 1023. The well-known ports are managed by the Internet
Assigned Numbers Authority (IANA).
A client usually does not care what port number it uses on its end. All it needs to be cer-
tain of is that whatever port number it uses, it must be unique on its host. Client port
numbers are called ephemeral ports (i.e., short lived). This is because a client typically
exists only as long as the user running the client needs its service, while servers typi-
cally run as long as the host is up. Most TCP/IP implementations allocate ephemeral
port numbers between 1024 and 5000. The port numbers above 5000 are intended for
other services (those that are not well known across the Internet).
The combination of an IP address and a port number is called a socket.
Encapsulation
When an application sends data using TCP, the data is sent down the protocol stack,
through each layer, until it is sent as a stream of bits across the network. Each layer
adds information to the data by prepending headers and adding trailers to the data it
receives. Figure 5 shows this process.
Figure 5. Encapsulation of Data as It Goes Down the Protocol Stack
User
Data
HTTP
Client
Appl.
Header
User
Data
TCP
TCP
Header
Application
Data
TCP Segment
IP
IP
Header
TCP
Header
Application
Data
IP Datagram
Ethernet
Driver
Ethernet
Header
IP
Header
TCP
Header
Application
Data
Ethernet
Trailer
14
20
20
4
Ethernet Frame
46 to 1500 Bytes
4
AVR Embedded Web Server
2396B–11/01
326829637.007.png 326829637.008.png
AVR Embedded Web Server
Some abbreviations:
• TCP segment: The unit of data that TCP sends to IP.
• IP datagram: The unit of data that IP sends to the network interface.
• Frame: The stream of bits that flows across the Ethernet.
IP (Internet Protocol) adds an identifier to the IP header it generates to indicate which
layer the data belongs to. IP handles this by storing an 8-bit value in its header called
the protocol field. Similarly, many different applications can be using TCP or UDP at any
time. The Transport Layer protocol stores an identifier in the header they generate to
identify the application. Both TCP and UDP use 16-bit port numbers to identify applica-
tions. The TCP and UDP store the source port number and the destination port number
in their respective headers. The network interface sends and receives frames on behalf
of IP, ARP, RARP. There must be some form of identification in the Ethernet header
indicating which network layer protocol generates the data. To handle this, there is a 16-
bit frame type field in the Ethernet header.
Internet Addresses
Every interface on the internet has a unique Internet Address (IP Address). The
addresses are 32-bit numbers. Figure 6 shows the structure and the five different
classes of Internet addresses.
Figure 6. The Five Different Classes of Internet Addresses
A
0
7 Bits
NetID
24 Bits
HostID
B
1 0
14 Bits
NetID
16 Bits
HostID
C
1 1 0
21 Bits
NetID
8 Bits
HostID
D
1 1 1 0
28 Bits
Multicast Group ID
E
1 1 1 1
28 Bits
(Reserved for Future Use)
The 32-bit addresses are normally written as four decimal numbers, one for each byte of
the address. See Table 1. This notation is called dotted-decimal. Since every interface
on internet must have a unique IP address, there must be one central authority for allo-
cating these addresses for networks connected to the worldwide Internet. Internet
Network Information Center (NIC) is the responsible authority.
Table 1. Ranges of Different Classes of IP Addresses
Class
Range
A
0.0.0.0 to 127.255.255.255
B
128.0.0.0 to 191.255.255.255
C
192.0.0.0 to 223.255.255.255
D
224.0.0.0 to 239.255.255.255
E
240.0.0.0 to 255.255.255.255
5
2396B–11/01
326829637.009.png
Zgłoś jeśli naruszono regulamin