Professional Documents
Culture Documents
Contents
Advanced
Advanced Solutions
Solutions Selling
Selling
Ethernet Overview
Ethernet Overview
Microchip Ethernet Solution
LAB 1 : Configuring the Network
Ethernet Overview
Ethernet
Class
Slide
Connectivity Summary
AGP
PCI
Today
Tomorrow
1394-Fire Wire
Unlikely
WiFi (b/g)
10Mb/s
Ethernet
USB 2.0
LS-USB
CAN
Page 5
HS-USB
USB 1.1
Serial
500 Kb/s
FS-USB
Parallel Port
1 Mb/s
1.5 Mb/s
12 Mb/s
Why Ethernet?
z
z
Class
Slide
Class
Slide
No longer PC centric
Page 8
Applications
z
z
z
z
z
z
z
z
z
z
Page 9
z
z
z
z
z
z
z
z
Environmental monitoring
Kitchen appliances
Drink dispenser
Network monitoring
Instruments
Server monitoring
Fingerprint recognition
Medicine dispensing
Ethernet Installations
Bridges
z
z
z
z
z
Page 10
CAN Ethernet
Zigbee Ethernet
USB Ethernet
Market Drivers
z
Industrial Applications:
Access control
Security cameras
Fire panels
Industrial Printers
VoIP:
Adapters
Phones
Security Cameras
Page 11
Printers
Ethernet Clock
48 Volts
Page 12
ADSL
ADSL
COMPUTER
ADSL MODEM
Page 13
VOIP Adapter
ADSL
ADSL
COMPUTER
Page 14
Page 15
Page 16
ENC28J60
Product Summary
z
Page 17
ENC28J60
Worlds Smallest Ethernet Controller!
MAC Address from IEEE $1500
MCU
INT, WOL
Page 19
MCU
8Kbytes
IEEE 802.3
INT, WOL
Slide
20
Class
Slide
21
Class
Slide
22
Class
Slide
23
ENC28J60 Memory
Class
Slide
24
Class
Slide
25
Class
Slide
26
Class
Slide
27
Class
Slide
28
Class
Slide
29
Class
Slide
30
Competitive 10 Mbps,
100-pin Device
Page 31
Microchip 10 Mbps,
ENC28J60: 28 Pins
Ethernet PICtailTM
PICDEM Z - $199
Competition Summary
Page 33
RTL8019AS
-
CS8900A
-
LAN91C111
-
Class
Slide
34
Class
Slide
35
Class
Slide
36
dsPICDEM.net Board
ICD2
UART
10-base T
Ethernet
LCD
Class
Slide
37
dsPIC30F Ethernet
Controller Connection (1 of 2)
PORTD
PORTD
Class
Slide
38
dsPIC30F Ethernet
Controller Connection (2 of 2)
PORTD
Data I/O
Control
Register
Address
Class
Slide
39
Microchip
s PICDEM.net
Microchips
z
PICDEM.net board
PIC16F877
TCP/IP Lean book
Users Guide
Power Adapter
Ethernet Cable
PICDEM.net Connectivity
Solutions CD
-ROM
CD-ROM
Price: $299USD
40
**Hardware
Hardware Overview
PICDEM.net Block Diagram
USER LEDs
D6
VCC
RB5
/MCLR
S3
S2
AN0/RA0
AN1/RA1
A2
VCC
A1
WP
A0
SCL
GND SDA
24LC256
SCL
SDA
JP2
RA2
RA3
RE2
RE1
RE0
RD7-0
RB4-0
RSTDRV LED2
LED1
LED0
D5
1
6
RC6/TXD
RC5(CTS)
RC7/RXD
RC2(RTS)
PIC18F452
19.66MHz
T1IN T1OUT
T2IN T2OUT
R1OUT R1IN
R2OUT R2IN
TC232
2
7
3
8
4
9
5
IOWB TPout+
IORB
SD7-0
TPoutSA4-0
TPin+
SA19-SA5
TPinRTL8019
20MHz
D3
D2
D1
RJ45
Class
Slide
42
PIC18F97J60
- 64K, 96K or 128K bytes Flash z
- 3.9K bytes RAM
- 8K bytes TX/RX Buffer
- 41.67MHz max
Package (TQFP)
- 64/80/100-Pins
Other:
- External Memory Bus
- 16 channel 10-bit A/D
Communication
- Ethernet: MAC+PHY
(IEEE 802.3 10BASE-T)
- 2 EUSARTs
- MSSP (SPI /MI2C)
2005 Microchip Technology Incorporated. All Rights Reserved.
Class
Peripherals
-
Slide
43
Class
Slide
44
USB Cable
Class
Slide
46
Class
Slide
47
Click this
button
Highlight this
selection
Class
Slide
48
Copy these
numbers
Select this
option
10 . 10 . 5 . 16
10 . 10 . 5 . 15
Class
Slide
49
Lab #1
z
z
z
z
z
Class
Slide
50
What is a network?
z
network
a computer or telecommunications
system linked to permit exchange of
information
S4601
Internet Connectivity
52
What is a network?
z
internet
S4601
Internet Connectivity
53
What is a network?
z
intranet
S4601
Internet Connectivity
54
What is a network?
z
Internet
internet
S4601
Internet Connectivity
55
What is a network?
z
LAN
S4601
Internet Connectivity
56
What is a network?
z
WAN
S4601
Internet Connectivity
57
client
Client
S4601
Internet Connectivity
58
z
z
server
a computer or software package that
provides services to clients running on
other computers
can refer to a particular piece of software
or to the machine which is running the
software
A server machine can run different server
software packages providing many
different servers to clients on a network
S4601
Internet Connectivity
59
router
S4601
Internet Connectivity
60
gateway
protocol converter
an application-specific node that
connects otherwise incompatible
networks
converts data codes and transmission
protocols to enable interoperability
between networks
S4601
Internet Connectivity
61
(T)FTP
HTTP
UDP
SMTP
Internet Layer
USART
- implements addressing
IP
Modem
- implements reliable
ICMP
SLIP
- web browsers,
Transport Layer
TCP
PPP
Application Layer
DHCP
ARP
- manages HW
Ethernet
62
Protocol
PPP
IP
TCP
UDP
SMTP
FTP
HTTP
Description
Point-to-Point Protocol
Internet Protocol
Transmission Control Protocol
User Datagram Protocol
Simple Mail Transfer Protocol
File Transfer Protocol
Hyper Text Transfer Protocol
RFC
Description
172 FTP
768 UDP
791 IP
793 TCP
821 SMTP
937 POP3
1055 SLIP
1122
1123
1331, 1661 PPP
1332 IPCP
1334 PPP
1350 TFTP
1541 DHCP
1542 BOOTP
2854 HTML
65
Ethernet Packet
Used in the
calculation
of the FCS
Number
of Bytes
Field
Preamble
Comments
Filtered out by the MAC
SFD
Start-of-Frame Delimiter
Filtered out by the MAC
DA
Destination Address
SA
Source Address
Type/Length
461500
Data
Packet Payload
(with optional padding)
Padding
4
2005 Microchip Technology Incorporated. All Rights Reserved.
FCS
Slide
66
Physical Layer
z
Physical Layers
67
Point-to-Point Protocol
Internet
68
z
z
Internet Layer
z
Internet Protocol
z
z
70
IP Header Format
0
0 Version
Hdr len Service
8 Time
to live
16
20
Pcol
Length
Ident
Checksum
8
Flags
Fragment Offset
Source Address
Destination Address
Header options
0 - 40 bytes
IP data
0 - ? bytes
Header length is default 20 bytes long
71
Internet Layer
z
an extension to IP
Handles transfer of messages containing error,
control, and informational data
PING, for example, is a ICMP echo request/reply
to see if a computer exists
z
z
72
Transport Layer
z
73
Source Port
Destination Port
Message Length
Data
74
8
Checksum
Transport Layer
z
z
z
75
TCP Functions
z
16
20
Source Port
Destination Port
Urgent Pointer
Options
Data
77
Sequence Number
Header
Length
Acknowledgement Number
Checksum
Flags
Window
Applications Protocols
z
Mail
Web browsing
Network management
File Transfer
Application Layer
z
79
Application Layer
z
80
Application Layer
z
z
z
81
Networking
z
Class
Slide
82
Network Topologies
z
Serial link
z
B
83
Network Topologies
Serial Link
z
z
z
z
z
z
z
84
Network Topologies
Serial Link
z
z
z
Data
1 - 1006 bytes
85
END
C0h
Network Topologies
z
Network
z
z
Network Topologies
Network (Ethernet)
z
z
z
z
z
z
z
Network Topologies
Network (Ethernet)
z
Source
6 bytes
Type
2 bytes
Data
46 - 1500 bytes
CRC
4 bytes
Source Port
Destination Port
Sequence Number
Header
Length
Acknowledgement Number
16
Checksum
Urgent Pointer
20
Options
Data
89
Flags
Window
Source Port
Destination Port
Message Length
Data
90
8
Checksum
(Ignore: 0x0000)
IP Header Format
Bytes
0
0 Version
Hdr len Service
8 Time
to live
Pcol
Length
Ident
Checksum
8
Flags
Fragment Offset
Source Address
16
Destination Address
20
Header options
0 - 40 bytes
IP data
0 - N bytes
Header length is default 20 bytes long
91
Transporting TCP/IP
Ether
IP
TCP/UDP
User Payload
16 bit
checksum
16 bit
checksum
92
CRC
Transporting TCP/IP
Ether
IP
TCP/UDP
User Payload
16 bit
checksum
CRC
16 bit
checksum
93
Transporting TCP/IP
Ether
IP
TCP/UDP
User Payload
16 bit
checksum
z
z
CRC
16 bit
checksum
94
Transporting TCP/IP
Ether
IP
TCP/UDP
User Payload
16 bit
checksum
z
z
z
CRC
16 bit
checksum
95
Transporting TCP/IP
Ether
IP
TCP/UDP
User Payload
16 bit
checksum
z
z
z
CRC
16 bit
checksum
Network Diagram
ROUTER
SUBNET 1
SUBNET 3
ROUTER
ROUTER
SUBNET 2
LINK TO OTHER NETWORK
ROUTER
97
Ethernet
z
z
z
z
z
IP Address
z
z
Network Addressing
z
3. Session Established,
Transmit Data Units
5. Transmit n
Data Units
7. Done,
disconnecting
Originating host
Internet
Destination host
2. Connection acknowledged
Request n Data Units
z
4. Received,
send n more.
6. Received,
send n more
8. OK, terminating
session
2. Done
Originating host
Internet
Destination host
Why TCP/IP?
z
z
z
z
Delivery Guarantees
z
z
z
z
z
z
z
z
z
z
z
z
z
z
104
UDP
105
Class
Slide
107
z
DHCP
SNMP
HTTP
UDP
TCP
ICMP
IP
ARP
Ethernet
Page 108
FTP
TFTP
z
z
Class
Slide
109
Class
Slide
110
Class
Slide
111
Stack Modules
Internet Protocol Stack
DHCP SMTP* SNMP
UDP
HTTP FTP
Application Layer
TCP
Transport Layer
ICMP
Internet Layer
IP
PPP*
Modem*
SLIP
USART
ARP
Ethernet
* To be added
2005 Microchip Technology Incorporated. All Rights Reserved.
Class
Slide
112
Block Diagram
Server
Application
Custom
Transport
FTP
Client
Server
SMTP HTTP
Stack Manager
TCP/UDP
ICMP
IP
Internet
ARPTask
ARP
Host-To-Network
MAC
Class
Slide
113
ENC28J60
RealTek 8019AS
SMSC LAN91C111
MCU
Address
Ethernet
Interface
Control
2005 Microchip Technology Incorporated. All Rights Reserved.
Class
Slide
114
IP Configuration
z
z
IP Gleaning
- Only IP address
Class
Slide
115
Connection Oriented
- Reliable data transfer
z
z
Class
Slide
116
TCP Functions
z
z
z
z
z
z
z
z
z
TCPInit
TCPListen
TCPConnect
TCPIsConnected
TCPDisconnect
TCPIsPutReady
TCPPut
TCPFlush
TCPIsGetReady
z
z
z
z
z
Class
TCPGet
TCPGetArray
TCPDiscard
TCPProcess
TCPTick
Slide
117
TCPIsPutReady(..)
TCPIsGetReady(..)
TCPPut(...)
TCPFlush(...)
TCPGet(...)
TCPDiscard(...)
ARPIsResolved(..)
TCPConnect(...)
TCPDisconnect(...)
TCPIsConnected(..)
TCPIsConnected(..)
Class
Slide
118
TCPDisconnect(...)
TCPIsConnected(..)
TCPIsConnected(..)
TCPIsPutReady(..)
TCPIsGetReady(..)
TCPPut(...)
TCPFlush(...)
TCPGet(...)
TCPDiscard(...)
Class
Slide
119
Connectionless Protocol
- No built-in error recovery
z
z
No checksum calculation
Function calls to:
- MAC
- IP
Class
Slide
120
UDP Functions
z
z
z
z
z
z
z
z
z
z
UDPInit
UDPOpen
UDPClose
UDPIsPutReady
UDPPut
UDPFlush
UDPIsGetReady
UDPGet
UDPDiscard
UDPProcess
Class
Slide
121
UDP Steps
UDPOpen(...)
UDPIsPutReady(..)
UDPIsGetReady(..)
UDPPut(...)
UDPFlush(...)
UDPGet(...)
UDPDiscard(...)
UDPClose(...)
Class
Slide
122
Security
z
z
z
z
z
No built-in security
Application must provide reasonable
authentication and encryption
Avoid blind remote control
Restrict critical commands
PIC microcontroller is not same as PC
- Limit no. of users to designed limit
- No built-in solution for Denial Of Service
Class
Slide
123
Class
Slide
124
Class
Slide
125
Class
Slide
126
Class
Slide
127
**Microchip
Microchip TCP/IP Stack
Compile
-Time Options (Module
Compile-Time
Selection)
StackTsk.h
Stack Manager
TCP/UDP
TCP / UDP
MAX_SOCKETS
MAX_UDP_SOCKETS
ICMP
IP_GLEANING
ICMP
IP
ARPTask
IP_GLEANING
MAC
128
ARP
SLIP
SLIP
**Microchip
Microchip TCP/IP Stack
Compile
Time
Options
Compile-Time
MAX_HTTP_CONNECTIONS StackTsk.h
DHCP Custom
Stack Manager
TCP/UDP
TCP_NO_WAIT_FOR_ACK
STACK_CLIENT_MODE
MAX_ICMP_DATA_LEN ICMP
IP
ARPTask
STACK_CLIENT_MODE
MAC_TX_BUFFER_SIZE
MAC_TX_BUFFER_COUNT
MAC
129
ARP
SLIP
**Microchip
Microchip TCP/IP Stack
Compile
-Time Options
Compile-Time
TCP_NO_WAIT_FOR_ACK
Allows back
-to-back TCP packet
back-to-back
transfers (within a TCP window) while
waiting for ACK
Throughput increased TCP
Don
t care: HTTP
Dont
z
z
browser always
retries
ACK
Client
Server
130
**Microchip
Microchip TCP/IP Stack
Compile
-Time Options
Compile-Time
z
z
Server
Server and Client
TCPConnect
ARPResolve
ARPIsResolved
**Microchip
Microchip TCP/IP Stack
Software Structure
z
z
void main(void) {
while(1){
z
z
Tasks
z
z
// Initialization
Initialization
}
// Int service routines
ISRs
// Subroutines
Subroutines
132
**Microchip
Microchip TCP/IP Stack
z
z
z
z
z
z
z
z
z
MyInit();
StackInit();
TickInit();
HTTPInit();
dependent
MPFSInit();
FTPInit();
DHCPInit();
SNMPInit();
//
// Your
//
Initialization
app init
Required
// Application
133
**Microchip
Microchip TCP/IP Stack
while(1){
// Main infinite loop
MyTask();
// Your app task(s)
StackTask();
// Required
HTTPServer();
dependent
FTPServer();
DHCPServer();
SNMPServer();
z
z
z
}
134
// Application
**Microchip
Microchip TCP/IP Stack
TickUpdate();
HTTPExecCmd();
dependent
HTTPGetVar();
// Subroutines
// Required
// Callbacks app
135
**Stack
Stack Layers
HTTPGetVar
z
Client
Server
136
Class
Slide
137
Class
Slide
138
z
z
z
z
Class
Slide
139
Class
Slide
140
MPFS Image
z
Two types
- C data file for Program Memory
- bin file for external data EEPROM
z
z
z
z
z
PC utility mpfs.exe
All web pages in one directory
Image size must fit in available memory
CR LF stripped from *.htm files
Reserved block for application specific
data
Class
Slide
141
MPFS Utility
z
Class
Slide
142
MPFS Examples
z
Class
Slide
143
Lab #2
z
z
Class
Slide
144
Open HyperTerminal
File -> Properties
Connect using:
-
z
z
z
z
z
Select Configure
Use same options ->
Click OK
Click OK
Connect ->
Class
Slide
145
Select 7
2005 Microchip Technology Incorporated. All Rights Reserved.
Class
Slide
146
C:\Ethernet\LAB\webpages.bin
Class
Slide
147
Class
Slide
148
HTTP Servers
Class
Slide
149
HTTP Server
z
z
z
z
Class
Slide
150
HTTPInit
HTTPServer
- Performs HTTP Server tasks - Call
periodically
HTTPGetVar
- Callback to get dynamic variable value
HTTPExecCmd
- Callback to execute HTML form command
Class
Slide
151
Web content
z
z
Clickable graphics
Forms
Dynamic pages
z
z
z
z
152
File directory
z Location
z Length
z Attributes
z Pre-calculated TCP checksum
File
z HTTP header
z Data
153
Clickable graphics
<table><tr valign=middle>
<td><a href="switch2.htm"><img src="switchu.gif"></a></td>
<td><img src="ledoff.gif"></td>
</tr></table>
154
HTML forms
GET /thank.htm?name=Joe+Bloggs&addr=joe@home&
state=happy&send=Submit HTTP/1.0
155
@3
°C
becomes
23.5°C
@2:@1:@0
becomes
20:44:19
156
157
<form action='digout.egi'>
<table border=2><tr>
<td><input type=submit
name=out7 value=#></td>
<td><input type=submit
name=out6 value=#></td>
<td><input type=submit
name=out5 value=#></td>
</tr></table></form>
158
z
z
z
z
159
Navigation frame
z
z
160
161
Class
Slide
162
1. <table>
2. <tr><td><b><Results></b></td></tr>
3. <tr><td><Pot1:></td><td>%02</td></tr>
4. <tr><td><Pot2:></td><td>%03</td></tr>
5. <tr><td><Switch:></td><td>%04</td></tr>
...
%02
%03
%04
Class
Slide
163
Class
Slide
164
HTTPGetVar
z
Class
Slide
165
HTTPGetVar Example
z
z
z
z
z
z
z
z
z
z
Class
Slide
166
Multi-byte transfer
z
z
z
z
z
z
z
z
z
z
z
Class
Slide
167
Lab #3
z
Class
Slide
168
HTML Forms
z
Class
Slide
169
Form Example
z
z
z
z
z
z
z
z
z
P, %07
1. <FORM METHOD=GET
action=command.cgi>
2. <table>
3. <tr><td>Power Level:</td>
4. <td><input type=text size=2
maxlength=1 name=P value=%07></td></tr> ...
5. <tr><td><input type=submit name=B
value=Apply></td></tr> ...
B
Class
Slide
170
HTTPExecCmd
z
z
z
z
Class
Slide
171
HTTPExecCmd Example
z
z
z
z
z
z
z
z
z
z
z
Class
Slide
172
Default
- MAX_HTTP_ARGS = 5 (Includes action)
- MAX_HTML_CMD_LEN = 80
If limit is exceeded,
- Extra arguments are ignored
Class
Slide
173
Lab #4
z
Class
Slide
174
Custom Application
Class
Slide
175
Lab #5
z
Presenters board
- Collects information from each sensor
- Serves web page displaying all sensors info
Class
Slide
176
Lab #5
z
z
z
z
Class
Slide
177
UDP Process
UDPIsGetReady(..)
UDPPut(LATD5?1:0)
EXIT
YES
UDPPut(AN0String[x])
UDPGet(&UDPChar)
UDPDiscard()
UDPFlush(...)
NO
UDPIsPutReady()
EXIT
UDPChar == 0xAA
YES
YES
NO
YES
UDPChar == 0x55
LATD5 ^= 1;
NO
2005 Microchip Technology Incorporated. All Rights Reserved.
Class
Slide
178
Summary
z
z
z
z
Class
Slide
179
References
z
z
Class
Slide
180
MAC Functions
z
z
z
z
z
z
z
z
z
MACInit
MACIsTxReady
MACGetHeader
MACGet
MACGetArray
MACDiscardRx
MACPutHeader
MACPut
MACPutArray
z
z
z
z
z
z
z
z
Class
MACFlush
MACDiscardTx
MACSetRxBuffer
MACSetTxBuffer
MACReserveTxBuffer
MACGetFreeRxSize
MACGetRxBuffer
MACGetTxBuffer
Slide
181
IP Functions
z
z
z
z
z
z
z
IPIsTxReady
IPSetTxBuffer
IPPutHeader
IPPutArray
IPGetHeader
IPGetArray
IPSetRxBuffer
Class
Slide
182
Class
Slide
183
Network
Devices
Manager
Class
Slide
184
Class
Slide
185
Class
Slide
186
Q/A
.