基于GR64模块的通用GPRS数传单元设计

发布于:2021-11-27 16:58:37

基于 GR64 模块的         通用 GPRS 数传单元设计
■中国地质大学    梁娟   王典洪   熊月华
GPRS 数传单元 ( D TU ) 在远程数据采集终端与主站之间建立起无线 IP 连接和可靠的数据传输通道 。本

   要 摘

文提出采用内嵌脚本方式开发 GR64 , 使之成为具有简单控*涌 , 可方便配置参数和灵活切换工作模 式的通用 D TU 的硬件和软件实现方法 , 并总结了开发过程中遇到的问题和相应解决办法 。
GPRS  GR64   数传单元 ( D TU)   内嵌脚本

  关键词

引  言
通用 分 组 无 线 业 务 GPRS ( General Packet Radio
Service) 是在现有 GSM 网络基础上进行的软件升级 ,采用

微处理器向 GR64 的 UAR T1 发送 A T 命令控制其工作 。

1  GPRS 数据采集系统通信的实现
上位机服务器不管采用哪种方式接入 Internet 都必 须有固定 IP 地址 ,并对各终端开放相应的侦听端口号 , 在 接入网络后要尽量保持在线 。下位机 ( 终端) 工作后 , 会通 过 D TU 主动与服务器建立连接 , 随后告知服务器自己的 终端地址 ; 服务器收到后将其加到动态地址数据库中 , 并 自动定时刷新数据库以确定哪些表还挂在网络上 ,再根据 管理员设定的自动查抄时间对连接在网络上的终端进行 数据读取 、 参数设定 、 校时等操作 。

分组交换技术 ,可提供高速无线 IP 或 X. 25 服务 。它增加 了 SGSN ( GPRS 业务支持节点) 和 GGSN ( GPRS 网关支 持节点) 2 个服务节点 , 可提供端到端的 、 广域的无线 IP 连接 。相对于其他数传方式 , GPRS 更具优势 : 建设成本 低 ,数据传输可靠性高 , 传输速率可达 171 kbp s , 基于 IP 协议可以访问整个 Internet ,永远在线和按流量收费 。
GR64 是 Sony/ Ericsson 公 司 最 新 推 出 的 一 款 内 嵌 TCP/ IP 协议栈的 GSM/ GPRS 模块 , 可向下兼容 GR47 ,

内嵌的 ARM9 CPU 可以开放给用户 。GR64 具有丰富的 存储资源 : 256 KB 的脚本空间可同时容纳 2 个脚本 ,可用 于 CSD 方式下脚本远程升级 , 至少 50 KB 的数据 NVM 空间和 100 KB RAM ; 丰富的功能库涵盖所有的底层驱 动 ,用户只须编写自己的应用程序 。GR64 提供丰富的接 口 : 对外有 2 个 自 适 应 波 特 率 和 帧 格 式 的 串 口 , 其 中
UAR T1 用于 A T 命令控制或本地脚本下载 , UAR T3 为

2  基于 GR64 的 GPRS DTU 实现
2. 1   DTU 硬件电路
D TU 硬件电路如图 1 所示 。

模块工作电压 VCC 为 3. 2 ~ 4 . 5 V , 可由降压芯片
MIC29302bu 将 5 V 降至典型工作电压 3. 6 V 提供 ,5 个

通用串口 ; 另外 , 还有 USB2 . 0 ( 等同 GR47 UAR T2 , 可用 于模块自身固件升级和脚本调试信息输出) 、 、2 C 、 SPI I 天 线、 音频接口 ,12 根 I/ O 线 ( 8 根复用) ,AD/ DA 转换器 ,蜂 鸣器和实时时钟等内置外设 。
GR64 模块有两种开发方式 : 一种是内部脚本方式 ,

发光二极管分别指示模块 GSM 网络注册状态 , 与 GPRS 网络交互 ,通信串口数据收发状态 ; 由于模块引脚数字高 电*为 2 . 75 V ,RS232 电*转换芯片最好使用 MAX3232 等 ;ON/ OFF 脚和 VREF 分别提供给终端 , 用于控制模块 硬件开关机和检测模块开关机状态 ; USB 口为调试信息 和打印信息输出口 。

2. 2   DTU 功能实现及程序流程
该应用中 GR64 工作于内部脚本方式 , 利用集成开发 环境 M2mpower IDE 脚 本 可 通 过 计 算 机 串 口 从 模 块 UAR T1 下载到内部脚本空间 , 并设置为上电自动运行 。 上电开机 、 模块注册网络后开始运行脚本 : D TU 先从数 据 NVM 中读出运行参数 ,初始化后按预设运行 。其中包
adv @mesnet. com. cn (广告专用)  

