使用RT-Thread提供的SPI驱动框架使能外接以太网设备,实现设备连接网络

电子说

1.2w人已加入

描述

1. 准备

本章将介绍使用 RT-Thread 提供的 SPI 驱动框架使能外接以太网设备,实现设备连接网络。

GD32303E-EVAL 评估板没有板载以太网模块,所以需要使用外接以太网设备连接网络,本文使用的模块主控芯片型号为 ENC28J60,它可作为任何配备有 SPI 的控制器的以太网接口,兼容 IEEE 802.3 标准,最高传输速度可达 10M/s,正常工作电压为 3.3V,模块上使用的网络变压器型号为 HR911105A,模块外观如下:

该模块主要使用引脚说明如下:

控制器

该模块和 GD32303E-EVAL 开发板连接情况如下:

控制器

开发板供电及连接情况:

供电方式:开发板使用 Mini USB 接口或者 DC-005 连接器提供 5V 电源。

下载程序:下载程序到开发板需要一套 JLink 或者使用 GD-Link 工具。

串口连接:使用 USB 转串口线连接开发板的串口0对应的 PA9 和 PA10 引脚,并连接电脑。

2. 配置工程文件

2.1 开启 ENV 配置界面

切换到工程目录下,在ENV工具命令行界面输入 menuconfig 命令开启配置界面。

控制器

2.1 使能 ENC28J60 驱动

使用 ENC28j60 需要先使能 ENC28J60 SPI 网络接口驱动。

控制器

2.2 开启 LWIP2.0.2,优化默认配置

RT-Thread实时操作系统就采用了 LWIP 做为默认的TCP/IP协议栈,设备联网需要开启 LWIP,版本使用最新版本 LWIP2.0.2,如下图所示:

控制器

LWIP2.0.2 开启之后内存资源占用比较大,而我们的GD32303E-EVAL 评估板内存资源有限,所以我们要对默认开启的 LWIP 参数进行优化配置,减小内存占用,下图为配置方式:

控制器

2.3 开启 DFS_NET,使用 POSIX 标准接口

用户使用 POSIX 标准网络接口,需要开启 DFS_NET,并且配置 DFS_FD_MAX 用于增大网络连接数量,如下图所示:

控制器

2.4 保存退出

保存配置,退出配置界面,在ENV工具命令行界面使用 scons --target=mdk5 生成新工程。

3. 运行测试代码

3.1 初始化以太网设备

打开新生成的 MDK 工程,并添加示例代码到工程:

控制器

在电脑端使用 xshell 打开对应端口,波特率配置为115200,编译代码并下载至开发板,然后按 reset 重启开发板,xshell 会显示启动信息,msh 中执行 app_init 命令初始化以太网设备, 显示如下信息表明以太网设备初始化成功:

  | /‐ RT ‐     Thread Operating System / |      3.0.4 build May  9 2018 2006 ‐ 2018 Copyright by rt‐thread teamlwIP‐2.0.2 initialized![SFUD]Find a GigaDevice GD25Q16B flash chip. Size is 2097152 bytes.[SFUD]gd25q flash device is initialize success.msh />msh />app_init[INIT] enc28j60 device initialize success!        //以太网设备初始化成功

输入 ifconfig 命令查看当前网络状态(IP地址、MAC地址、子网掩码等),如下显示设备获取IP地址成功:

msh />ifconfignetwork interface: e0 (Default)MTU: 1500MAC: 00 04 a3 12 34 56 FLAGS: UP LINK_UP ETHARP IGMPip address: 192.168.12.35gw address: 192.168.10.1net mask  : 255.255.0.0dns server #0: 192.168.10.1dns server #1: 223.5.5.5

3.1 TCP Client 示例演示

电脑端网络调试助手开启 TCP 服务器,设备作为客户端连接电脑端服务器,msh 中执行命令 tcpclient [server_ip] [server_port](server_ip 为服务器地址,server_port 为服务器端口号),进行数据交互,说明网络连接成功,如下图显示:

控制器

3.1 TCP Server 示例演示

设备开启 TCP 服务器,msh 中执行命令 tcpserver(默认端口号为5000),电脑网络调试助手开启客户端连接设备服务器,进行数据交互,说明网络连接成功,如下图显示:

控制器

本章节主要介绍了设备通过外接以太网模块 ENC28J60 连接网络并且进行数据交互测试的过程,更多源码请参考测试代码和 RT-Thread 官方应用笔记。

4. 参考

ENV 工具使用手册

GD32303E-EVAL 官网

GD32303E-EVAL BSP源码及资料百度云

ENC28J60 中文数据手册

玩溜 GD32303E-EVAL BSP 系列(一)----基本系统跑起来

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分