GPRS通信原理及应用特点

GPRS是在现有GSM系统上发展出来的一种新的数据承载业务,支持TCP/IP协议,可以与分组数据网(Internet等)直接互通。GPRS无线传输系统的应用范围非常广泛,几乎可以涵盖所有的中低业务和低速率的数据传输,尤其适合突发的小流量数据传输业务。

本文设计的GPRS无线通信模块,内嵌了TCP/IP协议,采用工业级的GPRS模块,适用于单片机数据采集传输系统没有TCP/IP协议栈,但使用串口通信的情况。

1 GPRS通信原理及应用特点
1.1 GPRS简介
GPRS是通用无线分组业务(General Packet Radio System)的缩写,是介于第二代和第三代之间的一种技术,通常称为2.5G。GPRS采用与GSM相同的频段、频带宽度、突发结构、无线调制标准、跳频规则以及相同的TDMA帧结构。因此,在GSM系统的基础上构建GPRS系统时,GSM系统中的绝大部分部件都不需要作硬件改动,只需作软件升级。有了GPRS,用户的呼叫建立时间大大缩短,几乎可以做到“永远在线”。此外, GPRS是以营运商传输的数据量而不是连接时间为基准来计费,从而令每个用户的服务成本更低。

1.2 基本工作原理
GPRS是在原有的基于电路交换(CSD)方式的GSM网络上引入两个新的网络节点: GPRS服务支持节点(SGSN)和网关支持节点(GGSN)。SGSN和MSC在同一等级水平,并跟踪单个MS的存储单元实现安全功能和接入控制,并通过帧中继连接到基站系统。GGSN支持与外部分组交换网的互通,并经由基于IP的GPRS骨干网和SGSN连通。图1给出了GPRS与Internet连接原理框图。

图1GPRS与Internet连接原理图

GPRS终端通过接口从客户系统取得数据,处理后的GPRS分组数据发送到GSM基站。分组数据经SGSN封装后,SGSN通过GPRS骨干网与网关支持接点GGSN进行通信。GGSN对分组数据进行相应的处理,再发送到目的网络,如Internet或X.25网络。
若分组数据是发送到另一个GPRS终端,则数据由GPRS骨干网发送到SGSN,再经BSS发送到GPRS终端。

2 嵌入式GPRS通信系统的实现
2.1 GPRS模块的硬件设计
嵌入式GPRS无线通信模块主要由嵌入TCP/IP的单片机(MSC1210Y5)、GPRS模块、SIM卡座、外部接口和扩展数据存储器等部分组成。图2是系统的硬件框图。

图2GPRS通信系统原理框图

MSC1210控制GPRS模块接收和发送信息,通过标准RS232串口和外部控制器(比如数据采集端)进行数据通信。用软件实现中断,完成数据的转发。

2.1.1 单片机模块
单片机采用美国德州仪器公司最新推出的基于8051内核的MSC1210Y5。该芯片具有很强的数据处理能力,时钟频率为33 MHz,指令运行速度实际上与运行在99 MHz时钟频率下的标准8051内核相当。32 KB Flash程序存储器,256 B内部RAM和1024 B片上SRAM,2 KB启动ROM,支持串行和并行的在系统编程。双数据指针DPTR0和DPTR1可加快数据块的移动速度。

其主要实现过程如下:
①通过AT指令初始化GPRS无线模块,使之附着在GPSR网络上,获得网络运营商动态分配的GPRS终端IP地址,并与目的终端建立连接。
② 通过串口0扩展MAX232标准串口和外部控制器(例如数据采集端)连接,外部控制器端接出标准串口,按照约好的协议可很容易利用本设计的控制器进行通信。
③ 复用P1.2和P1.3,也就是串口1分别和GPRS模块的TXD0和RXD0连接,P1口的其他6个端口分别接到GPRS模块对应的剩余RS232通信口,通过软件置位完成对MC35的初始化和控制GPRS模块的收发数据。

