0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

lPCU_elecfans 来源:未知 作者:李倩 2018-06-22 08:52 次阅读

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‐ThreadOperatingSystem/|3.0.4buildMay920182006‐2018Copyrightbyrt‐threadteamlwIP‐2.0.2initialized![SFUD]FindaGigaDeviceGD25Q16Bflashchip.Sizeis2097152bytes.[SFUD]gd25qflashdeviceisinitializesuccess.msh/>msh/>app_init[INIT]enc28j60deviceinitializesuccess!//以太网设备初始化成功

输入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 系列(一)----基本系统跑起来

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

    关注

    112

    文章

    16275

    浏览量

    177730
  • 以太网
    +关注

    关注

    40

    文章

    5407

    浏览量

    171453
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1702

    浏览量

    91456

原文标题:【周四RTOS专栏】五分钟教你实现GD32开发板设备的网络连接

文章出处:【微信号:elecfans,微信公众号:电子发烧友网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于RT-ThreadSPI通讯

    驱动层的驱动。(rt-thread设备 I/O 模型有设备管理层、设备
    的头像 发表于 08-22 09:28 1697次阅读

    基于RT-Thread的RoboMaster电控框架设计

    由于 RT-Thread 稳定高效的内核,丰富的文档教程,积极活跃的社区氛围,以及设备驱动框架、Kconfig、Scons、日志系统、海量的软件包……很难不选择
    发表于 09-06 15:21 690次阅读

    使用RT-Thread操作系统驱动教程简单记录

    串口设备。本章使用 RT-Thread 的 AT 设备驱动,使用 ESP8266 做网络设备,并且使
    发表于 03-22 10:51

    【资料】RT-Thread设备框架使用指南

    1、RT-Thread设备框架使用指南——WLAN设备  随着物联网快速发展,越来越多的嵌入式设备上搭载了 WIFI 无线
    发表于 03-22 16:07

    RT-Thread实时操作系统外设驱动的使用方法说明

    RT-Thread 实时操作系统中,各种各样的设备驱动是通过一套 I/O 设备管理框架来管理的。设备
    发表于 07-19 11:37

    如何使用RT-Thread的串口设备

    STM32F4 探索者开发板上验证。接着分析了示例代码的实现,最后深入地描述了 RT-Thread 设备管理框架与串口的联系。问题阐述RT-Thr
    发表于 10-25 11:05

    如何使用RT-Thread SPI设备驱动

    系列Flash存储器、ENC28J60以太网模块等。SPI设备驱动框架的层次结构如下图所示。基于前面的介绍用户已经大致了解了
    发表于 10-25 14:20

    RT-ThreadSPI的细节内容

    作为通信协议的两大基础,IIC和SPI两者的应用都非常广泛,上一篇文章讲过了RTT上IIC的移植与实践。 《一步到位!教你RT-Thread设备IIC驱动移植》 讲完IIC,自然少不
    的头像 发表于 09-30 15:35 3863次阅读
    <b class='flag-5'>RT-Thread</b>上<b class='flag-5'>SPI</b>的细节内容

    RT-Thread设备模型框架及创建注册设备实现

    RT-Thread设备模型框架及创建注册设备实现方式介绍如下:
    的头像 发表于 05-28 10:38 2168次阅读
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>设备</b>模型<b class='flag-5'>框架</b>及创建注册<b class='flag-5'>设备</b>的<b class='flag-5'>实现</b>

    RT-Thread全球技术大会:RNDIS设备介绍及应用

    RT-Thread全球技术大会上,以RNDIS设备驱动框架为主题,首先介绍了RNDIS设备介绍及应用。
    的头像 发表于 05-28 14:36 2212次阅读
    <b class='flag-5'>RT-Thread</b>全球技术大会:RNDIS<b class='flag-5'>设备</b>介绍及应用

    RT-Thread文档_SPI 设备

    RT-Thread文档_SPI 设备
    发表于 02-22 18:36 2次下载
    <b class='flag-5'>RT-Thread</b>文档_<b class='flag-5'>SPI</b> <b class='flag-5'>设备</b>

    浅析RT-Thread设备驱动框架

    RT-Thread 设备框架属于组件和服务层,是基于 RT-Thread 内核之上的上层软件。设备框架
    的头像 发表于 08-07 15:39 1946次阅读

    基于 RT-Thread 的 RoboMaster 电控框架(一)

    由于 RT-Thread 稳定高效的内核,丰富的文档教程,积极活跃的社区氛围,以及设备驱动框架、Kconfig、Scons、日志系统、海量的软件包……很难不选择
    的头像 发表于 09-19 19:55 751次阅读

    RT-Thread设备驱动开发指南》基础篇--以先楫bsp的hwtimer设备为例

    :对RT-thread以及设备框架进行介绍,再分别介绍基于IO框架中常用的外设设备,分别是UART、PIN、
    的头像 发表于 02-24 08:16 1580次阅读
    《<b class='flag-5'>RT-Thread</b><b class='flag-5'>设备</b><b class='flag-5'>驱动</b>开发指南》基础篇--以先楫bsp的hwtimer<b class='flag-5'>设备</b>为例

    RT-Thread 发布 EtherKit开源以太网硬件!

    EtherKit是RT-Thread联合瑞萨电子推出的一款高性能、多功能以太网MPU开发板,采用瑞萨电子RZ/N2L芯片,搭载ArmCortex-R52内核,主频高达400MHz;支持TSN的3端口
    的头像 发表于 11-20 01:07 458次阅读
    <b class='flag-5'>RT-Thread</b> 发布 EtherKit开源<b class='flag-5'>以太网</b>硬件!