1. 准备
本章将介绍使用 RT-Thread 提供的 SPI 驱动框架使能外接以太网设备,实现设备连接网络。
GD32303E-EVAL 评估板没有板载以太网模块,所以需要使用外接以太网设备连接网络,本文使用的模块主控芯片型号为 ENC28J60,它可作为任何配备有 SPI 的控制器的以太网接口,兼容 IEEE 802.3 标准,最高传输速度可达 10M/s,正常工作电压为 3.3V,模块上使用的网络变压器型号为 HR911105A,模块外观如下:
该模块主要使用引脚说明如下:引脚说明SISPI 接口的数据输入引脚SOSPI 接口的数据输出引脚SCKSPI 接口的时钟输入引脚CSSPI 接口的片选输入引脚INTINT中断输出引脚
该模块和 GD32303E-EVAL 开发板连接情况如下:ENC28J60 引脚GD32303E-EVAL说明VCC3.3V电源GNDGNDSISPI MOSI,引脚为 PB15SOSPI MISO,引脚为 PB14SCKSPI SCK,引脚为 PB13CSSPI CS,引脚为 PC0INTINT中断输入, 引脚为 PC1
开发板供电及连接情况:供电方式:开发板使用 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.53.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 系列(一)----基本系统跑起来
最后也预告下RT-Thread近期沙龙活动(沙龙均有imx rt1050开发板、STM32开发板、LPC824开发板等送):
6月30日下午RT-Thread物联网开发者沙龙(广州站)
7月1日下午RT-Thread物联网开发者沙龙(上海站)
留言与评论(共有 0 条评论) |