当前位置: 首页 > news >正文

AT 指令学习手册:从对话逻辑到实战排错

AT 指令学习手册:从对话逻辑到实战排错

学习理念:不背命令,学「对话语法 + 命名规律 + 标准剧本」。
适用硬件:微雪 SIM7600CE HAT / DTU、移远模块等蜂窝通信终端。
目标岗位:通讯终端软件测试(如铁路 GSM-R / 4G 终端类设备)。
配套练手项目:Gitee · rail-terminal-test


目录

  1. 配套 Gitee 自动化练手项目
  2. 核心认知:AT 是对话,不是命令集
  3. 语法三兄弟:? = = =?
  4. 命名密码:C 家族指令
  5. 必记指令与返回值
  6. 关键概念:PDP / APN / URC
  7. 标准实战剧本(6 套)
  8. 排错武器库与 CEER 对照
  9. 现象 → 根因 → 解法速查
  10. 一图流记忆卡片
  11. 最小学习路径(7 天)

零、配套 Gitee 自动化练手项目

本手册中的实战剧本(尤其是剧本 1 / 2 / 6)可配合以下开源项目动手练习:

项目链接
Gitee 仓库https://gitee.com/song-ri/rail-terminal-test
克隆地址git clone https://gitee.com/song-ri/rail-terminal-test.git

项目简介

rail-terminal-test是基于Python + pytest + pyserial的通讯终端 AT 指令自动化测试框架:

  • 无硬件:内置 MockModem 模拟 SIM7600CE / DTU 响应,可先练测试设计与自动化
  • 有硬件:改配置后同一套用例可直接跑在真实串口上

快速上手

# 1. 克隆gitclone https://gitee.com/song-ri/rail-terminal-test.gitcdrail-terminal-test# 2. 安装依赖pipinstall-rrequirements.txt# 3. 模拟器模式(默认,无需硬件)python manual_check.py# 手动 AT 自检pytest tests/-v# 8 条自动化用例# 4. 硬件到货后,编辑 config/settings.py# USE_MOCK = False# PORT = "COM5" # Windows# PORT = "/dev/ttyUSB2" # Linux / 统信 UOS

与本手册的对应关系

手册章节项目中的实践
剧本 1 第一次摸模组manual_check.py+tests/test_at_basic.py
剧本 2 硬件接口测试mock 中simulate_no_sim/simulate_no_antenna
剧本 6 Python 自动化pytest tests/ -v --html=report.html
7 天学习路径 D6tests/下自行扩展用例

详细 7 天训练路线见 Gitee 仓库README.md


一、核心认知:AT 是对话,不是命令集

4G 模组当成一个只会按规则回答的助手

角色行为
你(测试员)发送AT指令 = 提问 / 下指令
模组回复OK/ 数据行 /ERROR
模组(主动)未经询问上报 =URC(Unsolicited Result Code)

记忆钩子:打电话先拨号,发指令先AT

