0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用RT-Thread提供的SPI驅(qū)動(dòng)框架使能外接以太網(wǎng)設(shè)備,實(shí)現(xiàn)設(shè)備連接網(wǎng)絡(luò)

lPCU_elecfans ? 來(lái)源:未知 ? 作者:李倩 ? 2018-06-22 08:52 ? 次閱讀

1. 準(zhǔn)備

本章將介紹使用 RT-Thread 提供的 SPI 驅(qū)動(dòng)框架使能外接以太網(wǎng)設(shè)備,實(shí)現(xiàn)設(shè)備連接網(wǎng)絡(luò)

GD32303E-EVAL 評(píng)估板沒(méi)有板載以太網(wǎng)模塊,所以需要使用外接以太網(wǎng)設(shè)備連接網(wǎng)絡(luò),本文使用的模塊主控芯片型號(hào)為 ENC28J60,它可作為任何配備有 SPI 的控制器的以太網(wǎng)接口,兼容 IEEE 802.3 標(biāo)準(zhǔn),最高傳輸速度可達(dá) 10M/s,正常工作電壓為 3.3V,模塊上使用的網(wǎng)絡(luò)變壓器型號(hào)為 HR911105A,模塊外觀如下:

該模塊主要使用引腳說(shuō)明如下:

該模塊和 GD32303E-EVAL 開(kāi)發(fā)板連接情況如下:

開(kāi)發(fā)板供電及連接情況:

供電方式:開(kāi)發(fā)板使用 Mini USB 接口或者 DC-005 連接器提供 5V 電源。

下載程序:下載程序到開(kāi)發(fā)板需要一套 JLink 或者使用 GD-Link 工具。

串口連接:使用 USB 轉(zhuǎn)串口線連接開(kāi)發(fā)板的串口0對(duì)應(yīng)的 PA9 和 PA10 引腳,并連接電腦。

2. 配置工程文件

2.1 開(kāi)啟 ENV 配置界面

切換到工程目錄下,在ENV工具命令行界面輸入menuconfig命令開(kāi)啟配置界面。

2.1 使能 ENC28J60 驅(qū)動(dòng)

使用 ENC28j60 需要先使能 ENC28J60 SPI 網(wǎng)絡(luò)接口驅(qū)動(dòng)。

2.2 開(kāi)啟 LWIP2.0.2,優(yōu)化默認(rèn)配置

RT-Thread實(shí)時(shí)操作系統(tǒng)就采用了 LWIP 做為默認(rèn)的TCP/IP協(xié)議棧,設(shè)備聯(lián)網(wǎng)需要開(kāi)啟 LWIP,版本使用最新版本LWIP2.0.2,如下圖所示:

LWIP2.0.2 開(kāi)啟之后內(nèi)存資源占用比較大,而我們的GD32303E-EVAL 評(píng)估板內(nèi)存資源有限,所以我們要對(duì)默認(rèn)開(kāi)啟的 LWIP 參數(shù)進(jìn)行優(yōu)化配置,減小內(nèi)存占用,下圖為配置方式:

2.3 開(kāi)啟 DFS_NET,使用 POSIX 標(biāo)準(zhǔn)接口

用戶使用 POSIX 標(biāo)準(zhǔn)網(wǎng)絡(luò)接口,需要開(kāi)啟 DFS_NET,并且配置DFS_FD_MAX用于增大網(wǎng)絡(luò)連接數(shù)量,如下圖所示:

2.4 保存退出

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

3. 運(yùn)行測(cè)試代碼

3.1 初始化以太網(wǎng)設(shè)備

打開(kāi)新生成的 MDK 工程,并添加示例代碼到工程:

在電腦端使用 xshell 打開(kāi)對(duì)應(yīng)端口,波特率配置為115200,編譯代碼并下載至開(kāi)發(fā)板,然后按 reset 重啟開(kāi)發(fā)板,xshell 會(huì)顯示啟動(dòng)信息,msh中執(zhí)行app_init命令初始化以太網(wǎng)設(shè)備, 顯示如下信息表明以太網(wǎng)設(shè)備初始化成功:

|/‐RT‐ThreadOperatingSystem/|3.0.4buildMay920182006‐2018Copyrightbyrt‐threadteamlwIP‐2.0.2initialized![SFUD]FindaGigaDeviceGD25Q16Bflashchip.Sizeis2097152bytes.[SFUD]gd25qflashdeviceisinitializesuccess.msh/>msh/>app_init[INIT]enc28j60deviceinitializesuccess!//以太網(wǎng)設(shè)備初始化成功

