GPRS通信原理及应用特点
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通信原理及应用特点相关推荐
- 原理 msc_解析应用在气象站中的GPRS通信原理及优势
现如今,我们对于气象数据的需求越来越高,比如,我们出去游玩时需要了解景区的生态环境和气象环境要素,有关部门需要了解高速公路气象状况以确保行车安全,农民伯伯需要了解更加精准的温度.降水量等气象要素信息来 ...
- NXP(I.MX6uLL) UART串口通信原理————这个未复习
参考:Linux NXP (I.MX6uLL) UART串口通信原理 作者:一只青木呀 发布时间: 2020-09-20 16:48:33 网址:https://blog.csdn.net/weixi ...
- (三.0)通过FPGA实现以太网通信原理及理解
0.0 OSI模型的简单理解 OSI(Open System Interconnect),即开放式系统互联.一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互联模型.该体系 ...
- 图解通信原理与案例分析-26: 5G NR是如何支持海量机器类通信mMTC的?移动通信对物联网的支持
前言: 移动通信最初是解决人与人之间的语音通信,后来发展成了人与人之间的文本通信, 到了4G LTE,已经很好的解决了人与人之间的视频通信. 到了5G,人与人之间的高速率的数据通信在LTE的基础之上得 ...
- GSM模块_Android建立GPRS通信的流程
开篇废话 首选声明我是一个嵌入式系统开发工程师,我整理这篇文章的目的,其实是希望通过借鉴手机连接GPRS的流程,来完善系统内部对于GSM模块集成的稳定性.所有内容来自网络,在文末的参考链接标注了出处, ...
- GPRS无线通信原理
GPRS无线通信原理 文章目录 GPRS无线通信原理 摘要 GPRS 数据传输 GPRS模块 GPRS模块 摘要 公司做的智能油烟监控系统,所用到的无线通信接接口是GPRS.将所测的数据经过主板上的G ...
- 图解通信原理与案例分析-19:3G CDMA码分多址通信技术原理---码分多址、OVSF正交扩频码、伪随机码序列
前言导读: 码分多址(CDMA)是第三代移动通信的核心技术,其基本思想是在相同的载波频段上,通过的不同的地址码来区分的不同用户.不同基站的数据. 3G CDMA与2G GSM通信相比,主要网络架构与通 ...
- Binder跨进程通信原理(三):Binder IPC实现原理
1. 动态内核可加载模块 && 内存映射 正如上一章所说, 跨进程通信是需要内核空间做支持的. 传统的 IPC 机制如 管道, Socket, 都是内核的一部分, 因此通过内核支持来实 ...
- Binder跨进程通信原理(一):动态内核加载模块
先上一张Binder 的工作流程图.(如果不清晰,可以 复制图片链接到浏览器 或 保存到本地 查看,我经常都是这样看图的哈) 一开始上手,陌生的东西比较多,But,其实并不复杂.喔,流程图是用 Pro ...
- 传统的Linux中IPC通信原理
在了解 Binder 跨进程通信原理之前, 我们先了解一下 Linux 传统的进程间通信的概念和基本原理, 这样有助于我们更好的理解 Binder 的通信原理. 这个部分基本都是理论, 基础不是很好的 ...
最新文章
- android novate乱码,Android RxJava+Retrofit2+RxBinding
- php数组排序不要用函数,PHP数组排序函数使用方法
- java----数据结构与算法----JavaAPI:java.util.Collection接口
- 计算机视觉图像去噪原理,AI笔记: 计算机视觉之图像滤波去噪: 原理、方法和效果比较...
- linux 安装vlc源码包,CentOS6.3-快速安装VLC小记
- 【高数】数学符号及读法大全and数学运算符号及含义
- 杭州好玩景点攻略76
- 笔记(四)Home Assistant添加小米设备
- java毕业设计_基于web的游泳馆管理系统的设计与实现
- hdu 4262 Juggler(树状数组)
- 纯属意外(FLASH歌曲)
- (netbios-ssn (139/tcp) / NT-Server弱口令) 漏洞修复
- 如何翻译一本计算机书籍?
- 使用公网邮箱发送-Zabbix-报警邮件
- ARP欺骗实验原理及内容
- **关于DDR的个人总结**
- jQuery ajax - ajax阿贾克斯 Get()和Post()方法请求用法整理
- linux 3.10 一个扇区异常可能引发的hung
- win10查看电脑上所有连接过的wifi密码信息
- 关于37%法则的探究
热门文章
- sql server 2008新建视图时出现对象名无效
- 【免费分享】论文查重软件(亲测好用!)
- php 各个版本,PHP各版本之间差异
- 基于Java实现的迷宫小游戏
- Android 手机实现网络嗅探发现周围设备(类似悟空遥控器)
- iPhone 计算机 桌面,2分钟学会Windows仿苹果任务栏,你的电脑桌面也可如此炫酷!...
- html的abbr标签,html标签里有个abbr 请问这个标签是肿么使用的
- matlab绘制s域零极点分布图,《信号与系统》第五章 连续系统的s域分析.ppt
- html5 css3 入门教程
- eclipse中项目运行时报错之 Compilation error解决方法