tag 标签: w5500evb

相关博文
  • 热度 24
    2014-10-28 10:38
    1456 次阅读|
    0 个评论
    之前的博文中已经介绍过W5500EVB 在TCP模式下的两种(Server及Client)数据传输的实现过程,那么传输控制协议中,UDP也是非常常用的,这种无连接的协议在更多场合为用户提供了便捷,比如发电子邮件,QQ聊天发收消息等…好,那今天就学习一下,UDP模式在W5500EVB上的简单实现。 一 实验硬件及其连接 二 UDP实验相关知识 W5500是一款全硬件TCP/IP嵌入式以太网控制器,为嵌入式系统提供了更加简易的互联网连接方案。W5500集成了TCP/IP协议栈,10/100M以太网数据链路层(MAC)及物理层(PHY),用户无需特别关注TCP 和 UDP的实现过程,只需最好相应配置和查询工作即可。下面主要讲解TCP和UDP区别,供参考 1 基于连接与无连接 TCP—传输控制协议提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。 每个数据包的传输过程是:先建立链路、数据传输、然后清除链路。数据包不包含目的地址。受端和发端不但顺序一致,而且内容相同。它的可靠性高。 UDP—用户数据报协议是面向无连接的,每个数据包都有完整的源、目的地址及分组编号,各自在网络中独立传输,传输中不管其顺序,数据到达收端后再进行排序组装,遇有丢失、差错和失序等情况,通过请求重发来解决。它的效率比较高,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。 2、对系统资源的要求(TCP较多,UDP少) 3、UDP程序结构较简单 4、流模式与数据报模式 5、TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证 6、TCP是面可靠的字节流服务 ,UDP 并不提供对 IP协议的可靠机制、流控制以及错误恢复功能等 下图为TCP 和UDP应用 三 关键程序介绍 3.1编译工具为IAR5.4 3.2 1-5 UDP实验例程实现功能: 以UDP模式不断向 目标 IP地址 和端口 发送数据 test:ecountr,同时若收到 目标IP发来信息,将信息copy回复。本例中用网线直接和PC机相连接。PC机ip作为 目标ip ,注意PC机的IP与EVB IP处于同一网段内。 3.3 实验函数流程: Step 1 :初始化STM32时钟 GPIO USART 等 Step2: 初始化SPI 和W5500 Step3: 配置MAC地址 本机IP地址 子网掩码 默认网关等信息,配置完后再读取以上信息,并打印到串口 Step4:初始化8 个socket Step5 :实时读取socket 0状态,如果是socket 0是关闭的,则打开socket 0 作为UDP端口。如果读取 socket 0为UDP模式则向 目标 IP地址 和端口 发送数据 test:ecountr,同时若收到 目标IP发来信息,将信息copy回复。 3.4 部分子程序讲解 uint8 getSn_SR(SOCKET s)//获取SOCKET s状态 { return IINCHIP_READ(Sn_SR(s)); } /*W5500 SPI 通信协议的实现 W5500 SPI数据帧 有三种 依次为数据段 控制段 和数据段 */ uint8 IINCHIP_READ(uint32 addrbsb) { uint8 data = 0; IINCHIP_ISR_DISABLE();    //关闭中断 IINCHIP_CSoff();       // CS=0, SPI使能片选 IINCHIP_SpiSendData( (addrbsb 0x00FF0000)16);// 写入地址段高8位 Address byte 1 IINCHIP_SpiSendData( (addrbsb 0x0000FF00) 8);// 写入地址段低8位Address byte 2 IINCHIP_SpiSendData( (addrbsb 0x000000F8))    ;// 以读模式写入控制段 data = IINCHIP_SpiSendData(0×00);  // 写入数据段 /*SPI主从接口相当于一个循环串行移位寄存器,主机(STM32)发送数据 0×00,从机(W5500)就会接手0×00,并移数据到主机当中,该函数返回值就是读的数据*/ IINCHIP_CSon();      // CS=1,  SPI end  失能片选 IINCHIP_ISR_ENABLE();       // 打开关中断 return data; } Sn_SR(s)函数原型为  (0×000308 + (ch5)) 为目的是获取socket s的状态寄存器地址,类似函数还有很多,主要是获取寄存器绝对地址 其中0×0003为socket n的状态寄存器 16位偏移地址,就是SPI通信的地址段 08 + (ch5) 为控制段,指出偏移地址的归属,读写模式和 SPI工作模式 ,08 = 00001000 SPI 控制段: 继续阅读:http://www.iwiznet.cn/blog/?p=6519
  • 热度 13
    2014-10-28 10:33
    1168 次阅读|
    0 个评论
    之前的博文中已经介绍过W5500EVB 在TCP模式下的两种(Server及Client)数据传输的实现过程,那么传输控制协议中,UDP也是非常常用的,这种无连接的协议在更多场合为用户提供了便捷,比如发电子邮件,QQ聊天发收消息等…好,那今天就学习一下,UDP模式在W5500EVB上的简单实现。 一 实验硬件及其连接 二 UDP实验相关知识 W5500是一款全硬件TCP/IP嵌入式以太网控制器,为嵌入式系统提供了更加简易的互联网连接方案。W5500集成了TCP/IP协议栈,10/100M以太网数据链路层(MAC)及物理层(PHY),用户无需特别关注TCP 和 UDP的实现过程,只需最好相应配置和查询工作即可。下面主要讲解TCP和UDP区别,供参考 1 基于连接与无连接 TCP—传输控制协议提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。 每个数据包的传输过程是:先建立链路、数据传输、然后清除链路。数据包不包含目的地址。受端和发端不但顺序一致,而且内容相同。它的可靠性高。 UDP—用户数据报协议是面向无连接的,每个数据包都有完整的源、目的地址及分组编号,各自在网络中独立传输,传输中不管其顺序,数据到达收端后再进行排序组装,遇有丢失、差错和失序等情况,通过请求重发来解决。它的效率比较高,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。 2、对系统资源的要求(TCP较多,UDP少) 3、UDP程序结构较简单 4、流模式与数据报模式 5、TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证 6、TCP是面可靠的字节流服务 ,UDP 并不提供对 IP协议的可靠机制、流控制以及错误恢复功能等 下图为TCP 和UDP应用 三 关键程序介绍 3.1编译工具为IAR5.4 3.2 1-5 UDP实验例程实现功能: 以UDP模式不断向 目标 IP地址 和端口 发送数据 test:ecountr,同时若收到 目标IP发来信息,将信息copy回复。本例中用网线直接和PC机相连接。PC机ip作为 目标ip ,注意PC机的IP与EVB IP处于同一网段内。 3.3 实验函数流程: Step 1 :初始化STM32时钟 GPIO USART 等 Step2: 初始化SPI 和W5500 Step3: 配置MAC地址 本机IP地址 子网掩码 默认网关等信息,配置完后再读取以上信息,并打印到串口 Step4:初始化8 个socket Step5 :实时读取socket 0状态,如果是socket 0是关闭的,则打开socket 0 作为UDP端口。如果读取 socket 0为UDP模式则向 目标 IP地址 和端口 发送数据 test:ecountr,同时若收到 目标IP发来信息,将信息copy回复。 3.4 部分子程序讲解 uint8 getSn_SR(SOCKET s)//获取SOCKET s状态 { return IINCHIP_READ(Sn_SR(s)); } /*W5500 SPI 通信协议的实现 W5500 SPI数据帧 有三种 依次为数据段 控制段 和数据段 */ uint8 IINCHIP_READ(uint32 addrbsb) { uint8 data = 0; IINCHIP_ISR_DISABLE();    //关闭中断 IINCHIP_CSoff();       // CS=0, SPI使能片选 IINCHIP_SpiSendData( (addrbsb 0x00FF0000)16);// 写入地址段高8位 Address byte 1 IINCHIP_SpiSendData( (addrbsb 0x0000FF00) 8);// 写入地址段低8位Address byte 2 IINCHIP_SpiSendData( (addrbsb 0x000000F8))    ;// 以读模式写入控制段 data = IINCHIP_SpiSendData(0×00);  // 写入数据段 /*SPI主从接口相当于一个循环串行移位寄存器,主机(STM32)发送数据 0×00,从机(W5500)就会接手0×00,并移数据到主机当中,该函数返回值就是读的数据*/ IINCHIP_CSon();      // CS=1,  SPI end  失能片选 IINCHIP_ISR_ENABLE();       // 打开关中断 return data; } Sn_SR(s)函数原型为  (0×000308 + (ch5)) 为目的是获取socket s的状态寄存器地址,类似函数还有很多,主要是获取寄存器绝对地址 其中0×0003为socket n的状态寄存器 16位偏移地址,就是SPI通信的地址段 08 + (ch5) 为控制段,指出偏移地址的归属,读写模式和 SPI工作模式 ,08 = 00001000 SPI 控制段: BSB4 BSB3 BSB2 就是ch表示地址是socket ch的状态寄存器地址 BSB1 BSB0 为选择寄存器类型 01指选择 socket寄存器 RWB :0读 1写 OM1 OM0 控制SPI为可变数据长度工作模式还是 固定数据长度工作模式 00 可变数据长度 (推荐使用可变数据长度工作模式) 01 1字节数据长度 10 2字节数据长度 11 4字节数据长度 四 程序下载和实验现象 4 .1 下载 打Flash loader 找到EVB的com 口,按BOOT0键使之为1,进入ISP模式进行下载。 4.2观察实验现象 运行网络调试助手软件, PC机IP :192.168.1.119 端口8080 开发板IP:192.168.1.90 端口8080 常态下 开发板发送 test 并计数 ,收到信息时会回复,关闭PC机端口并再次打开会发现,部分UDP数据已经丢失了,这个和TCP 模式是不一样的。说明UDP在一定情况下会丢包,对数据完整性要求高的场合不能用。 五 总结 可通过本例程学习通过SPI接口配置W5500工作在UDP模式的方法。   更多学习笔记: W5500EVB TCP Client模式设置说明 W5500EVB TCP Server演示 欢迎登陆: WIZnet官方中文网站:http://www.iwiznet.cn WIZnet官方微博:http://weibo.com/wiznet2012
  • 热度 12
    2014-10-23 17:25
    877 次阅读|
    0 个评论
    之前给大家展示了W5500EVB TCP Client是如何实现的,本文介绍一下W5500EVB TCP Server演示过程。 一、程序编译 使用IAR打开W5500EVB例程中TCP Server的app.eww文件,在main函数中修改ip和gw与PC在同一网段。然后进行Compile、Make,使Debug\Exe文件夹更新app.bin并记录模组的IP及打开的Port。 二、程序下载 1、打开设备管理器,查询Mini USB端口号。 2、打开Flash loader Demonstrator,选择端口号和配置信息。 3、按住BOOT键(SW7)然后按一下RESET键(SW6),最后松开BOOT键进入程序下载模式,点击Next继续。 4、下面是检查单片机内存是否可写,直接点击Next 5、选择要写入的设备,这里是系统自动识别的,继续Next。 6、下面进入文件烧录设置界面,选择“Download to device”,然后选取第一步编译好的app.bin文件,选“Global Erase”,其他设置不变,点击Next进入烧录界面。 7、烧录成功,点Close关闭Flash loader Demonstrator软件。 三、数据收发测试 1、打开串口调试工具Hercules,选择端口号和配置信息然后打开串口,在W5500EVB板按一下RESET键(SW6),可以看到模组的IP和GW信息。 2、设置TCP Client,键入W5500EVB模组IP和第一步打开的Port,点击Connect。显示Connected to ..表明已经连上,可以进行数据收发测试。   了解WIZnet: WIZnet中文官方网站:http://www.iwiznet.cn WIZnet企业微博:http://weibo.com/wiznet2012
  • 热度 22
    2014-10-23 17:24
    1170 次阅读|
    0 个评论
    之前给大家展示了W5500EVB TCP Client是如何实现的,本文介绍一下W5500EVB TCP Server演示过程。 一、程序编译 使用IAR打开W5500EVB例程中TCP Server的app.eww文件,在main函数中修改ip和gw与PC在同一网段。然后进行Compile、Make,使Debug\Exe文件夹更新app.bin并记录模组的IP及打开的Port。 二、程序下载 1、打开设备管理器,查询Mini USB端口号。 2、打开Flash loader Demonstrator,选择端口号和配置信息。 3、按住BOOT键(SW7)然后按一下RESET键(SW6),最后松开BOOT键进入程序下载模式,点击Next继续。 4、下面是检查单片机内存是否可写,直接点击Next 5、选择要写入的设备,这里是系统自动识别的,继续Next。 6、下面进入文件烧录设置界面,选择“Download to device”,然后选取第一步编译好的app.bin文件,选“Global Erase”,其他设置不变,点击Next进入烧录界面。 7、烧录成功,点Close关闭Flash loader Demonstrator软件。 三、数据收发测试 1、打开串口调试工具Hercules,选择端口号和配置信息然后打开串口,在W5500EVB板按一下RESET键(SW6),可以看到模组的IP和GW信息。 2、设置TCP Client,键入W5500EVB模组IP和第一步打开的Port,点击Connect。显示Connected to ..表明已经连上,可以进行数据收发测试。   了解WIZnet: WIZnet中文官方网站:http://www.iwiznet.cn WIZnet企业微博:http://weibo.com/wiznet2012
  • 热度 20
    2014-10-21 10:16
    1341 次阅读|
    0 个评论
    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地址。   图 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所示界面;继续点击下一步出 图 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,就会看到红色框内有数据接收到。说明连接成功。 图 10 数据收发测试 程序大致流程如下: 1. 初始化,包括系统时钟、中断、串口、GPIO端口、Systick时、eeprom等 2. 重启W5500 3. 系统设置,包括IP地址、网关、子网掩码、MAC地址等 4. 连接模式选择(通过switch选择语句实现) A .判断Socket状态 B. 如果Socket关闭,打开一个端口 C. Socket初始化,建立连接 D. 如果连接成功,进行数据收发 模式选择主要通过以下函数以及硬件SPI模式的基本函数来实现。 继续阅读: http://www.iwiznet.cn/blog/?p=6501