輸入ifconfig命令查看當(dāng)前網(wǎng)絡(luò)狀態(tài)(IP地址、MAC地址、子網(wǎng)掩碼等),如下顯示設(shè)備獲取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 示例演示

電腦端網(wǎng)絡(luò)調(diào)試助手開(kāi)啟 TCP 服務(wù)器,設(shè)備作為客戶端連接電腦端服務(wù)器,msh中執(zhí)行命令tcpclient [server_ip] [server_port](server_ip 為服務(wù)器地址,server_port 為服務(wù)器端口號(hào)),進(jìn)行數(shù)據(jù)交互,說(shuō)明網(wǎng)絡(luò)連接成功,如下圖顯示:

3.1 TCP Server 示例演示

設(shè)備開(kāi)啟 TCP 服務(wù)器,msh中執(zhí)行命令tcpserver(默認(rèn)端口號(hào)為5000),電腦網(wǎng)絡(luò)調(diào)試助手開(kāi)啟客戶端連接設(shè)備服務(wù)器,進(jìn)行數(shù)據(jù)交互,說(shuō)明網(wǎng)絡(luò)連接成功,如下圖顯示:

本章節(jié)主要介紹了設(shè)備通過(guò)外接以太網(wǎng)模塊 ENC28J60 連接網(wǎng)絡(luò)并且進(jìn)行數(shù)據(jù)交互測(cè)試的過(guò)程,更多源碼請(qǐng)參考測(cè)試代碼和 RT-Thread 官方應(yīng)用筆記。

4. 參考

ENV 工具使用手冊(cè)

GD32303E-EVAL 官網(wǎng)

GD32303E-EVAL BSP源碼及資料百度云

ENC28J60 中文數(shù)據(jù)手冊(cè)

玩溜 GD32303E-EVAL BSP 系列(一)----基本系統(tǒng)跑起來(lái)

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    15886

    瀏覽量

    175399
  • 以太網(wǎng)
    +關(guān)注

    關(guān)注

    40

    文章

    5288

    瀏覽量

    169686
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1669

    瀏覽量

    90744

原文標(biāo)題:【周四RTOS專欄】五分鐘教你實(shí)現(xiàn)GD32開(kāi)發(fā)板設(shè)備的網(wǎng)絡(luò)連接

