BG77 modem AT commands

本简短指南帮助您了解如何排查 CAT-M/NB-IoT 连接问题。通过调制解调器的 “AT” 命令可以获取大量连接信息。“AT” 意为 attention,每个命令字符串都以 “AT” 开头,并可在其后串联多个独立命令。

概述

本简短指南帮助您了解如何排查 CAT-M/NB-IoT 连接问题。通过调制解调器的 “AT” 命令可以获取大量连接信息。“AT” 意为 attention,每个命令字符串都以 “AT” 开头,并可在其后串联多个独立命令。

请查看以下示例,以更好地理解如何发起这些命令以及可以获取哪些信息。

信息

移动网络由 ISP 管理。如果连接出现问题,建议先联系 ISP,确认其支持/允许该连接或相关设置。如果您决定(未经 ISP 确认)通过 AT 命令更改配置,需自行承担风险。

发起 AT 命令

方式 A

要发送命令,必须使用 CLI。

打开终端并输入以下内容:

[admin@MikroTik] > system serial-terminal port=modem channel=2

请注意所使用的端口和通道。请选择 PPP-OUT 接口所使用的端口和通道。在本示例中,端口为 “modem”,数据通道为 “2”。

命令启动后应显示以下输出,此时即可输入 AT 命令:

[admin@MikroTik] > system serial-terminal port=modem channel=2

[Ctrl-A is the prefix key]

at+cpin?
+CPIN: READY

OK 

上例中使用了 AT 命令 “at+cpin?”,并收到响应 “+CPIN: READY”。

方式 B

发送 AT 命令的第二种方式是通过 ppp-client 接口:

[admin@MikroTik] > interface ppp-client at-chat input="AT+CPIN\?"
number: 0
  output: +CPIN: READY

可以获得与方式 A相同的结果。

AT 命令

at

简单的 at 命令用于检查模块(设备)与应用程序之间的通信。

[Ctrl-A is the prefix key]

at

OK 

返回 “OK” 说明模块已成功响应。

at+cpin?

此命令用于检查 SIM 卡状态。

[Ctrl-A is the prefix key]

at+cpin?
+CPIN: READY

OK 

状态 “+CPIN: READY” 表示 SIM 卡已正确安装。

如果使用了 SIM PIN,应收到响应 “+CPIN: SIM PIN”。此时可以通过命令 at+cpin="xxxx" 解锁,其中 xxxx 是 PIN 码。

如果收到响应 “+CME ERROR: SIM not inserted”,请再次检查 SIM 卡是否正确安装在 SIM 卡槽中。

at+cfun?

“CFUN” 命令用于检查功能模式。该命令可能有多种响应。

[Ctrl-A is the prefix key]   

at+cfun?
+CFUN: 1

OK

状态为 “+CFUN: 1” 表示设备已设置为全功能模式,建议使用此模式。

在众多其他响应中,例如可能收到 “+CFUN: 4”,表示设备处于飞行模式,Tx、Rx、LTE 和 GNSS 服务均已禁用。

可以使用命令 at+cfun=1 手动将模式设置为全功能。

at+cops?

at+cops? 命令用于检查当前网络连接。

[Ctrl-A is the prefix key]      

at+cops?
+cops: 0,0,"LMT",8

OK

以上例为参考,收到的响应为 “0,0,"LMT",8”。

响应中的第一个值表示使用“自动”还是“手动”模式。ISP 连接设置为“自动”时该值为 “0”,设置为“手动”时该值为 “1”。

响应中的第二个值表示 ISP 名称格式。为 “0” 表示 ISP 名称采用“长格式字母数字”,为 “1” 表示采用“短格式字母数字”。

响应中的第三部分是 ISP 名称本身。

响应中的第四部分表示所用技术。“8” 代表 eMTC(CAT-M),“9” 代表 NB-IoT。

at+cops=?

at+cops=? 用于获取所有可用 ISP 的列表。此命令可能需要一些时间(最长约 1 分钟)才能显示结果。

[Ctrl-A is the prefix key]      

at+cops=?
+cops: (1,"LMT","LMT","24701",9),(2,"LMT","LMT","24701",8),,(0,1,2,3,4),(0,1,2)

OK

可以通过命令 at+cops=mode,format,"provider" 手动设置要连接的 ISP,其中 mode 为所用模式(0 → 自动网络选择;1 → 手动网络选择),format 为 ISP 名称格式(0 → 长格式字母数字;1 → 短格式字母数字;2 → 数字格式),“provider” 为 ISP 名称(使用所选格式)。例如,要从列表中手动选择网络,请使用命令 at+cops=1,1,"LMT"。

