W5500EVB是WIZnet为了方便用户更好了解、使用W5500这款网络芯片所开发的评估板,该板採用了
STM32F103RCT6+W5500
的设计。基于 ARM
的 Cortex-M3
平台。那么在实现网络通信的过程中,TCP通信模式为最经常使用,本教程就先为您介绍一下TCP Client模式是如何成功实现的。

一、程序烧录

1. 程序改动

打开IAR Embedded Workbench软件快捷方式,打开TCP Client\app.eww文件。

然后在main.c函数中改动例如以下图1所看到的的两个IP地址,而且确保调试PC的IP地址与改动内容在同一个网段内,否则无法建立连接。当中绿色框内主要设置PC的IP地址,红色框内主要设置W5500-EVB的IP地址。

attachment_id=6472" rel="attachment wp-att-6472" style="margin:0px; padding:0px; border:0px; font-family:inherit; font-size:undefined; font-style:inherit; font-variant:inherit; font-weight:inherit; line-height:inherit; vertical-align:baseline; color:rgb(33,117,155); text-decoration:none">

图 1 编译界面

改动正确以后,点击project\make 或者按F7快捷键又一次编译文件。

2. 设置烧录工具

Flash loader Demonstrator 用于为W5500-EVB烧录程序,安装软件会出现如图2所看到的窗体。当mini-USB连接到PC的USB设备时,设备管理器会正确安装USB转串口驱动,Port Name 口会自己主动识别到相应的COM口。

3. 程序下载

如图3所看到的,红色框中。SW7是BOOT0按键,SW6是RESET按键。

按下按键SW7不松开。同一时候点击SW6重新启动EVB板后,松开SW7。进入程序下载模式。

在Flash loader Demonstrator中点击下一步,进入如图4所看到的界面;继续点击下一步出

attachment_id=6473" rel="attachment wp-att-6473" style="margin:0px; padding:0px; border:0px; font-family:inherit; font-size:undefined; font-style:inherit; font-variant:inherit; font-weight:inherit; line-height:inherit; vertical-align:baseline; color:rgb(33,117,155); text-decoration:none">

图 2 烧录工具界面

图3  W5500-EVB实物图

现如图5所看到的界面。

图 4                              图5

再次点击下一步进入目标文件烧录界面,如图6所看到的。

图6  目标文件烧录界面

蓝色框内选择TCP Client\Debug\Exe\app.bin文件,红色框内选择Global Eras全然擦除,设置完毕后点击下一步開始下载。如图7所看到的。

图7 程序下载过程界面

二、測试链接

1. 设置PC为静态IP

打开网络连接,点击本地连接选择属性。出现如图8所看到的设置界面。设置完毕后点击确定。

图8 PC静态IP设置

2. 通过hercules连接測试

用网线把PC和W5500EVB连接,打开hercules软件,选择正确的COM口打开串口,按一下SW6复位按键,会显示W5500EVB设置好的信息如图9所看到的。

图 9 hercules开启界面

然后点击TCP Server,在Port口输入6001(6001在主程序),点击Listen,就能够进行传输数据測试,測试效果如图10所看到的。在蓝色框中任意输入数字或者字符。点击send,就会看到红色框内有数据接收到。说明连接成功。

attachment_id=6480" rel="attachment wp-att-6480" style="margin:0px; padding:0px; border:0px; font-family:inherit; font-size:undefined; font-style:inherit; font-variant:inherit; font-weight:inherit; line-height:inherit; vertical-align:baseline; color:rgb(33,117,155); text-decoration:none">

图 10 数据收发測试

程序大致流程例如以下:

1. 初始化,包含系统时钟、中断、串口、GPIOport、Systick时、eeprom等

2. 重新启动W5500

3. 系统设置,包含IP地址、网关、子网掩码、MAC地址等

4. 连接模式选择(通过switch选择语句实现)

A .推断Socket状态

B. 假设Socket关闭。打开一个port

C. Socket初始化,建立连接

D. 假设连接成功。进行数据收发

模式选择主要通过下面函数以及硬件SPI模式的基本函数来实现。

uint8 getSn_SR(SOCKET s)

{

return IINCHIP_READ(Sn_SR(s));

}

uint8 IINCHIP_READ(uint32 addrbsb)

{

uint8 data = 0;

IINCHIP_ISR_DISABLE();                        // Interrupt Service Routine Disable

IINCHIP_CSoff();                              // CS=0, SPI start

IINCHIP_SpiSendData( (addrbsb & 0x00FF0000)>>16);// Address byte 1

IINCHIP_SpiSendData( (addrbsb & 0x0000FF00)>> 8);// Address byte 2

IINCHIP_SpiSendData( (addrbsb & 0x000000F8))    ;// Data read command and Read data length 1

data = IINCHIP_SpiSendData(0×00);             // Data read (read 1byte data)

IINCHIP_CSon();                               // CS=1,  SPI end

IINCHIP_ISR_ENABLE();                         // Interrupt Service Routine Enable

return data;    }

与我们很多其它交流:

WIZnet中文官方站点: http://www.iwiznet.cn

WIZnet企业官方微博:http://weibo.com/wiznet2012

