02 4G连接外部网络,以太网lan模式为其他以太网设备提供接入
作者:王城钧 | 最后修改:2026-04-30
一、多网融合概述
Air780EHV 开发板通过多网融合技术将不同类型的通信网络(4G、以太网)整合在一起,从而形成统一、高效、互操作性强的网络系统。
本文基于 Air780EHV 模块,通过 4G 移动网络为 以太网设备提供统一的上网接入服务。

二、准备硬件环境
Air780EHV 核心板一块 + 可上网的 sim 卡一张 + 网线一根 +AirETH_1000 配件板一个,硬件连接示意图,如下图所示:

TYPE-C USB 数据线一根 + 杜邦线若干;
- Air780EHV 核心板通过 TYPE-C USB 口供电;(USB 供电 拨动开关 拨到 USB ON 一端,充电供电 拨码开关 选择充电)
- TYPE-C USB 数据线直接插到核心板的 TYPE-C USB 座子,另外一端连接电脑 USB 口;
- AirETH_1000 板子网口与电脑网口通过网线连接;
3、Air780EHV 核心板和 AirETH_1000 配件板的硬件接线方式为:
| Air780EXX核心板 | AirETH_1000配件板 |
|---|---|
| 3V3 | 3.3v |
| gnd | gnd |
| 86/SPI0CLK | SCK |
| 83/SPI0CS | CSS |
| 84/SPI0MISO | SDO |
| 85/SPI0MOSI | SDI |
| 22/GPIO1 | INT |
三、准备软件环境
参考:Air780EHV 软件环境清单,准备好软件环境。
烧录工具:参考 Luatools 工具使用说明 ;
Air780EHV 烧录需要的固件和脚本文件:
内核固件:本demo开发测试时使用的固件为Air780EHV V2016 版本固件,本demo对固件版本没有什么特殊要求,所以你如果要测试本demo时,可以直接使用最新版本的内核固件;如果发现最新版本的内核固件测试有问题,可以使用我们开发本demo时使用的内核固件版本来对比测试;
准备好软件环境之后,接下来查看 Air780EHV 核心板使用说明将本篇文章中演示使用的项目文件烧录到 Air780EHV 核心板中。
LuatOS 运行所需要的 lib 文件:
使用 Luatools 烧录时,勾选 添加默认 lib 选项,使用默认 lib 脚本文件。
四、软硬件资料
4.1 API 介绍
本文仅介绍程序中使用到的 API 接口,详细接口说明请查看:核心库 API 索引 - luatos@air780EHV - 合宙模组资料中心。
exnetif.setproxy(adapter, main_adapter, other_configs)
配置网络代理实现多网融合;
4.2 以太网电路介绍
以太网电路介绍请查看:10 以太网 RJ45 电路 - luatos@air780EHV - 合宙模组资料中心
五、整体功能概述
5.1 功能概述
1、开启多网融合模式,4G 连接外部网络,支持以太网 lan 模式为其他以太网设备提供接入
2、网络监控,每 5 秒进行 HTTPS 连接测试,实时监测网络的连接状态
5.2 源码展示
程序中已详细注释代码用处,如有不懂可咨询合宙技术人员。
netif_app.lua
exnetif = require "exnetif"
function netif_app_task_func()
local res
-- 等待4G网络连接成功
while not socket.adapter() do
-- 在此处阻塞等待4G网卡连接成功的消息"IP_READY"
-- 或者等待1秒超时退出阻塞等待状态;
-- 注意:此处的1000毫秒超时不要修改的更长;
sys.waitUntil("IP_READY", 1000)
end
-- 设置多网融合功能,4G提供网络供以太网设备上网
res = exnetif.setproxy(socket.LWIP_ETH, socket.LWIP_GP, {
ethpower_en = 20, -- 以太网模块的pwrpin引脚(gpio编号)
tp = netdrv.CH390, -- 网卡芯片型号(选填参数),仅spi方式外挂以太网时需要填写。
opts = {spi = 0, cs = 8, irq = 1}, -- 外挂方式,需要额外的参数(选填参数),仅spi方式外挂以太网时需要填写。
adapter_addr = "192.168.2.1", -- 自定义LWIP_ETH网卡的ip地址(选填),需要自定义ip和网关ip时填写
adapter_gw = {192, 168, 2, 1} -- 自定义LWIP_ETH网卡的网关地址(选填),需要自定义ip和网关ip时填写
})
if res then
log.info("exnetif", "setproxy success")
else
log.info("开启失败,请检查配置项是否正确,日志中是否打印了错误信息")
end
-- 每5秒进行HTTPS连接测试,实时监测4G网络连接状态, 仅供测试需要,量产不需要,用来判断当前网络是否可用,需要的话可以打开注释
-- while 1 do
-- local code, headers, body = http.request("GET", "https://httpbin.air32.cn/bytes/2048", nil, nil,
-- { adapter = socket.LWIP_GP, timeout = 5000, debug = false }).wait()
-- log.info("http执行结果", code, headers, body and #body)
-- sys.wait(10000)
-- end
end
sys.taskInit(netif_app_task_func)
main.lua
PROJECT = "4g_out_ethernet_in"
VERSION = "001.000.000"
-- 在日志中打印项目名和项目版本号
log.info("main", PROJECT, VERSION)
-- 如果内核固件支持wdt看门狗功能,此处对看门狗进行初始化和定时喂狗处理
-- 如果脚本程序死循环卡死,就会无法及时喂狗,最终会自动重启
if wdt then
--配置喂狗超时时间为9秒钟
wdt.init(9000)
--启动一个循环定时器,每隔3秒钟喂一次狗
sys.timerLoopStart(wdt.feed, 3000)
end
-- 如果内核固件支持errDump功能,此处进行配置,【强烈建议打开此处的注释】
-- 因为此功能模块可以记录并且上传脚本在运行过程中出现的语法错误或者其他自定义的错误信息,可以初步分析一些设备运行异常的问题
-- 以下代码是最基本的用法,更复杂的用法可以详细阅读API说明文档
-- 启动errDump日志存储并且上传功能,600秒上传一次
-- if errDump then
-- errDump.config(true, 600)
-- end
-- 使用LuatOS开发的任何一个项目,都强烈建议使用远程升级FOTA功能
-- 可以使用合宙的iot.openluat.com平台进行远程升级
-- 也可以使用客户自己搭建的平台进行远程升级
-- 远程升级的详细用法,可以参考fota的demo进行使用
-- 启动一个循环定时器
-- 每隔3秒钟打印一次总内存,实时的已使用内存,历史最高的已使用内存情况
-- 方便分析内存使用是否有异常
-- sys.timerLoopStart(function()
-- log.info("mem.lua", rtos.meminfo())
-- log.info("mem.sys", rtos.meminfo("sys"))
-- end, 3000)
-- 开启多网融合功能
require "netif_app"
-- 用户代码已结束---------------------------------------------
-- 结尾总是这一句
sys.run()
-- sys.run()之后后面不要加任何语句!!!!!
5.3 程序流程图展示

六、功能演示
6.1 4G 作为数据出口给以太网设备上网
日志打印:

测试环境:Air780EHV 整机核心板、Windows10 以上系统版本电脑
测试结果:电脑能正常识别到以太网网络适配器,也可以正常上网

如下,可以正常打开合宙资料官网

七、总结
至此,Air780EHV 多网融合系列中以 4G 作为数据出口,为以太网设备供网的功能已经结束。如果大家在实际操作中遇到技术难题,欢迎联系合宙技术人员。