要自动选择 ISP,请使用命令 at+cops=0。

at+creg?

at+creg? 命令用于检查网络注册状态。

[Ctrl-A is the prefix key]              

at+creg?
+CREG: 0,1

OK

第一个值表示网络注册非请求结果代码是启用还是禁用(0 → 禁用,1 → 启用;2 → 启用并包含位置信息)。第二个值表示电路模式注册状态(0 → 未注册/设备未搜索要注册的运营商;1 → 已注册/家庭网络;2 → 未注册但正在尝试搜索要注册的运营商;3 → 注册被拒绝;4 → 未知;5 → 已注册并处于漫游状态)。

如果返回的值多于 2 个,表示网络注册和位置信息非请求结果代码已启用。第二个值将以十六进制显示两字节的位置区代码,第三个值将以十六进制显示四字节的 GERAN/E-UTRAN 小区 ID,最后一个值显示服务小区的接入技术(“8” 表示 CAT-M,“9” 表示 NB-IoT)。

at+csq

at+csq 命令返回接收信号强度指示(RSSI)和信道误码率(BER)值。只有在网络注册完成后,此命令才会返回正确的值。

[Ctrl-A is the prefix key]           

at+csq
+csq: 25,99

OK

第一个值是 RSSI(dBm):

值RSSI
0-113 dBm 或更低
1-111 dBm
2-30-109 至 -53 dBm
31-51 dBm 或更高
99未知/无法检测(未找到网络)

第二个值是 BER(%):

值BER
0< 0.2 %
10.2 % < 0.4 %
20.4 % < 0.8 %
30.8 % < 1.6 %
41.6 % < 3.2 %
53.2 % < 6.4 %
66.4 % < 12.8 %
712.8 % <
99未知/无法检测

根据示例/输出 “+csq: 25,99”,结果表示 RSSI 约为 -63 dBm,BER 参数无法检测。

at+qnwinfo

该命令返回接入技术、ISP 和所选频段的信息。只有在网络注册完成后,此命令才会返回正确的信息。

[Ctrl-A is the prefix key]               

at+qnwinfo
+QNWINFO: "eMTC","24701","LTE BAND 20",6300

OK

如上例所示,当前模块使用 “eMTC”(CAT-M),ISP 为 “24701”(数字格式,代表 “LMT”),LTE Band 20,信道 ID 为 “6300”。

at+qcsq

at+qcsq 命令返回当前 ISP 连接的信号强度以及所用技术的信息。

[Ctrl-A is the prefix key]                 

at+qcsq
+QCSQ: "eMTC",-62,-87,111,-12

OK

返回的第一个参数是 “eMTC”,表示模块使用的技术(CAT-M)。如果无法确定网络,则返回 “NOSERVICE”。

其余参数表示连接的信号强度。

当技术识别为 “NBIoT” 或 “eMTC”(CAT-M)时:

  • 第一个数值显示接收信号强度(LTE RSSI);
  • 第二个值显示参考信号接收功率(LTE RSRP);
  • 第三个值显示信号与干扰加噪声比(LTE SINR)。该值以 SINR 的对数值表示,单位为 1/5 dB(结果范围为 0-250,对应 -20 dB 至 +30 dB);
  • 第四个值显示参考信号接收质量(LTE RSRQ)。 根据上例,RSSI=-62 dBm,RSRP=-87 dBm,SINR=111(111/5-20)≈ 2 dB,RSRQ=-12 dB。

at+qcfg="iotopmode"?

该命令用于检查连接 ISP 所使用的技术。调制解调器可以仅工作在 CAT-M 模式、仅工作在 NB-IoT 模式,或同时支持两者。

[Ctrl-A is the prefix key]   

at+qcfg="iotopmode"?
+QCFG: "iotopmode",2

OK

可以使用命令 *at+qcfg="iotopmode"**,*mode,effect 将 SIM 卡锁定为仅在特定模式下工作,其中 mode 为模式(0 → 仅 CAT-M;1 → 仅 NB-IoT;2 → 两者),effect 为生效时机(0 → 重启后生效;1 → 立即生效)。

为加快网络搜索,建议先执行命令 at+cfun=0(关闭射频),然后使用上述命令。之后执行 at+cfun=1,1(重新开启射频并重置模块以使设置生效)。

at+qcfg="band"?

此命令用于检查当前接受哪些频段/频率。

[Ctrl-A is the prefix key]   

