芯片应用——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

 

posted @ 2017-03-22 21:53  cy_07  阅读(2795)  评论(0编辑  收藏  举报