GPRS DTU通信的本质及调试经验

转载(http://jingyan.baidu.com/article/219f4bf7d1f284de442d3823.html)

DTU通信的本质

GPRS DTU最基本的用法是:在DTU中放入一张开通GPRS功能的SIM卡,DTU上电后先注册到GPRS网络,然后通过GPRS网络和数据处理中心建立连接。这条连接涉及了无线网络运营商,因特网宽 带供应商,用户公司的网络情况,以及用户的电脑配置等环节,因此要建立这条连接需要把各部分都配置好。

在本质上,DTU和数据处理中心建立的是SOCKET连接。DTU是SOCKET客户端,数据处理中心是SOCKET的服务端。SOCKET连接有TCP协议和UDP协议之分,DTU和中心要使用相同的协议,这个一般都有配置软件进行配置。

给DTU配置好中心的IP地址和端口号后,则把DTU通过串口和用户的设备相连。DTU和水文、电力、气象、环保等用户设备通过串口连起来放置在现场。

DTU上电后首先注册到移动的网络,然后发送建立SOCKET的请求包给移动,移动把这个请求发送到因特网。中心的服务端软件接收到请求后建立连接,并发送应答信息。

DTU发送的请求信息是因特网上的数据包,有一些原因会阻止中心收到连接请求包,这样也就不能建立连接。最常见的有中心的电脑上有杀毒软件、防火墙等把这些数据包给屏蔽了。另一是中心电脑是通过路由器上网的,在路由器上要设置数据转发。SOCKET连接建立后就可以双向通信了。

工作过程

GPRS DTU上电后,首先读出内部FLASH中保存的工作参数(包括GPRS拨号参数,串口波特率,数据中心IP地址等等,事先已经配置好)。

GPRS DTU登陆GSM网络,然后进行GPRS PPP拨号。拨号成功后,GPRS DTU将获得一个由移动随机分配的内部IP地址(一般是10.X.X.X)。也就是说,GPRS DTU处于移动内网中,而且其内网IP地址通常是不固定的,随着每次拨号而变化。 我们可以理解为GPRS DTU这时是一个移动内部局域网内的设备,通过移动网关来实现与外部Internet公网的通信。这与局域网内的电脑通过网关访问外部网络的方式相似。

GPRS DTU主动发起与数据中心的通信连接,并保持通信连接一直存在。 由于GPRS DTU处于移动内网,而且IP地址不固定。因此,只能由GPRS DTU主动连接数据中心,而不能由数据中心主动连接GPRS DTU。这就要求数据中心具备固定的公网IP地址或固定的域名。数据中心的公网IP地址或固定的域名作为参数存储在GPRS DTU内,以便GPRS DTU一旦上电拨号成功,就可以主动连接到数据中心。

具体地讲,GPRS DTU通过数据中心的IP地址(如果是采用中心域名的话,先通过中心域名解析出中心IP地址)以及端口号等参数,向数据中心发起TCP或UDP通信请求。在得到中心的响应后,GPRS DTU即认为与中心握手成功,然后就保持这个通信连接一直存在,如果通信连接中断,GPRS DTU将立即重新与中心握手。

由于TCP/UDP通信连接已经建立,就可以进行数据双向通信了。

对于DTU来说,只要建立了与数据中心的双向通信,完成用户串口数据与GPRS网络数据包的转换就相对简单了。一旦接收到用户的串口数据,DTU就立即把串口数据封装在一个TCP/UDP包里,发送给数据中心。反之,当DTU收到数据中心发来的TCP/UDP包时,从中取出数据内容,立即通过串口发送给用户设备。

通过有线的数据采集中心,同时与很多个GPRS DTU进行双向通信。这是目前GPRS DTU应用系统中最为常用的方式。

核心功能

(1)内部集成TCP/IP协议栈

GPRS DTU内部封装了PPP拨号协议以及TCP/IP协议栈并且具有嵌入式操作系统,从硬件上,它可看作是嵌入式PC与无线GPRS MODEM的结合;它具备GPRS拨号上网以及TCP/IP数据通信的功能。

(2)提供串口数据双向转换功能

GPRS DTU提供了串行通信接口,包括RS232,RS485,RS422等都属于常用的串行通信方式,而且GPRS DTU在设计上大都将串口数据设计成“透明转换”的方式,也就是说GPRS DTU可以将串口上的原始数据转换成TCP/IP数据包进行传送,而不需要改变原有的数据通信内容。因此,GPRS DTU可以和各种使用串口通信的用户设备进行连接,而且不需要对用户设备作改动。

(3)支持自动心跳,保持永久在线

GPRS通信网络的优点之一就是支持GPRS终端设备永久在线,因此典型的GPRS DTU在设计上都支持永久在线功能,这就要求DTU包含了上电自动拨号、采用心跳包保持永久在线(当长时间没有数据通信时,移动网关将断开DTU与中心的连接,心跳包就是DTU与数据中心在连接被断开之前发送一个小数据包,以保持连接不被断开)、支持断线自动重连、自动重拨号等特点。

(4)支持参数配置,永久保存

GPRS DTU作为一种通信设备,其应用场合十分广泛。在不同的应用中,数据中心的IP地址及端口号,串口的波特率等都是不同的。因此,GPRS DTU都应支持参数配置,并且将配置好的参数保存内部的永久存储器件内(一般为FLASH或EEPROM等)。一旦上电,就自动按照设置好的参数进行工作。

GPRS DTU使用场合一般可以从以下几个实际应用角度来讲:

(1) 现场只能使用无线通信环境

当数据采集现场的设备需要在移动中工作,或者采集现场处于野外等情况下,无法提供有线通信的环境。这个时候,采用GPRS无线网络就可能是一个好的选择,因为GPRS网络的覆盖率在国内已经很高,全国大部分地区均有GPRS信号覆盖。

(2) 现场终端的传输距离分散

由于GPRS网络是覆盖全国的公共网络,因此采用GPRS来传输数据的一大优势就是现场采集点可以分步在全国范围,数据中心与现场采集点之间的距离不受限制。无线公网通信(包括GPRS/CDMA网络,3G网络等)这个非常显著的优点是专用无线通信网络(比如数传电台,WiMax,WLAN等)无法达到的。

(3) 适当的数据实时性要求

国内GPRS网络,其传输数据的延时为秒级范围。在绝大部分时间下,GPRS数据通信的平均整体延时为2秒左右。也就是说,从GPRS DTU端发送的数据包将大致在2秒钟后到达数据中心。反之,从数据中的数据包也大致在2秒钟后到达GPRS DTU。

总的来说,GPRS这种实时性,可以满足大多数行业应用的要求。 但是,对于一些特定的应用系统,如果不能承受2秒左右的平均延时,那么GPRS通信方式就可能是不适合的。(另外,CDMA网络的传输延时也是1秒-2秒左右)。

从另一个角度来讲,如果我们要设计的系统希望通过GPRS网络来传输数据,那么就要在设计通信协议时候考虑这种延时的情况。

(4) 适当的数据通信速率

GPRS DTU与数据中心的数据通信速率一般在10kbps-60kbps之间。从也就是说,GPRS DTU可以持续不断地以10bps-60kbps的速度向中心发送数据,反之亦然。(补充说明:国内CDMA网络的数据通信平均速率可以达到40kbps-90kbps左右)从系统应用可靠性角度来讲,我们认为当应用系统本身的数据平均通信量在30kbps以内的时候,使用GPRS网络来进行数据传输是比较适合的。

也可以从另外一方面,例如果通过GPRS网络来进行远程传输数据,那么就需要把数据平均通信量控制在30kbps之内。(注意:这里的平均持续通信速率和瞬间通信速率是有区别的,与设备串口波特率也不是同一个概念)

以上的几点可以用于判断应用系统是否适合采用GPRS网络进行数据传输,如果这几个方面都比较符合的话,那么采用GPRS DTU进行数据传输是非常合适的。

时间: 2024-10-26 12:16:42

GPRS DTU通信的本质及调试经验的相关文章

GPRS DTU概念及DTU的工作原理(转)

源:http://blog.csdn.net/bichenggui/article/details/7889638 最近需要开发一个基于GRPS DTU数据传输的数据中心方案,于是找了一些资料.个人觉得很有用. GPRS DTU全称GPRS数据传输单元,在国内目前实际上对GPRS DTU具有更加明确的约定:GPRS DTU是专门用于将串口数据通过GPRS 网络进行传送的GPRS无线设备. GPRS DTU的四个核心功能: 1)内部集成TCP/IP协议栈:GPRS DTU内部封装了PPP拨号协议以

GPRS DTU的工作原理介绍 GPRS DTU使用场合有哪些

DTU是Data Transfer unit的缩写,中文名称是数据传输 单元 ,用于在远端将PLC等下位机设备的数据透传到服务器上,专门用于将串口数据转换为IP数据或将IP数据转换为串口数据通过GPRS通信网络进行传送的无线终端设备. GPRS DTU是一种物联网无线数据终端,利用公用运营商网络GPRS网络(又称G网)为用户提供无线长距离数据传输功能. 采用高性能的工业级8/16/32位通信处理器和工业级无线模块,以嵌入式实时操作系统为软件支撑平台,同时提供RS232和RS485(或RS422)

GPRS DTU工作原理和功能 DTU配置方法详解

GPRS DTU 简称GPRS模块,即串口服务器的无线版,其功能与串口服务器类似.利用移动和联通遍布全国的GSM网络,通过短信方式进行数据传输.那么GPRS DTU有什么功能呢?GPRS DTU怎么配置? GPRS DTU工作原理简介: DTU与服务器之间的通信是由GPRS DTU端(客户端)发起的,服务器端通过发回反馈或接受通信来对DTU端做出响应.DTU端与服务器端共同组成了基于GPRS和INTERNET网络通信的应用系统.相比DTU端,服务器端安装有更为复杂的应用程序,能够接受任何DTU端

usb调试经验

1.有i2c的芯片,一般有i2c的地址选择.检查地址选择是否正确,地址是多少.SCL和SDA上面是否有上拉电阻.芯片的地址是几位的.I2c的时钟频率也是必须设定的一个方面.工作速率一般有100K和400K两种,而且里面寄存器一般为一个byte.I2c出错时,需要测量一下i2c bus上是否真的有信号 2.有时钟的芯片,搞清楚时钟采用的是那种时钟,晶振还是RTC.一般芯片为了方便使用,可能允许几种不同的时钟选择.可以是通过引脚进行选择的.也可能通过寄存器来进行选择.通过阅读spec检查清楚. 3.

CMOS Sensor的调试经验分享

CMOS Sensor的调试经验分享 我这里要介绍的就是CMOS摄像头的一些调试经验. 首先,要认识CMOS摄像头的结构.我们通常拿到的是集成封装好的模组,一般由三个部分组成:镜头.感应器和图像信号处理器构成.一般情况下,集成好的模组我们只看到外面的镜头.接口和封装壳,这种一般是固定焦距的.有些厂商只提供芯片,需要自己安装镜头,镜头要选择合适大小的镜头,如果没有夜视要求的话,最好选择带有红外滤光的镜头,因为一般的sensor都能感应到红外光线,如果不滤掉,会对图像色彩产生影响,另外要注意在PCB

WPF 卡顿调试经验

原文:WPF 卡顿调试经验 1. 问题 最近的一个项目,正常调试情况下,运行一切正常,但是有某个用户登录后,出现界面卡顿2-3mins后,才正常运行. 2.解决问题方法 (1)首先由于是必现问题,就想在vs的工作环境下调试一下,看看到底是什么地方比较慢,想法很理想,但是现实很残酷,没有找到问题所在. (2)使用VS中的性能与诊断工具,测试一下那个地方花费的时间多,具体步骤如下: (a)打开VS中的菜单栏分析->性能与诊断 (b)选择性能向导,开始 (c)选择检测,测量函数调用计数与用时 (d)选

【转】 i2c驱动调试经验

原文网址:http://blog.csdn.net/cmm20071020/article/details/7179958 把一个i2c驱动从2.6.21升级到2.6.39 上网查到一篇帖子,讲了驱动分为i2c总线,i2c设备,总线驱动做实际的总线读写操作,设备驱动实现针对不同设备操作.先找一篇帖子看看整体架构,再看代码,理解效果不错,这招是跟老猫学的. 又查到一篇帖子,讲了从老版本i2c驱动,升级到新版本,需要做哪些变更,是翻译的内核文档. 照做,但是i2c设备驱动的probe函数调不起来,这

JS 代码调试经验总结(菜鸟必读)

前言:不知不觉写了很多,希望你能耐心看完这篇文章 任何一个编程者都少不了要去调试代码,不管你是高手还是菜鸟,调试程序都是一项必不可少的工作.一般来说调试程序是在编写代码之后或测试期修改Bug 时进行的,往往在调试代码期间更加能够体现出编程者的水平高低以及分析问题的准确度.不少初学者在寻找错误原因时,总是不得要领,花费了大量时间却无法解决一些最终证明是相当简单的Bug. 在长期解答 zTree 相关问题时,也的确发现很多的问题其实不算什么问题,仅仅是编程者不会调试造成的,通过自己日常工作观察,这里

收藏:Javascript 脚本的调试经验

随着用JavaScript编程的深入,你会开始理解那些JavaScript给出的不透明错误信息.一旦你理解了你常犯的一般性错误,你就会很快知道怎样避免它们,这样你写的代码中的错误将越来越少.编程实际上是一种能随着时间不断飞快进步的技术.但是不管变得多么熟练,你仍然要花一些时间调试你的代码.如果你做过家庭作业,或有过JacaScript编程经验,你会知道相当多的时间是花在调试上.这很正常 - 这只是编程者必须做的事之一.实际上,按照大量的研究,程序员平均百分之五十的时间花在解决代码中的错误. 关键