文章出處:【微信號(hào):elecfans,微信公眾號(hào):電子發(fā)燒友網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于RT-ThreadSPI通訊

    驅(qū)動(dòng)層的驅(qū)動(dòng)。(rt-thread設(shè)備 I/O 模型有設(shè)備管理層、設(shè)備
    的頭像 發(fā)表于 08-22 09:28 ?1534次閱讀

    基于RT-Thread的RoboMaster電控框架設(shè)計(jì)

    由于 RT-Thread 穩(wěn)定高效的內(nèi)核,豐富的文檔教程,積極活躍的社區(qū)氛圍,以及設(shè)備驅(qū)動(dòng)框架、Kconfig、Scons、日志系統(tǒng)、海量的軟件包……很難不選擇
    發(fā)表于 09-06 15:21 ?563次閱讀

    使用RT-Thread操作系統(tǒng)驅(qū)動(dòng)教程簡(jiǎn)單記錄

    串口設(shè)備。本章使用 RT-Thread 的 AT 設(shè)備驅(qū)動(dòng),使用 ESP8266 做網(wǎng)絡(luò)設(shè)備,并且使
    發(fā)表于 03-22 10:51

    【資料】RT-Thread設(shè)備框架使用指南

    1、RT-Thread設(shè)備框架使用指南——WLAN設(shè)備  隨著物聯(lián)網(wǎng)快速發(fā)展,越來(lái)越多的嵌入式設(shè)備上搭載了 WIFI 無(wú)線
    發(fā)表于 03-22 16:07

    分享一種RT-Thread實(shí)時(shí)操作系統(tǒng)外設(shè)驅(qū)動(dòng)的使用方法

    RT-Thread 實(shí)時(shí)操作系統(tǒng)中,各種各樣的設(shè)備驅(qū)動(dòng)是通過(guò)一套 I/O 設(shè)備管理框架來(lái)管理的。設(shè)備
    發(fā)表于 07-15 11:02

    RT-Thread實(shí)時(shí)操作系統(tǒng)外設(shè)驅(qū)動(dòng)的使用方法說(shuō)明

    RT-Thread 實(shí)時(shí)操作系統(tǒng)中,各種各樣的設(shè)備驅(qū)動(dòng)是通過(guò)一套 I/O 設(shè)備管理框架來(lái)管理的。設(shè)備
    發(fā)表于 07-19 11:37

    如何使用RT-Thread的串口設(shè)備

    STM32F4 探索者開(kāi)發(fā)板上驗(yàn)證。接著分析了示例代碼的實(shí)現(xiàn),最后深入地描述了 RT-Thread 設(shè)備管理框架與串口的聯(lián)系。問(wèn)題闡述RT-Thr
    發(fā)表于 10-25 11:05

    如何使用RT-Thread SPI設(shè)備驅(qū)動(dòng)

    系列Flash存儲(chǔ)器、ENC28J60以太網(wǎng)模塊等。SPI設(shè)備驅(qū)動(dòng)框架的層次結(jié)構(gòu)如下圖所示?;谇懊娴慕榻B用戶已經(jīng)大致了解了
    發(fā)表于 10-25 14:20

    RT-ThreadSPI的細(xì)節(jié)內(nèi)容

    作為通信協(xié)議的兩大基礎(chǔ),IIC和SPI兩者的應(yīng)用都非常廣泛,上一篇文章講過(guò)了RTT上IIC的移植與實(shí)踐。 《一步到位!教你RT-Thread設(shè)備IIC驅(qū)動(dòng)移植》 講完IIC,自然少不
    的頭像 發(fā)表于 09-30 15:35 ?3754次閱讀
    <b class='flag-5'>RT-Thread</b>上<b class='flag-5'>SPI</b>的細(xì)節(jié)內(nèi)容

    RT-Thread設(shè)備模型框架及創(chuàng)建注冊(cè)設(shè)備實(shí)現(xiàn)

    RT-Thread設(shè)備模型框架及創(chuàng)建注冊(cè)設(shè)備實(shí)現(xiàn)方式介紹如下:
    的頭像 發(fā)表于 05-28 10:38 ?2044次閱讀
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>設(shè)備</b>模型<b class='flag-5'>框架</b>及創(chuàng)建注冊(cè)<b class='flag-5'>設(shè)備</b>的<b class='flag-5'>實(shí)現(xiàn)</b>

    RT-Thread全球技術(shù)大會(huì):RNDIS設(shè)備介紹及應(yīng)用

    RT-Thread全球技術(shù)大會(huì)上,以RNDIS設(shè)備驅(qū)動(dòng)框架為主題,首先介紹了RNDIS設(shè)備介紹及應(yīng)用。
    的頭像 發(fā)表于 05-28 14:36 ?2041次閱讀
    <b class='flag-5'>RT-Thread</b>全球技術(shù)大會(huì):RNDIS<b class='flag-5'>設(shè)備</b>介紹及應(yīng)用

    RT-Thread文檔_SPI 設(shè)備

    RT-Thread文檔_SPI 設(shè)備
    發(fā)表于 02-22 18:36 ?2次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>SPI</b> <b class='flag-5'>設(shè)備</b>

    淺析RT-Thread設(shè)備驅(qū)動(dòng)框架

    RT-Thread 設(shè)備框架屬于組件和服務(wù)層,是基于 RT-Thread 內(nèi)核之上的上層軟件。設(shè)備框架
    的頭像 發(fā)表于 08-07 15:39 ?1737次閱讀

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

    由于 RT-Thread 穩(wěn)定高效的內(nèi)核,豐富的文檔教程,積極活躍的社區(qū)氛圍,以及設(shè)備驅(qū)動(dòng)框架、Kconfig、Scons、日志系統(tǒng)、海量的軟件包……很難不選擇
    的頭像 發(fā)表于 09-19 19:55 ?642次閱讀

    RT-Thread設(shè)備驅(qū)動(dòng)開(kāi)發(fā)指南》基礎(chǔ)篇--以先楫bsp的hwtimer設(shè)備為例

    :對(duì)RT-thread以及設(shè)備框架進(jìn)行介紹,再分別介紹基于IO框架中常用的外設(shè)設(shè)備,分別是UART、PIN、
    的頭像 發(fā)表于 02-24 08:16 ?959次閱讀
    《<b class='flag-5'>RT-Thread</b><b class='flag-5'>設(shè)備</b><b class='flag-5'>驅(qū)動(dòng)</b>開(kāi)發(fā)指南》基礎(chǔ)篇--以先楫bsp的hwtimer<b class='flag-5'>設(shè)備</b>為例