乐于分享
好东西不私藏

源码开放:Air8101快速实现以太网功能

本文最后更新于2026-01-01,某些文章具有时效性,若有错误或已失效,请在下方留言或联系老夜

源码开放:Air8101快速实现以太网功能

合宙Air8101是一款主打多媒体场景的工业引擎产品,支持丰富的多媒体应用能力。

除此之外还支持:Wi-Fi、以太网、4G、蓝牙联网能力,以及UART、SPI、I2C、SD卡、CAN等外设控制和驱动能力。

本文特别分享Air8101以太网示例:

以太网(Ethernet)外设驱动涉及硬件与软件的深度交互,其核心在于通过特定接口连接主处理器与以太网控制器,实现数据的发送、接收以及数据链路层处理等功能,部分控制器还集成了TCP/IP协议栈以简化网络应用开发,从而支持多通道通信和高效的网络数据传输。

最新开发资料详见:www.air8101.cn

1

   – 主要硬件准备 –   


1.1 主要硬件

  • 合宙Air8101开发板套件

  • 支持数据传输的USB数据线;

  • Win10及其以上PC电脑。

1.2 接线示意

配套以太网小板,可以直插到Air8101开发板上,对应端口如下图示:

需要注意的是:

因前期B10版本的开发板设计原因,测试以太网功能时,需要把SNeT的3.3V单独接到板子右侧SWD的3.3V。

实物连线如下图示:

2

  – 最新源码及实操教程 –  


Air8101应用示例持续更新中,当前以太网示例demo及实操教程,将教你使用LuatOS开发,实现Air8101通过以太网小板LAN8720连接网络。

最新源码及实操教程详见:

https://docs.openluat.com/air8101/luatos/app/driver/eth/

1)示例代码:

2)运行示意:

3

  – 核心脚本代码详解 –  


合宙的netdrv接口提供了一系列函数,用于实现相关网络配置与管理功能。

3.1 初始化指定netdrv设备

netdrv.setup(id, tp, opts)

1)参数:

  • id:int型(网络适配器编号,例如socket.LWIP_ETH);

  • tp:int型(实现方式,如果是设备自带的硬件,那就不需要传,外挂设备需要传,当前支持CH390H/D);

  • opts:int型(外挂方式,需要额外的参数,参考示例)。

2)返回值:

  • 返回值类型:boolean;

  • 说明:初始化成功与否

3)例子:

3.2 开启或关闭DHCP

netdrv.dhcp(id, enable)

1)参数:

  • id:int型(网络适配器编号,例如socket.LWIP_ETH);

  • enable:boolean型(开启或者关闭)。

2)返回值:

  • 返回值类型:boolean;

  • 说明:成功与否。

3)例子:

3.3 设置或获取设备MAC

netdrv.mac(id, new_mac, raw_string)。

1)参数:

  • id:int型(网络适配器编号,例如socket.LWIP_ETH);

  • new_mac:string型(新的MAC地址,可选,必须是6个字节);

  • raw_string:boolean型(是否返回6字节原始数据,默认是否,返回HEX字符串)。

2)返回值:

  • 返回值类型:boolean;

  • 说明:成功与否。

3)例子:

3.4 设置或读取ipv4地址

netdrv.ipv4(id, addr, mark, gw)

1)参数:

  • id:int型(网络适配器编号,例如socket.LWIP_ETH);

  • addr:string型(ipv4地址,如果是读取就不需要传);

  • mark:string型(掩码);

  • gw:string型(网关)。

2)返回值:

  • addr:string型(ipv4地址);

  • mark:string型(掩码);

  • gw:string型(网关)。

3)例子:

3.5 开启或关闭NAPT

netdrv.napt(id)

1)参数:

  • id:int型(网关适配器的id)。

2)返回值:

  • 返回值类型:bool;

  • 说明:合法值就返回true,否则返回nil。

3)例子:

3.6  获取netdrv的物理连接状态

netdrv.link(id)

1)参数:

  • id:int型(netdrv的id,例如socket.LWIP_ETH)。

2)返回值:

  • 返回值类型:bool;

  • 说明:已连接返回true,否则返回false;如果id对应的netdrv不存在,返回nil。

3)例子:

3.7 获取netdrv的网络状态

netdrv.ready(id)

1)参数:

  • id:int型(netdrv的id,例如socket.LWIP_ETH);

2)返回值:

  • 返回值类型:bool;

  • 说明:已连接返回true,否则返回false;如果id对应的netdrv不存在,返回nil。

3)例子:

 

今天的内容就分享到这里了~你还想看哪些应用示例,欢迎留言探讨。

点击下方链接了解更多:

定了!Air8101两种HMI开发框架:LVGL和AirUI

告别传统安卓方案!合宙Air8101垃圾分类智能云秤方案

▼ 联络合宙市场部负责人 ▼

微信/企业微信扫码加好友

▼ 了解更多合宙资讯 ▼

4G+定位+WiFi+蓝牙,Air8000整机开发板Air8101核心板+配件板新品

合宙低功耗4G模组,再增4款硬核新品

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 源码开放:Air8101快速实现以太网功能
×
订阅图标按钮