Wavecom短信猫AT命令详解与短信收发实战

📅 2026/7/19 2:21:48 👁️ 阅读次数 📝 编程学习
Wavecom短信猫AT命令详解与短信收发实战

1. Wavecom短信猫与AT命令基础

短信猫(SMS Modem)是一种通过GSM网络收发短信的硬件设备,Wavecom作为早期主流厂商,其模块在工业控制、企业短信平台等领域广泛应用。AT命令(Attention Command)是控制这类设备的标准化指令集,通过串口发送特定格式的文本指令实现设备控制。

1.1 硬件连接与初始化

使用Wavecom短信猫前需要完成物理连接:

  • 通过RS232串口或USB转串口连接电脑
  • 波特率通常设置为115200或9600
  • 需插入有效的SIM卡(建议关闭PIN码验证)

基础测试命令:

AT # 测试设备响应,正常应返回"OK" AT+CSQ # 检查信号强度,返回值30表示最强信号 AT+CCID # 读取SIM卡ICCID号

注意:若设备无响应,需检查串口线序(特别是RXD/TXD交叉)、供电是否充足,以及SIM卡是否欠费。工业环境中建议使用带磁环的屏蔽线缆减少干扰。

1.2 AT命令语法结构

Wavecom的AT命令遵循GSM 07.05/07.07标准,有三种基本格式:

  1. 测试命令:AT+ =?

    • 例:AT+CSQ=?返回信号强度检测范围(如0-31)
  2. 读取命令:AT+ ?

    • 例:AT+CMGF?返回当前短信格式(0=PDU模式,1=文本模式)
  3. 执行命令:AT+ =

    • 例:AT+CMGF=1设置短信为文本模式

特殊控制字符:

  • ^M(回车,ASCII 13)
  • ^Z(发送结束符,ASCII 26)
  • Ctrl+C中断当前操作

2. 核心短信操作命令详解

2.1 短信格式设置

AT+CMGF=1 # 文本模式(人类可读) AT+CMGF=0 # PDU模式(支持中文等特殊字符)

文本模式适合英文短信,PDU模式支持:

  • 长短信(>160字符自动分包)
  • Unicode编码(中文、emoji)
  • 闪信、免提短信等特殊类型

2.2 短信发送全流程

文本模式发送示例:

AT+CMGS="13800138000" # 输入号码 > This is a test message # 输入内容 ^Z # 发送结束符 # 返回"+CMGS: <message_id>"表示成功

PDU模式发送流程:

  1. 将接收号码转换为TP-DA格式:
    • 国内号码:86138001380006831081005F0
  2. 编码短信内容:
    • 中文"测试" →4B6D5B8B
  3. 组合PDU数据包:
    AT+CMGS=19 # 指定PDU长度 > 0011000D9168310801005F0008044B6D5B8B ^Z

实战技巧:使用iconv工具转换编码:

echo "测试" | iconv -f UTF-8 -t UCS-2BE | xxd -p

2.3 短信接收与解析

设置新短信通知:

AT+CNMI=2,1,0,0,0 # 实时推送新短信到终端

读取短信存储区:

AT+CPMS="SM" # 选择SIM卡存储 AT+CMGL="ALL" # 列出所有短信

典型返回格式:

+CMGL: <index>,<stat>,<oa>,<scts>,<length> <message>

其中<stat>状态:

  • "REC UNREAD":未读
  • "REC READ":已读
  • "STO SENT":已发送

2.4 存储管理命令

AT+CPMS? # 查看存储使用情况 AT+CMGD=<index> # 删除指定短信 AT+CMGW="13800138000" # 写入草稿箱

存储区域类型:

  • "SM":SIM卡(容量有限,约50条)
  • "ME":设备内存
  • "MT":组合存储

3. 高级功能与网络配置

3.1 短信中心设置

AT+CSCA? # 查询当前短信中心 AT+CSCA="+8613800100500" # 设置北京移动短信中心

常见问题:短信发送失败时,需确认短信中心号码是否正确。不同运营商号码:

  • 中国移动:+8613800XXX500(XXX=区号)
  • 中国联通:+8613010XXX500

3.2 小区广播接收

AT+CSCB=1,"50-100" # 接收50-100频道广播 AT+WCBM="EMERGENCY" # 设置紧急广播标识

3.3 GPRS数据连接(扩展功能)

AT+CGATT=1 # 附着GPRS网络 AT+CSTT="cmnet" # 设置APN AT+CIICR # 激活移动场景 AT+CIFSR # 获取本地IP

4. 实战问题排查手册

4.1 常见错误代码

错误码含义解决方案
+CMS ERROR: 500未知错误重启设备
+CMS ERROR: 330存储满执行AT+CMGD清理
+CMS ERROR: 304PDU格式错误检查TPDU字段长度

4.2 中文乱码处理

  1. 确认使用PDU模式:
    AT+CMGF=0
  2. 检查编码一致性:
    • 发送端:UCS-2BE编码
    • 接收端:相同解码方式

4.3 长短信分片

通过TP-UDH头实现自动重组:

AT+CSMP=17,167,0,8 # 设置8-bit UDH AT+CMGS=... # 发送含UDH头的PDU数据

分片标识字段:

  • 参考号(1字节)
  • 分片数(1字节)
  • 序号(1字节)

4.4 工业环境稳定性优化

  1. 增加硬件看门狗:
    AT+WATCHDOG=1,5000 # 5秒喂狗间隔
  2. 启用错误重试:
    AT+CR=3 # 最多重试3次
  3. 信号增强方案:
    • 外接高增益天线
    • 避免金属机柜屏蔽

我在实际项目中发现,Wavecom模块在-25°C~65°C范围内工作稳定,但需注意:

  • 避免冷凝水导致电路短路
  • 定期清理SIM卡触点氧化层
  • 批量发送时建议每20条间隔2秒