4G 模块 AT 命令笔记

AT+COPS 选择营运商

模块在默认情况下通常会自动搜索并注册到可用的网络, 例如在中国, 移动卡会注册到中国移动网络, 联通卡会注册到中国联通网络。

但在国外使用漫游服务时, 根据所属运营商的漫游协议, 通常会有多家本地运营商可供选择。此时, 如果启用了自动搜网功能, 模块可能会连接到信号较弱或服务质量较差的运营商, 从而导致例如短信到达延迟较高等问题。

在这种情况下, 可以通过手动搜网的方式, 选择并强制注册到信号质量更好的指定运营商。

命令语法

AT+COPS 命令用于查询当前网络运营商的状态, 并允许你选择自动手动的网络注册模式。

最大响应时间: 180 秒, 通常为网络搜索和注册所需时间。

格式 目的与作用
AT+COPS=? 查询可用网络: 返回设备当前可检测到的所有运营商的完整列表及其支持的接入技术 (如 GSM, UTRAN 等) 和选择模式
AT+COPS? 查询当前状态: 返回设备当前使用的网络选择模式和已注册的运营商名称 (如果已注册)
AT+COPS=<mode>[,<format>[,<oper>[,<Act>]]] 设置网络选择: 命令设备进入指定的选择模式 (自动、手动), 并尝试在指定的运营商上进行注册

命令返回格式

# AT+COPS=?
+COPS: (list of supported <stat>,long alphanumeric <oper>,short alphanumeric <oper>,numeric <oper>s)[,<Act>])s][,,(list of supported <mode>s),(list of supported <format>s)]

# AT+COPS?
+COPS: <mode>[,<format>[,<oper>][,<Act>]]

参数详解

这些参数决定了网络选择方式及运营商名称的显示格式。

<stat> 参数 (运营商状态)

含义
0 无法确定该运营商的状态
1 可接入的运营商, 可选择并注册
2 当前设备已注册或正在尝试注册的运营商
3 被禁止接入的运营商 (通常由于 SIM 卡或服务限制导致)

<mode> (网络选择模式)

描述 关键点
0 自动选择 模块自动搜索并尝试注册到首选网络, <oper> 字段将被忽略
1 手动选择 你必须指定 <oper> (运营商名称) 和 <format>。模块只尝试注册到这个特定网络
2 注销网络 手动从网络上注销
3 仅设置读取格式 不进行注册或注销操作, 仅用于设置 AT+COPS? 读取命令时返回的运营商名称显示格式
4 手动, 回落到自动选择 你指定一个网络, 模块会首先尝试注册。如果失败, 它将自动回退到模式 0 (自动选择)

<format> (运营商名称格式)

描述 示例
0 长字母数字 “China Mobile” (最长 16 个字符)
1 短字母数字 “CMCC”
2 数字 “46000” (MCC+MNC, 即移动国家码+移动网络码)

<oper> (运营商名称)

这是你在 <format> 指定的格式下的具体运营商名称或代码 (例如, 如果你选择格式 2, 此处应填写 46000)

<Act> (接入技术/网络制式)

该参数为只读, 表示当前使用或可用的接入技术 (即网络制式, 如 2G、3G、4G 等)

描述 网络级别 / 说明
0 GSM 2G
2 UTRAN 3G
3 GSM w/EGPRS 增强型 2G (2.5G/2.75G), 带 EGPRS (EDGE) 功能
4 UTRAN w/HSDPA 3G 增强 (3.5G), 支持高速下行 (HSDPA)
5 UTRAN w/HSUPA 3G 增强, 支持高速上行 (HSUPA)
6 UTRAN w/HSDPA and HSUPA 3G 增强 (HSPA), 支持高速上下行 (HSDPA + HSUPA)
7 E-UTRAN 4G / LTE
100 CDMA 另一种 2G/3G 技术, 主要用于北美及部分亚洲地区

简单来说

  • 哪些网络可用, 使用 AT+COPS=?
  • 当前连接状态, 使用 AT+COPS?
  • 一个网络, 使用 AT+COPS=<mode>...
  • 要切换到手动并选择中国移动 (数字代码 46000): AT+COPS=1,2,"46000"
  • 要切换回自动选择: AT+COPS=0

重要提醒

