基于CDMA业务传送GPS定位信息
决定,而且EMIFLE的值为"0",这样可以保证串口分配不出现错位。
(2) 删除短消息子程序
删除短消息子程序的作用是清空SIM卡里存入的所有读过的短消息,但未读取的短消息不会删除,使每个新来的短消息的标号都为"0"。
(3) 读短消息子程序
读短消息子程序的作用是读取新消息并将短信的内容存储在内部RAM中,为程序的跳转提供判断的依据。例如,如果短信的内容是"###13520479697*",表示设定短消息发送号码;如果需要查询车辆状况,MCU就会向卡号为"13520479697"的用户发定位信号。
指令"AT+CMGR=0"表示读取SIM卡里的标号为0的短信。先把该指令转换为ASCII码,然后再串行发送出去。CDMA模块就会执行相应的命令,并将短信内容通过串行口传递给单片机。单片机的串口0的接收标志位RI置位,表示接收到一个完整的字符,可以从串口寄存器中取走内容。该标志位不能自动清零,需要软件复位,然后进行下一个字节的接收。
短信的内容是有长度的,通过设定短信内容的最后一个字符是否为"*"号来决定接收停止位。接收时,判断串口寄存器。如果接收到的字符为"*",表示停止接收,则后面接收的信息无效,将SBUF0的内容存入RAM区。
(4) 短消息命令的执行
通过删除旧短信,读新短信,存储新短信的内容,MCU对存入内容检索、判断是什么功能命令,然后跳转到相应的功能程序入口,实现用户所要求的服务。
这里举两个命令说明:如"###13520479697*"和"PLACE*"。
接收到第1个命令时,先检测"###",如果符合,则表示后面的数据是要存入Flash中的卡号,需要掉电保存的内容,将其存入128B的非易失性存储扇区中。掉电后,该号码不会丢失。如有语音命令和查询定位信息的命令时,都会呼叫这个存入Flash中的号码。
第2个命令表示接收定位信息。它是以第1个命令为基础的,只有第1个命令执行后,存有了卡号,才能将定位信息发送出去。当单片机检测到新短信的内容为"PLACE*"时,启动定时器4,通过串口1,接收GPS定位信号。这时,接收的信号还不是发到信息中心,要通过对导航电文的检索、提取,最后将有用的时间、经度、纬度信息发送给设定的号码。
两个不同命令短信的执行,功能子程序是分开的,但前端的判断跳转程序是关联的,所以将两个程序合在一起讨论。该程序包含对两个串口同时操作,先读新消息。如果内容有"PLACE*",则进入定位信号的提取。判断是否有"###",有则进入存储号码的功能。
当检测到"PLACE*"时,首先启动定时器4,接收串口1的定位信息。由于GPS信号的定位信息里有些是用不到的,所以接收的信息要加以判断。如果数据头是"$GPRMC",才开始接收。接收以A开头,E结尾。存放在0800开始的地址空间中,最后把这些内容整合到0900开始的地址空间内,串行发送给CDMA模块,这样就完成了定位信息以短消息发送的目的。
如果需要更强大的网络功能支持,可以嵌入RTOS内核。现在有不少操作系统支持C8051F MCU。
结语
随着科学技术的发展,在工业、商业和军事领域中实时信息传送的应用越来越广泛,需求量与日俱增。CDMA业务的推出,更加推动了这一方向的迅猛发展,无线移动数据传输技术的应用有着越来越广阔的前景。
- 基于CDMA业务的GPS定位信息传送(08-16)
- 什么是GPS定位系统(02-07)
- 基于1588V2技术的GPS替代方案(03-27)
- RF Solution公司GPS-41SMD嵌入式GPS方案(07-05)
- Avago ALM-1712 GPS 低噪音放大方案(07-05)
- Avago ALM-1912 GPS前端接收方案(07-07)