### 如何利用AT指令控制MODEM收发PDU格式短信
#### 一、GSM系统与短信息服务
GSM(Global System for Mobile communication)作为基于时分多址技术的成熟移动通讯体制,拥有广泛的应用场景。GSM数字蜂窝移动通信网络已经覆盖全国,成为我国公众移动通信的主要形式之一。基于GSM的短信息服务(SMS)是一种通过移动网络传输简短信息的无线应用,其特点是信息可以在移动网络上存储并转发,这一特性使得无需额外构建专用通信网络即可实现全球范围内的联网和漫游。
#### 二、MODEM的收发短信工作原理
当前市场上的无线MODEM普遍支持GSM07.05规范下的AT指令集,该指令集由ETSI(欧洲通信技术委员会)发布,并包含对SMS的控制机制。MODEM通常采用RS232或USB作为串行通信接口,其通信速率可根据实际需求及无线模块的串口数据处理能力进行设置。通过PC与MODEM之间的串行接口,发送一系列AT命令可以实现对MODEM的控制,进而实现收发SMS的功能。
在GSM系统中,短信息服务利用信令信道进行传输,这是一种GSM特有的通信方式。用户不需要拨号建立连接,只需将想要发送的信息连同目标地址一起发送至短信息服务中心,之后通过服务中心完成存储并转发给最终目的地。这种方式保证了即使目标终端暂时离线,信息也不会丢失。每条短消息的信息量限制为140字节。
#### 三、PDU模式简介及其优势
MODEM通过串行接口实现对SMS的控制有三种主要的接入协议:Block Mode、Text Mode 和 PDU Mode。其中,PDU Mode 是一种发送或接收SMS信息的方法,它将短信息正文进行十六进制编码后进行传输。PDU Mode 目前应用最为广泛,几乎所有的电信运营商都提供了支持PDU Mode的短消息业务。
与其他两种模式相比,PDU Mode 的优势在于其更广泛的兼容性和稳定性。某些地址可能不支持Text Mode 或 Block Mode,这限制了它们的应用范围。而PDU Mode 已经显示出取代Block Mode的趋势,因此为了确保系统的广泛适用性,本章节重点介绍如何使用PDU Mode收发SMS。
#### 四、常用AT指令
- **AT+CSMS**:选择短信息服务
- **AT+CPMS**:选择短信息内存
- **AT+CMGF**:选择短信息格式
- **AT+CSCA**:短信息中心地址
- **AT+CNMI**:显示新收到的短信息
- **AT+CMGR**:读取短信息
- **AT+CMGS**:发送短信息
- **AT+CMGL**:列出SIM卡中的短信息
- **AT+CMSS**:从SIM内存中发送短信息
- **AT+CMGW**:向SIM内存中写入待发短信息
- **AT+CMGD**:删除SIM内存中的短信息
- **AT+CSCB**:选择蜂窝广播信息
#### 五、短信息的接收
接收短消息主要通过**AT+CMGR** 和 **AT+CMGL** 这两条指令完成。首先需要确认是否能与MODEM建立通信,通常使用**AT**指令进行确认;接着使用**AT+CMGF**指令选定短消息的数据格式;在收到MODEM的正确回答后,使用**AT+CMGL**读取之前的信息,或在收到MODEM的RING数据时,使用**AT+CMGR**读取实时信息。
以下是一个使用PDU模式接收SMS的例子:
1. **发送**:AT
- **回答**:OK (已建立连接)
2. **发送**:AT+CMGF=0 (选择PDU格式)
- **回答**:OK (允许选择PDU格式)
3. **发送**:AT+CMGL=2 (列出已有的短信息)
- **回答**:+CMGL:1,2,,24 (1表示信息个数,2表示未发信息,24表示信息总容量)
- 0D71683108370105F004000D81683179133208F10000026080410033802632184CF682D95E0DC2B36D3D170A0243106933D97A0243106933D97A02451068B1983492608
- OK
在上述例子中,十六进制字符串不仅包含了短消息的内容,还包括发送者的号码、短信息中心号码、短消息发送时间等信息。例如,“0D”表示短信息中心地址长度,“91”表示号码类型(TON/NPI),遵循International/E.164标准,需要在号码前添加“+”号;“683108370105F0”则是经过十六进制编码后的服务中心号码13807310500。
通过上述步骤和示例,我们可以清晰地了解到如何利用AT指令控制MODEM收发PDU格式短信的具体流程和技术细节。这对于开发基于GSM的短信息应用具有重要的参考价值。