GPRS模块开发初步(软件)

文章来源:http://blogold.chinaunix.net/u1/56388/showart_1121149.html

AT 指令简介

AT 指令集一般指专门用来控制调制解调器的指令集。该指令集最初由美国 Hayes 公司推出,专门用于数据传输通信领域,目前己成为全球通用的标准,任何与 Hayes 兼容的调制解调器都可使用这些指令。

AT 指令是以 AT 开头、结尾的特定字符串, AT 后面紧跟的字母和数字表明 AT 指令的具体功能。 AT 指令具有以下特点:

①几乎所有的 AT 指令 ( 除了 “A/” “+++” 两个指令外 ) 都以一个特定的命令前缀开始,以一个命令结束标志符结束。命令前缀一般由 AT 两个字符组成,命令结束符通常为。

每一条 AT 指令执行完后,调制解调器都会返回一个结果 ,以对接收到的命令作出应答。

指令集分成标准 AT 指令集 (Standard V 25ter ATCommands) AT 增强指令集 (AT Commands for En-hanced Functions) 和传真指令集 (AT Commands forFAX) 等。根据具体的产品,不同的厂商还会设计特殊的指令集供设置使用,例如奉系统中使用的无线 GSM 模块,根据 ETSI-GSM07 07 ETSI-GSM07 05 协议,给调制解调器增加了一些扩充指令。

 

2 登录 GGSN 的过程

  系统的一个难点是微控制器登陆 GPRS 网关( GGSN )并与网关通过 LCP PAP IPCP 协议进行协商的过程。 LCP PAP IPCP 协议的帧结构大同小异 , 最常用的为请求( REQ )、同意( ACK )和拒绝( NAK )三种帧。微控制器与 GGSN 各为一方进行协商 , 任何一方都可以发送 REQ 帧请求某方面的配制 , 另一方觉得配置不能接受会回应 NAK , 如果可以则回应 ACK 帧。为了节省资源 , 我们只处理这三种数据帧 , 其它链路问题都由微控制器在程序控制下自己重新拨号解决。

  协商过程大致描述如下:在拨号成功连接后 ,GGSN 首先会返回一个 PAP REQ 数据帧。我们发送一个空 LCP REQ , 以强迫进行协议协商阶段。随后 ,GGSN 发送 LCP 设置帧 , 我们拒绝所有的设置并请求验证模式。 GGSN 选择 CHAP PAP 方式验证 , 我们只接受 PAP 方式。然后 , 进行 PAP 验证用户名和密码过程 , GPRS 中用户名与密码都为空 , 如果成功 ,GGSN 会返回 IPCP 报文分配动态 IP 地址。此时 , 就完成了与 GGSN 的协商过程。协商过程的状态转换如图 4 所示。

 

 

 

 

3 软件设置

 

硬件连接完成后 , 在进行 GPRS 上网操作之前 , 首先要对 GPRS 模块进行一定的设置。 主要的设置工作有:

     设置通信波特率。可以使用 “AT+IPR=115200” 命令,把波特率设为 115 200 bps 或者其他速率。 SIMCOM 模块默认为 ll5200 bps

  设置接入网关 , 通过 AT+ CGDCONT=1, “IP”, “CMNET” 命令设置 GPRS 接入网关为移动梦网。

  ③设置移动终端的类别 , 通过 AT+CGCLASS=“B” 设置移动终端的类别为 B , 即同时监控多种业务 ; 但只能运行一种业务 , 即在同一时间只能使用 GPRS 上网 , 或者使用 GSM 的语音通信。

测试 GPRS 服务是否开通 , 使用 AT+CGACT=1,1 命令激活 GPRS 功能。如果返回 OK, GPRS 连接成功 ; 如果返回 ERROR, 则意味着 GPRS 失败。这时应检查一下 SIM 卡的 GPRS 业务是否已经开通 ,GPRS 模块天线是否安装正确等问题。

中国移动在 GPRS Internet 网中间建立了许多相当于 ISP 的网关支持节点( GGSN , 以连接 GPRS 网与外部的 Internet 网。 GPRS 模块可以通过拨 “*99***1#” 登录到 GGSN 上动态分配到 Internet 网的 IP 地址。其间 GPRS 模块与网关的通信要符合点对点协议( Point to Point Protocol, PPP , 其中身份验证时用户名、密码都为空。使用 PPP 协议登录上之后 , 就可以通过 GGSN 接上 Internet 了。

 

 

 

 

 

GPRS Moderm 实现 TCP 连接的 AT 指令主要操作步骤:

   AT/r

   AT+ccid/r // 检测是否装有 SIM 
   AT+cgmr/r //
检测软件版本, 5.0  以上的才有 GPRS  功能支持

   AT+csq/r // 检测信号质量,确定是否可以登陆上网络;若返回 10--31 0 之间的信号数字则继续,

            如果信号是 99 99 ,则应该考虑不停的的让模块去搜寻网络。

  

 

   AT+CGCLASS="B"/r  // 设置模块工作类型

   AT+CGDCONT=1,"IP","CMNET"/r 

   AT+CGATT=1  // 激活 PDP ,获得 IP

 

   AT+CIPCSGP=1,"CMNET"/r

   AT+CIPSTART="TCP",211.147.18.79,1433/r

   AT+CIPSEND/r

   >   // 返回 “>” 后输入要传输的数据,再发送 CTRL+Z, 即将所要发送的数据发送到指定 IP 的服务器上
   AT+CIPCLOSE/r  //
只有在 TCP/UDP 处于 CONNECT OK 的状态下才返回 OK, 否则返回 ERROR

   AT+CIPSHUT/r   // 关闭移动场景

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值