新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 利用CDMA业务传送GPS定位信息

利用CDMA业务传送GPS定位信息

作者:时间:2010-09-15来源:网络收藏

  模块进行数据传输,既可以采用上网传输,也可以采用短消息的方法。下面就短消息方式的数据传输软件流程作一介绍。

  对于数据源,模块不断发送固定格式的串行数据,MCU一串口与之相连。一般MCU对串口数据的接收处理方式有查询和中断两种。这里采用的方法既不是查询也不是中断,而是命令的方式,MCU根据接收到的不同命令,执行不同的功能。移动终端的软件流程如图3所示。

  

  图3 移动终端软件流程

  (1) MCU的初始化

  单片机的初始化很重要,它关系到程序能否正确运行。这里主要功能是分配串口引脚,设置系统时钟,确定波特率。

  这里需要重点注意的问题是MCU的初始化。C8051 MCU硬件资源相当丰富,但有一些不是能同时使用的,需要在初始化时进行设定,所以它的交叉开关译码表的正确使用非常重要。资料中提供的优先权交叉开关分配是有区别的,关键看XBR2特殊功能寄存器中的EMIFLE位的值。串口分配时只用到4个引脚,没有用到外部存储器,所以 P0.7、P0.6、P0.5 的功能由交叉开关或端口锁存器决定,而且EMIFLE的值为“0”,这样可以保证串口分配不出现错位。

  (2) 删除短消息子程序

  删除短消息子程序的作用是清空SIM卡里存入的所有读过的短消息,但未读取的短消息不会删除,使每个新来的短消息的标号都为“0”。

  (3) 读短消息子程序

  读短消息子程序的作用是读取新消息并将短信的内容存储在内部RAM中,为程序的跳转提供判断的依据。例如,如果短信的内容是“###13520479697*”,表示设定短消息发送号码;如果需要查询车辆状况,MCU就会向卡号为“13520479697”的用户发信号。

  指令“AT+CMGR=0”表示读取SIM卡里的标号为0的短信。先把该指令转换为ASCII码,然后再串行发送出去。模块就会执行相应的命令,并将短信内容通过串行口传递给单片机。单片机的串口0的接收标志位RI置位,表示接收到一个完整的字符,可以从串口寄存器中取走内容。该标志位不能自动清零,需要软件复位,然后进行下一个字节的接收。

  短信的内容是有长度的,通过设定短信内容的最后一个字符是否为“*”号来决定接收停止位。接收时,判断串口寄存器。如果接收到的字符为“*”,表示停止接收,则后面接收的无效,将SBUF0的内容存入RAM区。

  (4) 短消息命令的执行

  通过删除旧短信,读新短信,存储新短信的内容,MCU对存入内容检索、判断是什么功能命令,然后跳转到相应的功能程序入口,实现用户所要求的服务。

  这里举两个命令说明:如“###13520479697*”和“PLACE*”。

  接收到第1个命令时,先检测“###”,如果符合,则表示后面的数据是要存入Flash中的卡号,需要掉电保存的内容,将其存入128B的非易失性存储扇区中。掉电后,该号码不会丢失。如有语音命令和查询的命令时,都会呼叫这个存入Flash中的号码。

  第2个命令表示接收。它是以第1个命令为基础的,只有第1个命令执行后,存有了卡号,才能将定位信息发送出去。当单片机检测到新短信的内容为“PLACE*”时,启动定时器4,通过串口1,接收定位信号。这时,接收的信号还不是发到信息中心,要通过对导航电文的检索、提取,最后将有用的时间、经度、纬度信息发送给设定的号码。

  两个不同命令短信的执行,功能子程序是分开的,但前端的判断跳转程序是关联的,所以将两个程序合在一起讨论。该程序包含对两个串口同时操作,先读新消息。如果内容有“PLACE*”,则进入定位信号的提取。判断是否有“###”,有则进入存储号码的功能。

  当检测到“PLACE*”时,首先启动定时器4,接收串口1的定位信息。由于信号的定位信息里有些是用不到的,所以接收的信息要加以判断。如果数据头是“$GPRMC”,才开始接收。接收以A开头,E结尾。存放在0800开始的地址空间中,最后把这些内容整合到0900开始的地址空间内,串行发送给模块,这样就完成了定位信息以短消息发送的目的。

  如果需要更强大的网络功能支持,可以嵌入RTOS内核。现在有不少操作系统支持C8051F MCU。

  结语

  随着科学技术的发展,在工业、商业和军事领域中实时信息的应用越来越广泛,需求量与日俱增。CDMA的推出,更加推动了这一方向的迅猛发展,无线移动数据传输技术的应用有着越来越广阔的前景。

cdma相关文章:cdma原理



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