显示标签为“ping”的博文。显示所有博文
显示标签为“ping”的博文。显示所有博文

2012年8月24日星期五

W5100E01-AVR是什麼?怎麼用?(四)(用戶手冊V1.0版)

W5100E01-AVR是为AVR开发者提供的W5100评估板。本文是W5100E01-AVR的用户手册,希望对大家有所帮助。今天我们接着昨天的博文继续介绍:
 
 
3.2.5.3. Ping响应程序
 
Ping响应程序是一个发送Ping请求给目的地的程序,使用ICMP协议的消息协议并利用ping_request()函数。
ping_request()函数通过与DOS命令提示符的Ping程序相近的形式创建。该函数在分析和处理选项后发送Ping请求给目的地。
 
域名和IP地址都可以用作Ping请求的目的地址。如果使用域名,域名会通过gethostbyname()函数或DNS服务器转换成IP地址,随着IP地址的改变,Ping请求随之发送。
 
当使用‘-a’选项使用IP地址时,域名可以通过gethostbyaddr()函数从DNS服务器获取,Ping请求会发送给该IP地址。当不适用‘-a’ 选项使用IP地址时,Ping请求发送给输入的IP地址,而不与DNS服务器建立连接。
gethostbyname(), gethostbyaddr()是DNS的相关函数,想了解更多,请参考3.2.6.6 DNS 客户。<图3.8> and <图3.9>显示的是处理ping_request()的程序。
 
<图3.8>描述了如何标记输入命令和选项,以及如何创建选项值,如何决定参数标志位的相关二进制码。
<图3.9>是基于相关选项调用ping()函数的,包含检测命令的有效性选项以及参数标志位的二进制的值选项。ping()函数发送Ping请求给信息给目的地,并处理从任意目的地接收到的ICMP消息。
<图3‑8: ping_request()函数>
 
<图3‑9: ping_request()函数——续>
 
让我们在进入Ping程序前简要的看一下Ping消息。
 
Ping消息在类型字段中具有‘0’(Ping请求)或‘8’(Ping请求) 的值。ICMP报文的代码字段可以分别被重新定义成2 Bytes的ID字段和2 Bytes的序列号字段,具有依赖于4 Bytes 的ICMP报文的0类型数据字段。ICMP报文的数据字段填充了Ping数据且用于Loopback 。
 
最后,Ping响应程序计算ICMP信息头以及校验字段为0的Ping数据的校验码,并用新的计算的值代替0校验字段。
<图3.10>是ICMP报文格式和Ping消息之间的关系图。
 
 
检测Ping请求的响应可以通过检测ID的值、序列号与ping数据域是否相同来处理。如果Ping响应没有在等待时间内返回,ping请求重新发送,这种情况下,Ping请求发送的序列号递增1。
当ping()函数发送Ping请求消息并检测到Ping响应消息后,ping()的内容就包括目的IP地址、Ping响应等待时间和Ping请求数目。分析Ping数据大小并处理接收到的Ping响应找到适合的参数。
<图3.11>是ping()函数的处理过程,<表3-21>是Ping消息作为数据类型的定义和使用,参见“inet/ping.h”。
 
 
PINGMSG的数据字段大小是‘PINGBUF_LEN’ Byte,定义PINGBUF_LEN为‘32’。但是,数据字段最大可到‘1472’,这是因为W5100发送的最大传输单元(MTU)是1480 bytes,代码总量、校验码ID和序列号字段大小是8 Bytes。如果我们从1480中减去8,我们就得到1472这个值,因此,字段大小为1472 bytes。
 
ping()函数的结果保存在数据类型定义中,如<表3-21>所示。
 
保存的Ping日志可以通过DisplayPingStatistics()函数在RS232终端输出,<图3.12>所示为DisplayPingStatistics()函数的程序流程。
 
每当从远端主机没有正确接收Ping响应校验码时,CheckSumErr字段加1。
如果没有接收到消息或从远端主机或网关接收到超时消息,Unreachable MSG字段和TimeExceedMSG字段加1。
当接收到未知消息时,UnknownMSG字段加1。
每当从ARP请求获取远端之际物理地址(MAC地址)没有ARP响应时,ARPErr字段加1。
每当ping()函数发送Ping请求时,PingRequest字段加1。
每当从远端主机接收到Ping请求的响应时,PingReply字段加1。
每当因为发送Ping请求后,没有在特定时间内收到远端主机的响应时,Loss字段加1。
 