即直接利用模块开放的 CPU 和系统资源 , 将类 C 语言脚 本下载到模块的 NVM ( Nonvolatile Memory) 中 , 在模块 的 CPU 中运行 。内部脚本解释器从 NVM 中读入脚本 , 逐行解释执行 ,模块通过 UAR T3 与数据终端接口 。另一 种是外部控制器方式 , 控制程序在外部微控制器中运行 ,

48  

2007 年第 2 期

括 : 网络连接参数 ,如 GPRS 接入点 A PN ( GA :cmnet ) 、 用 户名 ( GU ∶wap ) 、 码 ( GP ∶wap ) 、 密 主站 IP 及 端口 号 ( NS :061. 183 . 125 . 114 : 10001 ) ; 系统参数 , 如通信协议 ( CP ∶TCP/ UDP/ SMS) 、 TCP 通信方式下工作模式 ( MD : R T 实时在线/ SA 短信激活/ DA 振铃激活) 、 连续登陆失 败停止登陆次数 ( CT ∶ 次) 、 10 激活模式下无数据传输自 ( IT ∶30 min ) , 以及短信控制密码 ( SP : 动断网时间间隔 whzydz) 等 。所有参数均向数据通信串口 ( UAR T3 ) 发送

“ + + + ” ,按上面的格式本地修改 ( 可以一次更改多项 , 后 各参数间用分号隔开) ; 改后向 D TU 发送 L S ,将得到所有 参数的当前值 。也可在运行过程中通过短信远程更改各 参数 ,但须在短信的开头加上预先设定好的短信控制密码 ( PWD :whzydzCT :15 ; …… ; 另外还可通过通信串口及短 ) 信方式控制模块上下线 ( SM :ONL IN E/ OFFL IN E) 及软件 *舳 ( RESET) , 掉电重上电后将按最*一次更改的参 数运行 。程序流程如图 2 、 3 和图 4 所示 。 图

图1  DTU 硬件电路图

2. 3   内部脚本方式下程序实现要点
以下粗体部分表示模块内建功能库函数 。 ① 内部脚本不支持中断 , 须通过内部 gtf ( ) 函数查询系统标志位方式检测触发类事件的发 生 ,或者通过 gtb( ) 函数查询系统状态字节的值确 定各项系统状态 。例如 , 收到 新 短信 时 标志 位
SMS_ RCV 将被置位 。其中 : int SMS_RCV = 29 。
if (gtf( ) ( SMS_RCV) ) { OSA[ MR ] = OSA [ MR ]| R EQ ; / 3 开短信处理进程 3 /

图2  进程优先级次序

图3  进程相互作用关系
}

prtf (" \ n New SMS received !" ) ;

  paper @mesnet. com. cn (投稿专用)  

2007 年第 2 期

Microcontrollers & Embedded Systems  

49  

图4  程序流程图

同样 ,接收到 IP 数据时标志位 IP_D T_ RCV 将被置 位 。其中 : IP_D T_ RCV = 13 。 通过查询来电状态字节 , 即 if ( gtb ( CAL _ STA ) = =
RIN G) 判断 是否 有 来 电 拨 入 。其 中 : CAL _ STA = 12 , RIN G = 1 。

②是否接收到串口数据 ,通过判断内部函数 utrl () 返 回的串口接收缓冲内数据的长度是否大于 0 确定 。例如 :
if (utrl () & &( !(OSA [ RS ] &R EQ) ) ) { OSA [ RS] = OSA [ RS ]| R EQ ; / 3 开启串口处理进程 3 / prtf (" \ n UA R T 3 received !" ) ;

}

此函数的值只能确定串口是否接收到数据 ,因此在进 入串口处理进程后 ,须先通过查询定时器超时时间内 utrl
() 返回值的变化来检查数据链路 ,待一包数据接收完毕后

再作处理 。

③内部脚本方式下 , TCP 连接需要完成以下步骤 。 入 GPRS 初始化进程 。

( a) 待注册 GPRS 网络 ( 开机后模块自动完成) 后 , 进
◆ 调用 atcrt () 创建内部 A T 命令通道 ;

50  

2007 年第 2 期

