简介:本资源是广和通FM150 5G模组官方AT指令集完整手册(PDF版),面向物联网开发工程师、嵌入式通信模块调试人员及5G终端设备集成开发者,用于快速掌握模组底层控制与网络配置能力。手册共241页,涵盖FG150与FM150系列全型号适配指令,系统梳理了网络设置(APN/认证参数)、模组状态查询(信号强度CSQ、附着状态CGATT)、数据传输控制、系统管理(时间同步、双SIM卡切换、低功耗模式SLPMODE)等六大类AT命令,并提供百余条带参数说明与返回值解析的典型示例,如+GTSTATIS、+GTROAMCFG、+GTUESTATE等专有扩展指令。资源为单文件PDF,大小1.79MB,结构清晰、版本明确(V3.6.3,2020年4月持续更新),含详细变更日志与版权说明,便于工程查阅与合规引用。目前已有588人学习下载,是开展5G模组初始化、网络调试、远程监控及工业场景稳定接入的核心参考依据。
1. 广和通FM150 AT指令:不是“查手册就完事”的5G模组控制黑匣子,而是嵌入式现场调试的命脉级资源
你手头正焊着一块工业网关PCB,串口线刚接上FM150模组,AT指令发出去没回音——不是硬件坏了,是波特率设成了115200而模组出厂默认921600;你调了三天+CGATT=1始终返回ERROR,最后发现漏配了+GTWWAN=1;你用Python脚本自动拨号,结果+CLCC返回的call ID格式在V3.6.3里从整数变成了字符串,脚本直接崩。这不是玄学,是广和通FM150 AT指令文档的真实使用场域:它不是供你“收藏吃灰”的PDF,而是嵌入式工程师在现场拧螺丝、测信号、写驱动、联调云平台时,必须逐页翻、逐条验、逐字抠的可执行技术契约。这份241页V3.6.3版文档,覆盖FG150/FM150全系5G模组(含AE/NA双频段),支撑5G NR+LTE+3G多模切换、双SIM热插拔、低功耗SLP模式、IMS语音、PDN多APN管理等硬核能力。适合两类人:一是正在做5G终端量产导入的硬件/固件工程师,需要把AT命令嵌进Bootloader或MCU主控逻辑;二是物联网平台侧开发者,需通过AT透传通道与模组深度交互,而非只走RNDIS或ECM虚拟网卡。它解决的从来不是“怎么发AT”,而是“为什么发了没响应”“为什么响应了但状态不对”“为什么升级固件后同一命令行为突变”——这才是真实世界里,5G模组落地最痛的三根刺。
2. 拆解FM150 AT指令体系:从协议结构到命令分类,为什么必须按“功能域+状态机”理解而非死记硬背
2.1 AT协议底层逻辑:不是字符串拼接,而是带状态约束的有限自动机
FM150的AT指令并非无状态文本流,其执行严格遵循“命令→等待→响应→状态迁移”四步闭环。以AT+CGATT?为例,表面是查询附着状态,实则隐含三个状态约束:
- 前置依赖:必须已执行
AT+CFUN=1开启射频,且AT+CGDCONT已配置至少一个PDP上下文; - 响应语义:
+CGATT: 1表示已附着到GSM/GPRS网络,+CGATT: 0表示未附着,但不等于脱网——可能处于5G SA模式下,此时需查+CEREG?而非+CGATT?; - 状态污染风险:若在
+CGATT=0后未等待OK即发AT+CGATT=1,模组可能进入不可预测的中间态,需强制AT+CFUN=0再AT+CFUN=1重置。
提示:所有带
?的查询命令(如AT+CSQ?)和带=的设置命令(如AT+CGDCONT=1,"IP","cmnet")均需严格匹配文档中定义的参数范围与顺序。例如+CGDCONT第2参数必须为"IP"、"IPV6"或"IPV4V6",填"ipv4"将直接返回ERROR,且不会提示具体错误码。
2.2 命令分类的本质:按模组内部状态机划分,而非功能表象
官方文档将命令分为“Modem Information”“Call Control”等大类,但实际调试中,更应按模组生命周期状态组织命令链:
| 状态阶段 | 关键命令组 | 典型调试场景 |
|---|---|---|
| 上电初始化 | AT+CFUN,AT+CGMI,AT+CGMR | 验证固件版本是否匹配硬件批次;确认AT+CFUN=0能否彻底关闭射频(电流下降至μA级) |
| 网络注册 | AT+CEREG,AT+CGREG,AT+CREG | 5G SA模式下+CEREG: 1,1才表示成功注册,+CGREG仅反映LTE侧状态,混用必翻车 |
| PDN连接建立 | AT+CGDCONT,AT+CGACT,AT+GTWWAN | +GTWWAN=1启用WAN接口是AT+CGACT=1生效的前提,漏配则AT+CGACT返回OK但无IP分配 |
| 数据通道控制 | AT+QIACT,AT+QIOPEN,AT+QISEND | FM150支持多PDN同时激活,+QIACT=1激活第1个PDP,+QIACT=2激活第2个,ID必须与+CGDCONT序号一致 |
2.3 V3.6.3版关键演进:为什么旧项目代码在新固件上会静默失效
对比V3.6.1初始版,V3.6.3新增/修改了27项命令,其中3项直接影响兼容性:
+GTWWAN取代+GTAUTODHCP:V3.6.2起+GTAUTODHCP被删除,新固件中若仍发送该命令,模组返回+CME ERROR: 3(未知命令),而非忽略;+GTCELLSTATUS引入5G NR物理层参数:新增rsrp,rsrq,sinr字段,但要求AT+CFUN=1且AT+CGATT=1后才有效,否则返回空值;+GTUESTATE细化UE状态机:返回<state>,<substate>,<cause>三元组(如1,2,0表示“注册中-等待网络响应-无原因”),比+CEREG的二元返回更具诊断价值。
注意:所有
+GT*前缀命令(如+GTSTATIS,+GTROAMCFG)均为广和通私有扩展,非3GPP标准AT指令,其他厂商模组不识别。这意味着你的调试脚本若硬编码+GT*,将完全丧失跨平台能力。
3. 实战AT指令链:从模组上电到稳定获取5G IP,一条不能跳过的完整路径
3.1 初始化阶段:清除历史状态,建立可信通信基线
此阶段目标是让模组进入确定性初始态,避免残留配置干扰后续流程。必须按顺序执行,且每步需校验响应:
# 步骤1:强制复位模组(硬件级,确保清除所有寄存器状态) # (需外部MCU拉低FM150的PWRKEY引脚1s以上) # 步骤2:串口握手,确认基础通信 AT # 期望响应:OK # 步骤3:关闭回显、禁用结果码、设置响应格式(减少解析干扰) ATE0 ATQ0 V1 # 期望响应:全部返回OK # 步骤4:查询基础信息,验证固件版本与硬件匹配 AT+CGMI # 响应:Fibocom AT+CGMM # 响应:FM150-NA 或 FM150-AE(注意区分频段) AT+CGMR # 响应:V3.6.3(关键!若为V3.5.x则部分+GT*命令不可用)参数说明:
ATE0:关闭命令回显,避免解析时误将发送的AT字符串当作响应;ATQ0:禁用结果码(Result Code Suppression),使模组只返回OK/ERROR,不返回+CME ERROR: 50等详细码;V1:启用详细响应格式,+CME ERROR: 50比+CMS ERROR: 50更易定位问题(CME为设备错误,CMS为消息服务错误)。
3.2 网络注册阶段:5G SA模式下的精准注册链
FM150在5G SA模式下,注册流程与LTE完全不同,必须绕过+CGREG陷阱,直击+CEREG:
# 步骤1:启用5G注册报告(关键!否则+CEREG?不返回实时状态) AT+CEREG=2 # 响应:OK(启用网络注册状态主动上报) # 步骤2:查询当前注册状态(注意:必须在+CEREG=2后执行) AT+CEREG? # 响应示例:+CEREG: 2,1,00000000,00000000,4,00000000,00000000 # 解析:<n>,<stat>,<tac>,<ci>,<AcT>,<rac>,<sa> → stat=1表示已注册到5G网络 # 步骤3:若stat≠1,则检查射频与PLMN AT+CFUN=1 # 开启射频 AT+COPS=? # 查询可用PLMN列表(确认运营商是否在支持列表中) AT+COPS=0 # 自动选择PLMN(若手动选需填AT+COPS=1,2,"46001")避坑点:AT+COPS=?返回的PLMN列表中,46001(中国移动)和46000(中国联通)必须存在,否则AT+COPS=0将超时失败。若列表为空,需检查天线连接与SIM卡状态(AT+CCID可验证SIM是否被识别)。
3.3 PDN连接阶段:双APN场景下的多PDN激活实战
FM150支持同时激活多个PDN(如一个用于业务数据,一个用于OTA升级),需严格按序号绑定:
# 步骤1:配置第1个PDN(业务APN) AT+CGDCONT=1,"IP","cmnet" # 响应:OK # 步骤2:配置第2个PDN(OTA APN) AT+CGDCONT=2,"IP","cmiot" # 响应:OK # 步骤3:启用WAN接口(广和通私有命令,V3.6.3必需!) AT+GTWWAN=1 # 响应:OK # 步骤4:激活第1个PDN AT+CGACT=1,1 # 响应:OK(注意:第2参数为1表示激活) # 步骤5:激活第2个PDN AT+CGACT=1,2 # 响应:OK # 步骤6:查询IP地址(验证PDN是否真正分配IP) AT+CGPADDR=1 # 响应:+CGPADDR: 1,"10.123.45.67" AT+CGPADDR=2 # 响应:+CGPADDR: 2,"10.124.89.101"参数说明:
AT+CGDCONT=<cid>,<PDP_type>,<APN>:<cid>为上下文ID,必须与AT+CGACT的第2参数一致;<PDP_type>必须为"IP"(IPv4)、"IPV6"或"IPV4V6";AT+GTWWAN=1:此命令在V3.6.3中为强制步骤,若省略,AT+CGACT虽返回OK,但AT+CGPADDR返回空值;AT+CGPADDR=<cid>:必须指定<cid>,AT+CGPADDR?(无参数)在FM150上不支持。
4. 避坑:FM150 AT指令调试中血泪总结的5个高频翻车点
4.1 现象:AT+CSQ返回+CSQ: 99,99,但模组能正常上网
原因:+CSQ仅反映2G/3G/4G信号质量,FM150在5G SA模式下该命令不更新5G NR参数,返回默认值99,99(无效值)。
解决:改用AT+GTCELLSTATUS查询5G NR的rsrp(参考值:>-110dBm为可用,>-90dBm为优秀)。
4.2 现象:AT+CGATT=1返回OK,但AT+CGPADDR无IP
原因:未执行AT+GTWWAN=1启用WAN接口,或AT+CGDCONT配置的APN与运营商实际要求不符(如CMCC需cmnet,而CU需3gnet)。
解决:先执行AT+GTWWAN=1,再用AT+CGDCONT?确认APN配置正确,最后AT+CGACT=1,<cid>重新激活。
4.3 现象:双SIM卡切换后,AT+CGMI返回乱码或超时
原因:+GTDUALSIM切换SIM卡后,模组需约2秒完成硬件切换,立即发查询命令会因总线冲突失败。
解决:AT+GTDUALSIM=1(切SIM1)后,必须延时≥2000ms再发AT+CGMI;建议在脚本中加入sleep(2)。
4.4 现象:AT+QIACT=1返回OK,但AT+QISTAT显示INIT而非IP
原因:+QIACT是Quectel私有命令,FM150不支持;FM150使用标准AT+CGACT激活PDN,+QIACT会被忽略。
解决:彻底删除代码中所有+QIACT/+QIOPEN等Quectel命令,统一使用AT+CGACT/AT+CGDATA。
4.5 现象:AT+CFUN=0后模组电流未下降,仍维持在mA级
原因:AT+CFUN=0仅关闭射频,但AT+SLPMODE=1(睡眠模式)未启用,基带处理器仍在运行。
解决:AT+CFUN=0后,必须执行AT+SLPMODE=1进入深度睡眠,此时电流可降至15μA(典型值);唤醒需通过AT+GTWAKE=1配置的GPIO中断。
5. 进阶技巧:用AT指令实现5G模组的“自愈”机制与生产级日志采集
5.1 构建模组自愈逻辑:当网络异常时自动重连的有限状态机
在工业现场,网络抖动是常态。与其依赖上位机轮询,不如让模组自身具备基础恢复能力。核心思路是利用+CEREG和+CGATT的状态上报,结合AT+CFUN重置:
# Python伪代码(需适配实际串口库如pyserial) import serial, time ser = serial.Serial('/dev/ttyUSB0', 921600, timeout=1) def send_at(cmd): ser.write((cmd + '\r\n').encode()) return ser.read(1024).decode() # 启用状态主动上报 send_at('AT+CEREG=2') # 5G注册状态上报 send_at('AT+CGATT=1') # 附着状态上报 while True: line = ser.readline().decode().strip() if '+CEREG:' in line and ',0' in line: # 注册丢失 print("5G注册丢失,触发自愈...") send_at('AT+CFUN=0') time.sleep(1) send_at('AT+CFUN=1') time.sleep(5) # 等待重注册 elif '+CGATT:' in line and ',0' in line: # 附着丢失 print("网络附着丢失,尝试重附着...") send_at('AT+CGATT=1') time.sleep(3)关键设计点:
AT+CEREG=2启用上报后,模组会在状态变化时主动推送+CEREG: 2,0,...,无需上位机轮询,降低CPU负载;AT+CFUN=0后必须等待1秒再AT+CFUN=1,否则射频模块未完全复位;- 重连后需
time.sleep(5),因5G注册过程最长可达4秒(根据3GPP TS 24.008)。
5.2 生产环境日志采集:用AT指令导出模组内部诊断数据
FM150提供+GTSTATIS命令输出详尽的统计日志,对分析现场故障至关重要:
# 执行统计信息采集(V3.6.3新增) AT+GTSTATIS # 响应节选: # +GTSTATIS: "RX_CNT",124567 # 接收数据包总数 # +GTSTATIS: "TX_CNT",89234 # 发送数据包总数 # +GTSTATIS: "RSRP_AVG",-102 # 平均RSRP(dBm) # +GTSTATIS: "SINR_MAX",18 # 最大SINR(dB) # +GTSTATIS: "REBOOT_CNT",3 # 模组重启次数 # +GTSTATIS: "TEMP_MAX",78 # 历史最高温度(℃)参数说明与应用:
RSRP_AVG和SINR_MAX可判断是否长期处于弱信号区,若RSRP_AVG < -115dBm且SINR_MAX < 5dB,需检查天线安装位置;REBOOT_CNT若在24小时内突增,表明存在供电不稳或软件崩溃,需结合AT+MTSM(温度)和AT+CBC(电池)交叉分析;TEMP_MAX超过85℃需预警,FM150在90℃会自动降频,影响吞吐量。
5.3 固件版本兼容性矩阵:如何一眼识别命令是否可用
V3.6.3文档中,不同命令的可用性取决于模组硬件版本(AE/NA)和固件分支。以下为关键命令兼容性速查表:
| 命令 | FM150-AE | FM150-NA | V3.6.3可用 | 备注 |
|---|---|---|---|---|
+GTWWAN | ✓ | ✓ | ✓ | V3.6.2起强制启用WAN接口 |
+GTROAMCFG | ✓ | ✗ | ✓ | NA版不支持漫游配置 |
+GTALGQRY | ✓ | ✓ | ✓ | 查询算法状态,用于VoLTE诊断 |
+GTAUTOCONNECT | ✗ | ✓ | ✓ | AE版无自动连接功能 |
+GTINTFMODE | ✓ | ✓ | ✓ | 设置USB接口模式(RNDIS/ECM/MBIM) |
提示:生产环境中,务必在固件烧录后立即执行
AT+CGMR和AT+CGMM,将结果写入设备日志。当现场反馈异常时,第一句问话必须是“AT+CGMR返回什么?”——这是所有排查的起点,没有之一。
从那以后我每次做FM150模组的量产导入,都会在产线测试工装里固化一个at_init_check.py脚本:它自动执行AT+CGMR→AT+CGMM→AT+CEREG?→AT+CGPADDR=1四步,并将结果生成JSON日志存档。哪怕只是少查一次AT+CGMR,都可能让一批设备带着V3.5.x固件流入客户现场,然后花三天时间在客户机房里蹲着抓串口日志。希望帮到你。
本文还有配套的精品资源,点击获取