Air系列4G模块AT版本PDP使用汇总

4G模块AT版本如何激活PDP

一、移动设备如何上网

            MS(移动台,可以是手机、无线通信模块等设备)要接入外部PDN(外部分组数据网,包括企业内部网、InternetWAP网站、行业内部网等),首先要具有一个IP地址,称为PDP地址,PDP地址是用于PDN识别MSPDP上下文时使用的地址。MS以后就通过这个IP地址和PDN进行数据通信,简化的通信图如下:

         上图中各关键节点释义如下

         MS:移动台,可以是手机、无线通信模块等设备

         BSS:移动基站

         GGSN:移动网关,和外部数据网络(包括企业内部网、InternetWAP网站、行业内部网等)相连,MS经由GGSN就可以和外部数据网络“自由交谈”了

         PSTN:外部数据网络(包括企业内部网、InternetWAP网站、行业内部网等)

 

         若无特殊说明,在下文中用4G模块来代表MS,用基站来代表BSS,用网关来代表GGSN,用外部数据网络来代表PSTN

二、什么是PDP上下文

            由上文可知,4G模块首先要请求网关分配一个IP地址(称为PDP地址,可以看做是移动网关内部的私有地址),然后才能经由网关和外部数据网络通信

         这个请求网关分配地址的过程称为激活PDP PDP地址就像开通有线电话时,开通工单上的电话号码,而PDP上下文就是这张电话开通工单,上面不仅有分配给你的电话号码,还有这部电话对应的其他属性、其他功能的信息。PDP上下文是一个结构,PDP地址只是结构中的一个成员而已,除此之外,还包括QoSAPN等,这些都是PDP上下文的内容

         PDP上下文中,有一个重要的参数APNAPN4G模块用来告知网关要访问哪种外部数据网络(外部分组数据网,包括企业内部网、InternetWAP网站、行业内部网等);还是以刚才的开通电话为例,开通时要求“仅支持省内电话呼入呼出”、“仅支持国内电话呼入呼出”、“可全球呼入呼出”这个就相当于是电话单的APN

三、4G模块如何激活和去激活PDP

            4G模块最多支持8PDP承载,这8PDP承载可以是8个独立的物理承载,也可以是多路共享1个物理承载。怎么理解这个概念呢?要用到上文中提到的APN,激活PDP请求时,4G模块会指定一个APN(如果是通用的sim卡,在AT命令中,可以不再主动传入这个APN参数,因为4G模块固件会自动从网络端获取到正确的APN),PDP承载就根据APN来决定是“直接使用之前已经激活的同名APNPDP承载”还是“新激活一个PDP承载”。例如:

         使用如下AT命令,激活了一路id1APN为自动获取的默认APNPDP承载

AT+SAPBR=3,1,"CONTYPE","GPRS"

 

OK

AT+SAPBR=3,1,"APN",""

 

OK

AT+SAPBR=1,1

 

OK

AT+SAPBR=2,1

 

+SAPBR: 1,1,"10.55.40.48"

 

OK

        

         再使用如下AT命令,激活了一路id2APN为自动获取的默认APNPDP承载

AT+SAPBR=3,2,"CONTYPE","GPRS"

 

OK

AT+SAPBR=3,2,"APN",""

 

OK

AT+SAPBR=1,2

 

OK

AT+SAPBR=2,2

 

+SAPBR: 2,1,"10.55.40.48"

 

OK

 

         可以看出,id2PDP承载,IP地址和id1PDP承载完全一样

         实际上,激活id2PDP承载时,首先检查已经激活的其他路PDP承载,发现id1PDP承载已经激活,并且APN相同,则直接映射到id1的这一路物理承载,并不会向网关发起激活PDP的请求;如果APN不同,才会向网关发起新的PDP激活请求。在实际应用场景中,我们所用的sim卡基本上都是多路PDP共享一个物理承载的情况。

         接下来我们进入正题,详细讲解一下4G模块如何激活和去激活PDP

         在激活PDP之前,模块必须先附着上数据网络,4G模块开机后,会自动去附着数据网络,只要通过AT+CGATT?轮询是否附着成功即可,附着上数据网络之后,就可以激活PDP

         4G模块支持两套比较常用的通过AT命令激活PDP的方式,其中一套提供给socket使用,另外一套提供给MQTTHTTPFTP使用

