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. 用Tomcat和Eclipse开发Servlet程序

    1. 安装eclipse 1). 在官网上直接下载Eclipse IDE for Java EE Developers,解压即可: 2. eclipse安装tomcat插件: 1). 在http:// ...

  2. SWT的GridLayout一些参数解释

    1. GridLayout类的说明GridLayout在包org.eclipse.swt.layout中,各参数意义如下:1. numColumns指定布局器中的列数2. horizontalSpac ...

  3. linux下mysql数据的导出和导入

    导出整个数据库中的全部数据 1.在linux命令行下输入: mysqldump -u userName -p dabaseName > fileName.sql fileName.sql最好加上 ...

  4. Vs2012于Linux应用程序开发(4):公共财产的定义

    在嵌入式开发流程.有些参数基本上不改变,比如编译主机IP,username,password等参数.我们用VS提供的属性管理器来保存这些參数. 打开属性管理器: watermark/2/text/aH ...

  5. 金色的 SQL注意事项(1)

    page(1-75) 最好是没有意义的主键字段,以方便未来的扩展. PS:主键,以后标书编码填错须要改的时候,关联表都须要跟着改.假设是一个无意义的自增字段是主键就无此原因. 主键最好不要设置为联合主 ...

  6. Python学习入门基础教程(learning Python)--3.3.3 Python逻辑关系表达式

    在if分支判断语句里的条件判断语句不一定就是一个表达式,可以是多个(布尔)表达式的组合关系运算,这里如何使用更多的关系表达式构建出一个比较复杂的条件判断呢?这里需要再了解一下逻辑运算的基础知识.逻辑关 ...

  7. JS创建 trim() 方法,此方法在IE7、IE8中不存在 需要自定义

    function trim(str){ //创建空格对象 var space = new String(" "); /* str = trimLeft(str,space); st ...

  8. python学习笔记之11:图像用户界面

    这里会介绍如何创建python程序的图像用户界面(GUI),也就是那些带有按钮和文本框的窗口等.目前支持python的所谓“GUI工具包”的有很多,本文简要介绍最成熟的跨平台pythonGUI工具包- ...

  9. Qt国际化相关类

    QTextCodec QTextCodec为文本编码之间提供转换. Qt用Unicode 来存储,绘制和操作字符串.在很多情况下你可能希望操作不同编码的数据.例如,大部分日本文档是以Shift-JIS ...

  10. Android自己的自动化测试Monkeyrunner和用法示例

    眼下android SDK在配有现成的测试工具monkey 和 monkeyrunner两. 也许我们不看一样的兄弟名字.但事实是完全跑了两个完全不同的工具.在测试的不同区域的应用程序.总体,monk ...