EG915U 学习笔记

【EG915U 学习笔记】两周从 AT 指令摸到 SIP 信令

新人报到,这两周我一直对着一块 EG915U 折腾,从开机敲 AT 到能看懂 ArmTracer 里的信令,算是从零走通了一遍。把过程记下来,也许对刚上手蜂窝模组的同学有点用。

我是通信工程专业的,手头这块是 Quectel EG915U(UNISOC 8910 平台,插的中国移动卡)。最开始就一个目标:别光会照着手册敲命令,得真懂模组在背后干了啥。

学习顺序大概是这样:

模组基础(AT) → LTE 入网(Attach) → 短信(SMS) → 语音(VoLTE) → 数据业务(ECM)

我的经验是先别急着钻原理,把业务跑通再说。等你能发短信、能上网了,再去翻信令看"为什么能行",那会儿看信令才有感觉。

模块基础与 AT 调试

上手第一件事就是串口(我用 QCOM)确认模组状态,这几条基本天天敲:

AT+CPIN?   → +CPIN: READY          // SIM 卡就绪
AT+COPS?   → +COPS: 0,0,"China Mobile"
AT+CEREG?  → +CEREG: 0,1           // EPS 已注册
AT+CGSN    → 输出 IMEI
AT+GMR     → 输出固件版本

AT 指令有四种写法,一开始很容易搞混:ATI 直接查、AT+XXX=? 看支持范围、AT+XXX? 看当前值、AT+XXX=<val> 下发。分清楚这个,后面调什么功能都顺手了。

LTE 入网:从现象到信令

入网是开机后的第一件事。用 ArmTracer 打开 CPLog(.tra)抓到完整 Attach 流程,顺序是这样的:

EMM_ATTACH_REQUEST
  → RRC 连接建立
  → ESM_PDN_CONNECTIVITY_REQUEST
  → EMM_IDENTITY_REQUEST / RESPONSE
  → ESM_INFORMATION_REQUEST / RESPONSE
  → EMM_ATTACH_ACCEPT          // 拿到 IP 和默认承载(QCI=9)
  → EMM_ATTACH_COMPLETE

我一开始以为"连上网"就完事了,后来才搞明白 Attach 真正在干嘛:GUTI 分配、网络鉴权、默认承载建立,全在这一步。所以模组开机后要等那么几秒才能发数据,不是卡,是它在干活。

短信:三通道和 UCS2 中文短信

LTE 下的短信其实有三条路:CS 域、SGs 联合附着、IMS(SMS over IP),现在基本都走 IMS 了。

中文短信必须上 UCS2 编码,这也是为什么中文单条只能发 70 字(每字符 16 bit,140 字节 ÷ 2 = 70)。实测发一条中文:

AT+CMGF=1            → OK        // 文本模式
AT+CSCS="UCS2"       → OK        // 切 UCS2(这步不能漏)
AT+CMGS="<对方号码>"  → >         // 进入输入
<中文内容>                     // Ctrl+Z(0x1A) 发送
+CMGS: <mr>          → OK        // 发送成功

我用 UCS2 发了一条"你好,曾策的测试短信",对方手机收到没乱码。能发又能懂编码,这一步才算真练到了。

语音:VoLTE 与 SIP 信令

语音现在主推 VoLTE,走 IMS 的 SIP 会话。先是 IMS 注册,再发起呼叫。

IMS 注册(SIP REGISTER):

REGISTER → 401 → REGISTER → 200 → SUBSCRIBE → NOTIFY

401 是网络要求鉴权,200 才表示注册成功。

VoLTE 主叫(SIP INVITE):

INVITE → 183 → PRACK → UPDATE → 180 RING → 200 → ACK → (通话) → CANCEL → 487 → ACK

183 做 SDP 媒体协商,180 RING 是对方振铃,200/ACK 接通后媒体流才开始,CANCEL→487→ACK 是挂断,同时 QCI=1 专用承载会被拆掉。

对比 CSFB(电路域回落)明显慢一截,VoLTE 全程在 LTE 上跑,体验完全不一样。

数据业务:ECM 拨号双栈上网

最后验证数据业务,用 ECM 方式拨号拿到 IPv4 + IPv6 双栈:

AT+CGDCONT=1,"IP","CMNET"     // 配置 PDP
AT+QNETDEVCTL=3,1,1           // 触发 ECM 拨号

拨号成功后电脑拿到 IPv4(10.x)和 IPv6(2409: 开头,中国移动的前缀),直接 ping 2001:4860:4860::8888 4/4 全通。这一步把"模组真的能上网"彻底坐实了。

工具与一点心得

  • QCOM:AT 调试主力,串口返回一目了然。
  • ArmTracer + CPLog(.tra):看信令全靠它,Attach / IMS / VoLTE 整条链路都能抓,比对着文档死记硬背直观太多。
  • 排查问题我一般按"SIM → 注网 → 承载 → 业务"一层层往下捋。

踩了两周,最大的体会是:敲 AT 命令谁都会,难的是对着信令知道模组建在哪儿卡住了。日志这东西,上手有点劝退,但真看懂了就回不去。

写在最后

上面这些截图和信令都是我自己实操抓的,难免有理解不到位的地方,欢迎拍砖。同样在折腾 EG915U 或者刚接触蜂窝模组的,可以一起交流。