引 言
目前,移动无线传输数据的方式主要有3种:GSM短消息、GPRS和CDMA。它们的特点比较如下:
① 移动通信网GSM短消息方式。短消息是GSM网所具有的电信业务之一。所谓的短消息是指长度不超过160个字符的文本消息。由于短消息传输用的是信令信道,采用存储转发的方式,因此短消息服务费用低,传输延时不固定,根据当前的短消息业务使用情况而定。短消息方式的缺点是数据传输速率低、具有延迟性且时间不定。
② GPRS(General Packet Radio Service),即通用分组无线业务,是在现有GSM系统上发展出来的一种新的数据承载业务。GPRS采用分组交换技术,按流量计费,高效传输高速或低速数据和信令。GPRS理论传输速率可达171.2 kbps,实际传输速率大约在40 kbps。中国移动2002年5月18日开始正式商用GPRS网络。
③ CDMA 1X原意是指CDMA 2000的第一阶段,可支持308 kbps的数据传输、网络部分引入分组交换,可支持移动IP业务;CDMA 1X是在CDMA IS95系统上发展出来的一种新的承载业务,目的是为CDMA用户提供分组形式的数据业务;CDMA 1X理论传输速率可达300 kbps,目前的实际传输速率大约在100 kbps左右,可以用于Internet连接、数据传输等应用。CDMA 1X无线数据通信系统的特点是按流量计费,即一直在线,按照接收和发送数据包的数量来收取费用,没有数据流量的传递时不收费用。
第1代移动通信系统是模拟式的,已淘汰。第2代移动通信系统是数字蜂窝式的,如TDMA的GSM和CDMA的IS95。GPRS和CDMA 1X都是2.5代的移动通信系统。中国联通公司已经拥有了一个覆盖全国的CDMA2000 1X网络,用于提供1X数据分组业务。
CDMA 1X与GPRS虽然都是2.5代的移动通信系统,但1X网络通信速度远高于GPRS网络,而且易于平滑过渡到3G移动通信系统。未来的第3代移动通信系统虽然有几种模式,但毫无例外地都是CDMA码分多址的。
CDMA无线DDN(Digital Data Network)特别适合应用于工业、商业和其他诸多领域的移动数据传输、多点分散的数据传输,例如,物流系统的车辆调度管理,停车场所和交通监测数据的传输,金融系统POS联网,气象站数据采集,电力、水文、供暖、供气、供水的分布式遥测遥控系统等。
本文讨论的就是利用CDMA业务传送GPS定位信息的实例。当然,GPS定位信息只是整个信息传输管理系统的一个应用,通过更换不同的数据源模块可实现不同的信息传输,从而构成不同的信息传输管理系统,如远程抄表系统、水文数据采集系统等等。
1 系统构成
整个信息传输管理系统由移动终端、CDMA网络、Internet网、信息管理中心服务器组成。
移动终端将GPS数据组成CDMA数据分组,通过CDMA网络和Internet网,上传到信息管理中心服务器。服务器应当具备IP地址和电子地图。
信息管理中心也可以通过Internet网和CDMA网络向移动终端发出各种指令。
2 移动终端硬件组成
移动终端的硬件部分主要有CDMA Modem模块、GPS模块、MCU及电源四部分
其中的CDMA模块为Wavcom公司的ME45。这是一个具有完整功能的CDMA移动通信模块,通过串口可以实现对此模块的控制和数据传输,包括****和无线上网等。另外加上模拟部分电路,可实现话音通信功能。对ME45的控制用的是AT命令方式。
GPS模块是台湾Holux公司的GM82 OEM板。它通过外接天线接收GPS信号,计算出所处位置的地理信息,通过串口将此信息传送给MCU。
MCU采用新华龙公司代理的C8051F020八位微控制器。选择此MCU是基于诸多考虑的:首先,是功能强大,几乎在单片中包容了所有常用的功能;其次,与普通的8051有相同的内核,开发容易,而且支持C语言源程序调试。
在此移动终端中,采用了如下一些必需的功能部件:
首先是它的两个硬件串口。这两个串口的波特率产生是独立的,而且不占用芯片的定时器,使用起来相当灵活。这两个串口分别对GPS模块和CDMA模块通信。GPS模块把位置信息以固定的格式从串口发出,MCU接收GPS模块送来的数据,解析出其中有用的数据进行封装,然后以规定的格式通过第2个串****给CDMA模块,将数据送上Internet网。
其次,128字节的Flash可用于存放一些可设置的参数,如移动终端的识别号或IP地址、信息管理中心服务器的IP地址等。
再次,4 KB的SRAM相对其他的8位机来讲是相当大了,可以满足组帧、数据缓冲的要求。
64 KB的Flash可以满足较大程序量的要求。
64 KB的Flash和4 KB RAM的组合可以完成对信息数据的加解密工作,可提供某些特定场合使用。
引出了某些I/O口,通过光电耦合器隔离后引至其他监测点,可以扩展相应的功能。
另外,留出了总线扩展口,可扩展64 KB的SRAM,一方面可以用于嵌入实时操作系统,另一方面可以用于使用C8051F020的在线自我编程功能来远程更新程序。
由于用于移动设备,需要低功耗器件,而C8051F020工作电压为3.3 V,功耗很小。
设计时考虑该移动终端主要作为车载应用,所以实际电路中设计了从点烟器取电的电源电路。
移动终端利用C8051F020芯片控制实现,不用另行扩展串口、ROM以及RAM。此硬件结构并不仅仅局限在定位功能上,对于很多数据采集/控制应用也可以满足要求,只需改变程序结构。正是由于C8051F020的功能强大,使得硬件的组成和结构都变得非常简单。
3 移动终端软件设计
由于采用了C8051F020作控制器,使得硬件的工作相对简单和通用,所以该系统实现的主要工作集中在软件的实现上。
利用GPRS上网主要的问题是,在系统接入无线Internet网时进行初始化和对链路的控制。若对通信过程和协议不熟悉,则做起来很麻烦;现在已有许多MCU或GPRS Modem已将这些功能嵌入到操作系统中。对CDMA上网,则比较简单,通过拨通服务商的特定号码即可。
利用CDMA模块进行数据传输,既可以采用上网传输,也可以采用短消息的方法。下面就短消息方式的数据传输软件流程作一介绍。
对于数据源,GPS模块不断发送固定格式的串行数据,MCU利用一串口与之相连。一般MCU对串口数据的接收处理方式有查询和中断两种。这里采用的方法既不是查询也不是中断,而是命令的方式,MCU根据接收到的不同命令,执行不同的功能。
(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码,然后再串行发送出去。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业务的推出,更加推动了这一方向的迅猛发展,无线移动数据传输技术的应用有着越来越广阔的前景。