电子工程专辑互动社区>博客>网友博客>WIZnet微知纳特博客>W5100E01-AVR是什么?怎么用?(六)(用户手册V1.0版)
博客档案
呢称:WIZnet微知纳特???? 文章(730)???? 访问(291912)???? 评论(372)???? 投票(340)???? 订阅本博??
介绍: WIZnet是一家知名的私营半导体公司,主要产品是相关网络处理器,iMCU,基于TOE技术的全硬件TCP/IP协议栈芯片。
E-mail:wiznetbj@wiznettechnology.com
官方博客:http://blog.iwiznet.cn/
官方微博:http://weibo.com/wiznet2012
官方主页: http://www.iwiznet.cn(中文主页)
全部博文:
2015年??-?? 12月 10月 9月 8月 7月 6月 5月 4月 3月 2月 1月
查看全部博文
????博客首页

最新精彩博文(2014年3月)?
W5100E01-AVR是什么?怎么用?(六)(用户手册V1.0版)发布时间:2012-08-29 09:56:49 ? 推荐到论坛

推荐博文到论坛,
即刻奖励2积分!

?

W5100E01-AVR是为AVR开发者提供的W5100评估板。本文是W5100E01-AVR的用户手册,希望对大家有所帮助。今天我们接着前天的博文继续介绍:

第一部分在这里:W5100E01-AVR是什么?怎么用?(用户手册V1.0版)

http://blog.iwiznet.cn/?p=663

第二部分在这里:W5100E01-AVR是什么?怎么用?(二)(用户手册V1.0版)

http://blog.iwiznet.cn/?p=696

第三部分在这里:W5100E01-AVR是什么?怎么用?(三)(用户手册V1.0版)

http://blog.iwiznet.cn/?p=719

第四部分在这里:W5100E01-AVR是什么?怎么用?(四)(用户手册V1.0版)

http://blog.iwiznet.cn/?p=736

第五部分在这里:W5100E01-AVR是什么?怎么用?(五)(用户手册V1.0版)

http://blog.iwiznet.cn/?p=765

?

<表3-34>所示为在“inet/dhcp.h”中定义成枚举数据类型,显示了许多DHCP客户端程序普遍使用的Option代码段。

其他没有在<表3-34>定义的代码段在DHCP客户端程序中跳过。

DHCP客户端程序的操作在评估板’s main()函数执行,参见<图3.3>。

第一,在初始化阶段设置DHCP客户端使用的MAC地址,MAC地址时网络中唯一标识设备的地址,是网络通信中最基本的地址,用于在DHCP服务器中识别DHCP客户。对于DHCP客户端程序的MAC地址,使用评估板的MAC地址设置DHCP客户的全局变量SRC_MAC_ADDR。在设置完SRC_MAC_ADDR后,通过调用init_dhcp_client()函数可以对从DHCP服务器接收的IP进行收集时,注册两个函数,防止DHCP服务器端的IP地址更新。

当调用init_dhcp_client()函数时,如果每个函数未指定,DHCP客户端程序的set_DHCP_network()函数和proc_ip_conflict()函数分别被调用。

当更新网络信息或发生IP冲突,注册evb_soft_reset()函数来自动重置评估板。

第二,可以通过getIP_DHCPS()函数获取网络信息。

getIP_DHCPS()函数使用setIP(),setMACAddr()等函数初始化W5100,并初始化DHCP客户端程序的‘dhcp_state’的变量状态为‘STATE_DHCP_DISCOVER’。

初始化结束后,它调用send_DHCP_DISCOVER()函数发送DHCP DISCOVERY消息给DHCP服务器。

发送DHCP DISCOVERY消息后,通过调用reset_DHCP_time()函数初始化定时器为才DHCP服务器端接收的网络信息中的租约期限,并使用set_timer() 函数将‘DHCP定时器’时间间隔设为1秒。在初始化DHCP_Timeout为0后,等待接收从DHCP服务器端的DHCP信息,并将DHCP_Timeout定义为‘DHCP_WAIT_TIME’与‘MAX_DHCP_RETRY’定义的时间。在等待‘DHCP_WAIT_TIME & MAX_DHCP_RETRY’时间中,它会检测dhcp_state是否通过check_DHCP_state()函数改为STATE_DHCP_LEASED状态。

STATE_DHCP_LEASED状态代表网络信息,并意味着getIP_DHCP()函数成功执行。如果在等待接收‘DHCP_WAIT_TIME & MAX_DHCP_RETRY’的过程中没有从DHCP服务器获取网络信息,调用check_DHCP_state()函数将DHCP_Timeout改为1,。当DHCP_Timeout等于1时,getIP_DHCPS()函数在释放DHCP计时器后返回失败信息。

当无法从DHCP服务器获取网络信息时,评估板使用默认网络信息或先前获取的网络信息进行网络配置。

<表3-35>所示为定义的状态、超时和重新连接DHCP客户端。

在getIP_DHCP()函数中,‘DHCP_XID’是可变的,可用于设置DHCP信息的xid字段,如<图3.26:DHCP信息格式>所示。它的值必需是唯一的,而且在网络信息中规定的租约期限内它值不变。这里DHCP_XID与‘0x12345678’固定,但建议使用随机值。