2.1.2 扩展数据存储器部分
MSC1210的Flash存储器可全部作为Flash程序存储器,也可以全部作为数据Flash程序。因为要嵌入实时操作系统和网络协议,需要一定的空间,因此将其全部用作程序存储器,而通过74HC573作为地址锁存器,扩展6264作为外部数据存储器,8 KB的数据存储空间足够程序正常运行。

2.1.3 GPRS无线数传模块
GPRS无线模块作为终端的无线收发模块,把从单片机发送过来的IP包或基站传来的分组数据进行相应的处理后再转发。

GPRS模块采用德国Simens公司生产的MC35模块。MC35模块主要由射频天线、内部Flash、SRAM、GSM基带处理器、匹配电源和一个40脚的ZIF插座组成。GSM基带处理器是核心部件,其作用相当于一个协议处理器,用来处理外部系统通过串口发送AT指令。射频天线部分主要实现信号的调制和解调,以及外部射频信号与内部基带处理器之间的信号转换。匹配电源为处理器基射频部分提供所需的电源。

AS2815将外部电压转换成3.3 V工作电压。

启动电路由三极管和上电复位电路组成,模块上电后,为使之正常工作,必须在15脚加至少为100 ms的低电平信号。启动后,15脚信号应保持高电平。

MC35在ZIF连接器上为SIM卡接口预留的引脚数为6个,要注意的是,CCIN引脚用来检测SIM卡座是否插有SIM卡。当插入SIM卡,该引脚置为高电平时,系统方可进入正常工作。
SYNC引脚有两种工作模式:一种是指示发射状态时的功率情况,另一种是指示MC35的工组状态。本设计中使用后一种模式,LED熄灭时,表明MC35处于关闭或睡眠状态;当LED为600 ms亮/600 ms熄时,表明SIM卡没有插入或MC35正在进行网络登陆;当LED为75 ms亮/3 s熄时,表明MC35已登陆进网络,处于待机状态。

2.2 单片机通信程序设计
软件中的所有代码都用C语言编写,在Keil环境中编译。Keil是Keil Software公司为8051及其兼容产品提供的专门开发工具,它支持在系统调试。Keil中C51编译器很好地集成了RTX多任务实时操作系统,编写程序时,需在源代码头加入“#incluede rtx51.h”。所有代码调试通过后经由TI Downloader下载到存储器中。

目前,绝大多数基于GPRS网络应用系统所使用的GPRS模块不支持TCP/IP协议。也就是说,要想工作在相同的网络层面上,其内部传输的数据必须都要采用相同的协议,所以除了利用GPRS模块的功能外,必须在单片机系统中嵌入按TCP/IP和PPP协议标准编写的程序,从而使设计的终端设备能够方便的应用GPRS数据分组业务。

2.2.1 TCP/IP协议的嵌入
有很多种方法可以完成协议转换,本设计利用在嵌入式实时操作系统RTX51中移值部分IP和PPP协议来增强系统的可扩展性和产品开发的可延续性。

TCP/IP协议是一个标准协议套件,可以用分层模型来描述。数据打包处理数据时,每一层把自己的信息添加到一个数据头中,而这个数据头又被下一层中的协议包装到数据体中。数据解包处理程序接收到GPRS数据时,把相应的数据头剥离,并把数据包的其余部分当作数据体对待。

考虑到嵌入式系统的特点,本设计采用了系统开销较小的IP+UDP协议来实现GPRS通信。主机发送的UDP数据报文经GPRS通道传送给GPRS通信模块, GPRS通信模块负责对数据报进行解析,解析后的数据按照一定的波特率串行传送给用户终端。

2.2.2 数据处理
数据包在主机和GPRS服务器群中传输使用的是基于IP的分组,即所有的数据报文都要基于IP包。但明文传送IP包不可取,故一般使用PPP协议进行传输。模块向网关发送PPP报文都会传送到Internet网中相应的地址,而从Internet传送过来的应答帧也同样会根据IP地址传送到GPSR模块,从而实现采集数据和Internet网络通过GPRS模块的透明传输。