发 送 命 令 A T + C GDCON T = 1 ," “ IP" ," cmnet" < CR > ” 设置 A PN ( 由从记录中读出的全局 变量 GA 决定 ,此处默认为 cmnet ) ; ◆ 调用 at snd ( ) 发送 A T 命令 A T 3 ENAD = 1 ," “ GPRS 1" ," wap" ," wap" < CR > ” 设置接入用户名和密码 ( 由 GU 、 决定 ,此处默认为 wap 和 wap ) ; GP ◆ 调用 at dst () 关闭 A T 命令通道 , 然后由字符串变 量 NS ( " 061. 183 . 125 . 114 : 10010 " ) 计 算 出 32 位 IP ( 0x3db77d72) 和 Port ( 10010) ,为 IP 连接作准备 。 ( b) 进入 IP 连接进程 。 先激活 PDP ,pdpa ( 1 ,1 ) ; 然后选择 IP 连接类型 ( CM = 1 , 为 TCP ; CM = 0 , 为 UDP ) , ipo ( CM , &ScNm ) 。 UDP 方式下此时已可透明传输 UDP 数据 , 不需要以下 步骤 : - > 执行 TCP 连接 : tcpc ( ScNm , Port , IP) 。连接成 功后 ,即可透明传输 TCP 数据 。同时不停查询 TCP 连接 状态字节和 IP 异常标志位时 ,当检测到 TCP 连接状态不 是已连接或 IP 异常标志位置位时 ,Log ( ) 进程将调用 ipc ( ScNm) 关闭 IP , 然后跳转到 ipo ( ) 重连接 。如此往复循 环 ,就可以在检测到连接丢失 ( 如主站软件关闭或断开侦 听后重新打开) 或数据传输过程中发生异步时序错误时自 动重新接入 。 ④利用功能库中的数据库函数存储非易失性参数 。 由于数据库函数对公用的 NVM 数据空间进行操作 , 即使下载新脚本 ,原脚本建立的数据库及数据库中的内容 仍然存在 ,因此若用到数据库脚本就必须包含删除数据库 的部分 。此应用设计为当串口收到 DEL ” “ 字符串时 , 脚本 将自动删除当前已建立的所有数据库 。具体如下 :
if ( ! scmp ( TBf ," D EL" ) ) { }

◆ 调用 at snd ( )

2. 4   实际运用中需注意的问题及解决办法

①若 GPRS 模块在线 、 长时间无数据传输时 , 可能被 GPRS 网络踢掉 ,大多 GPRS 模块都不能在短时间内检测 到 。同样 , GR64 也会发生实际连接已断 , 但 TCP 状态字 节仍为 已 连接 的情 况 。虽然 只 要 终 端 上 发 一 包 数 据 , GR64 内部将马上更改 TCP 连接状态字节为断开 ( 此时脚 本即可控制模块重连接) ,但此包数据不能被发送至主站 , 需重新发送 。为避免此类情况发生 ,也可适当发送上行心 跳帧 ,以保持连接 。 ②当 GR64 长时间不能建立连接时 ( 例如主站侦听 不开) , 调用 ipc ( ScNm) 关闭 IP 可能发生不响应的情况 , 脚本中设定连续 5 次关闭 IP 失败 , 模块将调用 rst () 自动 软件* 。 54

  3 dbadm() 为数据库管理函数 ,参数 2 表示删除数据库 3 / /    (" \ n Delete %d db" ,dbadm (2) ) ; prtf

adv @mesnet. com. cn (广告专用)  

定的故障代码设计的 , 是目前国际上通用的 , 现将其应用 于 CAN 的应用层 , 将来可以用全新的 CAN 上层协议取 代 。故障诊断代码定义在 SSF 14230 中 。SA E J 1979 中 , 由车辆制造商或系统供应者定义的服务标志符数值的不 同范围 ,如表 1 所列 。
表 1  SAE J 1979 中服务标志符数值的不同范围
服务标志
( 十六进制) 00~0 F 10~1 F 20~2 F 30~3 E 3F 40~4 F 50~5 F 60~6 F 70~7 E 7F 80 81~8 F 90~9 F A0~B9 BA~BF C0 C1~CF D0~DF E0~ F9 FA~ FF

标准 ,才能识别不同的十六进制代码所代表的不同的故障 信息 [ 4 ] 。

4    结 论
本文设计的 2 . 4 G 无线车载 CAN 总线故障诊断仪 , 由于采用了自动跳频的空中协议 , 所以误码率几乎接* 零 ,在 14 m 内仍能进行可靠的工作 。系统使用国际上通 用的诊断代码 ,使程序具有通用性和实用性 ; 以 PC 作为 硬件*台 ,无需专门开发硬件*台 , 可大大降低开发成本 并且易于实现设备的升级和维护 ; 使用 USB 接口和2. 4 G 无线通信 ,具有即插即用 、 不受空间限制 、 数据传输实时性 强的特点 。 参考文献
[ 1 ] 李伟 ,洪运富 . CAN 总线技术及其在汽车仪表中的应用 [J ] .

服务种类
( bit 6)

定义来源
SA E J 1979 SSF 14230 - 3

