跳转至

短消息(SMS)

一、短消息介绍

1.1 短消息服务(SMS)

SMS(Short Message Service)短消息服务是一种允许用户发送和接收短文本消息的移动通信服务。它是移动电话网络的一部分,允许用户通过移动电话发送和接收最多 160 个字符的短消息。

SMS 服务通常由移动运营商提供,用户可以使用移动电话或其他支持 SMS 的设备发送和接收短消息。SMS 服务支持多种功能,包括:

  1. 文本消息:用户可以发送和接收文本消息,包括字母、数字和符号。
  2. 图片消息:用户可以发送和接收图片消息,包括静态图像和动态图像。
  3. 音频消息:用户可以发送和接收音频消息,包括声音和音乐。
  4. 彩信:用户可以发送和接收彩信,包括图像、音频和视频。

SMS 服务具有以下特点:

  1. 实时性:SMS 服务允许用户实时发送和接收消息。
  2. 便捷性:SMS 服务允许用户在任何时间、任何地点发送和接收消息。
  3. 简单性:SMS 服务操作简单,用户可以轻松发送和接收消息。
  4. 廉价性:SMS 服务费用相对较低,用户可以经济地发送和接收消息。

SMS 服务广泛应用于多个领域,包括:

  1. 个人通信:SMS 服务是个人之间的常用通信工具。
  2. 商务通信:SMS 服务用于商务沟通、客户服务和营销推广。
  3. 公共服务:SMS 服务用于公共服务、紧急通报和灾害预警。
  4. 娱乐服务:SMS 服务用于娱乐服务、游戏和彩票等。

总的来说,SMS 短消息服务是一种便捷、实时、经济的移动通信服务,广泛应用于多个领域。

1.1.1 SMS-MO/MT 的概念

SMS-MO 是指移动终端(Mobile Originated)发出的短信,即由移动电话用户发送给短信中心(SMSC)的短信。

在 SMS 网络中,SMS-MO 是指从移动终端发送到短信中心的短信请求,包括发送短信的内容、发送方的手机号码、接收方的手机号码等信息。短信中心接收到 SMS-MO 请求后,会将短信转发给接收方的移动电话。

SMS-MO 通常包括发送方的手机号码、接收方的手机号码、短信内容、短信的优先级、短信的有效期

SMS-MO 是 SMS 网络中一个重要的概念,它是短信通信的起点,标志着短信从移动终端发送到短信中心的开始。

相对应的,SMS-MT(Mobile Terminated)是指移动终端接收到的短信,即由短信中心发送给移动电话用户的短信。

1.1.2 短消息优先存储区

短消息优先存储区(SMS Priority Store)是指移动电话网络中用于存储短消息的缓存区。"SM"表示 SIM 卡,"ME"

为通信模块;

1.1.3 短消息中心地址

短消息中心地址(SMSC Address)是指短消息中心(SMSC)的网络地址,它用于标识短消息中心在移动电话网络中的位置。

短消息中心地址的作用是:

1.标识短消息中心:短消息中心地址用于标识短消息中心在移动电话网络中的位置,使得移动电话网络能够将短消息正确地路由到短消息中心。

2.路由短消息:短消息中心地址用于路由短消息,使得短消息能够从发送方的移动电话正确地传输到接收方的移动电话。

3.提供短消息服务:短消息中心地址用于提供短消息服务,使得移动电话用户能够发送和接收短消息。

短消息中心地址通常包括以下信息:

1.国家代码(Country Code):标识短消息中心所在的国家。

2.网络代码(Network Code):标识短消息中心所在的移动电话网络。

3.短消息中心代码(SMSC Code):标识短消息中心在移动电话网络中的位置。

短消息中心地址的格式通常为:

+CCNNSSSS

其中:

CC:国家代码(2 位数字)

NN:网络代码(2 位数字)

SSSS:短消息中心代码(4 位数字)

例如:+86130123456789

短消息中心地址是移动电话网络中一个重要的参数,它用于确保短消息的正确路由和传输。

1.1.4 短消息格式

短消息输入输出的消息格式可是 PDU 格式或者 TEXT 格式。

文本模式(Text Mode)是指短消息内容以文本格式发送和接收。在文本模式下,短消息内容可以使用 ASCII 字符集编码。

PDU 模式(Protocol Data Unit Mode)是指短消息内容以 PDU 格式发送和接收。在 PDU 模式下,短消息内容需要使用特殊的编码格式,并且可以包含更多的信息,例如发送方和接收方的手机号码等。

1.1.5 TE 和 MT 概念

在移动通信领域,TE 和 MT 是两个常见的缩写,它们分别指的是:

TE:Terminal Equipment(终端设备),指的是移动电话或者其他移动终端设备。

MT:Mobile Terminal(移动终端),指的是移动电话或者其他移动终端设备。

1.1.6 短消息符集

短消息一般采用 IRA 或 GSM 字符集。

