W5500 芯片是一款集成全硬件 TCP/IP 协议栈的嵌入式以太网控制器,同时也是一颗工业级以太网控制芯片。
W5500 支持高速标准4线SPI接口与主机进行通信,该 SPI 速率理论上可以达到 80MHz。其内部还集成了以太网数据链路层(MAC)和10BaseT/100BaseTX 以太网物理层(PHY),支持自动协商(10/100-Based全双工/半双工)、掉电模式和网络唤醒功能。与传统软件协议栈不同,W5500内嵌的8个独立硬件 Socket 可以进行8路独立通信,该8路Socket的通信效率互不影响,可以通过 W5500 片上32K 字节的收/发缓存灵活定义各个Socket的大小
官方提供了ioLibrary_BSD固件库,可以很轻松的移植进各种嵌入式设备中,只要设备支持标准SPI接口(模式0、3)即可。
下面以STM32F103的MCU为例说明一下如何用W5500移植官方的固件库实现以太网通讯。
1、下载官方固件库
地址:
http://wizwiki.net/wiki/doku.php?id=products:w5500:driver
可以分别从官网和github上下载源码。
下载完注意两个部分:
(1)Ethernet文件夹
主要是W5500的驱动,实现基本的TCP通讯只要这个就行了
(2)Internet文件夹
实现各种TCP扩展的应用,比如DHCP、DNS、FTP等
先实现基本的TCP通讯,只要Ethernet文件夹下的文件

将W5500、socket、wizchip_config的c和h文件引入工程中即可(注意配置.h文件路径)
2、编写SPI接口
要写一下MCU的spi接口初始化,同时实现几个函数:
//SPI口初始化
void SPI2_Init(void)
{
SPI_InitTypeDef SPI_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);
//PB12->CS,PB13->SCK,PB14->MISO,PB15->MOSI
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14|GPIO_Pin_15;
GPIO_InitStructure.

本文详细介绍了如何使用W5500芯片在STM32F103微控制器上实现TCP服务器功能,包括SPI接口配置、固件库移植及网络初始化过程。通过实例演示了设备间的TCP回环测试,适合嵌入式开发者快速入门以太网通信。
最低0.47元/天 解锁文章
2515





