使用MC52I其实就是收发短信和GPRS通讯,实现以上功能使用AT指令就可以完成。如果您仔细浏览mc52i的手册会发现制作一个有基本通话功能手机其实非难事。也即是诺基亚早期的3310应该没问题。现在智能机当然不是那么容易实现。
下面我们看看收发短信是怎么实现的。
当MC52i收到短信后,会从串口发出接收到短信的提示符“+CMTI: "SM",1\r\n”。 “1”是短信的索引位置。指明当前收到短信的逻辑位置。在接收到短信提示符后发送“AT+CMGR=1\r\n”。mc52i就将索引位置为1的短信的内容输出。如以下格式:
AT+CMGR=1
+CMGR: "REC UNREAD","+8613359265201",,"13/05/30,15:26:27+32"
JCFHEND
OK
“AT+CMGR=1”是发送数据的回传。"REC UNREAD"表明该条短信是第一次读取。"+8613359265201"是发送短信的卡号码。"13/05/30,15:26:27是短信发送的时间。JCFHEND是短信内容。OK表明短信结束。
我们只需提取 “JCFHEND”短信内容即可,“JCFHEND” 到底什么意思。这个就是客户的协议编码决定的。
发送短信时,首先发送“AT+CMGS=13XXXXXXX\r\n” 13XXXXXXX是接收短信的手机号码。
mc52i接收到短信发送请求“AT+CMGS=13XXXXXXX\r\n”时。输出">"提示符。提交短信内容即可。短信内容一定是以0x1A结束。mc52i接收到0X1A后认为短信内容提交完毕。就会发送短信了。
下面我们看看GPRS信息的收发过程。
mc52i接收到GPRS数据后,会输出"^SISR: 1, 1\r\n"提示符。发送"AT^SISR=1,99\r\n"读取GPRS信息。
MC52I接收到读取GPRS读取请求"AT^SISR=1,99\r\n"会输出GPRS信息,如下例所示:
AT^SISR=1,99
^SISR: 1, 12
h!h- //16进制数,所以有乱码
OK
^SISR: 1, 12中12指的是信息的字节。"h!h- "是数据。OK表明短信结束。
需要发送数据时,首先发送发送数据请求“ AT^SISW=1, 14\r\n”。“14”是需要发送的数据字节数。
MC52I接收到 “ AT^SISW=1, 14\r\n”后。会输出接收数据提示符。
AT^SISW=1,12
^SISW: 1, 12, 12
提交发送12个字节数据即可。
这一节我们讨论一下MC52I通讯的问题。其实就是几个简单的AT指令。mc52i是一款非常成功的模块。功能非常强大。但是使用手册非常厚。我有一个姓李的同事通过浏览mc52i手册。发现了mc52i有可以测量电压、温度等功能。如果有兴趣大家了解一下。
下一节我们看看MC52I配置过程。