请求 请求 ( bit 6 = 0) 不作应用 响应 对服务 ( $ - $ E) 10 3 的肯定响应 ( bit 6 = 1) 否定响应 请求 ESC 字码 请求 ( bit 6 = 0) 请求 ( bit 6 = 0) 请求 ( bit 6 = 0) 请求 ( bit 6 = 0) 肯定响应 ESC 字码 肯定响应 ( bit 6 = 1) 肯定响应 ( bit 6 = 1) 肯定响应 ( bit 6 = 1) 肯定响应 ( bit 6 = 1)

文档保留
SA E J 1979 SSF 14230 - 3 SSF 14230 - 3 ISO 14230 - 3 SSF 14230 - 2

计算机与信息技术 ,2000 ( 4) :35 - 36.
[ 2 ] 张崇 ,于晓琳 . 单片 2. 4 GHz 无线收发一体芯片 nRF2401 及

应用 [J ] . 国外电子元器件 ,2004 ( 6) :34 - 36.
[ 3 ] 马伟 . 计算机 U SB 系统原理及其主/ 从机设计 [ M ] . 第 2 版 .

预  留 车辆商定义 供应者定义
ISO 14230 - 3 SSF 14230 - 2

北京 : 北京航空航天学出版社 ,2004 :12 - 93.
[ 4 ] Feng Jing ,Wang J un - z ,Zhong J un ,et al. Research and De2 Jiaotong U niversity 2003 ,1. E(8) :197 - 199.
黄涛 ( 副教授) ,主要研究方向为信号处理 、 汽车电子 、 智能控制 ; 王 小辉 ( 硕士研究生) ,主要研究方向为嵌入式系统与智能控制 。
( 收稿日期 :2006210223) ( 收稿日期 :2006210217)

预  留 车辆商重定义 系统重定义

此表中以十六进制数表示的服务标志符 ,同数据链路 层中数据字节内的 SID 服务识别字节对应 。不同的 SID 值代表不同的服务请求 , 故障诊断程序必须符合此应用层

50  ③内部脚本方式下 , GR64 工作时不安装天线 , 将

导致脚本运行缓慢 , 但只要安装天线 , 即使信号强度较弱 也不会影响脚本运行速度 。

结  语
基于 GR64 GSM/ GPRS 模块的通用数传单元 ( D TU) 为数据终端建立起同主站的无线 IP 连接和数据传输通 道 ,具有 ARM9 内核的 GR64 的出色性能决定了 D TU 能 够快速进行网络连接 、 数据传输及处理 , 并支持大数据包 传输 。运行参数可方便地进行配置和更改 , 掉电不会丢 失 ; TCP/ UDP/ SMS 三种通信方式可满足大多数情况下 网络数据通信的需要 , 并为网络不通时预留了短信通道 , 以便在网络故障和维护期间上报重要事件 ,或告警重要人 员 ; 实时在线/ 短信激活/ 振铃激活 3 种工作方式可灵活切 换 ,有利于实际应用中节省流量 ,有效控制运行费用 ; 内部 脚本方式直接使用 GR64 对外开放的 CPU 和功能库 , 简 化硬件和软件开发 , 降低成本 。此数传单元具有通用性 ,

完全可以用于各种远程采集 、 远程控制系统中 。 本文采用嵌入式脚本方式开发 GR64 模块 , 实现了 D TU 的单 片 解 决 方 案 ; 多 工 作 模 式 和 通 信 方 式 使 该 D TU 具有应用于各种远程采集和控制系统的灵活性和 实用性 。 参考文献

[ 1 ] 范成军 ,杨德芳 ,吴杰 ,等 . 基于 GPRS 的电能表的设计与实

[ 2 ] GR64 Design Guidelines & Integrators’ Manual &M2mpower Applicatio n Guide[ EB ] . So ny/ Err2isen Co . , 2003. [ 3 ] 马少* ,骆志刚 ,孙雷 ,等 . 基于 A RM 的 GPRS 远程终端设

梁娟 、 熊月华 ( 硕士研究生) ,主要研究方向为智能控制与智能仪器 ; 智能控制与智能仪器等 。

王典洪 ( 教授 、 博士生导师) ,主要研究方向为图像处理与图像通信 、

54  

2007 年第 2 期

velop ment of a New Calibration Tool fo r Elect ronically Con2 t rolled Engine Based on KWP2000 [J ] . Journal of Shanghai

现 [J ] . 仪表技术 ,2005 (6) :21 - 23.

计与实现 [J ] . 微计算机信息 ,2006 ( 14) :118 - 120.

adv @mesnet. com. cn (广告专用)  


相关推荐

最新更新

猜你喜欢