3.1socket应用的激活PDP方式

       先来看个正常激活PDPAT命令序列,请自行参考AT手册理解AT命令意义

AT+CPIN?

 

+CPIN: READY    //查询sim卡是否正常

 

OK

AT+CGATT?

 

+CGATT: 1        //查询是否附着上数据网络,如果返回+CGATT: 0表示未附着上

 

OK

AT+CSTT=""       //设置APN,此处""表示使用从网络端自动获取到的APN

 

OK

AT+CIICR         //发起激活PDP的请求

 

OK

AT+CIFSR

 

10.159.1.145    //请求到的PDP地址

 

         激活PDP的流程图如下

        

3.2socket应用的去激活PDP方式

       PDP激活成功之后,就可以发送socketAT命令和服务器通信了,某些情况下,还需要执行去激活PDP动作(发送AT+CIPSHUT,参考3.1章节的流程图),什么情况下,需要去激活PDP呢?分为被动和主动两种场景:

         1、被动场景:如果网络环境发生了异常变化(例如进入了一个没有信号的区域,拔掉天线,拔掉sim卡等),一段时间后,4G模块会产生一个+PDP: DEACTURC提示,出现此提示说明已经激活的PDP承载被网络端去激活了,此时仍然需要向4G模块发送AT+CIPSHUT命令主动关闭PDP

        2、主动场景,分为如下两种情况:

Ø  在激活PDP过程中,激活失败,此时需要主动去激活,然后再重新激活

Ø  socket应用过程中出现失败,根据项目需要,可以执行主动去激活,然后再重新激活,重新执行socket应用

3.3httpmqttftp应用的激活PDP方式

       先来看个正常激活PDPAT命令序列,请自行参考AT手册理解AT命令意义

AT+CPIN?

 

+CPIN: READY    //查询sim卡是否正常

 

OK

AT+CGATT?

 

+CGATT: 1        //查询是否附着上数据网络,如果返回+CGATT: 0表示未附着上

 

OK

AT+SAPBR=3,1,"CONTYPE","GPRS"

 

OK

AT+SAPBR=3,1,"APN",""    //设置APN,此处""表示使用从网络端自动获取到的APN

 

OK

AT+SAPBR=1,1             //发起激活PDP的请求

 

OK

AT+SAPBR=2,1             //注意:此命令仅仅查询PDP地址,可以不执行

 

+SAPBR: 1,1,"10.159.1.145"    //请求到的PDP地址

 

OK

 

         激活PDP的流程图如下

        

3.4httpmqttftp应用的去激活PDP方式

       PDP激活成功之后,就可以执行httpmqttftpAT命令和服务器通信了,某些情况下,还需要执行去激活PDP动作(发送AT+SAPBR=0,1,参考3.3章节的流程图),什么情况下,需要去激活PDP呢?分为被动和主动两种场景:

         1、被动场景:如果网络环境发生了异常变化(例如进入了一个没有信号的区域,拔掉天线,拔掉sim卡等),一段时间后,4G模块会产生一个+SAPBR 1: DEACTURC提示,出现此提示说明已经激活的PDP承载被网络端去激活了,此时仍然需要向4G模块发送AT+SAPBR=0,1命令主动关闭PDP

        2、主动场景,分为如下两种情况:

Ø  在激活PDP过程中,激活失败,此时需要主动去激活,然后再重新激活

Ø  httpmqttftp应用过程中出现失败,根据项目需要,可以执行主动去激活,然后再重新激活,重新执行httpmqttftp应用

四、常见问题         

4.1、重试多次PDP一直激活失败

       如果重试多次,PDP一直激活失败,则尝试使用如下手段恢复:

         1、使用RESET引脚复位模块

         2、极端情况下,直接给模块断电,再上电,POWER KEY引脚拉低开机

  • 发表于 2019-09-04 17:26
  • 阅读 ( 12984 )
  • 分类:默认分类

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
不写代码的码农
朱天华

软件工程师

19 篇文章

作家榜 »

  1. 技术销售Delectate 43 文章
  2. 陈夏 26 文章
  3. 国梁 24 文章
  4. miuser 21 文章
  5. 晨旭 20 文章
  6. 朱天华 19 文章
  7. 金艺 19 文章
  8. 杨奉武 18 文章