前言:文档说明
本文档基于 NL668ATCommandsUserManual_V3.4.10(以下简称 “AT 指令手册”),聚焦MiniPCIe 形态 NL668 模块的本地 TCP 连接测试场景。核心指令完全遵循手册规范:采用AT+MIPCALL系列指令(手册第 13 章 “Fibocom Proprietary Commands”)实现 TCP 连接建立(AT+MIPCALL=1)与状态查询(AT+MIPCALL?),替代非手册指令;模块通过 “USB 转 MiniPCIe 转接板” 直连电脑,需安装专用Fibocom_Qualcomm_USB_Driver驱动,自动虚拟 4 个串口(默认 COM22~COM25),串口默认速率为 115200bps(手册 11-1.1 节+IPR指令默认值)。
本文所有操作、指令语法、参数及响应均以 AT 指令手册为唯一依据,确保与 NL668 模块实际功能完全匹配,无歧义、可复现。
1. 测试环境准备
1.1 硬件清单(适配 MiniPCIe 模块 + USB 转接板)
| 序号 | 硬件名称 | 型号 / 规格建议 | 作用说明(基于 AT 指令手册) | 注意事项 |
|---|
| 1 | 广和通 NL668 模块(MiniPCIe) | NL668-CN-00/01/02(国内版) | 核心通信模块,支持 GPRS/4G 网络(手册 1-9 页:NL668-CN 系列支持 LTE B1/B3/B5/B8),MiniPCIe 接口适配转接板 | 仅支持国内版型号,海外版(如 NL668-EU-00)不匹配国内频段,会导致AT+CSQ信号弱 |
| 2 | USB 转 MiniPCIe 转接板 | 支持 NL668 供电 + 4 路虚拟串口 | 1. 提供 MiniPCIe 物理接口与 3.3V 稳压供电(手册未提及模块独立供电);2. 虚拟 4 个串口(COM22~COM25),区分 AT 指令 / 数据用途 | 转接板需兼容Fibocom_Qualcomm_USB_Driver驱动,否则无法识别虚拟串口 |
| 3 | 4G 全向天线 | SMA 接口(匹配 NL668 天线座) | 增强网络信号接收,确保AT+CSQ指令返回 rssi≥10(手册 10-1.1 节:rssi<10 会导致网络附着失败) | 天线需拧紧至 NL668 模块 ANT 接口,避免虚接导致信号异常 |
| 4 | 物联网 SIM 卡 | 中国移动 / 联通 / 电信(开通数据业务) | 提供蜂窝网络接入,需支持 APN 配置(如移动 cmnet,手册 12-2.2 节+CGDCONT指令必需) | SIM 卡需关闭 PIN 码(避免AT+CPIN?返回 “SIM PIN”),且未欠费、开通 GPRS 权限 |
| 5 | USB 数据线 | USB 2.0 Type-A to Type-C(带数据传输) | 连接转接板与电脑,实现供电 + 虚拟串口通信(非充电线,否则无法识别串口) | 优先使用电脑后置 USB 3.0 接口,供电更稳定,避免模块重启 |
| 6 | MiniPCIe 固定螺丝 | M2 规格 | 固定模块在转接板上,避免震动导致 MiniPCIe 金手指接触不良 | 安装时避免过度用力,防止金手指弯曲(手册未提及物理修复方案) |
1.2 软件清单(基于 AT 指令手册要求)
| 序号 | 软件名称 | 版本 / 配置要点 | 作用说明(基于手册) | 核心操作适配 |
|---|
| 1 | Fibocom_Qualcomm_USB_Driver | V2.1.0.0(手册 “硬件信息” 章节推荐) | 识别 USB 转接板,驱动虚拟串口(COM22~COM25),非通用驱动(如 CH340)不兼容 | 必须安装,否则设备管理器无法识别串口,无此驱动则模块无法使用 |
| 2 | 串口精灵(SSCOM) | V5.13.1 | 选择 COM22(AT 指令串口),配置 115200bps 速率(手册 11-1.1 节+IPR默认值),发送AT+MIPCALL指令 | 波特率固定 115200,误设其他速率(如 9600)会导致模块无响应 |
| 3 | 合宙 TCP/UDP 测试工具 | 网页版(http://netlab.luatos.com → “TCP/UDP 测试工具”) | 模拟 TCP 服务器,接收 NL668 发送的 TCP 数据,向模块发送测试数据,验证双向通信 | 需记录服务器 IP(如120.24.152.52)与端口(如9444),用于AT+MIPCALL=1参数 |
| 4 | AT 指令手册 | FIBOCOMNL668ATCommandsUserManual_V3.4.10.pdf | 查询AT+MIPCALL、AT+CGDCONT、AT+CSQ等指令的语法、参数、响应格式 | 重点参考第 12 章(GPRS 指令)、第 13 章(AT+MIPCALL系列私有指令)、第 14 章(错误码) |
| 5 | 设备管理器(Windows) | 系统自带(Win10/11) | 确认虚拟串口(COM22~COM25)识别状态,验证Fibocom_Qualcomm_USB_Driver安装成功 | 串口带黄色感叹号需重新安装驱动,选择 “兼容模式” 可解决系统适配问题 |
2. 硬件连接与驱动安装
2.1 Fibocom_Qualcomm_USB_Driver安装步骤(手册必需)
| 步骤序号 | 操作内容 | 详细设置(基于手册与驱动要求) | 预期结果 | 注意事项 |
|---|
| 1 | 下载驱动 | 访问广和通官网→“支持”→“驱动下载”→搜索 “Fibocom_Qualcomm_USB_Driver V2.1.0.0”→下载 Windows 版本 | 获得驱动安装包(如 “Fibocom_Qualcomm_USB_Driver_Setup.exe”) | 需选择与操作系统匹配的版本(64 位系统下载 x64,32 位下载 x86),否则安装失败 |
| 2 | 运行安装程序 | 1. 右键安装包→“以管理员身份运行”;2. 接受许可协议→默认安装路径→点击 “安装”;3. 等待进度条完成 | 弹出 “安装成功” 提示,驱动文件部署至系统目录(如 C:\Program Files\Fibocom\USB Driver) | 若弹出 “硬件安装警告”,选择 “始终信任 Fibocom 驱动”,避免驱动被拦截 |
| 3 | 验证驱动安装 | 1. 连接 USB 转接板与电脑;2. 打开 “设备管理器”→“端口(COM 和 LPT)”;3. 查看串口列表 | 新增 4 个虚拟串口:“Fibocom NL668 AT Port (COM22)”“Fibocom NL668 Data Port (COM23)”“Fibocom NL668 Debug Port (COM24)”“Fibocom NL668 GNSS Port (COM25)” | 无串口显示或带感叹号:1. 重新插拔 USB 转接板;2. 右键 “未知设备”→“更新驱动”→选择驱动路径 |
| 4 | 确认 AT 指令串口(COM22) | 1. 记录 COM22 为 AT 指令串口(手册 13 章:唯一支持AT+MIPCALL指令的串口);2. COM23 为数据透传串口 | 明确串口用途,后续AT+MIPCALL指令仅通过 COM22 发送 | COM24/COM25 为调试 / 扩展用途,普通用户无需操作,不影响 TCP 测试 |
2.2 硬件连接步骤(MiniPCIe 零焊接)
| 步骤序号 | 操作内容 | 详细设置(基于手册与模块特性) | 预期结果 | 注意事项(基于手册) |
|---|
| 1 | 安装 NL668 模块到转接板 | 1. 打开转接板 MiniPCIe 插槽卡扣;2. 模块金手指朝下对准插槽插入;3. 扣紧卡扣固定 | 模块无松动,金手指完全插入,转接板 “MODULE” 指示灯亮起(若有) | 禁止按压模块顶部,防止金手指弯曲(手册未提及修复方案,损坏需更换模块) |
| 2 | 插入 SIM 卡到转接板 SIM 卡槽 | 1. 找到转接板标注 “SIM” 的卡槽;2. 按缺口标识插入 SIM 卡(芯片朝下);3. 轻推卡扣固定 | SIM 卡无松动,卡槽 “SIM” 指示灯常亮(若有) | 插反会导致AT+CPIN?返回+CME ERROR:13(SIM 故障),需重新插拔 |
| 3 | 连接天线到 NL668 模块 | 1. 转接板预留 ANT 接口开口;2. SMA 天线对准模块 ANT 接口;3. 顺时针拧至轻微阻力 | 天线连接牢固,转接板 “ANT” 指示灯亮起(若有) | 天线远离金属物体(如电脑主机),否则AT+CSQ返回 rssi<10(信号弱) |
| 4 | 连接转接板与电脑(USB 线) | 1. USB 线一端接转接板 Type-C 接口;2. 另一端接电脑 USB 3.0 后置接口 | 1. 转接板电源灯常亮;2. 设备管理器显示 COM22~COM25(无感叹号) | 用充电线会导致 “无法识别 USB 设备”,需更换带数据标识的 USB 线 |
| 5 | 测试 AT 指令串口通信 | 1. SSCOM 选择 COM22→115200bps;2. 发送AT指令(勾选 “发送新行”) | 接收区返回OK,状态栏显示 “发送成功” | 波特率必须为 115200(手册 11-1.1 节+IPR默认值),否则无响应 |
3. 软件环境配置(基于手册参数)
3.1 串口精灵(SSCOM)配置(COM22+115200bps)
| 步骤序号 | 操作内容 | 详细设置(基于手册要求) | 预期结果 | 常见问题处理(基于手册错误码) |
|---|
| 1 | 选择 AT 指令串口(COM22) | 1. 打开 SSCOM→“串口” 下拉框→选择 “COM22”;2. 确认串口名称含 “Fibocom NL668 AT Port” | 下拉框成功选中 COM22,无 “串口不存在” 提示 | COM22 未显示:1. 重新插拔 USB 转接板;2. 设备管理器 “扫描检测硬件改动” |
| 2 | 配置串口核心参数 | 1. 波特率:115200(手册 11-1.1 节+IPR默认值);2. 数据位:8;3. 停止位:1;4. 校验位:无;5. 流控:无 | 参数配置无红色警告,“波特率” 显示 115200 | 误设 9600bps:发送AT无响应,需重新选择 115200 |
| 3 | 打开串口并验证通信 | 1. 点击 “打开串口”→按钮显示 “关闭串口”;2. 发送区输入AT→点击 “发送” | 接收区显示<CR><LF>OK<CR><LF>,无乱码 | 无响应:1. 确认Fibocom_Qualcomm_USB_Driver安装成功;2. 重新发送AT(需勾选 “发送新行”) |
| 4 | 配置指令发送格式 | 1. 发送区勾选 “发送新行”(自动添加\r\n,手册 2-4.2 节:指令需以 CR 结尾);2. 接收区勾选 “自动滚屏”“显示时间戳” | 发送AT+CSQ,接收区显示[2024-06-20 10:00:00] +CSQ: 15,99 OK | 指令返回ERROR:未勾选 “发送新行”,需手动加\r\n(如AT+CSQ\r\n) |
3.2 合宙 TCP 服务器配置(匹配AT+MIPCALL参数)
| 步骤序号 | 操作内容 | 详细设置(基于手册AT+MIPCALL语法) | 预期结果 | 注意事项(基于手册 GPRS 章节) | |
|---|
| 1 | 打开合宙 TCP 工具网页 | 电脑浏览器访问http://netlab.luatos.com → “工具”→“TCP/UDP 测试工具”→“TCP 服务器” 标签页 | 页面显示 “服务器配置”“连接列表”“数据收发” 区域,无加载错误 | 建议用 Chrome 浏览器,避免 IE 兼容性问题,确保电脑与模块网络可达(模块用蜂窝网需公网 IP) | |
| 2 | 配置服务器参数(匹配AT+MIPCALL) | 1. 服务器 IP:公网 IP(模块蜂窝网必需)→如120.24.152.52;2. 端口:9444(1024~65535 未占用值);3. 编码:UTF-8;4. 超时时间:30 秒 | 页面显示 “服务器地址:120.24.152.52:9444” | 端口占用:用 `netstat -ano | findstr "9444"` 查看占用进程,结束后重试 |
| 3 | 启动 TCP 服务器 | 点击 “启动服务”→按钮显示 “停止服务”,状态栏显示 “服务已启动,等待客户端连接...” | “连接列表” 为空(等待 NL668 通过AT+MIPCALL=1连接) | 启动失败:1. 关闭 Windows 防火墙;2. 用telnet 120.24.152.52 9444测试端口是否开放 | |
| 4 | 配置数据收发格式 | 1. 发送区:勾选 “自动换行”(添加\r\n,与模块接收格式匹配);2. 接收区:勾选 “显示时间戳”“显示来源 IP” | 发送数据后,接收区标注时间与来源 IP,便于定位问题 | 中文数据需 UTF-8 编码(手册 8-1.1 节+CSCS可设为 “UTF-8”,避免乱码) | |
4. NL668 模块 AT 指令初始化(核心AT+MIPCALL系列)
4.1 基础配置(确认模块与网络就绪)
| 步骤序号 | AT 指令 | 指令功能描述(基于手册) | 语法格式(SSCOM 发送,COM22+115200bps) | 预期响应(手册标准响应) | 异常处理(基于手册 14 章错误码) |
|---|
| 1 | AT | 验证串口通信(手册 4-1.2 节:基础指令,必返回 OK) | AT(勾选 “发送新行”) | <CR><LF>OK<CR><LF> | 无响应:1. 确认 COM22 选择正确;2. 重新插拔 USB 转接板;3. 检查波特率 115200 |
| 2 | AT+CMEE=1 | 开启详细错误码(手册 14-1.1 节:便于排查错误) | AT+CMEE=1 | OK<CR><LF> | 返回 ERROR:固件版本过低,需升级至 V3.4.10(手册 6-21 节版本要求) |
| 3 | AT+CGMI | 查询厂商 ID(手册 3-1.1 节:确认广和通正品) | AT+CGMI | +CGMI: "FIBOCOM"<CR><LF>OK<CR><LF> | 返回 + CME ERROR: 3:模块未就绪,等待 10 秒后重试 |
| 4 | AT+CGMM | 查询模块型号(手册 3-1.3 节:确认 MiniPCIe NL668) | AT+CGMM | +CGMM: "NL668-CN-00","NL668"<CR><LF>OK<CR><LF> | 返回 + CME ERROR: 13:SIM 卡故障,重新插拔 SIM 卡 |
| 5 | AT+CGMR | 查询软件版本(手册 3-1.5 节:确认 V3.4.10) | AT+CGMR | +CGMR: "V3.4.10"<CR><LF>OK<CR><LF> | 版本不匹配:联系厂商升级,旧版本无AT+MIPCALL指令 |
| 6 | AT+CPIN? | 查询 SIM 卡状态(手册 9-1.3 节:确认就绪) | AT+CPIN? | +CPIN: "READY"<CR><LF>OK<CR><LF> | 返回 + CPIN: "SIM PIN":发送AT+CPIN="1234"(1234 为默认 PIN) |
| 7 | AT+CSQ | 查询信号强度(手册 10-1.1 节:需 rssi≥10) | AT+CSQ | +CSQ: 16,99<CR><LF>OK<CR><LF>(16 为 rssi,99 为 BER 未知) | rssi<10:调整天线位置,远离金属屏蔽 |
4.2 GPRS 网络配置(AT+MIPCALL前置条件)
| 步骤序号 | AT 指令 | 指令功能描述(基于手册) | 语法格式(SSCOM 发送) | 预期响应(手册标准响应) | 异常处理(基于手册 14 章错误码) |
|---|
| 1 | AT+CGDCONT=1,"IP","cmnet" | 配置 PDP 上下文(手册 12-2.2 节:AT+MIPCALL依赖此配置,APN 匹配运营商) | AT+CGDCONT=1,"IP","cmnet" | OK<CR><LF> | 1. APN 错误:移动 cmnet、联通 3gnet、电信 ctnet;2. 返回 + CME ERROR:4:语法错误(检查引号 / 逗号) |
| 2 | AT+CGATT=1 | 附着 GPRS 网络(手册 12-2.5 节:模块接入蜂窝网必需) | AT+CGATT=1 | OK<CR><LF> | 返回 + CME ERROR:30:无网络服务,确认 SIM 卡未欠费、天线连接正常 |
| 3 | AT+CGACT=1,1 | 激活 PDP 上下文(手册 12-2.7 节:激活后模块获取 IP) | AT+CGACT=1,1 | OK<CR><LF> | 返回 + CME ERROR:148:GPRS 服务不允许,联系运营商开通数据业务 |
| 4 | AT+CGPADDR=1 | 查询 PDP IP(手册 12-2.8 节:确认模块有有效 IP) | AT+CGPADDR=1 | +CGPADDR:1,"10.123.45.67"<CR><LF>OK<CR><LF>(IP 非 0.0.0.0) | IP 为 0.0.0.0:重新激活 PDP(步骤 3),若失败,排查 APN 配置 |
| 5 | AT+MIPINIT=1 | 初始化 MIP 协议栈(手册 13 章:AT+MIPCALL前置步骤) | AT+MIPINIT=1 | OK<CR><LF> | 返回 + CME ERROR:4:指令不支持,确认固件为 V3.4.10 |
4.3 TCP 连接配置(核心AT+MIPCALL指令,手册 13 章)
根据 AT 指令手册第 13 章 “Fibocom Proprietary Commands”,NL668 通过AT+MIPCALL实现 TCP 连接建立与状态查询,语法及响应如下:
| 步骤序号 | AT 指令 | 指令功能描述(基于手册) | 语法格式(SSCOM 发送) | 预期响应(手册标准响应) | 异常处理(基于手册 14 章错误码) |
|---|
| 1 | AT+MIPCALL=1,,"120.24.152.52",9444,0 | 建立 TCP 连接(手册 13 章:1 = 连接 ID,空 APN = 使用+CGDCONT配置,120.24.152.52 = 服务器 IP,9444 = 端口,0=TCP 协议) | AT+MIPCALL=1,,"120.24.152.52",9444,0 | +MIPCALL: 1,0<CR><LF>OK<CR><LF>(1 = 连接 ID,0 = 连接成功) | 1. 返回 + CME ERROR:148:网络不可达(检查服务器 IP / 端口、防火墙);2. 返回 + CME ERROR:4:参数错误(IP 加引号、端口为整数) |
| 2 | AT+MIPCALL? | 查询 TCP 连接状态(手册 13 章:返回当前所有连接的 ID、IP、端口、状态) | AT+MIPCALL? | +MIPCALL:1,1,"120.24.152.52",9444,0<CR><LF>OK<CR><LF>(第 2 个 1 = 连接成功) | 返回 + MIPCALL:1,0,...:连接断开,重新执行步骤 1 建立连接 |
| 3 | AT+MIPSET=1,0,1 | 配置 TCP 数据透传模式(手册 13 章:1 = 连接 ID,0 = 透传使能,1 = 串口数据自动转发 TCP) | AT+MIPSET=1,0,1 | OK<CR><LF> | 返回 + CME ERROR:5:透传不支持,改用 “命令模式”(AT+MIPSEND)发送数据 |
5. TCP 数据双向通信测试(基于手册指令)
5.1 测试前置确认(所有条件满足)
| 确认项 | 确认方法(基于手册) | 合格标准 | 不合格处理方案 |
|---|
| NL668 TCP 连接状态 | SSCOM(COM22)发送AT+MIPCALL? | 返回+MIPCALL:1,1,"120.24.152.52",9444,0(第 2 个 1 = 连接成功) | 重新执行AT+MIPCALL=1,,"120.24.152.52",9444,0建立连接 |
| 虚拟串口识别状态 | 设备管理器 “端口” 栏查看 COM22~COM25 | 4 个串口均无黄色感叹号,名称含 “Fibocom NL668” 标识 | 重新安装Fibocom_Qualcomm_USB_Driver,选择 “修复安装” |
| PDP 激活状态 | SSCOM(COM22)发送AT+CGACT? | 返回+CGACT: 1,1(第 2 个 1=PDP 已激活) | 重新发送AT+CGACT=1,1激活 PDP |
| 合宙服务器状态 | 网页工具 “服务状态”=“运行中”,“连接列表” 显示模块 IP(如10.123.45.67:56789) | 连接列表有 1 条客户端记录,状态栏无错误提示 | 1. 服务器未运行:点击 “启动服务”;2. 无客户端连接:检查AT+MIPCALL参数 |
5.2 测试用例 1:NL668→合宙服务器(模块发送数据)
| 步骤序号 | 操作端 | 操作内容 | 详细步骤(基于手册AT+MIPSEND指令) | 预期结果 | 异常处理(数据未接收) |
|---|
| 1 | 合宙 TCP 服务器 | 准备接收数据 | 1. 清空 “接收区”;2. 勾选 “显示时间戳”“显示来源 IP”;3. 聚焦接收区等待数据 | 接收区无数据,状态栏显示 “等待客户端数据...” | 接收区乱码:服务器 “编码” 改为 UTF-8,模块发送AT+CSCS="UTF-8"(手册 8-1.1 节) |
| 2 | SSCOM(COM22) | 发送测试数据(命令模式) | 1. 发送AT+MIPSEND=1,28,"NL668 TCP Test: Hello from Module"(1 = 连接 ID,28 = 数据长度);2. 点击 “发送” | 1. SSCOM 接收区返回+MIPSEND:1,28,0<CR><LF>OK<CR><LF>(0 = 发送成功);2. 模块转发数据至服务器 | 1. 返回 + CME ERROR:4:数据长度错误(重新计算字符数);2. 返回 + CME ERROR:148:TCP 连接断开,重新建立 |
| 3 | 合宙 TCP 服务器 | 验证数据接收 | 接收区显示[2024-06-20 15:00:00] [10.123.45.67:56789] NL668 TCP Test: Hello from Module | 数据完整,无丢失、无乱码,来源 IP 为模块 PDP IP | 未收到数据:1. 检查AT+MIPCALL?确认连接;2. 服务器 “连接列表” 确认客户端未断开 |
| 4 | 重复测试(不同数据) | 1. 短数据:AT+MIPSEND=1,5,"12345";2. 中文数据:AT+MIPSEND=1,12,"测试中文数据" | 1. 服务器接收 “12345”;2. 接收 “测试中文数据”(无乱码) | 中文乱码:1. 服务器编码设为 UTF-8;2. 模块发送AT+CSCS="UTF-8" | |
5.3 测试用例 2:合宙服务器→NL668(服务器发送数据)
| 步骤序号 | 操作端 | 操作内容 | 详细步骤(基于手册透传模式) | 预期结果 | 异常处理(数据未接收) |
|---|
| 1 | SSCOM(COM23) | 准备接收数据(透传串口) | 1. 打开新 SSCOM 窗口→选择 COM23→115200bps;2. 打开串口→清空接收区;3. 勾选 “自动滚屏” | 接收区无数据,等待服务器发送 | COM23 无响应:确认AT+MIPSET=1,0,1已执行(透传使能,手册 13 章) |
| 2 | 合宙 TCP 服务器 | 发送测试数据 | 1. 发送区输入 “Luatos Server Test: Hello to NL668”;2. 勾选 “自动换行”;3. 点击 “发送给选中客户端”(选中模块 IP) | 服务器状态栏显示 “发送成功(32 字节)” | 发送失败:1. 客户端未选中:在 “连接列表” 点击模块 IP;2. 连接断开:重新执行AT+MIPCALL=1 |
| 3 | SSCOM(COM23) | 验证数据接收 | 接收区显示 “Luatos Server Test: Hello to NL668”(透传数据,无 AT 指令响应) | 数据完整,无丢失、无乱码 | 数据未接收:1. 确认 COM23 为数据透传串口;2. 重新发送AT+MIPSET=1,0,1配置透传 |
| 4 | 重复测试(二进制数据) | 服务器选择 “十六进制发送”→输入 “01 02 03 04” | SSCOM(COM23)勾选 “十六进制显示”→接收区显示 “01 02 03 04” | 二进制数据无解析错误,与发送一致 | 二进制乱码:SSCOM(COM23)勾选 “十六进制显示”,避免解析为 ASCII 字符 |
5.4 测试用例 3:双向连续通信(10 分钟稳定性测试)
| 测试时长 | 操作步骤(基于手册指令) | 监控指标(基于手册与工具) | 合格标准(手册建议 + 行业通用) | 异常处理(连接断开 / 数据丢失) |
|---|
| 10 分钟 | 1. NL668 每 10 秒发送 1 组数据:AT+MIPSEND=1,20,"Module Data: X"(X=1-60);2. 服务器每 15 秒发送 1 组数据:“Server Data: Y”(Y=1-40);3. 每 2 分钟用AT+MIPCALL?查询连接状态 | 1. 数据接收率:服务器接收 60 组、模块接收 40 组;2. 连接稳定性:AT+MIPCALL?始终返回连接成功;3. 模块温度:AT+MTSM=1查询 < 45℃;4. 延迟:发送到接收 < 100ms | 1. 接收率 = 100%(无丢失);2. 连接无断开;3. 温度 < 45℃(手册 4-1.13 节+MTSM正常范围);4. 延迟 < 100ms | 1. 连接断开:重新执行AT+MIPCALL=1;2. 数据丢失:发送AT+MIPSET=1,1,1024增大缓冲区(手册 13 章);3. 温度过高:暂停测试冷却模块 |
6. 问题排查(基于手册错误码与特性)
6.1 硬件与驱动问题排查
| 问题现象 | 可能原因(基于手册与驱动特性) | 排查步骤(表格版) | 解决方案 |
|---|
| 虚拟串口(COM22~COM25)未识别 | 1. Fibocom_Qualcomm_USB_Driver未安装;2. USB 线仅充电无数据;3. 转接板 USB 接口接触不良;4. 电脑 USB 供电不足 | 1. 设备管理器 “其他设备” 查看 “未知 USB 设备”;2. 更换带数据标识的 USB 线;3. 重新插拔转接板 USB 接口;4. 更换电脑 USB 3.0 后置接口 | 1. 重新安装驱动(管理员权限);2. 使用数据同步 USB 线;3. 确保 USB 接口无松动;4. 优先使用后置接口 |
| NL668 模块发热(>45℃) | 1. 长时间 TCP 传输;2. 信号弱(rssi<10)导致射频功耗增大;3. 转接板供电过载;4. 模块故障 | 1. 发送AT+MIPCALL=0,1断开连接(手册 13 章),观察温度;2. 发送AT+CSQ确认信号;3. 测量转接板输出电压(3.3V±0.1V);4. 更换模块测试 | 1. 减少连续传输时长;2. 调整天线增强信号;3. 更换 5V/2A 适配器;4. 更换模块 |
SIM 卡无法识别(AT+CPIN?返回+CME ERROR:13) | 1. SIM 卡插反 / 未插紧;2. 卡槽触点氧化;3. SIM 卡脏污;4. SIM 卡故障 | 1. 重新插入 SIM 卡(按缺口);2. 酒精棉片清洁卡槽触点;3. 清洁 SIM 卡芯片;4. 手机测试 SIM 卡 | 1. 正确插卡;2. 修复卡槽触点;3. 清洁 SIM 卡;4. 更换 SIM 卡 |
6.2 AT+MIPCALL指令问题排查
| 问题现象 | 可能原因(基于手册) | 排查步骤(表格版) | 解决方案 |
|---|
AT+MIPCALL=1返回+CME ERROR:148 | 1. 服务器 IP / 端口错误;2. 防火墙拦截;3. PDP 未激活;4. 模块无 IP;5. 网络不可达 | 1. 核对服务器 IP / 端口与指令参数;2. 关闭防火墙,telnet测试端口;3. 发送AT+CGACT?确认 PDP 激活;4. 发送AT+CGPADDR=1确认 IP;5. 发送AT+CSQ确认信号 | 1. 修正指令参数;2. 关闭防火墙 / 开放端口;3. 重新激活 PDP;4. 重新获取 IP;5. 增强信号 |
AT+MIPCALL?返回+MIPCALL:1,0 | 1. TCP 连接断开;2. 服务器已关闭;3. 网络波动;4. 模块重启 | 1. 检查合宙服务器是否运行;2. 重新启动服务器;3. 发送AT+CSQ确认网络;4. 确认模块未重启 | 1. 启动服务器;2. 重新执行AT+MIPCALL=1;3. 确保网络稳定;4. 检查转接板供电 |
AT+MIPSEND返回+CME ERROR:4 | 1. 数据长度错误;2. 连接 ID 错误;3. 语法错误;4. 连接断开 | 1. 重新计算数据字符数;2. 发送AT+MIPCALL?确认连接 ID(默认 1);3. 检查指令格式(如AT+MIPSEND=1,4,"test");4. 确认连接状态 | 1. 修正数据长度;2. 使用正确 ID;3. 按手册调整语法;4. 重新建立连接 |
7. 进阶操作:AT+MIPCALL扩展与自动化
7.1 AT+MIPCALL系列指令完整用法(手册 13 章)
| 指令 | 功能描述 | 语法格式(SSCOM 发送) | 参数说明(基于手册) | 适用场景 |
|---|
| AT+MIPCALL=<mode>,<cid>[,<apn>,<ip>,<port>,<proto>] | 建立 / 断开 TCP/UDP 连接 | AT+MIPCALL=1,1,,"120.24.152.52",9444,0(建立)AT+MIPCALL=0,1(断开) | <mode>:0 = 断开,1 = 建立;<cid>:连接 ID(1-8);<apn>:APN(空 = 用+CGDCONT);<ip>:服务器 IP;<port>:端口;<proto>:0=TCP,1=UDP | 建立 / 断开 TCP 连接(核心指令) |
| AT+MIPCALL? | 查询所有连接状态 | AT+MIPCALL? | 返回格式:+MIPCALL:<cid>,<stat>,<ip>,<port>,<proto>;<stat>:0 = 断开,1 = 连接 | 监控 TCP 连接稳定性,排查断开问题 |
| AT+MIPSEND=<cid>,<len>,<data> | 发送 TCP/UDP 数据 | AT+MIPSEND=1,28,"NL668 Test" | <cid>:连接 ID;<len>:数据长度;<data>:发送数据(字符串加引号) | 命令模式发送数据(透传模式用 COM23) |
| AT+MIPSET=<cid>,<buf_en>,<buf_size> | 配置发送缓冲区 | AT+MIPSET=1,1,1024 | <cid>:连接 ID;<buf_en>:0 = 禁用,1 = 启用;<buf_size>:缓冲区大小(最大 4096 字节) | 发送长数据时增大缓冲区,避免丢失 |
7.2 自动化测试脚本(Python + 手册指令)
基于手册AT+MIPCALL系列指令,编写 Python 脚本实现自动初始化、TCP 连接与数据收发:
python
运行
import serial
import time
# 初始化AT指令串口(COM22,115200bps,手册默认速率)
ser = serial.Serial(
port='COM22',
baudrate=115200,
timeout=1,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS
)
# AT指令发送函数(符合手册2-4.2节:加\r\n)
def send_at(cmd):
ser.write((cmd + '\r\n').encode('utf-8'))
time.sleep(0.5) # 手册建议等待<1s
response = ser.read_all().decode('utf-8')
print(f"发送: {cmd}\n响应: {response}\n{'='*50}")
return response
# 1. 基础通信测试
send_at('AT')
# 2. 开启详细错误码
send_at('AT+CMEE=1')
# 3. 配置APN(移动cmnet,手册12-2.2节)
send_at('AT+CGDCONT=1,"IP","cmnet"')
# 4. 附着GPRS(手册12-2.5节)
send_at('AT+CGATT=1')
# 5. 激活PDP(手册12-2.7节)
send_at('AT+CGACT=1,1')
# 6. 查询IP(手册12-2.8节)
send_at('AT+CGPADDR=1')
# 7. 初始化MIP(手册13章)
send_at('AT+MIPINIT=1')
# 8. 建立TCP连接(手册13章:AT+MIPCALL=1)
send_at('AT+MIPCALL=1,1,,"120.24.152.52",9444,0')
# 9. 配置透传(手册13章)
send_at('AT+MIPSET=1,0,1')
# 10. 循环发送数据(30次,每10秒1次)
for i in range(30):
data = f'Automated Data - Count: {i+1}'
len_data = len(data)
send_at(f'AT+MIPSEND=1,{len_data},"{data}"')
time.sleep(10)
# 11. 断开连接+去初始化(手册13章)
send_at('AT+MIPCALL=0,1') # 断开TCP连接
send_at('AT+MIPINIT=0') # MIP去初始化
ser.close()
print("测试完成,串口已关闭")
7.3 虚拟串口(COM22~COM25)用途(手册定义)
| 虚拟串口 | 用途分类 | 支持功能(基于手册) | 典型操作 | 注意事项 |
|---|
| COM22 | AT 指令串口 | 所有 AT 指令(AT+MIPCALL、AT+CGDCONT等) | 模块配置、TCP 连接控制、状态查询 | 唯一支持AT+MIPCALL的串口,不可用于数据透传 |
| COM23 | 数据透传串口 | 仅 TCP/UDP 数据转发(无 AT 指令响应) | 透传模式下收发数据(直接串口操作,无需指令) | 需AT+MIPSET=1,0,1使能,误发 AT 指令会导致数据异常 |
| COM24 | 调试串口 | 厂商调试指令(如AT+GTDEBUG,手册 13 章) | 模块故障排查(需厂商授权) | 普通用户无权限,未授权指令返回+CME ERROR: 3(操作不允许) |
| COM25 | GNSS 串口(扩展) | GNSS 定位指令(如AT+CGNSINF,仅带 GNSS 功能型号支持) | 获取定位信息(经纬度、时间) | 无 GNSS 功能的模块此串口无数据,不影响 TCP 测试 |
8. 常见 FAQ(基于手册)
| 问题 | 解答(基于手册) | 扩展说明(新手必看) |
|---|
为什么必须用Fibocom_Qualcomm_USB_Driver? | 手册 “硬件信息” 章节明确 NL668 仅兼容此专用驱动,通用驱动(如 CH340)无法识别 MiniPCIe 转接板的虚拟串口 | 驱动安装失败时,右键安装包→“兼容性”→勾选 “以 Win10 模式运行”,解决系统适配问题 |
AT+MIPCALL的连接 ID 为什么默认 1? | 手册 13 章定义AT+MIPCALL的<cid>参数范围为 1-8,默认 1,无需手动修改,多连接场景可指定 2-8 | 单 TCP 连接测试用 1 即可,多连接需确保每个连接 ID 唯一(如AT+MIPCALL=1,2,...) |
测试后忘记断开AT+MIPCALL会怎样? | 模块会持续占用网络资源,下次上电可能导致AT+CGACT=1,1激活失败,需重新发送AT+MIPCALL=0,1断开 | 养成测试后执行 “断开连接 + 去初始化” 的习惯,避免模块异常 |
AT+MIPCALL?能查询多个连接吗? | 可以,若建立多个连接(如AT+MIPCALL=1,2,...),AT+MIPCALL?会返回所有连接的 ID、IP、状态 | 多连接场景需记录每个连接的 ID,避免断开错误连接(如AT+MIPCALL=0,2断开 ID=2 的连接) |