<图3‑11:ping()函数>
 
<图3‑12:DisplayPingStatistics()函数>
 
正如前面所说的,Ping请求程序是使用运行在IP协议之上的ICMP协议的程序。如果在W5100上使用ICMP信道,如<图3.11>和<图3.13>所示,必须确定用来使用的IP协议,调用setIPProtocol(s, IPPROT_ICMP).后必须创建socket,创建socke过程中调用socket(s,SOCK_IPL_RAW,port,flag)时必须创建IP_RAW信道。如果关闭ICMP套接字,在调调用close(s)函数清除先前设置的ICMP标志位后,需要调用setIPProtocol(s, 0x00)。
 
 
3.2.6. 应用程序
 
这是一个使用W5100的网络应用程序,包括Loopback 程序、Web服务器和DHCP客户端,通过管理程序可以选择应用程序。
 
3.2.6.1 Loopback TCP服务器
 
将评估板的Loopback TCP服务器程序设置成服务器模式,测试电脑的AX1程序设置成客户模式。AX1尝试连接评估板,如果连接成功,AX1通过TCP信道传送数据流,评估板从AX1返回数据流,而不通过TCP信道。
 
Loopback TCP服务器程序使用Loopback _tcps()函数,<图3.14>所示为Loopback _tcps()函数的程序流程。
 
如果服务器socket处于SOCK_CLOSED装填,Loopback _tcps()函数通过SOCK_STREAM、监听端口号和选项标志位来创建TCP服务器socket去调用socket()函数,
不管socket先前的状态,socket()函数都可以将socket状态更改为SOCK_INIT而。如果服务器socket创建成功,它可以将服务器socket作为参数调用listen()函数后运行在TCP服务器模式下,listen()函数设置服务器socket为SOCK_LISTEN状态,并且保持这个状态直到接收到任意客户端的连接请求。
 
这样,当有任何客户尝试连接服务器socket时,服务器的socket状态就从SOCK_LISTEN变成SOCK_ESTABLISHED。这就是当客户端和服务器成功建立连接后,就可以在SOCK_ESTABLISHED状态下进行数据传输。
 
当处于SOCK_ESTABLISHED状态下,使用recv()函数和send()函数进行数据传输,数据传输在评估板(服务器端) and AX1(客户端)采用一对一方式进行传输。
 
当处于SOCK_ESTABLISHED状态下,如果客户请求关闭连接,服务器端socket状态就从SOCK_ESTABLISHED变成SOCK_CLOSE_WAIT。当处于SOCK_CLOSE_WAIT状态下,数据传输不可用,而且必须关闭服务器端socket。当处于SOCK_CLOSE_WAIT状态下,会调用disconnect()函数关闭socket,无论先前socket是什么状态,disconnect()函数都会将socket状态改为SOCK_CLOSED。
 
3.2.6.2. Loopback TCP客户端
 
在Loopback TCP客户端程序中,评估板在客户模式下运行,电脑测试程序运行在服务器模式下。评估板尝试连接作为服务器等待的AX1,如果成功建立连接,评估板会通过TCP信道接收数据流,然后,评估板会发送接收到的数据给AX1。
 
Loopback TCP客户端程序通过Loopback _tcpc()函数创建,<表3.15>是Loopback _tcpc()函数的流程图。
如果客户端socket处于SOCK_CLOSED状态下,Loopback _tcpc()函数通过参数SOCK_STREAM、任意端口和选项标志位调用socket()函数去创建TCP客户端socket。
这里在创建socket时,get_system_any_port()函数可以使用任意端口号,这是因为如果客户端使用同样的端口号尝试连接同一的服务器时,创建连接会失败。当socket创建成功后,就利用客户端的socket参数调用connect()函数连接AX1服务器。
connect()函数使socket进入SOCK_SYNSENT状态,并保持这个状态知道接收到服务器端的连接许可,如果连接成功,socket状态从SOCK_SYNSENT变成SOCK_ESTABLISHED。当处于SOCK_ESTABLISHED下,操作函数与之前的Loopback _tcps()函数是一样的。
 