IRA(International Reference Alphabet)和 GSM(GSM Character Set)都是字符集标准,但是它们有不同的定义和应用范围。

IRA(International Reference Alphabet)是国际电联(ITU)定义的字符集标准,它包括了一个通用的字符集,用于国际通信。IRA 字符集包括了字母、数字和符号等,用于表示多种语言的文本信息。

GSM(GSM Character Set)是 GSM(Global System for Mobile Communications)移动通信系统定义的字符集标准,它是专门为 GSM 短消息(SMS)服务设计的。GSM 字符集包括了字母、数字和符号等,用于表示 GSM 短消息的文本信息。

两者的主要区别是:

1.IRA 是国际电联定义的通用字符集标准,而 GSM 是 GSM 移动通信系统定义的专用字符集标准。

2.IRA 字符集包括了更多的字符和语言支持,而 GSM 字符集主要用于 GSM 短消息服务。

3.IRA 是用于国际通信的通用字符集,而 GSM 是用于 GSM 移动通信系统的专用字符集。

在实际应用中,如果需要表示多种语言的文本信息,IRA 字符集可能更适合,而如果需要表示 GSM 短消息,GSM 字符集可能更适合。

1.1.7 关于 +86 的说明

+86 是中国的国际电话区号。比如 +1: 美国和加拿大,+81: 日本等等;

1.1.8 UCS2 编码说明

UCS2(Universal Character Set 2)编码是一种 16 位定长的编码方式,主要用于表示 Unicode 字符。

特点:

1.每个字符固定使用 2 个字节(16 位)表示

2.可以表示多种语言的字符,包括中文、日文、韩文等

3.能够表示 65536(2^16)个字符

4.在短信中广泛使用,特别是发送包含中文等非 ASCII 字符的短信

举例:

"感谢"两个汉字在 UCS2 中的编码是:

与其他常见编码的对比:

1.ASCII: 只用 1 个字节,仅能表示英文和符号

2.GB2312: 用于中文编码,但只能表示简体中文

3.UTF-8: 变长编码,节省空间但处理相对复杂

在 PDU 短信中:

1.当 TP-DCS=08 时,表示使用 UCS2 编码

2.当发送包含中文的短信时,通常会自动选择 UCS2 编码

1.2 Air700EAQ 模组的短消息

Air700EAQ 模组短消息功能仅支持移动和联通卡,不支持电信卡。

Air700EAQ 模块当收到新短信后,MAIN_RI 变为低电平,持续 120ms,再变为高电平。可根据这个引脚来判断是否有新短信。

1.3 PDU 说明

PDU(Protocol Data Unit)格式发送短信是一种使用移动电话网络发送短信的方式。PDU 格式是指将短信内容转换为一种特定的二进制格式,然后通过移动电话网络发送给接收方。

在 PDU 格式发送短信中,短信内容被转换为一个 PDU 数据包,该数据包包含了短信的内容、发送方和接收方的手机号码、短信的长度等信息。PDU 数据包的结构如下:

1.头部(Header):包含了 PDU 数据包的长度和类型等信息。

2.地址信息(Address Information):包含了发送方和接收方的手机号码等信息。

3.数据部分(Data Part):包含了短信的内容。

4.尾部(Footer):包含了校验和等信息。

PDU 格式发送短信的优点包括

1.可以发送更长的短信内容:PDU 格式可以发送最多 160 个字符的短信内容,而普通的短信发送方式通常只能发送最多 70 个字符的短信内容。

2.可以发送多媒体内容:PDU 格式可以发送多媒体内容,如图片、音频和视频等。

3.可以实现更高的安全性:PDU 格式可以实现加密和数字签名等安全功能。

但是,PDU 格式发送短信也有一些缺点,包括

需要特殊的软件或设备:PDU 格式发送短信需要特殊的软件或设备来转换和发送 PDU 数据包。

可能会被运营商拦截:一些运营商可能会拦截 PDU 格式的短信,因为它们可能被认为是垃圾短信或恶意短信。

总的来说,PDU 格式发送短信是一种灵活和强大的短信发送方式,但它需要特殊的软件或设备,并可能会被运营商拦截。

二、演示功能概述

本文使用 Air700EAQ 核心板,运用 AT 指令,使用 TEXT 文本模式进行短消息发送与接收。

实验一:TEXT 模式发送英文短信;

实验二:TEXT 模式发送中文短信;

实验三:给 10086 发送话费查询短信;(设备先发送,再接收);

实验四:发送 PDU 格式的中文短信;

三、准备硬件环境

工欲善其事,必先利其器。在正式介绍本功能示例之前,需要先准备好以下硬件环境。

本文章使用 Air700EAQ 核心板,通过串口1发送对应AT指令来做演示;

参考:硬件环境清单,准备以及组装好硬件环境。

四、准备软件环境

工欲善其事,必先利其器。在正式介绍本功能示例之前,需要先准备好以下软件环境。

1. Luatools工具

