GPRS DTU是属于物联网无线数据终端设备的中一种,它主要是利用公用运营商的GPRS网络(又称G网)来为用户提供无线长距离数据传输的功能。一般都是采用的高性能工业级8/16/32位通信处理器和工业级的无线模块,以嵌入式实时操作系统作为软件支撑平台,同时提供RS232和RS485(或RS422)接口,可以直接连接到串口设备,实现数据透明传输的功能。因此,在GSM系统的基础上构建GPRS系统时,GSM系统中的绝大部分部件都不需要作硬件改动,只需作软件升级。有了GPRS,用户的呼叫建立时间大大缩短,几乎可以做到“永远在线”。此外, GPRS是以营运商传输的数据量而不是连接时间为基准来计费,从而令每个用户的服务成本低。
    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的应用场景:
  在日常中判断应用系统是否适合采用GPRS网络进行数据传输,如果这几个方面都比较符合的话,那么采用GPRS DTU进行数据传输是非常合适的。
    1、现场只能使用无线通信环境当数据采集现场的设备需要在移动中工作,或者采集现场处于野外等情况下,无法提供有线通信的环境。这个时候,采用GPRS无线网络就可能是一个好的选择,因为GPRS网络的覆盖率目前已经很高,全国大部分地区均有GPRS信号覆盖。
    2、现场终端的传输距离分散由于GPRS网络是覆盖全国的公共网络,因此采用GPRS来传输数据的一大优势就是现场采集点可以分步在全国范围,数据中心与现场采集点之间的距离不受限制。无线公网通信(包括GPRS/CDMA网络,3G网络等)这个非常显著的优点是专用无线通信网络(比如数传电台,WiMax,WLAN等)无法达到的。
    3、 适当的数据通信速率GPRS DTU与数据中心的数据通信速率一般在10kbps-60kbps之间。从也就是说,GPRS DTU可以持续不断地以10bps-60kbps的速度向中心发送数据,反之亦然。(补充说明:国内CDMA网络的数据通信平均速率可以达到40kbps-90kbps左右)
从系统应用可靠性角度来讲,我们认为当应用系统本身的数据平均通信量在30kbps以内的时候,使用GPRS网络来进行数据传输是比较适合的。
  从另一个角度来讲,如果我们要设计的系统希望通过GPRS网络来传输数据,那么就需要把数据平均通信量控制在30kbps之内。

4、适当的数据实时性要求目前的GPRS网络,其传输数据的延时为秒级范围。在绝大部分时间下,GPRS数据通信的平均整体延时为2秒左右。也就是说,从GPRS DTU端发送的数据包将大致在2秒钟后到达数据中心。反之,从数据中的数据包也大致在2秒钟后到达GPRS DTU。
  从另一个角度来讲,如果我们要设计的系统希望通过GPRS网络来传输数据,那么就要在设计通信协议时候考虑这种延时的情况。
    GPRS的这种实时性,可以满足大部分行业应用的需求。 但是,对于一些特殊的应用系统,如果不能承受2秒左右的平均延时,那么GPRS通信方式就可能是不适合的。(另外,CDMA网络的传输延时也是1秒-2秒左右)。

