W5500以太网控制器芯片(一):ioLibrary库实现TCP服务器

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

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.
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值