芯片应用——W5100TCP/UDP通讯
前段时间接触到W5100这款集成了PHY的以太网芯片,用作工业场合的通讯以及数据传输。大概要做些什么事呢? 首先 stm32F4通过FSMC总线,将待发送的数据传至W5100的tempbuffer中,然后W5100通过TCP或者UDP传输方式,分包将数据发到上位机,存储到上位机设备中,以备后面分析用。
用这款芯片的理由:集成了PHY,避免了外部再接转换芯片,另外有4个独立的SOCKET,可并行工作,具备TCP/UDP/UDP_Broadcasting可分配功能。
TCP:
服务器端:
配置FSMC端口--->写入gateway和IP--->Socket初始化-->Socket_Listen--->中断服务函数
客户端:
配置FSMC端口--->IP和端口配置 --->Socket初始化-->Socket_Connect--->中断服务函数
UDP:
组网广播:
配置FSMC端口--->IP配置--->Socket初始化 --->Socket_UDP处理函数
FSMC总线时钟过大,导致数据丢帧。增大分频系数,降低总线时钟即可解决。
写W5100地址的时候,分成高位和低位,读数据和写数据,都是操作W5100的基址后面的3个偏移地址。(具体可参照W5100手册)
TCP客户端比服务端复杂,因为客户端的处理函数比服务端麻烦,而且客户端的状态比服务端多,服务端开启之后,只需要监听客户端是否接入,对应将接入的客户端数据处理返回即可。
UDP在传输过程中,前面8个字节用来存放发送IP,目的端口,数据长度,后面的才是帧数据,这样针对不同的IP端口,执行不同的操作。
以上两个Socket同时开启,可以正常传输数据。但是发热量有点大,芯片温度比周围其他芯片烫,集成PHY的原因。
具体的手册和相关资料,见网站:http://www.9mcu.com/9mcubbs/forum.php?mod=forumdisplay&fid=432
转载于:https://www.cnblogs.com/Blog-c/p/6602319.html
芯片应用——W5100TCP/UDP通讯相关推荐
- STM32驱动W5100S网口模块实现UDP通讯
本文博客链接:https://blog.csdn.net/zsj2016o/article/details/88883863 作者:zsj ,转载请注明. STM32驱动W5100S网口模块实现UDP ...
- LWIP裸机环境下实现TCP与UDP通讯(转)
源: LWIP裸机环境下实现TCP与UDP通讯
- 基于Delphi API写的UDP通讯类
转载地址:http://www.codefans.net/articles/159.shtml 基于Delphi API写的UDP通讯类,可以广播和单播,类作者:王彦鹏.这个类是作者2007年的时候写 ...
- LWIP裸机环境下实现TCP与UDP通讯
前面移植了LWIP,并且简单的实用了DHCP的功能,今天来使用一下实际的数据通讯的功能 首先是实现TCP客户端,我先上代码 #ifndef __TCP_CLIENT_H_ #define __TCP_ ...
- linux系统udp通信程序,Linux UDP socket编程(UDP通讯模型) | C/C++程序员之家
Linux UDP socket编程(UDP通讯模型): UDPClient + UDPService. Linux下大多数网络程序都是基于TCP的,很少基于UDP,简单的通讯模型如下,开发时候备用! ...
- C#UDP通讯UdpClient
目录(?)[+] 遇到如下两个问题 远程主机强迫关闭了一个现有的连接的错误 [html] view plaincopy print? class UdpClientClass { /// <su ...
- UDP 通讯协议 局域网通信发送消息 简单实现
发送端 import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; imp ...
- UDP通讯之字节流与protobuf转换(C++版)
UDP通讯之字节流与protobuf转换(C++版) 说明 工程内容 VS2017工程介绍 VS2017工程基本设置 数据结构体 UDP服务端server与客户端client类的封装 初始化IP与Po ...
- socket之UDP通讯
该文章简单的讲解linux中socket UDP通讯 UDP(user datagram protocol)的中文叫用户数据报协议,属于传输层.UDP是面向非连接的协议,它不与对方建立连接,而是直接把 ...
最新文章
- angular 发布订阅
- java速查表_Java8新功能速查表 - 穿梭于偶然
- bootstrap设置button不显示_电脑便签怎么显示不关闭?电脑云便签敬业签怎么设置显示桌面?...
- [技术分享]【DLI跨源】当DLI遇见MongoDB
- MFC关闭对话框可以不析构吗_Win10关闭Defender和防火墙
- JavaScript 数字前补“0”的五种方法
- 彻底明白Java的IO系统
- 【机器学习案例】酒店用机器学习,预测哪些客人会放鸽子
- Spark:聚类算法
- resetuser.php,Php开发过程中不常碰到的error (2.25更新)
- java 中高级面试题_Java中高级面试题
- 计算机无法安装网卡驱动,电脑经验遇到网卡驱动安装不上的问题,该如何解决呢?一起来看看...
- jquery 遍历java对象_jquery中object对象循环遍历的方法
- java web开发(一) Java Web开发框架对比
- linux运维cadn,Aprende an elaborar un amasamiento tГЎntrico citaciГіn
- GOM引擎登录器配置教程
- 使用QE绘制Band Structure
- matlab工具箱拟合函数
- 推荐一些常用的中外学术文献数据库网站
- 六、文件管理(5.文件存储空间的管理)