目录

1、介绍

1.1 WIZnet

1.2 W5500

2、RT-Thread Studio 配置及相关代码

2.1 添加WIZnet软件包

2.2 配置 WIZnet 软件包

2.3 配置 spi20

3、验证效果


开发环境:使用 RT-Thread 实时操作系统 。

开发软件:使用 RT-Thread Studio (目前最新版本1.1.3)。

开发硬件:使用正点原子的 STM32L475 潘多拉开发板 。

1、介绍

1.1 WIZnet

WIZnet 软件包是 RT-Thread 基于 WIZnet 官网 ioLibrary_Driver 代码库的移植实现,目前只支持 W5500 设备。该软件包在原代码库功能的基础上,对接 RT-Thread SAL 套接字抽象层,实现对标准 BSD Socket APIs 的支持,完美的兼容多种软件包和网络功能实现,提高 WIZnet 设备兼容性。

1.2 W5500

W5500是WIZnet推出的高性能以太网接口芯片系列之一,内部集成全硬件TCP/IP协议栈+MAC+PHY。全硬件协议栈技术采用硬件逻辑门电路实现复杂的TCP/IP协议簇,其应用具有简单快速、可靠性高、安全性好等显著优势;内部集成MAC和PHY工艺,使得单片机接入以太网方案的硬件设计更为简捷和高效。

W5500 芯片是一款集成全硬件 TCP/IP 协议栈的嵌入式以太网控制器,同时也是一颗工业级以太网控制芯片。是韩国WIZnet(微知纳特)发布全硬件TCP/IP协议栈以太网接口芯片。

W5500 支持高速标准4线SPI接口与主机进行通信,该 SPI 速率理论上可以达到 80MHz。其内部还集成了以太网数据链路层(MAC)和10BaseT/100BaseTX 以太网物理层(PHY),支持自动协商(10/100-Based全双工/半双工)、掉电模式和网络唤醒功能。与传统软件协议栈不同,W5500内嵌的8个独立硬件 Socket 可以进行8路独立通信,该8路Socket的通信效率互不影响,可以通过 W5500 片上32K 字节的收/发缓存灵活定义各个Socket的大小。

(注:参考资料 WIZnet W5500-参考设计大全)

特点

  • 全硬件TCP/IP协议栈:TCP,UDP,ICMP,IPv4,ARP,IGMP,PPPoE
  • 8个独立的硬件Socket,各路通信互不影响
  • 32K字节收发缓存
  • 集成802.3以太网MAC
  • 集成10Base-T / 100Base-T以太网PHY
  • 主机接口:SPI高速串行外设接口(最高80Mhz )
  • 支持嵌入式操作系统:Linux & RTOS
  • 支持掉电模式 & UDP网络唤醒
  • 工作电压3.3V,I/O 5V耐压
  • 支持自动协商(全/半双工,10M/100M)
  • 工作温度40℃左右
  • 48Pin LQFP无铅封装(7x7mm, 0.5mm针间距)

2、RT-Thread Studio 配置及相关代码

2.1 添加WIZnet软件包

在RT-Thread 软件包中搜索W5500软件包后添加到项目中

添加后的结果如下图所示

2.2 配置 WIZnet 软件包

spi20 设备引脚说明如下所示

PB12 SPI2_CS
PB13 SPI2_SCK
PB14 SPI2_MISO
PB15 SPI2_MOSI

Reset复位引脚是26(对应PB10),IRQ中断引脚 27 (对应PB11),引脚号参考见下图

硬件连接图如下所示:

2.3 配置 spi20

在drv_spi.c源文件中添加 HAL_SPI_MspInit 函数(SPI2引脚配置)