GPRS DTU工作的原理与应用场景的更多相关文章

  1. GPRS DTU的工作原理和应用场景有哪些

    GPRS DTU是属于物联网无线数据终端设备的中一种,它主要是利用公用运营商的GPRS网络(又称G网)来为用户提供无线长距离数据传输的功能.一般都是采用的高性能工业级8/16/32位通信处理器和工业级 ...

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

    源:http://blog.csdn.net/bichenggui/article/details/7889638 最近需要开发一个基于GRPS DTU数据传输的数据中心方案,于是找了一些资料.个人觉 ...

  3. GPRS的工作原理、主要特点

    源:http://blog.csdn.net/sdudubing/article/details/7682467 GPRS的工作原理.主要特点: 引 言 近年来,通信技术和网络技术的迅速发展,特别是无 ...

  4. 购买GPRS DTU时应该怎么选择

    GPRS DTU如今是一种被广泛应用的物联网无线数据终端,主要是利用GPRS网络为用户提供无线长距离数据透传功能,在电力.环保.物流.气象等行业领域有着广泛应用.目前市场上的GPRS DTU产品眼花缭 ...

  5. 谈谈MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理和应用场景?

    在日常开发中,尤其是业务开发,少不了利用 Java 对数据库进行基本的增删改查等数据操作,这也是 Java 工程师的必备技能之一.做好数据操作,不仅仅需要对 Java 语言相关框架的掌握,更需要对各种 ...

  6. [转帖]Docker五种存储驱动原理及应用场景和性能测试对比

    Docker五种存储驱动原理及应用场景和性能测试对比 来源:http://dockone.io/article/1513 作者: 陈爱珍 布道师@七牛云   Docker最开始采用AUFS作为文件系统 ...

  7. 第36讲 谈谈MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理和应用场景

    在日常开发中,尤其是业务开发,少不了利用 Java 对数据库进行基本的增删改查等数据操作,这也是 Java 工程师的必备技能之一.做好数据操作,不仅仅需要对 Java 语言相关框架的掌握,更需要对各种 ...

  8. Dockerfile多阶段构建原理和使用场景

    本文转载自Dockerfile多阶段构建原理和使用场景 导语 Docker 17.05版本以后,新增了Dockerfile多阶段构建.所谓多阶段构建,实际上是允许一个Dockerfile 中出现多个 ...

  9. Java进阶(七)正确理解Thread Local的原理与适用场景

    原创文章,始自发作者个人博客,转载请务必将下面这段话置于文章开头处(保留超链接). 本文转发自技术世界,原文链接 http://www.jasongj.com/java/threadlocal/ Th ...

随机推荐

  1. 如何使用 Python 進行字串格式化

    前言: Python有几种方法可以显示程序的输出:数据可以以人类可读的形式打印出来,或者写入文件以供将来使用. 在开发应用程式时我们往往会需要把变数进行字串格式化,也就是说把字串中的变数替换成变量值. ...

  2. android开发之意图

    intent 全局变量传值(程序关闭时存储值消失) intent普通传值 intent传值 intent不能序列化传值 intent回传

  3. Spring AOP系列(一)— 代理模式

    Spring AOP系列(一)- 代理模式 AOP(Aspect Oriented Programming)并没有创造或使用新的技术,其底层就是基于代理模式实现.因此我们先来学习一下代理模式. 基本概 ...

  4. Java知识系统回顾整理01基础06数组05复制数组

    数组的长度是不可变的,一旦分配好空间,是多长,就多长,不能增加也不能减少 一.复制数组 把一个数组的值,复制到另一个数组中 System.arraycopy(src, srcPos, dest, de ...

  5. TP5 调用快递鸟api 查询快递信息

    1,去快递鸟,下载sdk https://www.kdniao.com/api-track 下载PHPsdk 2,下载下来的事PHP文件,不是以类的形式显示的,所以为了方便,我把他封装成了类,不需要封 ...

  6. C# excel文件导入导出

    欢迎关注微信公众号 C#编程大全 这里有更多入门级实例帮你快速成长 在C#交流群里,看到很多小伙伴在excel数据导入导出到C#界面上存在疑惑,所以今天专门做了这个主题,希望大家有所收获! 环境:wi ...

  7. X86保护机制

    目录 保护机制的开启与关闭 描述符表限长检查 段限长检查 段类型检查 类型信息的存储 类型检查 空选择子的检查 特权级检查 访问数据段时的特权级检查 访问代码段中的数据 堆栈寄存器SS的特权级检查 在 ...

  8. antd pro 路由

    概要 antd pro 路由简介 路由, 菜单和面包屑 页面之间的路由 带参数的路由 总结 概要 路由配置是单页应用的核心之一, antd pro 将所有的路由配置集中在一个文件中, 可以更好的对应用 ...

  9. linux网卡驱动程序架构

    以cs89x0网卡驱动为例:

  10. c++ 通用单例类声明

    //单例类定义#define CLASS_INSTANCE_DEF(className) \public: \ static className* GetInstance() \ { \ static ...