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)
-
控制器
+關(guān)注
關(guān)注
112文章
15886瀏覽量
175399 -
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5288瀏覽量
169686 -
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)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論