3. NB-IoT模组AT指令集概览:常用AT指令分类、3GPP标准AT指令、厂商扩展AT指令

好,咱们进入第三讲。这一讲我打算带大家把NB-IoT的AT指令集整体扫一遍。说白了,就是让你知道手里有哪些“武器”,以及这些“武器”分别归谁管。

很多新手拿到模组,第一件事就是对着AT指令表发呆。几百条指令,看都看晕了。我刚开始做NB-IoT项目时也是这样,恨不得每条都背下来。后来发现,根本没必要。你只需要搞清楚分类逻辑,用到什么查什么就行。

3.1 常用AT指令分类:按功能模块划分

我个人习惯把AT指令分成四大类。这样记起来特别清晰:

  • 基础控制类:比如AT(测试通信)、ATE(回显开关)、AT+CGMI(查询厂商)等。这些是模组“活着”的基本证明。
  • 网络服务类:比如AT+CGATT(附着网络)、AT+CGDCONT(设置APN)、AT+CSQ(信号强度)。这是NB-IoT的核心,连不上网啥都白搭。
  • 数据传输类:比如AT+NMGS(发送数据)、AT+NMGR(接收数据)、AT+NSMI(发送指示)。嗯,这里要注意,NB-IoT的数据发送和传统TCP/IP不太一样,它用的是非IP数据通道(NIDD)。
  • 配置管理类:比如AT+CFUN(设置功能模式)、AT+NRB(重启模组)、AT+CMEE(错误报告格式)。这些是调试时最常用的。

我在项目中遇到过最典型的场景:客户说模组发不出数据。我第一件事就是查AT+CSQ看信号,再查AT+CGATT看是否附着。这两条指令能筛掉80%的问题。

小技巧:调试时先把AT+CMEE=1打开,这样模组报错会带具体错误码,而不是干巴巴的“ERROR”。这个习惯帮我省了不少排查时间。

3.2 3GPP标准AT指令:全球通用的“普通话”

3GPP标准AT指令,你可以理解为NB-IoT界的“普通话”。不管你是移远的模组、广和通的模组,还是华为的模组,这些指令的格式和功能都是一致的。

为什么要有标准?你想想看,如果每个厂商都自己搞一套,那做应用开发的工程师不得疯掉?换一个模组就要重写一遍代码,这谁受得了。

常见的3GPP标准指令包括:

指令 功能 我常用的场景
AT+CGMI 查询模组厂商 确认模组品牌,防止拿错货
AT+CGMM 查询模组型号 核对固件版本是否匹配
AT+CGMR 查询固件版本 升级后验证版本号
AT+CGSN 查询IMEI 设备入网注册用
AT+CIMI 查询IMSI 确认SIM卡是否插好
AT+CSQ 查询信号质量 现场测试信号覆盖
AT+CGATT 附着/分离网络 检查网络注册状态
AT+CGDCONT 设置PDP上下文 配置APN和IP类型

我曾经在一个项目中,因为用了非标准的AT指令,导致模组切换厂商后代码大面积重写。从那以后,我坚持优先使用3GPP标准指令。除非标准指令实在搞不定,才去碰厂商扩展指令。

避坑指南:我曾经遇到过某厂商的模组,它的AT+CSQ返回值范围比3GPP标准宽。标准规定0-31,它返回了32。结果我的代码里直接判断“大于31就报错”,导致信号明明很好却被误判为异常。所以,即使是用标准指令,也要留个心眼,看看厂商有没有“超纲”。

3.3 厂商扩展AT指令:各家模组的“方言”

厂商扩展AT指令,就是各家模组厂商自己加的“方言”。这些指令通常以厂商代号开头,比如华为的AT+NH开头的指令、移远的AT+QI开头的指令。

为什么要搞扩展指令?说白了,3GPP标准只定义了最基本的功能。但实际产品中,厂商需要提供一些特色功能来吸引客户。比如:

  • 低功耗配置:标准指令只定义了PSM和eDRX的基本参数,但厂商会提供更细粒度的控制指令。
  • 数据发送优化:有些厂商提供了AT+NMGS的增强版,支持更灵活的数据格式。
  • 调试诊断功能:比如查询当前功耗模式、查看网络注册的详细状态等。
  • 固件升级:各家都有自己的OTA升级指令集。

我记得有一次调试一个水表项目,设备功耗一直下不来。用标准指令查了半天,发现PSM参数设置没问题。后来翻厂商手册,发现有一条扩展指令AT+QCFG="psm/enter",可以强制让模组立即进入PSM模式。用上之后,功耗直接降了一半。

这里我给大家一个建议:拿到新模组,先看厂商的AT指令手册,重点关注“扩展指令”章节。这些指令往往能解决标准指令解决不了的痛点。

核心观点:标准指令保兼容,扩展指令提效率。两者结合使用,才是NB-IoT开发的正确姿势。

3.4 如何快速上手一套新的AT指令集

最后,我分享一下我快速上手新模组AT指令集的方法:

  1. 先跑基础测试:AT、ATE0、AT+CGMI、AT+CGMR。确认模组活着,且版本正确。
  2. 再测网络连接:AT+CSQ、AT+CGATT、AT+CGDCONT。确认能连上运营商网络。
  3. 然后测数据收发:AT+NMGS、AT+NMGR。确认数据通道通顺。
  4. 最后测功耗控制:AT+CPSMS、AT+CEDRXS。确认低功耗模式能正常进入和唤醒。
  5. 遇到问题查手册:重点看厂商扩展指令中的“调试诊断”部分。

这套流程我用了好几年,基本没翻过车。你试试看,应该也能帮你快速上手。

好,这一讲就到这里。下一讲我们会深入AT指令的格式细节,包括参数类型、响应格式、错误码这些“硬核”内容。到时候见。