【使用W5500实现UDP、TCP通信】

      最后更新:2022-07-05 22:05:59 手机定位技术交流文章

      一、W5500介绍

      W5500是一个带有TCP/IP协议的集成Ethernet模块,允许控制器通过SPI协议简单地读取和写入其注册表,以网络的方式与数据进行交互。
      W5500模块具有10个参数,但由于它使用其官方库,只有6个参数可以与数据交互:分别是VCC、GND、MISO、MOSI、SCS和SCLK。
      MISO:SPI主机输入和主机输出;
      MOSI: SPI主机输出从输入到输入引脚;
      SCS:SPI SLAVE选择拖脚(低级有效);
      史克: 钟信号拉着脚.
      单片机的连接器是:MISO..PA6,MOSI..PA7,SCS..PA4,SCLK..PA5。
      该 方案 内 运作 的 几个 重要 登记 处 :
      Sn_SR(Socket n state register):指示Socket n的状态,并根据Sn_CR或某些TCP模式下的特殊控制包(如SYN和 FIN包)改变它;
      Sn_MR(Socket n模式内存):此内存用于配置所有Socket选项或协议类型;
      Sn_IR(Socket n interrupt register):该注册表用于为Socket n提供中断信息的类型;
      Sn_RXBUF_SIZE (Socket n接收缓存大小注册表):这个注册表配置Socket n接收缓存大小。n接口接收了一个可配置为1的缓存大小,2,4,8和16Kbytes。

      对UDP和TCP的介绍

      UDP是一个基于IP的简单协议,不可靠的协议,它的优点是简单、轻量、快速,缺点是没有流量控制、没有响应确认机制,不能解决损失、重复和故障序列的问题。
      TCP是一个面向连接的协议,这意味着在接收和发送数据之前,必须与另一方建立可靠的连接。一个TCP连接必须在三个握手之后建立,这些握手的过程是简单地描述的:
      首先,我让信把信送到另一个人身上,当他收到信时,他知道我能发信的能力和他能收到的能力是可能的,这是他第一次握手。
      然后他回信给我,如果我收到了,我就会知道我的发信能力和他的发信能力也是可能的,他发信能力和我的发信能力也是可能的。
      但当时他不知道他的运送能力和我的运送能力是否是可能的,所以我给了他最后的反馈,如果他收到了,他就会知道他的运送能力和我的运送能力是可能的,这是第三个抖动。
      在三个手的结尾,建立了连接。 以上是共同理解的,事实上在三个手的进程中将发送数据包,并根据数据包来判断两个手的接收和传输能力。

      TCPS、TCPC、UDP的实施程序

      1、TCPS,作为TCP服务器的单芯片服务器,在程序的执行部分中,函数获取Sn_SR注册表的值来确定索克的状态,如果接口关闭,调用函数将接口打开;如果接口初始化,则建立监视;如果接口连接,则建立监视。然后清除接收中断信号位置,进行循环测试,从客户接收数据,并再次向客户端发送这些数据;如果索克处于等待关闭的状态,调用函数将关闭索克。
      2、TCPC,单片机作为TCP客户端,同样,在程序的执行部分中,函数获取Sn_SR注册表的值来确定索克的状态,如果接口关闭,调用函数将接口打开;如果接口初始化,连接被建立;如果接口处于连接建立状态,然后清除接收中断信号位置,进行循环测试,从服务器接收数据,并且再次向服务器发送这些数据;如果索克处于等待关闭的状态,调用函数将关闭索克。
      3、UDP,在程序的执行部分中,函数获取Sn_SR注册表的值来确定索克的状态,如果接口关闭,则调用函数打开接口;如果接口处于UDP模式,则然后清除接收中断信号位置,进行循环测试,从高级机器接收数据,然后把这些数据先送到单片机上,然后再送到顶层机上,你不再需要在这个模式中创建连接,只需设置IP地址和端口.

      遇到的问题和解决办法

      当UDP被实现时,一个高级服务器发送数据,但返回值是-1。我开始寻找互联网的原因,这是函数的逆转问题,但是它是官方的图书馆,我认为UDP实现功能没有问题,所以我修改了与UDP有关的标记位置,一旦修改, 可以实现UDP函数.
      所有它的功能都完成后,它开始转移到UCOS,你不想直接移动相关文件,并替换原来的UCOS项目文件,一开始我并不认为这太难,但移植手术失败后,然后逐步进行调试,发现,在跳过UART函数初始化后,可以连接网络,这时候恍然大悟,UART设置中的变化导致系统启动不正确。最后, UART 初始化被重置,可以执行网络连接和串行输出。
      五、回环测试截图

      UDP循环测试:![UDP回路测试] (https://img-blog.csdnimg.cn/27292915146246f7a4ccfdecaf8eb07.png#pic_center)
      TCPS巡回测试: http://ww.img-blog.csdnimg.cn/4db48846644dd982ee4939ddafb61d.png#pic_center)
      TCPC再循环测试:!http://ww.img-blog.csdnimg.cn/70a7e41acb954559ac98621550dac3e4.png#pic_center)

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/29373.html

          热门文章

          文章分类