当初始化W5100与DHCP服务器进行通信时,建议设置源IP地址为‘0.0.0.0.’你可以使用任何IP地址设置W5100的源IP地址,但是使用‘0.0.0.0’会更好,因为‘0.0.0.0’相当于IPv4的A类地址,它是一个无效的IP地址,实际上并不使用。因此,它不可能与其他网络产生冲突。

对于DHCP服务器发送的UDP广播封包,注意DHCP信息的MSB的Flag字段必须设置成1,参见<图3.19:DHCP信息格式>

<表3-36>是设置Flag字段的部分代码。

第三,从DHCP服务器获取的网络信息管理可以通过check_DHCP_state()函数执行,<图3.30>所示为在check_DHCP_state()中改变DHCP客户端状态的DHCP信息流。

check_DHCP_state()函数检测是否有从DHCP服务器传来DHCP信息。它接收和分析DHCP信息。根据DHCP信息的类型,如果DHCP信息可接收,他再DHCP客户端状态改变后进入下一个状态显示DHCP信息流,如<图3.30>所示。

check_DHCP_state()函数的每一个进程都对应一个DHCP客户端状态,如<图3.31>所示。如果我们简要看一下在check_DHCP_state()函数中的DHCP_STATE_LEASED状态,我们会发现从DHCP服务器接收的租约期限是有限的。因此,当经过租约期限的一半后,check_DHCP_state()函数就擦送DHCP_REQEUST消息给DHCP服务器,并在服务器返回IP地址后变成DHCP_STATE_REREQUEST状态。因为它持续给服务器发送DHCP_REQUEST消息,因此网络信息得以持续。

<图3?32: parse_DHCPMSG()函数与check_DHCP_Timeout()函数>

parseDHCPMSG()函数负责接收DHCP服务器的DHCP信息,管理DHCP信息及保存网络信息。当执行check_DHCP_state()函数时,如果在DHCP_WAIT_TIME时间内没有接收到DHCP信息,或接收到的不是期望的DHCP信息,就重新发送DHCP信息给DHCP服务器。如果重新发送DHCP信息的重复次数达到MAX_DHCP_RETRY,check_DHCP_state()函数就在它初始化所有变量尝试连接DHCP服务器和DHCP客户后,发送DHCP_DISCOVER消息给DHCP服务器。

?

这是本文的第六部分内容,后面的内容我们将会在今后的博文一一介绍,希望对大家有所帮助。欢迎大家的留言讨论。

?

更多有关W5100的博文请看这里:

http://blog.iwiznet.cn/?page_id=329

全硬件TCP/IP嵌入式以太网控制器——W5100E01-AVR?http://blog.iwiznet.cn/?p=432

开源硬件-开源思潮到了??http://blog.iwiznet.cn/?p=316

WIZnet员工Richard培训笔记: WIZnet核心技术和产品对比?http://blog.iwiznet.cn/?p=29

?

也可进入我们的官方网站或博客查看更多。

如果您对WIZnet的产品或是技术感兴趣,请随时与我们联系。

可以直接留言或登录WIZnet官方网站:http://www.iwiznet.cn

公司微博是:?http://weibo.com/wiznet2012

公司博客是:http://blog.iwiznet.cn/

标签:?? it?? wiznet?? w5100e01-avr?? dhcp客户端?? w5100评估板?? option代码段??
有[ 0 ]名读者喜欢此文 ????
阅读(335)?? 评论(0)?? [最后更新:2012-08-29 09:56:49]
收藏??I?? 打印??I?? 推荐到我的小组??I?? 转发到我的博客 (0)
对不起,您还没有登录,请先登录注册


新浪微博关注
有 [ 0 ] 名读者发表评论 - W5100E01-AVR是什么?怎么用?(六)(用户手册V1.0版)
?
我来评论 - W5100E01-AVR是什么?怎么用?(六)(用户手册V1.0版)
您的昵称: 美国的游客 ?????? (您将以游客身份发表,请登录?|?注册 )
您的评论:
?
你还可以输入1000
分享到 新浪微博?? qq空间?? qq微博?? 人人网?? 百度搜藏??
验证码:
? ?
转发到我的博客
评论?@WIZnet?的“W5100E01-AVR是什么?怎么用?(六)(用户手册V1.0版)”
W5100E01-AVR是为AVR开发者提供的W5100评估板。本文是W5100E01-AVR的用户手册,希望对大家有所帮助。今天我们接着前天的博文继续介绍:第一部分在这里:W5100E01-AVR是什么?怎么用?(用户手册V1.0版)http://blog.iwiznet.cn/?p=663第二部分在这里:W5100E01-AVR是什么?怎么用?(二)(用户手册V1.0版)http://blog
你还可以输入20000
同时评论给?WIZnet微知纳特
????
快速回复
?
你还可以输入1000
????
引用回复
引用评论?
?
你还可以输入1000
????
最新评论
热门标签
返回博客首页
有问题请反馈