摘要: 通用无线分组业务( GPRS) 是一种基于全球移动通信系统( GSM) 的无线分组交换技术, 提供端到端的、广域的无线IP 连接, 具有永远在线等特点。介绍了基于GPRS 网络的数据终端单元( DTU) 。该单元是由以ARM 芯片S3C44B0X 和GPRS 模块G20 为核心的硬件和软件组成。在概括工业GPRS 监控系统构成的基础上, 介绍了GPRS DTU 硬件设计, GPRS DTU 软件是由μC / OSⅡ操作系统、TCP / IP 协议、点对点协议组成。该单元使用户通过GPRS 网络实现用户设备和用户数据中心之间的数据传输。
通用无线分组业务GPRS( General Packet RadioService ) 是第2 代移动通信技术全球移动通信系统( GSM) 迈向第3 代( 3G) 的过渡技术, 是由英国BTCellnet 公司早在1993 年提出的, 是GSM Phase2 +( 1997 年) 规范实现的内容之一, 是一种基于GSM 的移动分组数据业务, 面向用户提供移动分组的IP 或者X.25 连接。GPRS 在现有的GSM 网络基础上叠加了一个新的网络, 同时在网络上增加硬件设备和软件升级, 形成了一个新的网络逻辑实体, 提供端到端的、广域的无线IP 连接, 为构建低成本的无线广域工业监控网络提供了可能。GPRS 数据终端单元( GPRS DTU) 无需后台计算机的支持, 充分利用GPRS 网络的“永远在线, 接入速度快, 采用数据流量计费方式”的特点, 具有无可比拟的性价比优势, 特别适用于电力系统自动化、工业监控、环境监测、交通管理等行业的远程传输数据应用。
用户设备通过RS -232 和GPRS DTU 相连, 将数据传入DTU。进入DTU后的数据被GPRS 模块封装成适合于网络通信的数据包后, 被发送至GPRS 网络, 再通过GPRS 网络进入Internet 上传输, 最后被指定IP 地址的用户数据中心读取。工业GPRS 监控系统的构成如图1 所示。
在本系统中, GPRS DTU 采用的硬件芯片主要有ARM 芯片S3C 44 B0X 和MOTOROLA 的GPRS 通信.模块G 2 0 。S3C 44 B0X 是由SAM SUNG 公司推出的16 / 32 位RISC 处理器( 66 MHz) , 它包括了Thumb 代码压缩器, 1 个片上的ICE 断电调试支持和1 个32位的硬件乘法器。
本应用中ARM 芯片实现与GPRS模块的数据通信( 可采用UART 通信方式或USB 通信方式) , 控制数据信号采集设备的工作, 进行指示灯控制等。G20 是全新的嵌入式GSM 模块, 采用最先进的技术以满足数据及语音通信市场。G20 的主要特性有: TCP / IP 协议栈、GSM 频段EGSM900 / 1 800 MHz,GSM850 / 1 900 MHz, GPRS 时隙class 8, MO / MT SMS、传真、通过串口的STK 功能、RS - 232 / USB 接口、宽温度工作范围等。G20 的硬件结构包括主控制器,与GPRS 网通信的接收模块和发送模块, 存储器件,电源管理和音频管理模块, 接口模块等。G20 通过70 个引脚的接口模块实现与外部电路的数据交换。其中, 主要包括: UART 通信接口、USB 通信接口、SPI 总线接口实现与SIM 卡的数据交换和音频信号输入/ 输出接口等。GPRS DTU 的结构图如图2 所示。
GPRS DTU 的软件是由操作系统、TCP / IP 协议、点对点协议( PPP ) 等组成。
操作系统采用μC / OSⅡ, 它是一个公开源代码的占先式多任务的微内核RTOS, 其特点是: 公开源代码, 代码结构清晰、明了, 注释详尽, 组织有条理,可移植性好, 可裁减, 可固化, 内核属于抢占式, 最多可以管理60 个任务。
TCP / IP 通信协议分别由传输控制通信协议( TCP ) 及因特网通信协议( IP ) 2 部分组成。TCP /IP 模型如图3 所示。工业控制传输领域层采用TCP协议, 不用UDP 协议, 因实时监控系统中传输量不大, 而可靠性要求较高。TCP 协议为面向对象的通信协议, 其主要目的是提供数据的传输并确保其传输无误, 具有错误侦测、数据复原及数据重新传送等功能。TCP 在传输数据之前, 会先在主机间( 例如服务器端和客户端)建立通信链接, 通过此通信链接, 数据可在计算机间相互传输。
此设计中采用的是LwIP ( Light weight IP) , 它是瑞士计算机科学院Adam Dunkels 等开发的一套用于嵌入式系统的开放源代码的TCP / IP 协议栈。LwIP 具有以下特性: 支持多网络接口下的IP 转发,支持ICMP 协议, 包括实验性扩展的UDP, 阻塞控制、往返时间( RTT) 估算、快速恢复、快速转发的TCP , 提供专门的内部回调功能用于提高应用程序性能, 可选择的BerkeleyAPI 接口等。LwIP 可以是单线程运行, 即只有1 个tcpip 线程, 负责处理所有的tcp 连接, 各种网络程序都通过tcpip 线程与网络交互。但LwIP 也可以多线程运行,以提高效率和降低编程的复杂度。可以通过下面的函数创建新线程:
void sys_thread_new ( void ( *thread ) ( void*arg) ,
void*arg) ;
在μC / OSⅡ中, 没有线程( Thread ) 的概念, 只有任务( Task ) 。它已经提供了创建新任务的系统API调用OSTaskCreate , 因此只要把OSTaskCreate 封装一下, 就可以实现sys_thread_new。LwIP 中的Thread 没有μC / OSⅡ中优先级的概念, 实现时需要由用户事先为LwIP 创建的线程分配好优先级。
创建1 个和TCP / IP 相关的新进程的部分代码
如下:
# define LwIP_STK_SIZE 10*1024
# define LwIP_TASK_MAX 5
# define LwIP_START_PRIO 5
OS_STK LwIP_TASK_STK[ LwIP_TASK_MAX]
[ LwIP_STK_SIZE ] ;
u8_t curr_prio_offset ;sys_thread_t ;sys_systhread_new ( void ( *function ) ( void*arg ) ,void*arg, int prio)
PPP 为基于点对点连接的多协议自寻址数据包的传输提供了一种标准方法。PPP 最初设计是为2个对等结构之间的IP 流量和传输提供一种封装协议。在TCP / IP 协议集中, 它是一种关于同步调制连接的数据链路层协议( 开发式系统互联参考模型OSI模式中的第2 层) 。PPP 主要创建电话线路及综合服务数字网( ISDN) 拨号接入网络服务提供商( ISP)的连接, 具有多种身份验证方法、数据压缩和加密及通知IP 地址等功能。需要传输的数据按照TCP 格式封装成TCP 数据包, 加上IP 报头和报尾封装成IP 数据包, 再按照PPP 的帧格式封装成PPP 帧, 最后才能用于传输。DTU 要想和Internet 建立连接, 首先要附着在GPRS 网上, 然后发起分组数据协议( PDP ) 上下文激活过程, 这样才能与GPRS 支持节点( GGSN) 建立一条逻辑通路, 从而和Internet 建立连接。
系统上电后, 首先硬件初始化, 再对操作系统初始化, 然后进行系统文件配置, 创建任务, 并对网络( TCP / IP , PPP ) 初始化, 启动多任务调度。通过PPP发送LCP packets 进行设定和测试数据链路, 跟G20模块链接; 然后进行密码认证协议( PAP ) 认证; 通过后, PPP 发送NCP packets 选择和设定1 个网络层运行IP 协议, 一旦设定好协议, GPRS DTU 就可以接入到Internet 。DTU 向用户数据中心的IP 地址发起连接并请求注册, 就可开始和用户数据中心交互控制指令和数据。
研究和设计GPRS DTU 的目的是将其应用于武汉理工大学的含油污水远程监控系统, 目前实验阶段的测试效果证明了此方案的可行性。基于GPRS 的远程监控系统相对于传统的基于有线连接或GSM 短消息的远程监控系统具有很多优势, 如: 连接时间短、实时性强、永远在线、收费合理、价格便宜等, 相信GPRS DTU 也会有很好的市场前景。
本文来自:百度文库资料。如有版权请联系:010-82899827-805,24小时内即撤。