要注意的是,GSM网络无静态IP地址,故其他通信设备不能向它提出建立连接请求,监控中心必须拥有一个固定的IP,以便监测终端可以在登陆GSM网络后通过该IP找到监控中心。关于这一点,很容易解决,只需在电信申请相应的服务就可以了。

GPRS模块登陆上GSM网络后,自动连接到数据中心,向数据中心报告其IP地址,并保持和维护数据链路的连接。GPRS监测链路的连接情况,一旦发生异常,GPRS模块自动重新建立链路,数据中心和GPRS模块之间就可以通过I地址通过UDP/IP协议进行双向通信,实现透明的可靠数据传输。

3 上位机监控中心的设计
监控中心的功能是实现GPRS信息的接收和保存。设计语言采用Microsoft公司的Visual C++编程语言,C++语言应用灵活,功能强大,并对网络编程和数据库有强大的支持。
由于通过GPRS,中心监控部分可以直接访问互联网,所以监控部分并不需要再设置GPRS模块。中心只需通过中心软件帧听网络,接收GPRS无线模块传来的UDP协议的IP包和发送上位机控制信息,以实现与GPRS终端的IP协议通信。接收到的信息要保存到中心的数据库中,以备查历史记录。数据库采用Access,VC编制的界面窗口通过ADO访问Access中的数据。需要说明的是,笔者是通过Socket接收网络终端信息的。

Socket接口是TCP/IP网络的API,Socket接口定义了许多函数和例程,程序员可以利用它来开发TCP/IP网络上的应用程序。VC中的MFC类提供了CAsyncSocket这样一个套接字类,用它来实现Socket编程非常方便。本设计中采用数据报文式的Socket,它是一种无连接的Socket,对应于无连接的UDP服务应用。

CAsyncSocket类用DoCallBack函数处理MFC消息,当一个网络事件发生时,DoCallBack函数按照网络事件类型:FD_REA D、FD_WRITE、FD_ACCEPT和FD_CONNECT分别调用OnReceive、OnSend、OnAccept和OnConnect函数,驱动相应的事件,完成网络数据通信过程。

4 结论
本文采用嵌入式TCP/IP协议,通过高速8位单片机实现GPRS业务的数据传输功能,具有外围电路少,电路简单,系统成本低等优点。通过标准RS232串口和外部控制器连接,只需按照预先规定的协议就可互相通信,通用性较强。系统软件均使用C语言编写,稍加改动就可以在各种控制器上实现,可移植性也较强。

基于GPRS的系统也有一定的缺点,例如,现在的GPRS网还不够稳定,有丢包的现象;主控制器要实现IP协议,使用起来比较复杂;上位机基于互联网的解决方案保密性较差等。上述问题经过精心设计是可以避免和解决的,所以基于GPRS的设计仍具有无可比拟的优势