为什么叫 AT?

  • AT = Attention(注意),所有指令必须以AT开头
  • 不带+的是老式 Hayes 指令(如ATZ复位、ATE1回显)
  • +的是3GPP 标准蜂窝通信指令(如AT+CSQ

二、语法三兄弟:? / = / =?

写法含义人话类比
AT+CMD?当前配置「现在是什么情况?」
AT+CMD=...配置「给我改成这样」
AT+CMD=?支持范围「你能设哪些选项?」

口诀:问号读现状,等号改配置,问号等号问能力。

反例:为什么AT+CSQ?是错的?

CSQ执行型指令(测一次给一次结果),没有「当前存储值」可读:

AT+CSQ=? # 可能返回范围说明 AT+CSQ? # ❌ ERROR AT+CSQ # ✅ +CSQ: 23,99

正例:全功能指令CGDCONT

AT+CGDCONT? # 读:当前 APN 配置 AT+CGDCONT=1,"IP","cmnet" # 写:设置 APN AT+CGDCONT=? # 测:支持的 PDP 类型

三、命名密码:C 家族指令

C = Cellular(蜂窝)

凡是AT+C开头,基本都在管「信号 / 注册 / 上网 / 运营商」。

指令全称人话记忆
AT+CSQCellular Signal Quality信号几格SQ = Signal Quality
AT+CREG?Cellular REGistration电路域注册REG = Register
AT+CGREG?Cellular GPRS REGistration数据域注册G = GPRS
AT+CEREG?Cellular EPS REGistration4G/5G 注册E = EPS
AT+CGMICellular Group Manufacturer ID厂商I = Identity
AT+CGMMCellular Group Model ID型号
AT+CGMRCellular Group Revision固件版本R = Revision
AT+CGDCONTCellular General Data Context上网配置CONT = Context
AT+COPS?Cellular OPerationS运营商OPS = Operators
AT+CPIN?Card PINSIM 卡状态PIN = 卡密码
AT+CEERCellular Extended Error Report上网失败原因报错翻译官

CREG 深度记忆

C = Cellular(蜂窝) REG = Registration(注册入网)

AT+CREG?人话:「你注册进运营商网络了吗?」

常见返回值:

返回含义
+CREG: 0,0未注册
+CREG: 0,1已注册(本地网)✅
+CREG: 0,2正在搜网
+CREG: 0,5已注册(漫游)✅

4G 模组建议CREG+CGREG+CEREG一起看,任一值为15通常可上网。


四、必记指令与返回值

生存三指令(最先掌握)

指令作用正常返回
AT链路测试OK
ATE1开启回显(minicom 必备)OK
AT+CSQ查信号+CSQ: 23,99(0~31,越大越好)

核心指令速查表

指令人话正常返回示例
ATI你是谁SIM7600CE+OK
AT+CPIN?SIM 好了吗+CPIN: READY
AT+CSQ信号强度+CSQ: 20,99
AT+CREG?注网了吗+CREG: 0,1
AT+COPS?哪家运营商+COPS: 0,0,"CHINA MOBILE",7
AT+CGDCONT?APN 配置+CGDCONT: 1,"IP","cmnet",...
AT+CGDCONT=1,"IP","cmnet"设 APNOK
ATD*99#拨号上网CONNECT
AT+CEER上次失败原因见排错章节
AT+DTUCFG?DTU 配置(DTU 专用)+DTUCFG: ...

国内三大运营商 APN

运营商常用 APN
移动cmnet
联通3gnet/uninet
电信ctnet

串口参数(默认)

波特率:115200 数据位:8 停止位:1 校验:无 流控:无 指令结尾:\r\n(回车换行)

五、关键概念:PDP / APN / URC

CGDCONT = 填「上网寄件单」

AT+CGDCONT = C(蜂窝) + G(通用) + D(数据) + CONT(上下文)

PDP Context= 一组上网参数(IP 类型 + APN + 认证方式等)

通信概念快递类比
SIM 卡身份证
APN快递公司(cmnet / 3gnet)
PDP Context寄件单
ATD*99#把单子交给快递员
分配 IP收货地址
AT+CGDCONT=1,"IP","cmnet" # 1=编号, IP=IPv4, cmnet=APN

URC = 模组主动汇报

不是你问的,是模组自己「插嘴」:

AT+CREG=1 # 开启注册状态变化上报 # 拔天线或重启后,minicom 自动出现: +CREG: 2 # 正在搜网 +CREG: 1 # 注册成功

重要认知

AT 指令不怕乱试,就怕不试。发错最多ERROR,不会烧模组。
最坏常见情况:AT+CFUN=1,1重启模组。


六、标准实战剧本(6 套)


剧本 1:第一次摸模组(自检流程)⭐ 入门必做

场景:SIM7600CE HAT 刚到货,Windows + SSCOM / minicom 连 COM 口。

前置:LTE 天线接MAIN,SIM 卡已插,UART 跳线拨到C(USB 转串口控制模组)。

AT ATE1 ATI AT+CGMI AT+CPIN? AT+CSQ AT+CREG? AT+CGREG? AT+COPS?

预期结果

步骤期望
ATOK
ATISIM7600CE
AT+CPIN?+CPIN: READY
AT+CSQ第一值 ≥ 10(窗边测试)
AT+CREG?第二值为15
AT+COPS?显示运营商名称

测试记录模板

日期:____ 测试员:____ 设备:SIM7600CE HAT COM口:____ | 指令 | 实际返回 | 结果(P/F) | 备注 | | AT | OK | P | | | ... | | | |

✅ 这一套全绿 =AT 指令入门完成


剧本 2:硬件接口测试(测试工程师视角)⭐ 贴近岗位

场景:模拟桑达无线通讯终端出货前的硬件接口检查。

用例 ID操作指令/观察期望
HW-01正常上电观察 PWR/NET 灯NET 灯闪烁
HW-02链路测试ATOK
HW-03拔 SIM 卡重启AT+CPIN?NOT INSERTEDERROR
HW-04插回 SIMAT+CPIN?READY
HW-05拔 LTE 天线AT+CSQ信号降至 0 或极低
HW-06接回天线AT+CSQ30s 内信号恢复
HW-07热插拔 USB拔插 USB 线重连后 COM 口恢复,AT正常
HW-08错误波特率用 9600 发AT无响应或乱码
HW-09连续压测快速发 100 次AT每次均OK

实战记录示例(HW-05)

用例:HW-05 无天线信号测试 步骤:1. 正常注网后记录 CSQ=22 2. 拔掉 MAIN 天线 3. 等待 10s 4. 发 AT+CSQ 期望:CSQ 第一值 ≤ 3 实际:+CSQ: 0,99 结果:PASS

剧本 3:上不了网排错(完整链路)⭐ 排错核心

现象AT正常,但 ping 不通外网 / 拨号失败。

# 第一步:基础三角 AT+CPIN? # SIM 正常? AT+CSQ # 信号 ≥ 10? AT+CREG? # 注册 = 1 或 5? # 第二步:数据域 AT+CGREG? AT+CEREG? # 第三步:APN 配置 AT+CGDCONT? AT+CGDCONT=1,"IP","cmnet" # 移动卡示例 # 第四步:拨号 ATD*99# # 第五步:失败则查原因 AT+CEER

80% 故障三选一:SIM 未识别 / 信号太差 / APN 配错。


剧本 4:抓 URC 主动上报

目的:理解模组主动行为,测试网络切换场景。

ATE1 AT+CREG=2 # 开启注册变化上报(2=带位置信息上报,部分模组用 1) AT+CSQ # 操作:重启模组 或 拔插天线 # 观察 minicom 是否自动出现: +CREG: 2 +CREG: 1

测试点:URC 出现时机是否正确,不应在稳定注网后无故刷屏。


剧本 5:DTU 专项测试(SIM7600CE-CNSE DTU)

场景:工业 DTU,除标准 AT 外还有 DTU 配置指令。

# USB 连电脑,115200,上电后等 RDY AT AT+CSQ AT+CREG? AT+DTUCFG? # 读 DTU 当前配置 # 查询示例返回: # +DTUCFG: 115200,0.0.0.0,0,TCP,0,,300,,1,0,0,500,0,0,1,0,0 # RS232 透传测试(需 USB 转 RS232): # 1. 配置服务器地址(参考 DTU 手册 AT+DTUCFG=...) # 2. PC 端起 TCP Server # 3. RS232 发数据 → 观察服务器是否收到

DTU 指示灯检查

含义正常
PWR电源常亮
NET网络闪烁(搜网/注网)
STA状态注网后常亮
TXD/RXD收发有数据时闪烁

剧本 6:Python 自动化(pytest + pyserial)

场景:回归测试,版本迭代后一键验证。

项目地址:https://gitee.com/song-ri/rail-terminal-test
本地路径C:\Users\86135\rail-terminal-test

# 模拟器模式(无硬件)cd C:\Users\86135\rail-terminal-test python manual_check.py pytest tests/-v# 硬件到货后:改 config/settings.py# USE_MOCK = False# PORT = "COM5"pytest tests/-v--html=report.html

自动化用例设计示例

deftest_at_handshake(modem):assert"OK"inmodem.send_at("AT")deftest_signal_in_range(modem):resp=modem.send_at("AT+CSQ")rssi=int(resp.split("+CSQ:")[1].split(",")[0])assert5<=rssi<=31,f"信号异常:{rssi}"deftest_network_registered(modem):resp=modem.send_at("AT+CREG?")assert",1"inrespor",5"inresp

缺陷报告示例

【BUG-001】无 SIM 卡时 NET 灯仍常亮 严重程度:中 复现:1. 不插 SIM 2. 上电 3. 观察 NET 灯 期望:NET 灯应熄灭或快闪提示异常 实际:NET 灯常亮,AT+CPIN? 返回 NOT INSERTED

七、排错武器库与 CEER 对照

标准 10 步排错流程

1. AT → 串口通吗? 2. ATE1 → 能看到输入吗? 3. AT+CPIN? → SIM 就绪吗? 4. AT+CSQ → 信号够吗? 5. AT+CREG? → 注网了吗? 6. AT+CGREG? → 数据域注网了吗? 7. AT+CGDCONT? → APN 对吗? 8. ATD*99# → 拨号成功吗? 9. AT+CEER → 失败原因是什么? 10. lsof /dev/tty* → 端口被占用吗?(Linux)

CEER 常见返回对照

CEER 返回含义解法
Requested service option not subscribedAPN 未开通 / 配错核对运营商 APN、卡是否开数据
Unsupported PDP typePDP 类型不支持改为"IP"
Network failure网络故障查信号、重插卡、换位置
Activation rejected by GGSN/SGSN核心网拒绝等注网完成再拨号
空 /OK无记录查 ModemManager 占端口

CME ERROR vs CEER

+CME ERRORAT+CEER
时机指令本身错误PDP 激活失败细节
精度细(网络拒绝原因)
用途参数错 / SIM 错上不了网的根因

八、现象 → 根因 → 解法速查

现象可能根因第一步排查
发 AT 无响应COM 口错 / 波特率错 / 线没接换 COM 口、确认 115200、查跳线 C 档
返回乱码波特率不匹配改 115200
+CPIN: NOT INSERTEDSIM 未插好 / 卡槽损坏重插卡、换卡套
+CPIN: SIM PIN需要 PIN 码AT+CPIN="1234"
+CSQ: 0,99天线未接 / 无覆盖接 MAIN 天线、靠窗
+CREG: 0,0未注网查 SIM、信号、是否锁频
+CREG: 0,2一直不变搜网失败查天线、SIM、运营商频段
拨号NO CARRIERAPN 错 / 未注网AT+CGDCONT?AT+CEER
Linux 下 Permission denied无串口权限sudo usermod -aG dialout $USER
指令间歇性失败端口被 ModemManager 占用sudo systemctl stop ModemManager

九、一图流记忆卡片

┌─────────────────────────────────────────────────────────┐ │ AT 指令记忆卡片 │ ├─────────────────────────────────────────────────────────┤ │ 语法:? 读 | = 写 | =? 问能力 │ │ 命名:AT+C = 蜂窝通信全家桶 │ ├─────────────────────────────────────────────────────────┤ │ 入门三角:AT → ATE1 → AT+CSQ │ │ 注网三角:CPIN? → CSQ → CREG? │ │ 上网两步:CGDCONT → ATD*99# │ │ 失败一问:AT+CEER │ ├─────────────────────────────────────────────────────────┤ │ CSQ:0~31,越大越好,无天线≈0 │ │ CREG:1或5=已注网,2=搜网中,0=未注网 │ │ APN:移动cmnet 联通3gnet 电信ctnet │ ├─────────────────────────────────────────────────────────┤ │ PDP = 寄件单 | APN = 快递公司 | 拨号 = 发货 │ │ URC = 模组主动说话(不是你问的) │ └─────────────────────────────────────────────────────────┘

打印建议:A4 横向,贴工位;现场调试按「入门三角 → 注网三角 → 上网两步 → 失败问 CEER」走。


十、最小学习路径(7 天)

任务产出
D1理解 AT 对话模型 + 语法三兄弟能解释 ? / = / =?
D2跑通剧本 1(自检流程)测试记录表 1 份
D3背 C 家族指令 + 记 APN能不看表发 10 条指令
D4跑通剧本 2(硬件接口)8 条 HW 用例 + 2 份 Bug 报告
D5跑通剧本 3(排错)+ CEER能独立排查 NO CARRIER
D6剧本 6(pytest 自动化)8+ 自动化用例通过
D7统信 UOS 虚拟机重复剧本 1~3Linux 串口调试经验

附录:知识地图闭环

AT(在吗?) ├── 链路层:ATE1、串口参数 ├── 硬件层:CPIN?、CSQ、天线/SIM ├── 网络层:CREG? / CGREG? / CEREG? / COPS? ├── 数据层:CGDCONT(PDP/APN)→ ATD*99#(拨号) ├── 排错层:CEER、CME ERROR ├── DTU 层:DTUCFG?(工业设备) └── 自动化:pytest + pyserial + 测试报告

一句话总结:AT 指令不是背单词,是学「语法 + 命名规律 + 标准剧本」。
你不需要记住所有命令,只需要看到陌生指令时知道:AT+CMD=?问能力,?读现状,然后按剧本排查。


文档版本:v2.1 | 整理日期:2026-07-04 | 配套练习项目:Gitee · rail-terminal-test

http://www.jsqmd.com/news/1125344/

相关文章:

  • Avalonia NativeControlHost
  • 做过亲子游定制之后,才知道本地靠谱旅行社不能忽略
  • 基于51/STM32单片机温湿度检测控制系统 DHT11环境监测大棚报警器12(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_
  • 原神120帧解锁终极指南:免费提升游戏流畅度的完整教程
  • 104. GaN功率模块集成驱动与高频磁性元件设计
  • 不同规模企业如何选择RFID资产管理系统?一份务实的选型指南
  • 【大白话说Java面试题 第153题】【06_Spring篇】第13题:Spring 中 Bean 是线程安全的吗?
  • 预训练让时序模型零样本胜出
  • 大学生AI学习工具选择指南:ChatGPT、DeepSeek与Gemini实战适配
  • 外卖做了400单,到手不到1000块:一笔账背后的行业困局
  • Java毕业设计-基于 SpringBoot 的 Cosplay 交流论坛的设计与实现 前后端分离的二次元 Cosplay 分享社区平台(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • 基于STM32单片机车位引导 智能停车场计费系统 刷卡识别 WIFI成品12(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_
  • Skills 编写规范与经验指南
  • 服务器安全(Windows Server+Linux)
  • 电容式触摸按键 PCB 设计 10 要点:从 PAD 形状到走线间距的实战避坑
  • 终极指南:5分钟快速导出QQ空间全部历史说说的完整解决方案
  • Linux groupdel命令详解|用户组删除、主组报错解决、强制删除实战教程
  • PyTorch 2.12 LSTM 时间序列预测实战:NASA IGBT 退化数据 MSE 降至 0.004
  • MyBatisGX 0.2.0 发布:正式引入 MGXQL 对象查询语言
  • 蓝速科技视觉 3D 全息舱 AI 数字人一体机带灯与无灯款深度评测
  • 102. GaN功率器件动态导通电阻(RDS(on))退化机理
  • 2026年主流安卓加固工具功能价格对比,360加固保与问顶安全哪家强?
  • sklearn 1.9.0 数据集加载实战:5种方法获取UCI数据,对比fetch_openml与本地读取
  • 实操|用Trae搞定GPIO扩展全流程,看懂AI在IC设计里的真实价值
  • 基于单片机人脸识别电子密码锁智能门禁指纹识别语音提醒防盗成品112(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_
  • 21_LangChain源码总览_读源码前必看的地图
  • 2026年VIVO嵌入式岗位高频面试题(含参考答案)
  • B站、CSDN流量分析!保姆级教程:用零代码ETL与Lift提升度,扒下“爆款标题”的底裤
  • 01 双编码器与交叉编码器
  • 2026年精选好口碑苦荞粉推荐,健康美味不容错过