(5)在移动实验箱上收发短信
在移动实验箱上收发短信时,GSM的短信收发,是由移动实验箱上的SYS单片机通过AT命令自动完成的,不再需要用户编写和解读AT命令了。
1) 按“GSM开发模块”左上角的“工作方式选择”按钮,使模块右上角“SYS-GSM”对应的指示灯亮,此时实验箱上的主单片机和“GSM开发模块”上的GSM模块连接;
2)先按键盘上的“菜单”键,再按键盘上的“短信”键,则液晶上显示如下:
GSM短信收发实验 1 发送 2接收 3) 选择1,则进入短信发送界面,输入接收短信的手机号码(11位),然后按下“↑/确认”键,表示确认,并进入短信编辑方式选择状态;
按下“1”键进入“选择短信序号”方式,显示屏显示短信编号和内容,可以通过“↑/确认”键和“↓/取消”键查看更多的短信。按下相应的数字编号选择要发送的短信内容,并启动短信发送程序;
按下“2”键进入“编辑数字短信”方式,可以用键盘输入数字,输入完毕后按下“↑/确认”键,启动短信发送程序;
按下“3”键进入“编辑数字短信”方式,此时数字1~9分别代表字母A~I,可以用键盘输入字母,输入完毕后按下“↑/确认”键,启动短信发送程序;
成功发送后,液晶上会显示“发送成功”。观测手机是否收到短信,并比较接收短信的内容与发送的短信是否一致,并获知发送移动台号码。
4)选择2,则移动实验箱入短信接收界面,等待短信的接收。从手机编辑短信,发送一条短信。观测接收移动实验箱是否收到了短信,和发送方的发送内容是否一致,能否从接收的内容中得知发送方的号码。
注:移动台作为接收方时,可以接收任意的字符短信(包括英文、数字等),但是由于液晶屏的显示有限,字符不要超过16个。对应中文短信,可以显示“你好”、“您好”和“工作顺利”,其他的中文短信显示对应的Unicode编码(每个汉字4个字符)。 (6)在PC机上收发短信
在PC机上发送AT命令控制GSM模块进行短信收发实验时,可以使用各种串口调试软件。下面以本实验箱配套的“移动GSM短信软件”来说明用AT命令控制GSM模块收发短信的过程。如图5所示。
图5 移动GSM短信软件(AT命令输入)
(a)前期设置
1)设置GSM模块命令返回结果码为字符模式; (下面的红色斜体表示输入的命令字符) A 在命令输入框中输入:ATV1
B 按下“Enter”键或点击“发送命令”按钮 C 接收信息框中显示GSM模块返回结果码为:OK 2)设置短信存储区域
短信可存储在SIM卡上,也可存储在GSM模块上,可通过命令进行设置。 A 在命令输入框中输入:AT+CPMS=”ME”,”ME”,”ME” (SM表示存储区域为SIM卡,ME表示存储区域为GSM模块本身) B 按下“Enter”键或点击“发送命令”按钮 C 接收信息框中显示GSM模块返回消息为:OK 3)设置短消息到达时GSM发送提示信息
设置短消息到达时,GSM将发送提示信息,提示信息指明存储区域和序号,这样便于读取接收到的短信内容。
A 在命令输入框中输入:AT+CNMI=1,1,0,0,1 B 按下“Enter”键或点击“发送命令”按钮 C 接收信息框中显示GSM模块返回消息为:OK 4)设置短消息模式
短消息模式可设置为Text模式和PDU模式。AT命令AT+CMGF=n,n为0表示PDU模式,n为1表示TEXT模式。发送英文短消息选择Text模式。
A 在命令输入框中输入:AT+CMGF=1 B 按下“Enter”键或点击“发送命令”按钮
C 接收信息框中显示GSM模块返回消息为:OK (b)用AT命令控制GSM接收短信过程如下 1)GSM模块接收短消息
通过上述“(a)前期设置”中的第3)步的设置,当GSM模块收到短信时,将会送出提示信息,这时在“移动GSM短信软件”的接收信息框中会显示收到的提示信息,如:
+CMTI: \
其中“ME”表示短消息存储在GSM本身的存储区中,“2”表示这是GSM存储区中接收到第2条短消息。
2)用TEXT模式读取短消息
A、在命令输入框中输入:AT+CMGF=1 (设置读取模式为TEXT模式) B、按下“Enter”键或点击“发送命令”按钮 C、接收信息框中显示GSM模块返回消息为:OK
D、在命令输入框中输入:AT+CMGR=2 (读取第2条短信) E、按下“Enter”键或点击“发送命令”按钮 F、接收信息框中显示GSM模块返回消息为:
+CMGR: \Good morning.
\表示这是第1次读取收到的短消息。如果不是第1次读取则变为\READ\
\为发送短消息方的电话号码
\为短消息发出时间年月日时分秒,+32表示东8区(区数乘4) Good morning. 为短消息内容
G、如果接收到中文短信,则接收信息框中显示GSM模块返回消息为: +CMGR: \4F60597D
其它字段含义和F相同,
4F60597D “你好”2个汉字的Unicode编码 3)用PDU模式读取短消息
A 在命令输入框中输入:AT+CMGF=0 (设置读取模式为PDU模式) B 按下“Enter”键或点击“发送命令”按钮 C 接收信息框中显示GSM模块返回消息为:OK
D 在命令输入框中输入:AT+CMGR=1 (读取第1条短信) E 按下“Enter”键或点击“发送命令”按钮 F 接收信息框中显示GSM模块返回消息为: +CMGR: 1,,24
0891683108200505F0040D91683118055781F9000870117001728523044F60597D 第一行表明这是第一条短信,第二行是接收到的PDU字符串,说明如下: (1)08 SMSC地址信息的长度(91683108200505F0共八位字节) (2)91 SMSC地址格式,短消息中心有国家编码
(3)683108200505F0 SMSC地址(13800250500南京移动的短信服务中心号码) (4)04 表明接收到的是一条完整短信
(5)0D 目标SIM卡号码长度(683118055781F9按阿拉伯数字个数计13位,F为填充) (6)91 SMSC地址格式,目标SIM卡编码有国家编码 (7)683118055781F9 对方手机SIM卡号(+6813815075189) (8)00 TP-PID.协议标识,一般为00 (9)08 短信内容为UCS2编码
(10)70117001728523 为短消息发出的时间和短消息中心的时区数乘4
这里表示年月日时分秒分别为:07/11/07,10:27:58 东8区标志32。当然,这些信息经过了位移。
(11)04 正文4字节
(12)4F60597D 你好 短消息内容的Unicode编码 4)删除短消息
A 在命令输入框中输入:AT+CMGD=2 B 按下“Enter”键或点击“发送命令”按钮 C GSM模块存储区中第2条短消息将被删除 (c)用AT命令控制GSM发送短信过程如下
1)用TEXT模式发送英文短消息
A 在命令输入框中输入:AT+CMGF=1 (设置发送模式为TEXT模式) B 按下“Enter”键或点击“发送命令”按钮 C 接收信息框中显示GSM模块返回消息为:OK
D 在命令输入框中输入:AT+CMGS=”nnnnnnnn” (nnnnnnnn为电话号码,
引号为英文字符)
E 按下“Enter”键或点击“发送命令”按钮 F 接收信息框中显示GSM模块返回消息为:> G GSM信息内容框中输入短消息:How are you?
H 点击“发送GSM消息内容”按钮(注意,如果用WINDOWS自带的“超级终端”
软件,则应在G的短消息之后再输入Ctrl+Z)
I GSM模块将输入短消息内容发送出去(几秒钟),并返回发送短信的存储位置和
命令执行结果标志。如:
+CMGS: 22
OK
2)用PDU模式发送中文短消息
A 在命令输入框中输入:AT+CMGF=0 (设置发送模式为PDU模式) B 按下“Enter”键或点击“发送命令”按钮 C 接收信息框中显示GSM模块返回消息为:OK D GSM信息内容框中输入短消息的PDU串:
0891683108200505F011000D91683118055781F9000800064F60597D0021
08 9168 3108200505F0 11000D 9168 3118055781F9 000800 06 4F60597D0021 1 2 3 4 5 6 7 8 9 要用自己的SIM卡发送短信,应该在上述PDU段中相应修改第3段,第6段,第8段和第9段。
在上述PDU串中,第3段为本地短信中心号码的位移,这里表示南京移动短信中心号码13800250500,第6段为对方手机号码的位移,实际号码为13815075189;第8段为短信内容即第9段的字节数;第9段为相应的Unicode编码,这里对应为“你好!”。
当然,也可以采用默认短信中心来发送,这样,上面发送PDU串变为: 0011000D91683118055781F9000800064F60597D0021
实际上,采用默认短信中心来发送,就是将上面第1段的08改为00,同时去除2和3两段的短信中心号码,其它4、5、6、7、8、9均和上面一样。
E 在命令输入框中输入:AT+CMGS=nnn (nnn为PDU中TPDU的10进制长度,
不包含SMSC地址,即PDU串中(4)~(9)的字节数,实际上该长度为15+汉字个数乘2),和上面配合,这里nnn输入为021。
F 按下“Enter”键或点击“发送命令”按钮 G 接收信息框中显示GSM模块返回消息为:> H 点击“发送GSM消息内容”按钮。
I GSM模块将输入短消息内容发送出去(几秒钟),并返回发送短信的存储位置和命令执行结果标志。如:
+CMGS: 23
OK
(d)用配套软件发送短信(中文,英文,中英文混合)