这是本文的第四部分内容,后面的内容我们将会在今后的帖子中一一介绍,希望对大家有所帮助。
 
 
 
更多有關W5100的帖子請看這裡:
想瞭解更多有關W5100產品信息,請登錄中文網站及官方部落格:
 

2012年8月22日星期三

W5100E01-AVR是什麼?怎麼用?(二)(用戶手冊V1.0版)

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



2.4 评估板测试
评估板的固件可以分为管理程序和评估板测试应用程序,管理程序为评估板的运行执行系统配置,评估板测试应用程序为W5100的测试提供网络应用程序。

2.4.1. 管理程序
在手动重置评估板和给评估板通电的情况下,如果在7秒内从终端程序收到‘M’或‘m’字符,评估板就执行管理程序。这个程序设置W5100信道进行通信测试,并用DNS服务器执行某些Ping响应测试。

2.4.1.1网络配置
管理程序配置评估板的网络信息。如<图2-6>所示,当在终端程序选择‘1’时,就可以根据需要配置评估板的网络信息。默认评估板的网络信息如<表2-2>所示。
如果在管理程序中选择“网络配置”,菜单显示如<图2.7>,并且每一个功能在<表2-3>中都有描述。

2.4.1.2信道配置
它配置了可以在W5100的4个信道进行操作的应用,选择‘2 : Channel Config’,可以配置每一个信道,W5100默认的信道如<表2-4>所示。
如果在管理程序中选择了“Channel Config”,管理程序会显示如<图2.10>所示的菜单,每个菜单的功能如<表2-5>所示。
除了“DHCP 客户”,其他的应用类型都不能无视信道反复配置。<图2-11>是W5100作为“TCP Loopback客户端”配置第2信道的演示。
当只输入回车键<(ENTER)>,而不输入IP地址或者端口号时,系统会自动使用默认值。<表2-7>所示为每一个应用程序的默认值。

2.4.1.3 Ping应用程序测试
Ping应用程序测试是用来评估W5100的IP原始信道的程序,发送Ping请求给特定主机并接收响应。这个程序基于命令提示符下的ping命令,当选择‘3’时,执行结果如<图2.6:执行管理程序>所示。
要终止Ping应用类型,在“PING>”提示下输入“exit”。

2.4.2. 评估板测试应用程序

2.4.2.1. DHCP客户端
DHCP客户端应用程序是从DHCP服务器为评估板动态分配网络信息的应用程序。为了测试DHCP客户,首先,必须使用[Manager>>Channel Config>>0th Channel]菜单将W5100的第一信道应用类型设置成“DHCP Client”,参见2.4.1.2节。

<图2-14>显示了DHCP客户端成功获取网络信息。注意如果DHCP服务器端不存在或者不能从DHCP服务器端获取网络信息,DHCP客户端会设置成默认的网络信息。

2.4.2.2. Loopback TCP服务器
Loopback TCP服务器应用程序是通过TCP信道将“AX1”程序和测试电脑相连,并来回传送任意文件或数据包的应用程序。首先,使用评估板的[Manager>>Channel Config]菜单将任意信道设置成“Loopback TCP Server”应用类型来测试Loopback TCP服务器。当设定评估板的应用类型为“Loopback TCP Server”时,你可以设置任何值的监听端口,这里默认为5000,参见2.4.1.2节。
完成评估板的设置后,在测试电脑上运行“AX1”并尝试连接设置的IP地址。当评估板和“AX1”成功连接后,就可以相互传送数据,参见“AX1 Manual Vx.x.pdf ”。

2.4.2.3. Loopback TCP客户端
Loopback TCP客户应用程序是通过TCP信道连接“AX1”和测试电脑,并发送和接收任意文件和包的一个应用程序。在服务器上运行“AX1”后,使用评估板的[Manager>>Channel Config]菜单将W5100的任意信道设置为“Loopback TCP Client”应用类型。当设置评估板为“Loopback TCP Client” 应用类型,设置服务器的IP为测试电脑的IP,设置服务器端口为等待服务器端口号(3000),参见2.4.1.2节。
完成评估板设置后,退出管理程序,运行EVB测试应用程序。如果评估板成功连接到“AX1”,来回传输期望的数据,参见“AX1 Manual Vx.x.pdf ” 。

