简介这份资源是移远通信官方发布的EC200x、EC600x、EG912Y系列LTE标准模块AT命令手册面向使用上述模块进行产品开发的嵌入式工程师与物联网开发者用于解决模块配置、网络连接与功能控制中的命令查询问题。压缩包内为1个PDF文件约1.12MB即完整的193页受控版技术文档按命令逐条组织便于按需检索。手册系统阐述了各AT命令的语法、参数、响应及使用场景涵盖ATCGATT查询GPRS附着状态、ATCMGF切换短信模式等基础命令以及拨号上网、收发短信、数据传输等复杂操作并附有前言、使用与披露限制、版权商标、第三方权利、隐私声明及免责声明等章节帮助读者在合规前提下正确调用模块功能。目前已有480人学习适合需要权威命令参考与设计规范依据的开发人员常备查阅。1. 拿到一份 193 页的 AT 手册先别急着翻目录手上有一块 EC200x 或 EC600x 的板子串口助手打开敲个AT回车回OK再敲ATCSQ回CSQ: 20,99——到这一步很多人就卡住了信号值 20 到底算好还是差下一步该发哪条命令才能把数据发出去网上搜到的命令和手册对不上版本号又不知道从哪查。这份《EC200xEC600xEG912Y 系列 AT 命令手册》就是解决这类问题的它把 LTE Standard 模块系列从通用命令、串口控制、状态控制、(U)SIM 卡、网络服务到呼叫、短信、数据业务的 AT 命令按章节拆开每条命令给出语法、参数、响应和示例。适合正在做 4G 模组联网、短信收发、PPP 拨号、低功耗唤醒的嵌入式工程师也适合刚接手模组调试、需要一份能对着抄命令的新手。手册是受控文档版本 1.0日期 2021-12-13命令集覆盖 EC200x、EC600x、EG912Y 三个系列同一份文档能覆盖多块板子这是它最实用的地方。2. 先建立命令分层通用、串口、状态、网络各管一段拿到手册不要从第一页顺序读AT 命令是有层次的底层是串口和回显配置中层是模块状态与网络注册上层才是业务短信、拨号、数据。层次搞反了就会出现「命令发了没反应」的玄学问题。这一章先把分层逻辑和几个必调命令讲透后面所有操作都建立在这上面。2.1 通用命令是握手层先确认「你是谁、什么版本」通用命令第 2 章解决的是身份识别和会话配置。上电第一件事不是急着联网而是确认模块型号、固件版本、IMEI这三样决定了后面命令能不能用、参数范围是多少。手册里ATI、ATGMM、ATGMR、ATCGSN分别对应 ID 信息、型号、固件版本、IMEI其中ATGMR返回的版本号要和手册版本对得上否则某些扩展命令比如ATQCFG的子参数可能不存在。# 串口打开后逐条发送每条等 OK 再发下一条 AT # 握手确认串口通、波特率对 ATI # 返回厂商与型号例如 Quectel EC200T ATGMR # 固件版本记下来后面查命令兼容性用 ATCGSN # IMEI设备唯一标识入网和售后都要 ATCPIN? # SIM 卡状态返回 READY 才能继续这几条命令的逻辑是「先通、再认、后查卡」。AT只验证物理链路ATI/ATGMR验证固件与手册匹配ATCPIN?验证 SIM 卡已就绪。参数上没什么可调的但要注意ATCPIN?返回CME ERROR: 10表示没插卡CME ERROR: 11表示 PIN 需要解锁这两种情况继续发网络命令全是白费。常见做法是把这个握手序列写进上电初始化脚本任何一步失败就重试三次再报错比人工盯着串口助手靠谱。会话配置里最容易被忽略的是回显和结果码格式。ATE0关回显ATV1用文本结果码ATCMEE1让错误返回数字码而不是笼统的ERROR。这三条建议在初始化时固定下来否则脚本解析响应时会因为多了一行回显而错位。ATCMEE2返回详细文本错误调试阶段用 2量产固件里用 1省解析开销。2.2 串口控制命令决定「能不能稳定通信」第 3 章的串口控制命令看着简单实际是翻车重灾区。ATIPR设固定波特率ATIFC设流控ATC/ATD设 DCD/DTR 信号模式。很多板子默认波特率是自适应第一次连上能通重启后波特率漂了脚本就挂——血泪经验是初始化时显式发一次ATIPR115200并ATW存进用户配置别依赖自适应。ATIPR115200 # 固定波特率避免自适应漂移 ATIFC2,2 # 启用硬件流控 RTS/CTS双向 ATC1 # DCD 跟随载波状态 ATD1 # DTR 变化时进入命令模式而非断连 ATW # 存入用户配置文件掉电不丢ATIFC2,2的两个参数分别是 TE 侧和 TA 侧的流控方式2 表示 RTS/CTS 硬件流控。数据量大、波特率高于 115200 时不开流控丢字节是必然的表现为「AT 返回残缺」或「URC 被截断」。ATC1让 DCD 真实反映连接状态做 PPP 拨号时靠它判断链路是否建立。ATD1的选择要看你的主控逻辑如果 DTR 用来复位模块会话选 1如果 DTR 悬空不用选 0 更稳。存配置用ATW恢复出厂用ATF从用户配置还原用ATZ这三个命令的区别要分清ATZ只还原不擦除ATF才是彻底重置。2.3 状态控制与 QCFG把模块行为调成你要的样子第 4 章的ATQCFG是移远扩展命令的核心一个命令带十几个子参数控制网络搜索模式、频段、URC 上报行为、USB 网卡模式、NAT 等。新手最容易在这里迷路因为子参数名是字符串拼错一个字母就返回ERROR且不告诉你哪错了。ATQCFGnwscanmode,0,1 # 自动搜网0自动 1GSMLTF 优先 ATQCFGband,0,80,1 # 设频段具体位图查手册 4.3.6 ATQCFGurc/cache,1 # 打开 URC 缓存防止休眠时丢上报 ATQCFGusbnet,1 # USB 网卡模式1ECM 2MBIM 3RNDIS ATQCFGnat,1 # 网卡工作模式1启用 NATnwscanmode的第二个参数是搜网顺序做海外项目时经常要锁 LTE 优先避免在 2G 上耗时间。band的位图参数必须对着手册 4.3.6 的表格算填错频段会导致「注册上了但没数据」这个坑后面避坑章细说。urc/cache在低功耗场景必开模块休眠时 URC 先缓存唤醒后补发不开就会丢短信或掉网通知。usbnet和nat是 USB 上网场景的组合拳ECM 模式配 NAT 能让主控像插网卡一样上网不用跑 PPP。ATQINDCFG控制 URC 上报开关和QCFG里的urc/*子参数配合用。做低功耗产品时把不需要的 URC比如RI来电振铃关掉能减少唤醒次数这是省电的关键细节手册里分散在两处得对着看。3. 网络注册到数据业务一条能跑通的命令链身份和串口都通了接下来是真正让模块上网。这一章按「查卡 → 注册 → 附着 → 拿 IP → 发数据」的顺序给一条完整命令链每一步说清看什么响应、失败怎么判。手册第 5、6 章是命令来源但顺序和判据得自己串。3.1 SIM 卡与网络注册先看 CSQ再看 CREGSIM 卡相关命令第 5 章里ATCPIN?查就绪ATQCCID查 ICCIDATCIMI查 IMSIATQINISTAT查初始化状态。网络服务命令第 6 章里ATCSQ查信号ATCREG?查 CS 域注册ATCOPS?查当前运营商ATQNWINFO查网络制式与频段。ATCPIN? # CPIN: READY 才算卡就绪 ATQCCID # QCCID: 8986... 确认卡被识别 ATCSQ # CSQ: 20,99 第一个值是信号第二个是误码率 ATCREG? # CREG: 0,1 第二个值 1本地注册 5漫游 ATCOPS? # COPS: 0,0,CHN-XX 确认运营商 ATQNWINFO # QNWINFO: LTE,...,... 确认制式和频段ATCSQ的第一个值范围 0~3199 表示未知。20 以上算可用10 以下做数据业务会频繁重传别急着怀疑模块先查天线和频段。ATCREG?的第二个值0 未注册、1 本地、2 搜网中、3 拒绝、5 漫游。返回 3 通常是卡欠费或频段不匹配返回 2 持续超过 30 秒要查ATQCFGband是否锁错了频段。ATQNWINFO能直接告诉你当前在 LTE 还是 GSM做多模产品时这条比CREG更直观。3.2 PDP 附着与拿 IPCGATT、CGACT 的顺序不能反数据业务的前提是 PDP 上下文激活。手册里ATCGATT设 GPRS 附着ATCGACT激活 PDPATCGPADDR查分配的 IP。顺序是先附着再激活反了会返回CME ERROR。ATCGATT1 # 附着 GPRS返回 OK ATCGATT? # CGATT: 1 确认已附着 ATCGDCONT1,IP,cmnet # 设 APN1 是 cidcmnet 按运营商改 ATCGACT1,1 # 激活 cid1 的 PDP ATCGPADDR1 # CGPADDR: 1,10.x.x.x 拿到 IPATCGDCONT的 APN 必须按运营商填填错的表现是CGACT返回ERROR或一直拿不到 IP。ATCGACT1,1两个参数分别是状态和 cid第一个 1 是激活0 是去激活。拿到 IP 后做 TCP/UDP 可以用内置协议栈命令手册后续章节的ATQIOPEN一类也可以走 PPP 拨号交给主控协议栈选哪条路取决于主控资源和实时性要求主控跑 Linux 走 PPP 更灵活MCU 资源紧张用内置协议栈省事。提示ATCGATT1返回 OK 不代表附着成功一定要用ATCGATT?查回 1这是新手最常见的误判。3.3 用 QCELL 和 QNWINFO 做现场排障现场信号差、频繁掉网时ATQCELL能拿到服务小区和邻区信息包括频点、PCI、RSRP。手册 6.10 节给了返回格式配合ATQNWINFO能判断是「信号弱」还是「小区拥塞」。ATQCELL # 返回服务小区与邻区列表看 RSRP 和 PCI ATQNWINFO # 确认当前频段和 QCELL 的频点对得上RSRP 低于 -110 dBm 基本没法做数据业务-90 以上算良好。邻区列表里如果同频邻区很多但服务小区 RSRP 差说明位置在小区边缘换天线或加外置天线比调参数有效。这套排查思路比反复重启模块有用得多现场排障时我一般先跑这两条再决定动不动硬件。4. 避坑与排查五个真实翻车现场手册是受控文档写的是「命令应该怎么用」但现场翻车往往出在「命令之外」。这一章按现象、原因、解决三段式记五个高频坑都是调试 EC200x/EC600x 时反复遇到的。4.1 现象AT 有回 OK但所有查询命令都超时原因通常是回显和结果码格式没统一脚本按\r\n切响应模块回显把命令本身也回了一遍解析错位。另一个可能是流控没开高波特率下字节丢失。解决初始化固定ATE0、ATV1、ATCMEE1波特率高于 115200 时开ATIFC2,2。脚本解析前先丢弃回显行只认XXX:开头和OK/ERROR结尾。4.2 现象CREG 显示已注册但 CGACT 一直拿不到 IP原因多半是 APN 填错或频段锁错。APN 大小写、cmnet/cmwap混用都会导致 PDP 激活失败ATQCFGband位图算错注册在了一个不支持数据业务的频段上。解决先用ATCOPS?确认运营商再按运营商填ATCGDCONTATQCFGband,0先恢复全频段确认能上网后再逐步锁频段定位问题。锁频段是优化手段不是排障第一步。4.3 现象休眠唤醒后短信或掉网通知丢失原因是 URC 在休眠期间没有缓存模块醒了但事件已经过去。手册 4.3.9 的urc/cache就是干这个的默认可能是关的。解决ATQCFGurc/cache,1打开缓存配合ATQINDCFG只保留必要的 URC减少无效唤醒。唤醒后主动查一次ATCREG?和ATCGATT?别完全依赖补发的 URC。4.4 现象USB 插上电脑识别成串口不是网卡原因是ATQCFGusbnet没设或设成了 0仅串口。不同主控对 ECM/MBIM/RNDIS 支持不一样设错模式电脑侧驱动装不上。解决Linux 主控优先usbnet1ECMWindows 环境用usbnet3RNDIS设完要重新枚举 USB拔插或复位。配合ATQCFGnat,1让模块做 NAT主控侧不用再配路由。4.5 现象QCFG 子参数返回 ERROR但拼写看着没错原因是子参数名对大小写和斜杠敏感比如urc/ri/other写成urc/RI/other就失败另外部分子参数有固件版本门槛老固件不认新参数。解决对着手册 4.3 节逐字符核对尤其是斜杠和引号用ATGMR确认固件版本版本低于手册要求时要么升级固件要么换等效命令。调试时先发ATQCFG?看模块支持哪些子参数比盲试快。5. 把手册变成可复用的初始化脚本与验证清单手册翻完容易忘真正落地是把命令固化成脚本和清单。我一般做两件事一份上电初始化脚本一份联网自检清单。初始化脚本按「串口 → 身份 → 卡 → 网络 → 数据」五段写每段带超时和重试自检清单是现场排障时按顺序跑的几条命令避免漏查。import serial, time def send(ser, cmd, expectOK, timeout3): ser.write((cmd \r\n).encode()) deadline time.time() timeout buf while time.time() deadline: buf ser.read(ser.in_waiting or 1).decode(errorsignore) if expect in buf: return True, buf if ERROR in buf: return False, buf return False, buf ser serial.Serial(/dev/ttyUSB2, 115200, timeout1) init_seq [ (AT, OK), # 握手 (ATE0, OK), # 关回显 (ATCMEE1, OK), # 数字错误码 (ATIPR115200, OK), # 固定波特率 (ATCPIN?, READY), # 卡就绪 (ATCGATT1, OK), # 附着 (ATCGDCONT1,\IP\,\cmnet\, OK), (ATCGACT1,1, OK), # 激活 PDP ] for cmd, exp in init_seq: ok, resp send(ser, cmd, exp) if not ok: print(fFAIL {cmd}: {resp}) break这段脚本的关键在send函数的判据既认OK也认ERROR超时返回失败而不是死等。init_seq的顺序就是前面讲的层次任何一步失败就中断避免在错误状态下继续发命令。参数上timeout3对CGACT可能偏短现场可以调到 10 秒/dev/ttyUSB2是 AT 口不同主控枚举出的口不一样用ls /dev/ttyUSB*确认。验证清单我固定跑这几条按顺序看响应步骤命令期望响应失败含义1ATOK串口/波特率错2ATGMR版本号固件与手册不匹配3ATCPIN?READY卡未就绪4ATCSQ首值 10信号弱5ATCREG?第二值 1 或 5未注册6ATCGATT?1未附着7ATCGPADDR1有 IPPDP 未激活这张表的价值在于把「凭感觉」变成「按序判」。现场遇到掉网从第 1 步往下跑哪一步断就定位到哪一层比反复重启模块省时间。手册里命令分散在六章这张表把它们串成一条线是我调试这类模块时必带的后悔药。从那以后我每次接手新板子都强制先跑一遍这张清单再动业务代码因为八成的问题在清单前四步就暴露了根本轮不到上层逻辑。希望帮到你。本文还有配套的精品资源点击获取