void HAL_SPI_MspInit(SPI_HandleTypeDef *spiHandle)
{GPIO_InitTypeDef GPIO_InitStruct;RT_ASSERT(spiHandle != RT_NULL);#ifdef BSP_USING_SPI1if (spiHandle->Instance == SPI1){/* SPI1 clock enable */__HAL_RCC_SPI1_CLK_ENABLE();__HAL_RCC_GPIOA_CLK_ENABLE();/**SPI1 GPIO ConfigurationPA5     ------> SPI1_SCKPA6     ------> SPI1_MISOPA7     ------> SPI1_MOSI*/GPIO_InitStruct.Pin = GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7;GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;GPIO_InitStruct.Pull = GPIO_NOPULL;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);}else
#endif
#ifdef BSP_USING_SPI2if (spiHandle->Instance == SPI2){/* SPI2 clock enable */__HAL_RCC_SPI2_CLK_ENABLE();__HAL_RCC_GPIOB_CLK_ENABLE();/**SPI2 GPIO ConfigurationPB13     ------> SPI2_SCKPB14     ------> SPI2_MISOPB15     ------> SPI2_MOSI*/GPIO_InitStruct.Pin = GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15;GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;GPIO_InitStruct.Pull = GPIO_NOPULL;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);}else
#endif
#ifdef BSP_USING_SPI3if (spiHandle->Instance == SPI3){/* SPI3 clock enable */__HAL_RCC_SPI3_CLK_ENABLE();__HAL_RCC_GPIOB_CLK_ENABLE();/**SPI3 GPIO ConfigurationPB3 (JTDO-TRACESWO)     ------> SPI3_SCKPB4 (NJTRST)            ------> SPI3_MISOPB5                     ------> SPI3_MOSI*/GPIO_InitStruct.Pin = GPIO_PIN_3 /* | GPIO_PIN_4 */ | GPIO_PIN_5;GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;GPIO_InitStruct.Pull = GPIO_NOPULL;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);}else
#endif{RT_ASSERT(0);}
}

自动初始化 rt_hw_spi_flash_init 函数,将spi20 挂载到spi2总线上

static int rt_hw_spi_flash_init(void)
{__HAL_RCC_GPIOB_CLK_ENABLE();rt_hw_spi_device_attach("spi2", "spi20", GPIOB, GPIO_PIN_12);return RT_EOK;
}
/* 导 出 到 自 动 初 始 化 */
INIT_COMPONENT_EXPORT(rt_hw_spi_flash_init);

3、验证效果

串口调试助手显示效果如下

ifconfig : 查看当前网络的 ip address 、 gw address (网关地址)、net mask (子网掩码)、 dns server (dns服务器)

ping 172.30.1.103 成功ping通,表示局域网内可以相互访问了

(注:因为路由器没有连到公网,所以没有ping www.baidu.com)

注:下一篇将结合阿里云IoT平台软件包进行MQTT协议通信:

RT-Thread 之 RT-Thread + WIZnet + W5500 + MQTT + ali-iotkit-v3.0.1 完成以太网Socket通信MQTT协议主题订阅发布