2.4.2.4. Loopback UDP
Loopback UDP应用程序是通过UDP信道连接“AX1”和测试电脑,并来回传送任意文件或数据包的应用程序。首先,为了测试Loopback UDP,使用评估板的[Manager>>Channel Config]菜单,设置W5100的任意信道为“Loopback UDP”应用类型。
在设置“Loopback UDP”应用类型时,设置端口号为任意值,这里我们设为3000,参见2.4.1.2节。
在完成评估板的配置后,使用与UDP相关的菜单或图标,利用IP地址和UDP源端口来回传送期望的数据,参见“AX1 Manual Vx.x.pdf”。

2.4.2.5. Web服务器
Web服务器应用程序通过连接浏览器的HTTP信道发送和接收网页和评估板控制数据。对于Web服务器测试,通过评估板的[Manager>>Channel Config]菜单设置W5100的任意信道为“Web Server”应用类型。
当设置评估板为“Web Server”应用类型,设置HTTP端口为任意值。这里默认为80,参见2.4.1.2节。
完成评估板设置后,在测试电脑上打开浏览器,在评估板的地址栏输入地址(http://192.168.0.2/),连接评估板。
如果浏览器成功连接到评估板的端口,显示的网页如<图2-19>所示。如果没有显示该网页,使用浏览器的“刷新”功能刷新屏幕。

如果单击<图2-19>的[Control]按钮,就可以设置网络信息或显示可以被LEDs(D3,D4)打开或关闭的网页,并在LCD上显示文本信息。


2.5 故障排除指南

2.5.1. Ping
当你Ping指令不能连接评估板时。
第1步:检查你是否用双绞线电缆正确连接测试电脑和评估板。
第2步:检查JP3的接口跳线是否正确连接。
第3步:检查你是否正确设置了电脑的网络环境(IP地址、默认网关、子网掩码)。 如果没有,你需要作如下配置。
--IP地址:192.168.0.3
--默认网关:192.168.0.1
--子网掩码:255.255.255.0
第4步:检查MAGJACK(从后视图到左LED)的液晶屏是否打开,如果关闭的话,检查双绞线电缆是否正常工作。

2.5.2. 其他
在建立连接后,若串口终端屏幕通电后仍然无法显示
第1步:检查串口电缆的连接状态。
第2步:检查电脑的COM端口和终端是否一致。
第3步:检查终端的波特率是否为57600。




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



                                                   WIZnet產品W5100晶片配置網路服務器視頻教程
想瞭解更多有關W5100產品信息,請登錄中文網站及官方博客:

2012年6月8日星期五

iMCU7100EVB用戶指南(一)


大家好,接下来的两天我们会为大家分享WIZnet公司的iMCU7100EVB用户指南。今天为大家分享第一部分~

1. 概述

iMCU7100EVB是测试W7100A的功能和性能的评估板,在本文档中,将会描述基本的ping测试和TCP服务器测试。

1.1 简介

iMCU7100EVB是用来测试嵌入式以太网单片机-W7100A的所有功能的评估板。iMCU7100EVB使用RS-232接口和LAN接口就可以很轻松的建立串口转以太网的通信环境。W7100A也可以使用所支持的字符LCD和其他增加的接口来控制和测试W7100A。

以下列出了所有可以在WIZNET网站下載的W7100A应用程序笔记
  TCP服务器,客户端
  UDP
  DHCP
  DNS客户端
  DDNS
  HTTP 服务器,客户端
  Telnet
  串行到以太网服务器,客户端, UDP
  IPRAW
  MACRAW
  UART
  Timer
  LCD
  I2C

1.2 规格

<表 1.1>iMCU7100EVB所含的项目清单
项目 详细说明 备注
MCU
嵌入式以太网单片机-W7100A
与8051兼容
存储器
64KBytes 数据存储器 (RAM)
64KBytes 代码存储器 (ROM)
255Bytes 数据闪存
嵌入W7100A
串口
开发板上的一个RS-232C(DB9接口)

以太网
开发板上的MAC-Jack( 变压器 + RJ-45 接口)

LCD
16字符 * 2行字符 LCD

LED
3个通用 LED
8个网络状态 LED

按钮
1个复位开关

调试器
开发板上的调试器SOCKET

扩展接口
MCU扩展接口
-       32引脚 (8引脚 * 4) 间距 2.54mm针脚孔
-       14引脚 (7引脚 * 2) 间距2.54mm 针脚孔
-       32引脚 (8引脚 * 4) 间距 2.00mm针脚孔
-       14引脚 (7引脚 * 2) 间距 2.00mm针脚孔
虚拟孔
-       间距167引脚 间距2.54mm虚拟孔
-       间距236引脚 间距 2.00mm虚拟孔

电源
DC 5V / 2A  电源适配器
内置的
PCB
尺寸:120mm * 80mm

2. 启动

2.1 上电

将字符LCD、网线(UTP电缆)、RS-232和电源线连接到iMCU7100EVB上。
<图. 2.1> iMCU7100EVB
给iMCU7100EVB开发板上电,并做下列的检查。
1.     检查电源灯(D13)是否亮。
2.     检查字符LCD是否显示“iMCU7100 EVB”和“192.168.001.002”。
如果以上两项均正常,那么表示iMCU7100EVB开发板正常工作。

2.2 ping测试

在测试电脑上运行命令提示符,执行ping命令来测试连接电脑的IP。发送ICMP ping请求并检查电脑的ICMP ping响应。注意:测试电脑和iMCU7100EVB开发板需要设置在同一个网段下。

1.     确认测试电脑的网络信息如下
IP地址 : 192.168.1.xxx
默认网关 : 192.168.1.1
子网掩码 : 255.255.255.0

2.     执行ping命令如下
“C:\>ping 192.168.1.2”
<图 2.2>ping测试

2.3 程序设计

iMCU7100EVB使用WizISP程序或W7100A编译器编译二进制映像(固件)。想了解更多,请参考WizISP程序用户指南和W7100A编译器用户指南。

2.4 TCP服务器演示

TCP服务器应用说明文档和示例代码包含在光盘中,应用说明也可以从WIZnet的主页(http://www.wiznettechnology.cn/)下载。用户可以使用示例代码简单地测试一下TCP 串行回路测试(loopback) 服务器实例,测试过程如下所示。

1.      确认测试环境。
 使用网线将iMCUW7100EVB直接连接到电脑上
  使用串行电缆将iMCUW7100EVB直接连接到电脑上
  将5V电源适配器连接到电脑上

2.      确认测试电脑的网络信息如下。
    IP地址 : 192.168.0.2
    默认网关 : 192.168.0.1
    子网掩码 : 255.255.255.0

3.      执行串口终端机程序后 (例如: 超级终端机(HyperTerminal) ),
属性设置如下。
<表 2.1>终端程序设置
属性
设定值
Bits Per second (波特率) 115200 bps
Data Bits(数据位) 8 Bits
Stop Bits(停止位) 1 Bits
Parity (奇偶校验位) No
Flow Control(流控制) None
串口终端程序会使用串行信息列出所有的TCP服务器的信息。为了检查串行信息,必须根据图2.3超级终端(HyperTerminal)的连接信息来设定。因为根据使用者的不同设定,请检查COM端口是否相同。
<图 2.3>超级终端机(HyperTerminal)程序设置
4.      给 iMCU7100EVB通电并检查电源LED。
5.      运行AX1,并按如下进行操作,如图 2.4所示。(更多详细信息,请参见AX1用户手册)
<图 2.4>执行 AX1
当iMCU7100A-EVB正在运行TCP服务器模式时, 从AX1程序中选择 “TCP连接(TCP connect)” 来连接开发板。输入iMCU7100A-EVB 的IP地址和端口号;之后‘connected’信息就会出现,这代表已连接到TCP服务器. 如果点击了发送键‘send’, 就开始loopback测试。用户可自行设定数据大小基值来进行loopback测试。
6.      loopback服务器演示结果
a)      loopback服务器演示結果
<图 2.5>loopback服务器演示结果
<图 2.6> loopback服务器演示结果(AX1)
如果loopback测试成功,从AX1发送到iMCU7100A-EVB 的信息会发送回AX1.用户可以自行使用连续的loopback测试。