前段时间接触到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-10-26 11:50:54