Chinaunix首页 | 论坛 | 博客
  • 博客访问: 22869
  • 博文数量: 4
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 29
  • 用 户 组: 普通用户
  • 注册时间: 2013-05-15 17:05
文章分类
文章存档

2014年(1)

2013年(3)

我的朋友

分类: LINUX

2014-01-23 10:38:32

原文地址:GPRS模块开发初步(软件) 作者:so927

 1  AT指令简介

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

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

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

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

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

 

2 登录GGSN的过程

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

  协商过程大致描述如下:在拨号成功连接后,GGSN首先会返回一个PAP REQ数据帧。我们发送一个空LCP REQ,以强迫进行协议协商阶段。随后,GGSN发送LCP设置帧,我们拒绝所有的设置并请求验证模式。GGSN选择CHAPPAP方式验证,我们只接受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模块天线是否安装正确等问题。

中国移动在GPRSInternet网中间建立了许多相当于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--310之间的信号数字则继续,

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

  

 

   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   //关闭移动场景

 

阅读(836) | 评论(1) | 转发(0) |
0

上一篇:__init、__initdata和__exit、__exitdata的理解

下一篇:没有了

给主人留下些什么吧!~~

巧夜无情2014-10-23 17:14:54

急急急!GPRS通信模块硬件是怎么连的,驱动须要怎么写,哪里有资料?
最近用gprs实现发送短消息,写了一个应用程序向串口发送at命令来发消息,但是不知道怎么让gprs模块和串口相连,同时gprs怎么发送信息的,还有就是怎么样才能测试gprs能发送短信呢,由于是新手,谢谢指教。谢谢。
第一次接触gprs模块。