EVB-PIC24 WIZnet, EVB-PIC24 Datasheet - Page 82

no-image

EVB-PIC24

Manufacturer Part Number
EVB-PIC24
Description
Development Boards & Kits - PIC / DSPIC W3150A+EVAL BOARD BASED ON PIC24
Manufacturer
WIZnet
Datasheet

Specifications of EVB-PIC24

Rohs
yes
Product
Development Kits
Interface Type
RS-232
Data Bus Width
16 bit
Dimensions
50 mm x 40 mm
check_DHCP_state() processes correspondingly with DHCP client state through the series of processes
shown in <Fig 3.31>. If we take a look at DHCP_STATE_LEASED state at check_DHCP_state(), the Lease
Time received from DHCP server is finite, in case that half of the Lease Time passed, it sends
DHCP_REQEUST Message to DHCP Server and changes it as DHCP_STATE_REREQUEST after it backs
up the source IP. As it continuously transmits DHCP_REQUEST to the server, network information is
maintained.
recvfrom(&pRIPMSG,svr_addr,&svr_port)
pRIPMSG->chaddr != SRC_MAC_ADDR
u_char svr_addr[6];
u_short svr_port;
pRIPMSG = (u_char*) RX_BUF
u_int len, i=1;
u_char* p, *e;
u_char type, opt_len;
Declare & Initialize Local Variables
DHCP_SIP = pRIPMSG->siaddr
GET_SIP = pRIPMSG->yiaddr
svr_port== DHCP_SERVER_PORT
Receive a DHCP Message
type = 0
p = &(pRIPMSG->op)
p += 240
e = p + (len-240)
dhcpServerIdentifier
dhcpMessageType
parseDHCPMSG()
*p++==endOption
dhcpIPLeaseTime
routerOnSunbnet
p += opt_len
subnetMask
padOption
p < e
<Fig 3.32: parse_DHCPMSG() & check_DHCP_Timeout()>
dns
A
© Copyright 2006 WIZnet Co., Inc. All rights reserved.
Y
N
Y
N
N
N
N
N
N
N
N
Y
N
Y
Y
Y
Y
Y
Y
Y
N
opt_len = *p++
opt_len = *p++
opt_len = *p++
opt_len = *p++
opt_len = *p++
opt_len = *p++
opt_len = 0
RETURN type
RETURN 0
Y
dhcp_time=0
next_time=my_time+DHCP_WAIT_TIME
retry_count++
retry_count < MAX_DHCP_RETRY
type = *p++
STATE_DHCP_REREQUEST
memcpy(GET_SN_MASK,p,4)
memcpy(DHCP_SIP,p,4)
STATE_DHCP_DISCOVER
memcpy(GET_GW_IP,p,4)
check_DHCP_Timeout()
STATE_DHCP_REQUEST
lease_time = *(u_long*)p
memcpy(GET_DNS_IP,p,4)
A
Set GET_SN_MASK
Set DHCP_SIP
Set Lease Time
Set GET_GW_IP
Set GET_DNS_IP
dhcp_time
next_time
dhcp_state
N
END
N
N
==
<
Y
Y
Broadcast DHCP_DISCOVER
N
send_DHCP_DISCOVER()
Y
END
Y
Y
N
Broadcast DHCP_REQUEST
Broadcast DHCP_REQUEST
A
send_DHCP_REQUEST()
send_DHCP_REQUEST()
opt_len > 0
A
N
Broadcast DHCP_DISCOVER
Reset timeout & retry_count
STATE_DHCP_DISCOVER
send_DHCP_DISCOVER()
reset_DHCP_time()
DHCP_Timeout = 1
Y
dhcp_state =
p+=4
opt_len -=4
Skip Other DNS
END
72

Related parts for EVB-PIC24