USB 4G LTE 例程讲解#
例程位置#
开发板固件路径:
/sdcard/examples/14-Socket/network_lte.pySDK 源码路径:
src/canmv/resources/examples/14-Socket/network_lte.py
该例程通过 USB 串口向 EC200M 类 4G 模组发送 AT 命令,先查询模组版本,再发起 ECM 数据拨号。拨号成功后,系统网络驱动会把模组的数据接口自动注册为 LAN 类型 的网络设备。
运行前准备#
为 4G 模组安装天线并插入可用的 SIM 卡。
将模组接到开发板的 USB Host 接口。
确认固件已启用该模组需要的 USB Serial 和 CDC ECM 驱动。
在 RT-Smart 命令行检查模组枚举出的
/dev/ttyUSB*设备。
具体驱动选项、SIM 卡检查和 AT 调试方法见 EC200M-CN 模组说明。
代码流程#
打开 AT 串口#
from usb import Serial
ser = Serial("/dev/ttyUSB1", 200)
while True:
if ser.open():
break
time.sleep(1)
例程默认使用 /dev/ttyUSB1,并在打开失败时每秒重试。不同模组、固件或 USB
枚举顺序可能产生不同节点;若没有响应,应先确认真正的 AT 命令端口并修改该路径。
查询模组固件版本#
ser.write("AT+GMR\r\n")
time.sleep(0.1)
data = ser.read()
print(data)
AT+GMR 用于确认串口通信正常并读取模组版本。正常情况下输出中应包含版本信息和
OK;乱码通常表示串口参数或端口不正确,没有响应则应检查供电、USB 枚举和端口。
发起 ECM 拨号#
ser.write("AT+QNETDEVCTL=1,1,1\r\n")
time.sleep(0.1)
data = ser.read()
print(data)
该命令请求模组建立数据连接。AT 命令返回 OK 只表示命令已受理,模组仍可能需要
一段时间完成驻网、拨号、USB 网络接口注册和地址配置。
关闭 AT 串口#
ser.close()
关闭 Python 串口对象不会主动断开已经建立的数据连接。后续若仍要查询信号、注册 状态或拨号状态,应在应用中保留串口并按模组 AT 手册管理它。
验证网络接口#
脚本完成后,可在 RT-Smart 命令行使用 ifconfig 检查新接口和 IP。在 Python 中
也可以运行公共网络管理例程,确认设备已动态注册并取得地址:
import network
from libs.Network import connect_network
print(network.get_dev_list())
netif, ip = connect_network("lan")
print(netif.netdev_name(), ip)
connect_network("lan") 会等待 LAN 类型接口取得有效地址并设置默认上行,不需要
假设 4G 数据接口一定名为 eth0。
若没有出现网络接口,依次检查 SIM 状态、天线、信号、APN、ECM 模式和 CDC ECM 驱动。接口已出现但没有 IP 时,继续检查拨号状态和运营商数据业务。