2. SSCOM 串口通信工具

3. 合宙TCP/UDP web测试工具

4. 本教程使用的AT固件版本号是:AirM2M_700EAQ_V2019_LTE_AT,如果版本号不正确,参考:固件版本确认和烧录检查确认。

五、开发板开机,确认固件正确

参考:固件版本确认和烧录,进行版本确认和烧录。

六、功能验证

打开 SSCOM 软件,将波特率配置为 115200,其他具体可参照下图红框配置:

AT 交互示例

实验一:TEXT 模式发送英文短信
AT+CMGF=1 //设置为TEXT模式
OK
AT+CSMP=17,167,0,0 //配置当前TEXT模式参数,17,短信首字节167,短信有效期,12小时 + ( (vp  143 )×30分钟即24小时
OK
AT+CSCS? //查询使用的字符集
+CSCS: “IRA”              //使用IRA字符集
OK
AT+CMGS="180xxxx1447"     //给180xxxx1447发英文短信注:180xxxx1447是发送目的号码,请按照实际填写,不要照抄
>HELLO!                   //出现>号后,输入要发送的短信内容
<ctrl-Z>                  //换成HEX即十六进制发送 0x1A
+CMGS: 73  //73为序号,非固定,短消息发送成功
OK
实验二:TEXT 模式发送中文短信
AT+CMGF=1 //设置为TEXT模式
OK
AT+CSMP=17,167,0,8 //配置当前TEXT模式参数,17,短信首字节167,短信有效期,12小时 + ( (vp  143 )×30分钟即24小时,修改最后一个参数<dcs>=8
OK
AT+CMGS="180xxxx1447"     //给180xxxx1447发英文短信注:180xxxx1447是发送目的号码,请按照实际填写,不要照抄
>611F8C22                 //出现>号后,输入要发送的短信内容611F8C22,是16进制格式。即:0x61 0x1F 0x8C 0x22,即感谢二字的UNICODE编码
<ctrl-Z>                  //换成HEX即十六进制发送 0x1A
+CMGS: 73                 //73为序号,非固定,短消息发送成功
OK
实验三:给 10086 发送话费查询短信
AT+CMGS="10086"    //给10086发短消息
>HF                //出现>号后,输入要发送的短信内容,话费的拼音首写  HF
<ctrl-Z>           //换成HEX即十六进制发送 0x1A  
//以下部分为10086返回短信内容
+CIEV: "MESSAGE",1

+CMT: "10086",,"24/11/15,10:13:15 +32"
5C0A656C76845BA26237FF0C60A8597DFF015F8862B16B49FF0C7CFB7EDF65E06CD58BC6522B60A8768463074EE4FF0C53EF4EE570B951FBFF1A0068007400740070003A002F002F00640078002E00310030003000380036002E0063006E002F0033004E0052006A0041006E0065002054A88BE257287EBF5BA2670D3002000A301066F4
+CMT: "10086",,"24/11/15,10:13:15 +32"
591A4E135C5E4F1860E0FF0C8BE660C570B951FB00200068007400740070003A002F002F007700610070002E006A0073002E00310030003000380036002E0063006E002F005200753011000D000A30104E2D56FD79FB52A83011

接收短信 UCS 转中文,参考如下图

实验四:发送 PDU 格式的中文短信
AT+CMGF=0 //设置为PDU模式
OK
先发送AT+CMGS=19  //19-是PDU字符串的长度(短信中心单元不包括在内) 
>0011100D91688160881244F700080004611F8C22  //出现>号后,输入0011100D91688160881244F700080004611F8C22报文内容


注意:PDU发送需要取消加回车换行(详细见下图)

发送报文详细说明:
00-表示短信中心的长度为0,即PUD字符串中将SCA删去,发送短信的时候直接从SIM卡中取SCA。该00不计入PDU长度中 
11- PDU短信首字节 
10- TP-MR,benchmark 
0D- 目标地址(DA)长度 
(以下号码从左到右两两对调。红色部分)
91-国际格式号码
68-中国的国际电话区号。
以下绿色标记号码,需两两对调
81 - 对应18
60 - 对应06
88 - 对应88
12 - 对应21
44 - 对应44
F7- 对应7,F为补充号无意义,
即目标地址(收信方号码)为18068821447(请依照上方格式修改为你自己的手机号码) 
00-Protocol Identifier (PID) 
08- Data coding scheme (DCS),8表示UCS2 
00-Valid Period (VP) 
04- User Data的长度 
611F8C22- User Data,发送的短信内容(本例为中文“感谢”)

注意:在发送 PDU 报文时,需取消加回车换行,如下图!!!

注意:在发送 PDU 报文时,需取消加回车换行,如下图!!!

注意:在发送 PDU 报文时,需取消加回车换行,如下图!!!

总结

至此,我们已使用 Air700EAQ 开发板使用 AT 指令完成了中英文与 PDU 格式短消息发送与接收。