在大多数情况下, 不建议使用 AT+COPS=0AT+COPS=2 命令来手动连接断开网络。

这些操作可能会导致与预期相反的结果, 因为重复启用或强制切换网络功能, 可能干扰模块的正常网络管理机制。

需要特别注意的是:
执行断开操作意味着你不希望下次再使用当前网络。模块会在下次建立连接时重新搜索并选择其他可用网络。

当设备重新上电后, 它会根据标准流程自动扫描并选择合适的网络进行注册。

自动模式注册流程

AT+CFUN 开启 / 关闭飞行模式

可以通过以下 AT 命令来开启或关闭飞行模式

命令 功能说明
0 最低功能模式
1 启用全部功能 (正常工作模式) —— 飞行模式关闭
2 关闭移动发射功能, 仅保留接收功能 (Tx off, Rx on)
3 关闭移动接收功能, 仅保留发射功能 (Rx off, Tx on)
4 关闭移动发射与接收功能 (Tx/Rx off) —— 飞行模式开启

无服务与处理指南

排查设备在网络注册、信号连接、SIM 卡识别等方面常见问题

连接到非签约运营商导致无法上网

在国外或多网络环境下, 模块有时会错误地注册到非签约运营商, 从而无法上网。请按照以下步骤进行确认与处理。

状况确认

项目 命令 说明
APN 设置确认 AT+QICSGP=<contextID> 确认网络接入所需的 APN、用户名及密码是否正确设置
周边网络搜索 AT+COPS=? 查看可用运营商列表
当前注册状态 AT+COPS? 查看当前连接到的运营商
信号强度检查 AT+CSQ 检查信号质量 (建议 ≥ 20)
网络扫描模式 AT+QCFG="nwscanmode" 确认扫描模式 (0: 自动 / 1: GSM / 2: WCDMA / 3: LTE)
扫描顺序 AT+QCFG="nwscanseq" 查看网络扫描顺序 (如 BGxx: 00自动, 01 GSM, 02 M1, 03 NB)
当前小区详情 AT+QENG="servingcell" 查看小区 ID、状态、RSSI、RSRP、RSRQ、SINR 等详细信息

处理方法

方法 命令示例 说明
指定运营商 AT+COPS=<mode>[,<format>[,<oper>[,<Act>]]] 手动选择签约运营商
指定频段 AT+QCFG="band" 限定可使用的频段 (Band)

示例:

  • 若签约运营商为 NTT DOCOMO: AT+COPS=1,2,"44010",8

  • 指定频段:

    • BGxx 系列 → AT+QCFG="band",0,40005,0 (Band1 + Band3 + Band19)
    • EC2x 系列 → AT+QCFG="band",0,40005,0 (Band1 + Band3 + Band19)

实际示例

AT+COPS=?
+COPS: (3,"SoftBank","SoftBank","44020",9),(3,"SoftBank","SoftBank","44020",8),
(3,"44011","440 11","44011",9),(2,"NTT DOCOMO","DOCOMO","44010",8),(0,1,2,3,4),(0,1,2)

AT+COPS?
+COPS: 0,0,"NTT DOCOMO",8

AT+CSQ
+CSQ: 24,99

AT+QENG="servingcell"
+QENG:"servingcell","NOCONN","eMTC","FDD",440,10,6525713,18,6100,19,3,3,6354,-84,-6,-64,19,45

网络连接失败时的基础检查

若模块无法注册网络, 请依次确认以下项目

网络注册状态

命令: AT+CEREG?

返回值 含义
+CEREG: 0,1 已成功注册网络
+CEREG: 0,2 正在搜索网络, 请检查天线连接
+CEREG: 0,3 注册被拒, 请确认 SIM 卡已激活或联系运营商
+CEREG: 0,4 未知错误, 请进一步咨询
+CEREG: 0,5 已通过漫游注册网络

SIM 卡识别状态

命令: AT+CPIN?

返回值 说明
+CME ERROR: 10 SIM 识别失败
+CPIN: READY SIM 识别成功

模块功能状态

命令: AT+CFUN?

返回值 说明
+CFUN: 1 模块功能正常
+CFUN: 0 无线功能关闭, 请执行 AT+CFUN=1 后重试
+CFUN: 4 飞行模式开启, 请执行 AT+CFUN=1 后重试
+CFUN: 5 / 7 可能存在故障, 请联系技术支持

