AT 指令学习手册:从对话逻辑到实战排错 AT 指令学习手册从对话逻辑到实战排错学习理念不背命令学「对话语法 命名规律 标准剧本」。适用硬件微雪 SIM7600CE HAT / DTU、移远模块等蜂窝通信终端。目标岗位通讯终端软件测试如铁路 GSM-R / 4G 终端类设备。配套练手项目Gitee · rail-terminal-test目录配套 Gitee 自动化练手项目核心认知AT 是对话不是命令集语法三兄弟? ?命名密码C 家族指令必记指令与返回值关键概念PDP / APN / URC标准实战剧本6 套排错武器库与 CEER 对照现象 → 根因 → 解法速查一图流记忆卡片最小学习路径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.pytests/test_at_basic.py剧本 2 硬件接口测试mock 中simulate_no_sim/simulate_no_antenna剧本 6 Python 自动化pytest tests/ -v --htmlreport.html7 天学习路径 D6在tests/下自行扩展用例详细 7 天训练路线见 Gitee 仓库README.md。一、核心认知AT 是对话不是命令集把4G 模组当成一个只会按规则回答的助手角色行为你测试员发送AT指令 提问 / 下指令模组回复OK/ 数据行 /ERROR模组主动未经询问上报 URCUnsolicited Result Code记忆钩子打电话先拨号发指令先AT。为什么叫 ATAT Attention注意所有指令必须以AT开头不带的是老式 Hayes 指令如ATZ复位、ATE1回显带的是3GPP 标准蜂窝通信指令如ATCSQ二、语法三兄弟? / / ?写法含义人话类比ATCMD?读当前配置「现在是什么情况」ATCMD...写配置「给我改成这样」ATCMD?测支持范围「你能设哪些选项」口诀问号读现状等号改配置问号等号问能力。反例为什么ATCSQ?是错的CSQ是执行型指令测一次给一次结果没有「当前存储值」可读ATCSQ? # 可能返回范围说明 ATCSQ? # ❌ ERROR ATCSQ # ✅ CSQ: 23,99正例全功能指令CGDCONTATCGDCONT? # 读当前 APN 配置 ATCGDCONT1,IP,cmnet # 写设置 APN ATCGDCONT? # 测支持的 PDP 类型三、命名密码C 家族指令C Cellular蜂窝凡是ATC开头基本都在管「信号 / 注册 / 上网 / 运营商」。指令全称人话记忆ATCSQCellular Signal Quality信号几格SQ Signal QualityATCREG?Cellular REGistration电路域注册REG RegisterATCGREG?Cellular GPRS REGistration数据域注册G GPRSATCEREG?Cellular EPS REGistration4G/5G 注册E EPSATCGMICellular Group Manufacturer ID厂商I IdentityATCGMMCellular Group Model ID型号ATCGMRCellular Group Revision固件版本R RevisionATCGDCONTCellular General Data Context上网配置CONT ContextATCOPS?Cellular OPerationS运营商OPS OperatorsATCPIN?Card PINSIM 卡状态PIN 卡密码ATCEERCellular Extended Error Report上网失败原因报错翻译官CREG 深度记忆C Cellular蜂窝 REG Registration注册入网ATCREG?人话「你注册进运营商网络了吗」常见返回值返回含义CREG: 0,0未注册CREG: 0,1已注册本地网✅CREG: 0,2正在搜网CREG: 0,5已注册漫游✅4G 模组建议CREGCGREGCEREG一起看任一值为1或5通常可上网。四、必记指令与返回值生存三指令最先掌握指令作用正常返回AT链路测试OKATE1开启回显minicom 必备OKATCSQ查信号CSQ: 23,990~31越大越好核心指令速查表指令人话正常返回示例ATI你是谁SIM7600CEOKATCPIN?SIM 好了吗CPIN: READYATCSQ信号强度CSQ: 20,99ATCREG?注网了吗CREG: 0,1ATCOPS?哪家运营商COPS: 0,0,CHINA MOBILE,7ATCGDCONT?APN 配置CGDCONT: 1,IP,cmnet,...ATCGDCONT1,IP,cmnet设 APNOKATD*99#拨号上网CONNECTATCEER上次失败原因见排错章节ATDTUCFG?DTU 配置DTU 专用DTUCFG: ...国内三大运营商 APN运营商常用 APN移动cmnet联通3gnet/uninet电信ctnet串口参数默认波特率115200 数据位8 停止位1 校验无 流控无 指令结尾\r\n回车换行五、关键概念PDP / APN / URCCGDCONT 填「上网寄件单」ATCGDCONT C(蜂窝) G(通用) D(数据) CONT(上下文)PDP Context 一组上网参数IP 类型 APN 认证方式等通信概念快递类比SIM 卡身份证APN快递公司cmnet / 3gnetPDP Context寄件单ATD*99#把单子交给快递员分配 IP收货地址ATCGDCONT1,IP,cmnet # 1编号, IPIPv4, cmnetAPNURC 模组主动汇报不是你问的是模组自己「插嘴」ATCREG1 # 开启注册状态变化上报 # 拔天线或重启后minicom 自动出现 CREG: 2 # 正在搜网 CREG: 1 # 注册成功重要认知AT 指令不怕乱试就怕不试。发错最多ERROR不会烧模组。最坏常见情况ATCFUN1,1重启模组。六、标准实战剧本6 套剧本 1第一次摸模组自检流程⭐ 入门必做场景SIM7600CE HAT 刚到货Windows SSCOM / minicom 连 COM 口。前置LTE 天线接MAINSIM 卡已插UART 跳线拨到CUSB 转串口控制模组。AT ATE1 ATI ATCGMI ATCPIN? ATCSQ ATCREG? ATCGREG? ATCOPS?预期结果步骤期望ATOKATI含SIM7600CEATCPIN?CPIN: READYATCSQ第一值 ≥ 10窗边测试ATCREG?第二值为1或5ATCOPS?显示运营商名称测试记录模板日期____ 测试员____ 设备SIM7600CE HAT COM口____ | 指令 | 实际返回 | 结果(P/F) | 备注 | | AT | OK | P | | | ... | | | |✅ 这一套全绿 AT 指令入门完成。剧本 2硬件接口测试测试工程师视角⭐ 贴近岗位场景模拟桑达无线通讯终端出货前的硬件接口检查。用例 ID操作指令/观察期望HW-01正常上电观察 PWR/NET 灯NET 灯闪烁HW-02链路测试ATOKHW-03拔 SIM 卡重启ATCPIN?NOT INSERTED或ERRORHW-04插回 SIMATCPIN?READYHW-05拔 LTE 天线ATCSQ信号降至 0 或极低HW-06接回天线ATCSQ30s 内信号恢复HW-07热插拔 USB拔插 USB 线重连后 COM 口恢复AT正常HW-08错误波特率用 9600 发AT无响应或乱码HW-09连续压测快速发 100 次AT每次均OK实战记录示例HW-05用例HW-05 无天线信号测试 步骤1. 正常注网后记录 CSQ22 2. 拔掉 MAIN 天线 3. 等待 10s 4. 发 ATCSQ 期望CSQ 第一值 ≤ 3 实际CSQ: 0,99 结果PASS剧本 3上不了网排错完整链路⭐ 排错核心现象AT正常但 ping 不通外网 / 拨号失败。# 第一步基础三角 ATCPIN? # SIM 正常 ATCSQ # 信号 ≥ 10 ATCREG? # 注册 1 或 5 # 第二步数据域 ATCGREG? ATCEREG? # 第三步APN 配置 ATCGDCONT? ATCGDCONT1,IP,cmnet # 移动卡示例 # 第四步拨号 ATD*99# # 第五步失败则查原因 ATCEER80% 故障三选一SIM 未识别 / 信号太差 / APN 配错。剧本 4抓 URC 主动上报目的理解模组主动行为测试网络切换场景。ATE1 ATCREG2 # 开启注册变化上报2带位置信息上报部分模组用 1 ATCSQ # 操作重启模组 或 拔插天线 # 观察 minicom 是否自动出现 CREG: 2 CREG: 1测试点URC 出现时机是否正确不应在稳定注网后无故刷屏。剧本 5DTU 专项测试SIM7600CE-CNSE DTU场景工业 DTU除标准 AT 外还有 DTU 配置指令。# USB 连电脑115200上电后等 RDY AT ATCSQ ATCREG? ATDTUCFG? # 读 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 手册 ATDTUCFG... # 2. PC 端起 TCP Server # 3. RS232 发数据 → 观察服务器是否收到DTU 指示灯检查灯含义正常PWR电源常亮NET网络闪烁搜网/注网STA状态注网后常亮TXD/RXD收发有数据时闪烁剧本 6Python 自动化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 COM5pytest tests/-v--htmlreport.html自动化用例设计示例deftest_at_handshake(modem):assertOKinmodem.send_at(AT)deftest_signal_in_range(modem):respmodem.send_at(ATCSQ)rssiint(resp.split(CSQ:)[1].split(,)[0])assert5rssi31,f信号异常:{rssi}deftest_network_registered(modem):respmodem.send_at(ATCREG?)assert,1inrespor,5inresp缺陷报告示例【BUG-001】无 SIM 卡时 NET 灯仍常亮 严重程度中 复现1. 不插 SIM 2. 上电 3. 观察 NET 灯 期望NET 灯应熄灭或快闪提示异常 实际NET 灯常亮ATCPIN? 返回 NOT INSERTED七、排错武器库与 CEER 对照标准 10 步排错流程1. AT → 串口通吗 2. ATE1 → 能看到输入吗 3. ATCPIN? → SIM 就绪吗 4. ATCSQ → 信号够吗 5. ATCREG? → 注网了吗 6. ATCGREG? → 数据域注网了吗 7. ATCGDCONT? → APN 对吗 8. ATD*99# → 拨号成功吗 9. ATCEER → 失败原因是什么 10. lsof /dev/tty* → 端口被占用吗LinuxCEER 常见返回对照CEER 返回含义解法Requested service option not subscribedAPN 未开通 / 配错核对运营商 APN、卡是否开数据Unsupported PDP typePDP 类型不支持改为IPNetwork failure网络故障查信号、重插卡、换位置Activation rejected by GGSN/SGSN核心网拒绝等注网完成再拨号空 /OK无记录查 ModemManager 占端口CME ERROR vs CEERCME ERRORATCEER时机指令本身错误PDP 激活失败细节精度粗细网络拒绝原因用途参数错 / SIM 错上不了网的根因八、现象 → 根因 → 解法速查现象可能根因第一步排查发 AT 无响应COM 口错 / 波特率错 / 线没接换 COM 口、确认 115200、查跳线 C 档返回乱码波特率不匹配改 115200CPIN: NOT INSERTEDSIM 未插好 / 卡槽损坏重插卡、换卡套CPIN: SIM PIN需要 PIN 码ATCPIN1234CSQ: 0,99天线未接 / 无覆盖接 MAIN 天线、靠窗CREG: 0,0未注网查 SIM、信号、是否锁频CREG: 0,2一直不变搜网失败查天线、SIM、运营商频段拨号NO CARRIERAPN 错 / 未注网ATCGDCONT?→ATCEERLinux 下 Permission denied无串口权限sudo usermod -aG dialout $USER指令间歇性失败端口被 ModemManager 占用sudo systemctl stop ModemManager九、一图流记忆卡片┌─────────────────────────────────────────────────────────┐ │ AT 指令记忆卡片 │ ├─────────────────────────────────────────────────────────┤ │ 语法? 读 | 写 | ? 问能力 │ │ 命名ATC 蜂窝通信全家桶 │ ├─────────────────────────────────────────────────────────┤ │ 入门三角AT → ATE1 → ATCSQ │ │ 注网三角CPIN? → CSQ → CREG? │ │ 上网两步CGDCONT → ATD*99# │ │ 失败一问ATCEER │ ├─────────────────────────────────────────────────────────┤ │ CSQ0~31越大越好无天线≈0 │ │ CREG1或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 CARRIERD6剧本 6pytest 自动化8 自动化用例通过D7统信 UOS 虚拟机重复剧本 1~3Linux 串口调试经验附录知识地图闭环AT在吗 ├── 链路层ATE1、串口参数 ├── 硬件层CPIN?、CSQ、天线/SIM ├── 网络层CREG? / CGREG? / CEREG? / COPS? ├── 数据层CGDCONTPDP/APN→ ATD*99#拨号 ├── 排错层CEER、CME ERROR ├── DTU 层DTUCFG?工业设备 └── 自动化pytest pyserial 测试报告一句话总结AT 指令不是背单词是学「语法 命名规律 标准剧本」。你不需要记住所有命令只需要看到陌生指令时知道ATCMD?问能力?读现状然后按剧本排查。文档版本v2.1 | 整理日期2026-07-04 | 配套练习项目Gitee · rail-terminal-test