GPRS通信原理及应用特点相关推荐

  1. 原理 msc_解析应用在气象站中的GPRS通信原理及优势

    现如今,我们对于气象数据的需求越来越高,比如,我们出去游玩时需要了解景区的生态环境和气象环境要素,有关部门需要了解高速公路气象状况以确保行车安全,农民伯伯需要了解更加精准的温度.降水量等气象要素信息来 ...

  2. NXP(I.MX6uLL) UART串口通信原理————这个未复习

    参考:Linux NXP (I.MX6uLL) UART串口通信原理 作者:一只青木呀 发布时间: 2020-09-20 16:48:33 网址:https://blog.csdn.net/weixi ...

  3. (三.0)通过FPGA实现以太网通信原理及理解

    0.0 OSI模型的简单理解 OSI(Open System Interconnect),即开放式系统互联.一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互联模型.该体系 ...

  4. 图解通信原理与案例分析-26: 5G NR是如何支持海量机器类通信mMTC的?移动通信对物联网的支持

    前言: 移动通信最初是解决人与人之间的语音通信,后来发展成了人与人之间的文本通信, 到了4G LTE,已经很好的解决了人与人之间的视频通信. 到了5G,人与人之间的高速率的数据通信在LTE的基础之上得 ...

  5. GSM模块_Android建立GPRS通信的流程

    开篇废话 首选声明我是一个嵌入式系统开发工程师,我整理这篇文章的目的,其实是希望通过借鉴手机连接GPRS的流程,来完善系统内部对于GSM模块集成的稳定性.所有内容来自网络,在文末的参考链接标注了出处, ...

  6. GPRS无线通信原理

    GPRS无线通信原理 文章目录 GPRS无线通信原理 摘要 GPRS 数据传输 GPRS模块 GPRS模块 摘要 公司做的智能油烟监控系统,所用到的无线通信接接口是GPRS.将所测的数据经过主板上的G ...

  7. 图解通信原理与案例分析-19:3G CDMA码分多址通信技术原理---码分多址、OVSF正交扩频码、伪随机码序列

    前言导读: 码分多址(CDMA)是第三代移动通信的核心技术,其基本思想是在相同的载波频段上,通过的不同的地址码来区分的不同用户.不同基站的数据. 3G CDMA与2G GSM通信相比,主要网络架构与通 ...

  8. Binder跨进程通信原理(三):Binder IPC实现原理

    1. 动态内核可加载模块 && 内存映射 正如上一章所说, 跨进程通信是需要内核空间做支持的. 传统的 IPC 机制如 管道, Socket, 都是内核的一部分, 因此通过内核支持来实 ...

  9. Binder跨进程通信原理(一):动态内核加载模块

    先上一张Binder 的工作流程图.(如果不清晰,可以 复制图片链接到浏览器 或 保存到本地 查看,我经常都是这样看图的哈) 一开始上手,陌生的东西比较多,But,其实并不复杂.喔,流程图是用 Pro ...

  10. 传统的Linux中IPC通信原理

    在了解 Binder 跨进程通信原理之前, 我们先了解一下 Linux 传统的进程间通信的概念和基本原理, 这样有助于我们更好的理解 Binder 的通信原理. 这个部分基本都是理论, 基础不是很好的 ...

最新文章

  1. android novate乱码,Android RxJava+Retrofit2+RxBinding
  2. php数组排序不要用函数,PHP数组排序函数使用方法
  3. java----数据结构与算法----JavaAPI:java.util.Collection接口
  4. 计算机视觉图像去噪原理,AI笔记: 计算机视觉之图像滤波去噪: 原理、方法和效果比较...
  5. linux 安装vlc源码包,CentOS6.3-快速安装VLC小记
  6. 【高数】数学符号及读法大全and数学运算符号及含义
  7. 杭州好玩景点攻略76
  8. 笔记(四)Home Assistant添加小米设备
  9. java毕业设计_基于web的游泳馆管理系统的设计与实现
  10. hdu 4262 Juggler(树状数组)
  11. 纯属意外(FLASH歌曲)
  12. (netbios-ssn (139/tcp) / NT-Server弱口令) 漏洞修复
  13. 如何翻译一本计算机书籍?
  14. 使用公网邮箱发送-Zabbix-报警邮件
  15. ARP欺骗实验原理及内容
  16. **关于DDR的个人总结**
  17. jQuery ajax - ajax阿贾克斯 Get()和Post()方法请求用法整理
  18. linux 3.10 一个扇区异常可能引发的hung
  19. win10查看电脑上所有连接过的wifi密码信息
  20. 关于37%法则的探究

热门文章

  1. sql server 2008新建视图时出现对象名无效
  2. 【免费分享】论文查重软件(亲测好用!)
  3. php 各个版本,PHP各版本之间差异
  4. 基于Java实现的迷宫小游戏
  5. Android 手机实现网络嗅探发现周围设备(类似悟空遥控器)
  6. iPhone 计算机 桌面,2分钟学会Windows仿苹果任务栏,你的电脑桌面也可如此炫酷!...
  7. html的abbr标签,html标签里有个abbr 请问这个标签是肿么使用的
  8. matlab绘制s域零极点分布图,《信号与系统》第五章 连续系统的s域分析.ppt
  9. html5 css3 入门教程
  10. eclipse中项目运行时报错之 Compilation error解决方法