网络选择模式

建议使用自动模式, 执行 AT+COPS=0

命令: AT+COPS?

返回值 说明
+COPS: 0 自动搜索网络 (推荐)
+COPS: 1 手动选择网络
+COPS: 2 手动注销网络 (不推荐)

频段设置确认 (以 EC25-J 为例)

请确认 <ltebandval> 包含对应运营商使用的 LTE 频段

# 命令
AT+QCFG="band"?

# 返回示例
+QCFG: "band",<bandval>,<ltebandval>,<tdsbandval>

网络扫描模式确认

建议恢复为自动扫描模式

AT+QCFG="nwscanmode",0,1

查询命令: AT+QCFG="nwscanmode"?

返回值 说明
+QCFG: "nwscanmode",0 自动模式 (推荐)
+QCFG: "nwscanmode",3 仅搜索 LTE 网络
其他值 表示其他 RAT 类型

当前小区状态检查

# 命令
AT+QENG="servingcell"

# 示例输出
+QENG:"servingcell","NOCONN","LTE","FDD",460,01,5A29C0B,465,1650,3,5,5,DE10,-69,-5,-65,21,51

含义

参数 含义 说明
RSRP 基准信号接收功率 -105 以下: 无法注册;-85~-95: 正常;-65 以上: 信号极佳
SINR 信号干扰噪声比 -20~30 dB, 数值越高越好

AT+CUSD 短代码 USSD

AT+CUSD 命令用于控制 USSD (Unstructured Supplementary Service Data) 功能, 使终端设备 (TE) 能够发起或响应 USSD 操作。

该命令支持 网络发起终端发起 的 USSD 会话

命令语法

最大响应时间: 120 秒 (由网络决定)

格式 说明
AT+CUSD=? 查询模块支持的 <mode> 列表
AT+CUSD? 查询当前 <mode> 设置
AT+CUSD=[<mode>[,<reqstr>[,<dcs>]]] 设置 USSD 功能模式, 或发起 / 响应 USSD 会话

参数说明

<mode> USSD 结果代码显示与会话控制

该参数用于设置结果代码 (USSD 响应) 的显示状态及控制会话行为

说明
0 不将 USSD 结果代码显示给终端设备 (TE)
1 将 USSD 结果代码显示给终端设备 (TE)
2 终止当前正在进行的 USSD 会话 (不适用于查询模式)

<reqstr> 请求字符串

要发送给网络的 USSD 请求字符串

如果未提供此参数, 则不会向网络发起查询

示例

AT+CUSD=1,*#1345#,15

<dcs> 数据编码方案

指定 USSD 数据的编码方式

若省略, 则默认使用 15 (GSM 7-bit 默认编码)

USSD 响应格式 (URC)

当发起或接收 USSD 操作时, 网络会返回一个 非请求结果代码 (URC) 给终端设备, 格式如下

+CUSD: <status>[,<rspstr>[,<dcs>]]

<status> USSD 响应状态

该参数指示 USSD 响应来自网络或网络发起的操作的状态:

描述
0 不需要进一步用户操作: 网络发起的通知, 或用户发起的请求已完成
1 需要进一步用户操作: 网络请求用户输入 (会话仍在进行中)
2 USSD 会话已终止: 会话由网络主动关闭
3 其他客户端已响应: 该命令被忽略或由其他应用接管
4 不支持该操作: 网络不支持此类 USSD 请求
5 网络超时: 网络在超时时间内未返回响应

USSD 命令实际操作示例

# 查询支持的响应类型
AT+CUSD=?
+CUSD: (0-2)

# 发送短码 USSD 请求
# 请先确认你的网络支持哪些短码
# 15 表示 GSM 3.38 编码方案
# 如果发送的是支持的短码, 应该能收到网络返回的响应
# 例如, 下面的短码在 Vodafone (UK) 可用于查询预付费账户余额
AT+CUSD=1,*#1345#,15
OK

+CUSD: 0,"Your  balance is #84.16. To check any remaining allowances please call 1345 , for free. Thank you",1

原文

Why you shouldn’t tell IoT modems to detach/attach
AT command: Airplan mode ON/OFF
よくある質問
USSD – How to send USSD short codes with AT command?

最后更新于 2025-10-08