GPRS数据传送服务的无线通信控制器设计
摘要:GPRS数据传送服务作为GSM网络的一种新业务,已得到越来越多的系统运营商和系统开发商的重视。以GSM网络作为数据无线传输网络,可以开发出多种前景极其乐观的各类应用。本文提出一个基于GPRS数据传送服务的通信控制器的设计,并详细阐述该控制器的实现原理。
关键词:通用分组无线业务 TCP/IP协议 协议栈
引言
能用分组无线业务GPRS(General Packet Radio Service)是在现有的GSM系统上发展出来的一种新的承载业务,目的是为GSM用户提供分组形式的数据业务。基于这种业务的各种应用也蓬勃发展起来。以GSM网络作为数据无线传输网络,可以开发出多种前景极其乐观的各类应用,如无线数据的双向传送、无线远程检测和控制等。典型的应用有:工业控制、环境保护、道路交通、商务金融、移动办公、零售服务等等。javascript:window.open(this.src);" style="cursor:pointer;"/>
GPRS允许用户在端到端分组转移模式下发送和接收数据,需不需要利用电路交换模式的网络资源;从而提供了一种高效、低成本的无线分组数据业务,特别适用于间断的、突发性的和频繁的、少量的数据传输,也适用于偶尔的大数据量传输。
本文设计的GPRS无线通信控制器(以下简称控制器),内嵌了TCP/IP协议栈,采用工业级的GPRS模块;适用于主机没有TCP/IP协议栈,但使用串口通信的情况,例如单片机数据采集传输系统。
1 GPRS网络数据的收发
终端设备通过串行方式接到控制器上并与GSM基站通道,但与电路交换或数据呼叫不同。GPRS数据分组是从基站发送到SGSN节点,而不是通过移动交换中心MSC连接到语音网络上。SGSN与网关支持节点GGSM进行通信。GGSN对分组数据进行相应的处理,再发送到目的网络,如Internet或X.25网络,见图1。来自Internet、标识有移动台地址的IP包,由GGSN接收,再转发到SGSN,继而传送到移动台上。
控制器工作时,用户上位系统向控制器发送工作指令和数据,数据由IP模块进行了TCP/IP协议转换,打成IP数据包,再由MC35模块以GPRS数据包的形式发送到SGSN。
由于GPRS网络工作方式是以IP地址导址为基础的,所以目标服务器端并非接入控制器与终端设备进行连接,只需要简单接入Internet,并具备公网分配的IP地址即可。同时,因为GPRS终端产品本身由网络提供商动态地分配IP地址,在未进入连接待机状态时,其本身是不具备IP地址的(在连接中,模块的IP地址为移动骨干网内局域网IP,无法被公网服务器解析,动态分配的制度使获取比IP地址无意义)。因此在服务器与终端尚未建立连接前,目标服务器难以(可将短信转换为命令内容)对终端设备及控制器进行控制。必须先将控制器进行相应初始化,并由设备终端主动向服务器发送数据,进行连接。
javascript:window.open(this.src);" style="cursor:pointer;"/>
2 控制器内部的硬件实现
控制器内部由四部分构成:嵌入TCP/IP的单片机系统、MC35模块、电源部分和外部接口部分。
在设计时,考虑到双串口性能和高速的全静态CMOS设计,嵌入式单片机系统选用台湾Winbond的W77E58芯片作为MCU模块的处理器芯片。它是高速的、与MCS-51指令兼容的、没有多余指令周期的微控制器,在相同时钟频率下,运行同样的指令要比传统的8051快1.5~3.0倍。它完全是静态CMOS设计,工作电压为4.5V~5.5V,有32KB的片内程序ROM,内部有1KB SRAM,最高时钟频率可达40MHz;有双指针、双串口,13个中断源,3个16位定时器。单片机W77E58通过串口1直接与MC35模块相连接,完成对MC35模块的初始化和基于GPRS业务的数据收发功能;同时串口2扩展MAX232标准串口与其它嵌入式系统或PC机进行数据交换。图2是系统的硬件框图。
MC35模块是西门子公司生产的GSM双频GSM900/GSM1800无线模块。它支持2种操作模式:一种是电路交换数据模式CSD,支持语音、数据、SMS和FAX业务;一种是分组交换模式GPRS,采用多时隙,支持CS1-CS4编码。两者最大的区别是,GPRS传输数据时不需要再拨号。2种模式的选择通过AT指令来实现。MC35模块提供40线的ZIF接口方式。
电源部分为单片机系统和GPRS模块提供合适的电源。外部接口部分包括一个8脚数据接口、SMA(射频同轴连接器)天线接口、SIM(Subscriber Identity Module,用户识别)卡座接口。表1是各引脚的详细说明。
表1 外部接口引脚说明
功能 | 名称 | 引脚号 | I/O | 信号电平 | 注 释 |
强制复位 | RST | 1 | I/O | 当模块处于空闲或数据传输状态时,该引脚下拉至0.45V以下(需至少0.1mA的下拉能力),持续3.5s可使系统复位。该引脚同时还作为系统看门狗信号输出,可据此监视系统工作状态fout,min=0.16Hz fout,max=1.53Hz | 正常情况下,该引脚处于看门狗信号输出状态并且输出电流很微弱(0.01mA),因此必须使其处于高阻状态;不得有外部上下拉电路 |
RS232 | RXD | 2 | I | 该组引脚系标准RS232电平信号,可直接与PC机连接 | 如果连接PC机上Internet网,则需要使用CTS和RTS,其它通信方式示不需要这两个引脚 |
TxD | 3 | O | |||
CTS | 4 | O | |||
RTS | 5 | I | |||
SGGND | 8 | 0 | SGGND是RS232信号地,在模块内部与GND相连 | ||
RS485 | A | 6 | I/O | 该组引脚系标准RS485电平信号,模块内部已加120匹配电阻 | 模块内部光电隔离电路 |
B | 7 |
为使控制器运行稳定可靠,对其看门狗电路进