RT-Thread 之 WIZnet 软件包(全硬件TCP/IP协议栈W5500以太网芯片) 以太网 Socket 通信相关推荐

  1. 安防硬件WIZnet基于全硬件TCP/IP的安防产品应用及方案

    在本文中,我们主要介绍安防硬件的内容,自我感觉有个不错的建议和大家分享下 WIZnet立足于生产全硬件TCP/IP协议栈芯片,为单片机提供理想的处置计划.整体来讲,其应用领域还是非常广泛的,以智能电表 ...

  2. 剖析:WIZnet以太网核心技术–全硬件TCP/IP协议栈

     WIZnet,是全球第一家专注于全硬件TCP/IP协议栈技术(iOffloadTM Tech)的半导体公司,精心为用户提供高速稳定的以太网解决方案,广泛应用在工业自动化.智能电网.安防门禁.金融 ...

  3. 【科研论文】某雷达自动测试系统研制–基于全硬件TCP/IP协议栈芯片W5300

    摘要: 雷达用于实现对目标的准确定位,帮助武器系统锁定目标,继而命中并摧毁目标.因此,雷达性能的优劣直接影响了对目标的定位精度,继而影响了整个武器系统的功效.本课题研究某型号雷达的自动测试系统,用于在 ...

  4. 全硬件TCP/IP协议栈学习笔记(第十一天:FPGA+W5500 PING通)

    在一周多的时间,从软件的协议到芯片接口最后到硬件描述,我觉得是时候试一试芯片了,看一看能不能ping通.两天时间终于完成第一次ping,也挺不容易的. 首先想要ping通,要先知道ping是什么 它所 ...

  5. W5500全硬件 TCP/IP 嵌入式以太网控制器WIZNET

    概述 W5500 是一款全硬件 TCP/IP 嵌入式以太网控制器,为嵌入式系统提供了更加简易的互联网连接方案. W5500 集成了 TCP/IP 协议栈,10/100M 以太网数据链路层(MAC)及物 ...

  6. 硬件 TCP/IP 协议栈(SPI 发送命令字)

    目录 全硬件的TCP/IP 协议栈简介 以太网接入单片机方案 以太网接口芯片CH395Q 简介 以太网接口芯片 CH395Q 命令简介 以太网接口芯片CH395Q 寄存器配置与使用 移植CH395Q ...

  7. WIZnet开源平台ioPlatform所趋,全硬件TCP/IP尽显内芯智慧!

    互联网最先用于研究或教育,但它在服务和应用上得到极大地开发.数以万亿计的智能装置都连接到互联网,并提供一个更聪明的智能服务生活.因此,它不应该是一种很难开发的智能设备,才可以维持所有人对智能设备的奇思 ...

  8. 【以太网硬件TCP/IP协议栈】硬件协议栈W5500应用

    硬件协议栈和软件协议的区别: MCU+MAC+PHY方案 传统的以太网接入方案如下图,由 MCU+MAC+PHY 再加入网络接口实现以太网的物理连接,通过在主控芯片中植入TCP/IP 协议代码实现通信 ...

  9. uIP TCP/IP协议栈

    转自yxwkaifa微博 第1章  uIP TCP/IP协议栈 uIP TCP/IP协议栈的目标是:即便是8位微控制器也可以使用TCP/IP协议栈进行网络通信.虽然小而简单, uIP不须要与他们通信的 ...

最新文章

  1. cvBlob 作为静态库链接问题
  2. 云计算机是一种基于资源,一种基于云平台和云计算的资源管理系统和方法
  3. Maven环境变量配置以及修改阿里云镜像
  4. CC++刚開始学习的人编程教程(9) Windows8.1安装VS2013并捆绑QT与编程助手
  5. 【转】ORACLE_SID、INSTANCE_NAME、DB_NAME
  6. 化工计算机软件基础考试题,2013年化工工程师基础知识网友版真题(下午卷)...
  7. 编码规范(代码优化)
  8. 科大讯飞 开放平台 开发者 语音识别
  9. Oracle数据库to_date()和to_char()的相关
  10. RC952-FXE1-BL用户使用手册(存档)
  11. 设计模式-关于模式的一些很基本的知识点
  12. 北大 宾州树库 语料标注集
  13. 一、响应式编程基本介绍
  14. 支付宝周期扣款Java逻辑代码
  15. [实用教程] 科普贴:SGLTE、SVLTE、CSFB、SRLTE
  16. 中等专业学校计算机教师,中等专业学校计算机老师年度工作总结
  17. Web端编写(四)——查看会议议程
  18. Dava基础Day17
  19. 迷阵突围(dijkstra求次短路径)
  20. 张侠博士:运用云计算进行颠覆式创新,打破企业数字化转型壁垒

热门文章

  1. 安川机器人并行IO分配 (查询)
  2. SQLserver2012 附加数据库5120错误(拒绝访问)处理方法
  3. Java对GIF的简单删帧操作
  4. Java版砸蘑菇游戏
  5. 生物医药实验室安全知识202203第五次作业答案(2022.11.11)
  6. 解决:_pickle.UnpicklingError: A load persistent id instruction was encountered,
  7. js修改对象数组中其中某一项属性值
  8. 企业软文营销依靠情感故事打通最后防线
  9. 51 张图助你彻底掌握 HTTP 协议
  10. 新一代大智慧文件夹结构