WIZnet-Makerspace博物馆:http://wiznet.makerspace.com


W5500EVB TCP Client模式设置说明的更多相关文章

  1. 嵌入式以太网模块的TCP Client模式说明

    嵌入式以太网模块采用TTL电平串口,支持TCP Server,TCP Client,UDP Slave,UDP Master,TCP-ZSD,UDP-ZSD多种通信协议,TCP服务器模式支持多连接,可 ...

  2. W5500EVB TCP Server演示

    之前给大家展示了p=6471" style="margin:0px; padding:0px; border:0px; font-family:inherit; font-size ...

  3. Spark代码中设置appName在client模式和cluster模式中不一样问题

    问题 Spark应用名在使用yarn-cluster模式提交时不生效,在使用yarn-client模式提交时生效,如图1所示,第一个应用是使用yarn-client模式提交的,正确显示我们代码里设置的 ...

  4. WCF学习之旅—TCP双工模式(二十一)

    WCF学习之旅—请求与答复模式和单向模式(十九) WCF学习之旅—HTTP双工模式(二十) 五.TCP双工模式 上一篇文章中我们学习了HTTP的双工模式,我们今天就学习一下TCP的双工模式. 在一个基 ...

  5. Ftp主动模式和被动模式以及java连接ftp模式设置

    Ftp主动模式和被动模式以及java连接ftp模式设置 https://www.cnblogs.com/huhaoshida/p/5412615.html (1) PORT(主动模式) PORT中文称 ...

  6. 开源基于asio的网络通信框架asio2,支持TCP,UDP,HTTP,RPC,SSL,跨平台,支持可靠UDP,支持TCP自动拆包,TCP数据报模式等

    开源基于asio的网络通信框架asio2,支持TCP,UDP,HTTP,RPC,SSL,跨平台,支持可靠UDP,支持TCP自动拆包,TCP数据报模式等 C++开发网络通信程序时用asio是个不错的选择 ...

  7. ESP8266开发之旅 网络篇⑦ TCP Server & TCP Client

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  8. NetMQ(ZeroMQ)Client => Server => Client 模式的实现

    ØMQ (也拼写作ZeroMQ,0MQ或ZMQ)是一个为可伸缩的分布式或并发应用程序设计的高性能异步消息库.它提供一个消息队列, 但是与面向消息的中间件不同,ZeroMQ的运行不需要专门的消息代理(m ...

  9. (转)lwip TCP client & FreeRTOS 打开TCP 的 保活机制 LWIP_TCP_KEEPALIVE==1

    参考大神教程:http://blog.sina.com.cn/s/blog_62a85b950101aw8x.html   老衲五木 :http://blog.sina.com.cn/s/blog_6 ...

随机推荐

  1. 阿尔贝我给我加i觉

    http://www.huihui.cn/share/8192186       http://www.huihui.cn/share/8192178       http://www.huihui. ...

  2. Hadoop里的Partitioner

    人们对于Mapreduce程序刚開始时都觉得仅仅须要一个reduce就够了. 毕竟,在你处理数据之前一个reducer已经把数据都分好类了,有谁不喜欢分好类的数据呢. 可是这样我们就忽略了并行计算的优 ...

  3. Linux系统时间和硬件时间设置

    在Linux中有硬件时钟与系统时钟两种时钟.硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟.系统时钟则是指kernel中的时钟.所有Linux相关指令与函数都是读取系统时钟的设定 ...

  4. 屌丝程序猿赚钱之道之taobao 2

    续上篇,之前写的案例,都是比較0基础的. 案例4:  代写情书.软文.论文等等. 这是我一个同学的真实故事.     我隔壁寝室的小王平时没事就爱谢谢博客.逛逛论坛.大二的时候接触了威客网,開始在网上 ...

  5. 关于LIST.Select().ToList()慢的问题

    var sendlist = emailList.Select(email => new MailMessage { MailServer = SMTPServer, UserName = Se ...

  6. codeforces293E (树上点分治+树状数组)

    和poj1747相比起来,只不过是限制条件多了一维. 而多了这一维,所以需要用树状数组来维护,从而快速得到答案. 因为没注意传进树状数组函数的参数可能是<=0的,导致超时了好久. #pragma ...

  7. 集合中Set_List必须覆盖 hashCode()与 equals()

    集合中Set_List必须覆盖 hashCode()与 equals() @Override public int hashCode() { System.out.println("==== ...

  8. windows下cocos2dx3.0开发环境及Android编译环境搭建

    cocos2dx更新到了3.x版本号,自己一直没有换,如今开发组要求统一换版本号,我就把搭建好开发环境的过程记录下来. 一.Windowns下开发环境搭建 1.  所需工具         1)coc ...

  9. hdu1869六度分离,spfa实现求最短路

    就是给一个图.假设随意两点之间的距离都不超过7则输出Yes,否则 输出No. 因为之前没写过spfa,无聊的试了一下. 大概说下我对spfa实现的理解. 因为它是bellmanford的优化. 所以之 ...

  10. Javascript 优化

    Javascript 优化 作者:@gzdaijie本文为作者原创,转载请注明出处:http://www.cnblogs.com/gzdaijie/p/5324489.html 目录 1.全局变量污染 ...