at+qcfg="band"?
+QCFG: "band",0x0,0x100002000000000f0e189f,0x10004200000000090e189f

OK

“qcfg” 响应中的第一个值是一个十六进制值,指定 GSM 频段。该值与 Quectel BG77 模块无关,可以忽略。

第二个十六进制值指定 CAT-M 频段(即 0x100002000000000f0e189f)。如果设置为 0,表示不更改频段。例如,若为 0x15,则表示 → 0x01(LTE Band 1)+0x04(LTE Band 3)+0x10(LTE Band 5)。

值频段
0不更改
0x1LTE Band 1
0x2LTE Band 2
0x4LTE Band 3
0x8LTE Band 4
0x10LTE Band 5
0x80LTE Band 8
0x800LTE Band 12
0x1000LTE Band 13
0x20000LTE Band 18
0x40000LTE Band 19
0x80000LTE Band 20
0x1000000LTE Band 25
0x2000000LTE Band 26
0x4000000LTE Band 27
0x8000000LTE Band 28
0x20000000000000000LTE Band 66
0x1000000000000000000000LTE Band 85
0x100002000000000F0E189F上述所有受支持频段

最后一个十六进制值指定 NB-IoT 频段(即 0x10004200000000090e189f)。如果设置为 0,表示不更改频段。例如,若为 0x15,则表示 → 0x01(LTE Band 1)+0x04(LTE Band 3)+0x10(LTE Band 5)。

值频段
0不更改
0x1LTE Band 1
0x2LTE Band 2
0x4LTE Band 3
0x8LTE Band 4
0x10LTE Band 5
0x80LTE Band 8
0x800LTE Band 12
0x1000LTE Band 13
0x20000LTE Band 18
0x40000LTE Band 19
0x80000LTE Band 20
0x1000000LTE Band 25
0x8000000LTE Band 28
0x20000000000000000LTE Band 66
0x400000000000000000LTE Band 71
0x1000000000000000000000LTE Band 85
0x10004200000000090E189F上述所有受支持频段

可以使用命令 at+qcfg="band",GSM_band,CAT_M_band,NB_IoT_band,effect 更改频段,其中 GSM_band 为 GSM 频段(可保留 0x0),CAT_M_band 为 CAT-M 频段,NB_IoT_band 为 NB-IoT 频段,effect 表示立即生效(1)还是在模块重启后生效(0)。

要将模块设置为支持所有频段,请使用以下命令:

[Ctrl-A is the prefix key]     

at+qcfg="band",0x0,0x100002000000000f0e189f,0x10004200000000090e189f,1

OK

为加快网络搜索,建议先执行命令 at+cfun=0(关闭射频),然后使用上述命令。之后执行 at+cfun=1,1(重新开启射频并重置模块以使设置生效)。

at+qgpscfg="priority",(0-1)

需要理解的是,CAT-M/NB-IoT 数据传输与 GNSS 无法同时工作(BG77 模块中的 WWAN 和 GNSS 接收链路共用某些硬件模块,因此模块不支持 WWAN 与 GNSS 并发运行)。因此引入了 at+qgpscfg="priority",(0-1) 命令。

可以通过以下命令更改优先级:

[Ctrl-A is the prefix key]    

at+qgpscfg="priority",0

OK

at+qgpscfg="priority",1

OK

at+qgpscfg="priority",0 命令将 GNSS 设置为最高优先级。

at+qgpscfg="priority",1 命令将 LTE(WWAN)设置为最高优先级。

当设备处于 LTE(WWAN)优先模式时,只有在 RRC 释放(无线资源控制协议有许多功能,主要负责连接建立与释放)且 LTE(WWAN)进入空闲休眠模式后,GNSS 定位请求才能成功通过。只有在支持 eDRX 且未被 ISP 阻止的条件下,LTE(WWAN)与 GNSS 才能在 LTE(WWAN)优先模式下共存。如果网络连接已建立(RRC 处于连接状态)且数据开始流向服务器,GNSS 会延迟到数据传输结束且 RRC 释放后再执行。如果支持 eDRX 且模块进入该模式(数据传输结束),则会发送 GNSS 坐标。一旦数据再次开始流向服务器,GNSS 会再次延迟,直到设备重新进入 eDRX 模式。

当设备处于 GNSS 优先模式时,GNSS 定位请求在所有 WWAN 状态下都能成功。如果设备处于 RRC 连接状态,它会释放 RRC 连接并发起 GNSS 会话。之后,如果有 WWAN 数据需要发送,会再次发起 RRC 连接。