W5100——TCP/UDP通讯

前段时间接触到W5100这款集成了PHY的以太网芯片,用作工业场合的通讯以及数据传输功能,现在回顾一下当时调试代码的经过。

大概框架:  stm32F4通过8位FSMC总线和W5100通讯。

用这款芯片的理由:集成了PHY,避免了外部再接转换芯片,另外有4个独立的SOCKET,可并行工作。

TCP:

  服务器端:

  配置FSMC端口--->IP和端口绑定(打开了并行总线和自加位,写入gateway和IP)--->Socket初始化--->监听Socket--->任务子函数

  客户端:

  配置FSMC端口--->IP和端口绑定 --->Socket初始化--->中断服务函数

UDP:

  组网广播:

  配置FSMC端口--->IP和端口绑定(配置置目的地址IP)--->Socket初始化 --->Socket处理函数

FSMC总线时钟过大,导致数据丢帧。增大分频系数即可解决。

TCP客户端比服务端复杂,事因为客户端的处理函数比服务端麻烦,而且客户端的状态比服务端多,服务端开启之后,只需要监听客户端是否接入,对应将接入的客户端数据处理返回即可。

UDP在传输过程中,前面8个字节用来存放发送IP,目的端口,数据长度,后面的才是帧数据,这样针对不同的IP端口,便于执行不同的服务函数。

以上两个Socket同时开启,可以正常传输数据。但是发热量有点大,芯片温度比周围其他芯片烫,网上百度说是集成PHY的原因。目前暂时没发现其他问题。

具体的手册和相关资料,见网站:http://www.9mcu.com/9mcubbs/forum.php?mod=forumdisplay&fid=432

时间: 2024-08-06 01:54:19

W5100——TCP/UDP通讯的相关文章

C#中的TCP通讯与UDP通讯

最近做了一个项目,主要是给Unity3D和实时数据库做通讯接口.虽然方案一直在变:从开始的UDP通讯变为TCP通讯,然后再变化为UDP通讯;然后通讯的对象又发生改变,由与数据库的驱动进行通讯(主动推送数据给驱动,数据库中数据发生变化把数据以UDP报文形式发送客户端)改为与实时数据库进行直接通讯(自己发送报文修改数据库中的数据,自己请求需要获取的数据并接收自己请求的数据):现在这个项目基本完结,由于这个过程既接触到了UDP又接触到了TCP,现在对其进行一番总结. 阅读目录 TCP通讯协议与UDP通

LWIP裸机环境下实现TCP与UDP通讯

前面移植了LWIP,并且简单的实用了DHCP的功能,今天来使用一下实际的数据通讯的功能 首先是实现TCP客户端,我先上代码 #ifndef __TCP_CLIENT_H_ #define __TCP_CLIENT_H_ #include "network.h" //连接状态 enum tcp_client_states { ES_NONE = 0, ES_RECEIVED, //接收到了数据 ES_CLOSING //连接关闭 }; //TCP服务器状态 struct tcp_clie

Shell 脚本实现TCP/UDP协议通讯

Shell 脚本实现TCP/UDP协议通讯 http://www.cnblogs.com/occult/archive/2012/12/25/2832183.html

TCP/UDP 协议,和 HTTP、FTP、SMTP

著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:Vincent Wang链接:http://www.zhihu.com/question/20583641/answer/20242980来源:知乎 题主的意思是通俗,本来上传几张层次模型的示意图,知乎传图太困难了,可能我上传的方法不对吧,另外经常用的ID审核一直通不过,望天. OSI 模型主要作为一个通用模型来做理论分析,而TCP/IP 协议模型是互联网的实际通讯协议,两者一般做映射分析,以下不做严格区分和声明(好吧,比

web service,soap ,http,tcp,udp

webservice and soap  HTTP只负责把数据传送过去,不会管这个数据是XML.HTML.图片.文本文件或者别的什么.而SOAP协议则定义了怎么把一个对象变成XML文本,在远程如何调用等,怎么能够混为一谈.                 这样说两种协议:     HTTP就是邮局的协议,他们规定了你的信封要怎么写,要贴多少邮票等....         SOAP就是你们之间交流的协议,负责把你所需要表达的意思写在信纸上,同时也负责让对方能够看得懂你的信. Web service

TCP/UDP简介

TCP/UDP简介 Socket小白篇-附加TCP/UDP简介 Socket 网络通信的要素 TCP和UDP Socket的通信流程图 1.Socket 什么是Socket Socket:又称作是套接字,网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为Socket. Socket是对TCP/IP的协议的封装,Socket本身并不是协议,而是一个调用的接口,只有通过Socket我们才能使用TCP/IP. Socket是和网络紧密相关的,网络上的两个程序一般就是指web服务器

UDP 通讯代码

在使用 RAS使用拨号网络拨号的类建立 TCP/IP后,接下来是通过 TCP/UDP 进行数据的传输. 下面是使用 UDP 的例子,分为头文件和源代码 头文件zhUDPCE.h : 1 // UDP.h: interface for the CZhUDP class. 2 // 3 ////////////////////////////////////////////////////////////////////// 4 #ifndef _ZH_DUP_CE_H_ 5 #define _ZH

Photon服务器引擎(二)socket/TCP/UDP基础及Unity聊天室的实现

Photon服务器引擎(二)socket/TCP/UDP基础及Unity聊天室的实现 我们平时说的最多的socket是什么呢,实际上socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API). 通过Socket,我们才能使用TCP/IP协议.实际上,Socket跟TCP/IP协议没有必然的联系.Socket编程接口在设计的时候,就希望也能适应其他的网络协议.所以说,Socket的出现只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象,

Socket(套接字) IP TCP UDP HTTP

Socket(套接字) (转)什么是套接字(Socket)? 应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题.多个TCP连接或多个应用程序进程可能需要 通过同一个TCP协议端口传输数据.为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字 (Socket)(socket是操作系统提供出来的接口)的接口,区分不同应用程序进程间的网络通信和连接.生成套接字,主要有3个参数:通信的目的IP地址.使用的传输 层