Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread学习营
玩溜GD32303E-EVAL BSP系列(五)----设备连接网络
发布于 2018-05-15 10:57:43 浏览:4504
订阅该版
[tocm] * 本帖最后由 Cheney_Chen 于 2018-5-15 10:57 编辑 * ## 1. 准备 本章视频将介绍使用 RT-Thread 提供的 SPI 驱动框架使能外接以太网设备,实现设备连接网络。 GD32303E-EVAL 评估板没有板载以太网模块,所以需要使用外接以太网设备连接网络,本文使用的模块主控芯片型号为 ENC28J60,它可作为任何配备有 SPI 的控制器的以太网接口,兼容 IEEE 802.3 标准,最高传输速度可达 10M/s,正常工作电压为 3.3V,模块上使用的网络变压器型号为 HR911105A,模块外观如下: ![enc28j60.jpg](/uploads/201805/15/105155zztm466h6th94t3s.jpg) 该模块主要使用引脚说明如下: | 引脚 | 说明 | | ---- | ---- | | SI | SPI 接口的数据输入引脚 | | SO | SPI 接口的数据输出引脚 | | SCK | SPI 接口的时钟输入引脚 | | CS | SPI 接口的片选输入引脚 | | INT | INT中断输出引脚 | 该模块和 GD32303E-EVAL 开发板连接情况如下: | ENC28J60 引脚 | GD32303E-EVAL说明 | | ---- | ---- | | VCC | 3.3V电源 | | GND | GND | | SI | SPI MOSI,引脚为 PB15 | | SO | SPI MISO,引脚为 PB14 | | SCK | SPI SCK,引脚为 PB13 | | CS | SPI CS,引脚为 PC0 | | INT | INT中断输入, 引脚为 PC1 | 开发板供电及连接情况: - 供电方式:开发板使用 Mini USB 接口或者 DC-005 连接器提供 5V 电源。 - 下载程序:下载程序到开发板需要一套 JLink 或者使用 GD-Link 工具。 - 串口连接:使用 USB 转串口线连接开发板的串口0对应的 PA9 和 PA10 引脚,并连接电脑。 ## 2. 配置工程文件 ### 2.1 开启 ENV 配置界面 切换到工程目录下,在ENV工具命令行界面输入 `menuconfig` 命令开启配置界面。 ![menuconfig.jpg](/uploads/201805/15/105209z9siks5jz2sk5w99.jpg) ### 2.1 使能 ENC28J60 驱动 使用 ENC28j60 需要先使能 ENC28J60 SPI 网络接口驱动。 ![enc28j60_env.jpg](/uploads/201805/15/105237tvvoh7chcvuaby0x.jpg) ### 2.2 开启 LWIP2.0.2,优化默认配置 RT-Thread实时操作系统就采用了 LWIP 做为默认的TCP/IP协议栈,设备联网需要开启 LWIP,版本使用最新版本 `LWIP2.0.2`,如下图所示: ![lwip_env.jpg](/uploads/201805/15/105250nqcdvbdapwqdwvga.jpg) LWIP2.0.2 开启之后内存资源占用比较大,而我们的GD32303E-EVAL 评估板内存资源有限,所以我们要对默认开启的 LWIP 参数进行优化配置,减小内存占用,下图为配置方式: ![lwip_cfg_env.jpg](/uploads/201805/15/105305gzrd7tjs1qk1673k.jpg) ### 2.3 开启 DFS_NET,使用 POSIX 标准接口 用户使用 POSIX 标准网络接口,需要开启 DFS_NET,并且配置 `DFS_FD_MAX` 用于增大网络连接数量,如下图所示: ![dfs_net_env.jpg](/uploads/201805/15/105315xx7jn17qxmxqzfqz.jpg) ### 2.4 保存退出 保存配置,退出配置界面,在ENV工具命令行界面使用 scons --target=mdk5 生成新工程。 ## 3. 运行测试代码 ### 3.1 初始化以太网设备 打开新生成的 MDK 工程,并添加示例代码到工程: ![add_ports.jpg](/uploads/201805/15/105329puv2o9uzy0bcccbk.jpg) 在电脑端使用 xshell 打开对应端口,波特率配置为115200,编译代码并下载至开发板,然后按 reset 重启开发板,xshell 会显示启动信息,`msh` 中执行 `app_init` 命令初始化以太网设备, 显示如下信息表明以太网设备初始化成功: ``` \ | / ‐ RT ‐ Thread Operating System / | \ 3.0.4 build May 9 2018 2006 ‐ 2018 Copyright by rt‐thread team lwIP‐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 />ifconfig network interface: e0 (Default) MTU: 1500 MAC: 00 04 a3 12 34 56 FLAGS: UP LINK_UP ETHARP IGMP ip address: 192.168.12.35 gw address: 192.168.10.1 net mask : 255.255.0.0 dns server #0: 192.168.10.1 dns server #1: 223.5.5.5 ``` ### 3.1 TCP Client 示例演示 电脑端网络调试助手开启 TCP 服务器,设备作为客户端连接电脑端服务器,`msh` 中执行命令 `tcpclient [server_ip] [server_port]`(server_ip 为服务器地址,server_port 为服务器端口号),进行数据交互,说明网络连接成功,如下图显示: ![tcpclient.jpg](/uploads/201805/15/105356x5wqwpksxqpmvww5.jpg) ### 3.1 TCP Server 示例演示 设备开启 TCP 服务器,`msh` 中执行命令 `tcpserver`(默认端口号为5000),电脑网络调试助手开启客户端连接设备服务器,进行数据交互,说明网络连接成功,如下图显示: ![tcpserver.jpg](/uploads/201805/15/105409beqjj78hffker2z6.jpg) 本章节主要介绍了设备通过外接以太网模块 ENC28J60 连接网络并且进行数据交互测试的过程,更多源码请参考测试代码和 RT-Thread 官方应用笔记。 ## 4. 参考 - [ENV 工具使用手册](https://www.rt-thread.org/document/site/rtthread-development-guide/rtthread-tool-manual/env/env-user-manual/) - [GD32303E-EVAL 官网](http://gd32mcu.21ic.com/site) - [GD32303E-EVAL BSP源码及资料百度云](https://pan.baidu.com/s/1uHza1tiVUnmg8ixMzZLAFA) - [ENC28J60 中文数据手册](http://www.microchip.com.cn/newcommunity/Uploads/Download/Library/39662a_cn.pdf) - [玩溜 GD32303E-EVAL BSP 系列(一)----基本系统跑起来](https://www.rt-thread.org/qa/thread-7027-1-1.html)
查看更多
0
个回答
默认排序
按发布时间排序
暂无答案,快来添加答案吧
撰写答案
登录
注册新账号
关注者
0
被浏览
4.5k
关于作者
Cheney_Chen
这家伙很懒,什么也没写!
提问
4
回答
415
被采纳
1
关注TA
发私信
相关问题
1
stm32f407+lan8720 lwip2.0 作业提交
2
onenet应用连不上云端
3
【文件系统】晴天文件匹配
4
rtt semc sdram 基于操作系统怎么初始化驱动设备
5
RT-Thread移植笔记
6
RT-Thread内核移植+LoIIs+STM32F103C8+StdLib
7
EVN编译报错,求助大神
8
【内核和外设学习营】十里 简单LED闪亮测试
9
【内核和外设学习营】 十里 串口指令控制RGB灯点亮的颜色
10
【内核和外设学习营】 十里 PWM单色呼吸灯实验
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
机器人操作系统 (ROS2) 和 RT-Thread 通信
4
国产MCU移植系列教程汇总,欢迎查看!
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
【RT-Thread 全球电子设计大赛】基于vision board 的巡检除冰机器人
2
新手教程-Pin设备使用
3
基于嵌入式的智能关怀系统#24嵌入式设计大赛
4
基于机器视觉识别自动跟踪器
5
[24嵌入式设计大赛]基于Vision-Board的智能应急环境监测控制小车
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
ART-Pi
FinSH
USB
文件系统
DMA
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
ESP8266
I2C_IIC
ota在线升级
WIZnet_W5500
UART
flash
packages_软件包
cubemx
PWM
freemodbus
BSP
潘多拉开发板_Pandora
定时器
ADC
中断
flashDB
socket
Debug
GD32
编译报错
msh
keil_MDK
at_device
MicroPython
rt_mq_消息队列_msg_queue
ulog
C++_cpp
本月问答贡献
rv666
6
个答案
1
次被采纳
踩姑娘的小蘑菇
5
个答案
1
次被采纳
用户名由3_15位
5
个答案
1
次被采纳
xiaorui
2
个答案
1
次被采纳
张世争
2
个答案
1
次被采纳
本月文章贡献
jaffer
1
篇文章
5
次点赞
rtt_dmx
1
篇文章
4
次点赞
BRICK PORTER
1
篇文章
2
次点赞
不灬忘初心
1
篇文章
2
次点赞
flytianya2010
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部