以太網(wǎng)(Ethernet)外設(shè)驅(qū)動涉及硬件與軟件的深度交互,其核心在于通過特定接口連接主處理器與以太網(wǎng)控制器,實現(xiàn)數(shù)據(jù)的發(fā)送、接收以及數(shù)據(jù)鏈路層處理等功能,部分控制器還集成了TCP/IP協(xié)議棧以簡化網(wǎng)絡(luò)應(yīng)用開發(fā),從而支持多通道通信和高效的網(wǎng)絡(luò)數(shù)據(jù)傳輸。
一、主要硬件準(zhǔn)備
1.1 主要硬件
Air8101開發(fā)板套件;
支持?jǐn)?shù)據(jù)傳輸?shù)?a target="_blank">USB數(shù)據(jù)線;
Win10及其以上PC電腦。
1.2 接線示意
配套以太網(wǎng)小板,可以直插到Air8101開發(fā)板上,對應(yīng)端口如下圖示:
需要注意的是:
因前期B10版本的開發(fā)板設(shè)計原因,測試以太網(wǎng)功能時,需要把SNeT的3.3V單獨接到板子右側(cè)SWD的3.3V。
實物連線如下圖示:
二、最新源碼及實操教程
Air8101應(yīng)用示例持續(xù)更新中,當(dāng)前以太網(wǎng)示例demo及實操教程,將教你使用LuatOS開發(fā),實現(xiàn)Air8101通過以太網(wǎng)小板LAN8720連接網(wǎng)絡(luò)。
最新源碼及實操教程詳見:
https://docs.openluat.com/air8101/luatos/app/driver/eth/
1)示例代碼:
2)運行示意:
三、核心腳本代碼詳解
netdrv接口提供了一系列函數(shù),用于實現(xiàn)相關(guān)網(wǎng)絡(luò)配置與管理功能。
3.1 初始化指定netdrv設(shè)備
netdrv.setup(id, tp, opts)
1)參數(shù):
id:int型(網(wǎng)絡(luò)適配器編號,例如socket.LWIP_ETH);
tp:int型(實現(xiàn)方式,如果是設(shè)備自帶的硬件,那就不需要傳,外掛設(shè)備需要傳,當(dāng)前支持CH390H/D);
opts:int型(外掛方式,需要額外的參數(shù),參考示例)。
2)返回值:
返回值類型:boolean;
說明:初始化成功與否。
3)例子:
3.2 開啟或關(guān)閉DHCP
netdrv.dhcp(id, enable)
1)參數(shù):
id:int型(網(wǎng)絡(luò)適配器編號,例如socket.LWIP_ETH);
enable:boolean型(開啟或者關(guān)閉)。
2)返回值:
返回值類型:boolean;
說明:成功與否。
3)例子:
3.3 設(shè)置或獲取設(shè)備MAC
netdrv.mac(id, new_mac, raw_string)。
1)參數(shù):
id:int型(網(wǎng)絡(luò)適配器編號,例如socket.LWIP_ETH);
new_mac:string型(新的MAC地址,可選,必須是6個字節(jié));
raw_string:boolean型(是否返回6字節(jié)原始數(shù)據(jù),默認(rèn)是否,返回HEX字符串)。
2)返回值:
返回值類型:boolean;
說明:成功與否。
3)例子:
3.4 設(shè)置或讀取ipv4地址
netdrv.ipv4(id, addr, mark, gw)
1)參數(shù):
id:int型(網(wǎng)絡(luò)適配器編號,例如socket.LWIP_ETH);
addr:string型(ipv4地址,如果是讀取就不需要傳);
mark:string型(掩碼);
gw:string型(網(wǎng)關(guān))。
2)返回值:
addr:string型(ipv4地址);
mark:string型(掩碼);
gw:string型(網(wǎng)關(guān))。
3)例子:
3.5 開啟或關(guān)閉NAPT
netdrv.napt(id)
1)參數(shù):
id:int型(網(wǎng)關(guān)適配器的id)。
2)返回值:
返回值類型:bool;
說明:合法值就返回true,否則返回nil。
3)例子:
3.6 獲取netdrv的物理連接狀態(tài)
netdrv.link(id)
1)參數(shù):
id:int型(netdrv的id,例如socket.LWIP_ETH)。
2)返回值:
返回值類型:bool;
說明:已連接返回true,否則返回false;如果id對應(yīng)的netdrv不存在,返回nil。
3)例子:
3.7 獲取netdrv的網(wǎng)絡(luò)狀態(tài)
netdrv.ready(id)
1)參數(shù):
id:int型(netdrv的id,例如socket.LWIP_ETH);
2)返回值:
返回值類型:bool;
說明:已連接返回true,否則返回false;如果id對應(yīng)的netdrv不存在,返回nil。
3)例子:
今天的內(nèi)容就分享到這里了~
審核編輯 黃宇
-
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5532瀏覽量
173858 -
源碼
+關(guān)注
關(guān)注
8文章
665瀏覽量
30012
發(fā)布評論請先 登錄
相關(guān)推薦
一文讀懂~ 源碼開放:Air8101快速實現(xiàn)以太網(wǎng)功能!

Air8101工業(yè)引擎十大音頻能力,你想怎么用?
[迅為RK3568開發(fā)板]非科班也能玩轉(zhuǎn)Android應(yīng)用,體驗QT跨平臺能力
![[迅為RK3568開發(fā)板]非科班<b class='flag-5'>也</b><b class='flag-5'>能玩轉(zhuǎn)</b>Android應(yīng)用,體驗QT跨平臺能力](https://file1.elecfans.com/web3/M00/02/F1/wKgZO2diirGAPoENAACpt0CV3xc346.png)
利用LWIP 2.2實現(xiàn)以太網(wǎng)的DHCP功能

以太網(wǎng)協(xié)議的種類和特點
工業(yè)以太網(wǎng)的應(yīng)用場景分析
以太網(wǎng)幀格式和功能詳解
實現(xiàn)具有電壓轉(zhuǎn)換功能的工業(yè)和汽車以太網(wǎng)RGMII接口

以太網(wǎng)端口的類型和特性
RS485轉(zhuǎn)LoRa-以太網(wǎng)TCP轉(zhuǎn)LoRa

工業(yè)以太網(wǎng)和普通以太網(wǎng)區(qū)別在哪

使用VN5620監(jiān)控記錄以太網(wǎng)總線數(shù)據(jù)#車載以太網(wǎng) #CANape

車載以太網(wǎng)硬件接口VN5620設(shè)備展示與介紹#車載以太網(wǎng)
如何實現(xiàn)以太網(wǎng)功能的,是用F107或F407芯片自己移植Lwip還是采用SPI轉(zhuǎn)以太網(wǎng)模塊?

評論