• 欢迎大家分享资料!前往留言板评论即可!

Air系列4G模块AT版本HTTP应用说明

合宙 模组资料网 5个月前 (05-15) 74次浏览 已收录 0个评论 扫描二维码
                        <div style="border-top: none; border-right: none; border-left: none; border-image: initial; border-bottom: 1pt solid rgb(238, 238, 238); padding: 0cm 0cm 4pt; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial;">

一、应用概述

            4G模块支持HTTPHTTPS协议, HTTP应用的基本流程如下:

         1、激活PDP(参考:http://oldask.openluat.com/article/937

         2、初始化HTTP服务

         3、设置HTTP会话参数

         4、如果要支持SSL,配置SSL参数

         5、如果使用POST命令,输入POST数据

         6、发起HTTP请求

         7、收到HTTP应答,读取应答数据

         8、终止HTTP服务

         1步出现异常后:参考http://oldask.openluat.com/article/937进行异常处理

         2步到第5步,只要输入格式正确,基本不会出问题;如果出错,可以跳过,直接处理第6步的异常

         6步和第7步出现异常后:终止HTTP服务,有选择性的去激活PDP;然后再有选择性的激活PDP,从第2步开始重新执行

二、应用流程和异常处理

            本章节分三部分来介绍HTTP应用的基本流程和异常处理  

2.1、基本流程

       先来看个正常情况下的AT命令序列,如果不理解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

AT+HTTPINIT

 

OK

AT+HTTPPARA=”CID”,1

 

OK

AT+HTTPPARA=”URL”,”www.baidu.com”

 

OK

AT+HTTPACTION=0

 

OK

 

+HTTPACTION: 0,200,153869

AT+HTTPREAD

 

+HTTPREAD: 153869

……

OK

 

         正常功能以及异常处理的流程图如下

        Air系列4G模块AT版本HTTP应用说明



















         在这个过程中,注意事项如下:

         1、发送AT+HTTPACTION命令后,收到OK仅仅表示4G模块开始处理这条命令,并不表示请求发送成功,收到了应答;只有收到+HTTPACTION: n,statusCode,len才表示请求结束,statusCode表示应答成功,其余都表示应答失败

         2HTTP应答数据的缓冲区大小为319488字节,如果返回的http body数据超过了这个大小,则需要断点下载,可以使用AT+HTTPPARA命令,通过设置BREAKBREAKEND参数来实现

2.2TCP被动断开

       发送AT+HTTPACTION命令,和服务器建立了http连接后,如果连接异常被动断开,会输出+HTTPACTION:
,,
提示

2.3PDP被动去激活

       先来看下PDP被动去激活时的AT命令处理序列,如果不理解AT命令含义,请自行参考AT手册

……           //此处省略了PDP激活的过程,参考2.1章节

 

AT+HTTPINIT

 

OK

AT+HTTPPARA=”CID”,1

 

OK

AT+HTTPPARA=”URL”,”www.baidu.com”

 

OK

AT+HTTPACTION=0

 

OK

 

+SAPBR 1: DEACT       //此处PDP被动去激活

 

+HTTPACTION: 0,601,0

 

AT+HTTPTERM

 

OK    
                //
此处无论返回OKERROR还是CME ERROR,都直接跳过,不用做正确性判断

AT+SAPBR=0,1

 

+CME ERROR: 3         //此处无论返回OKERROR还是CME ERROR,都直接跳过,不用做正确性判断

……                //此处省略了PDP激活的过程,参考2.1章节

AT+HTTPINIT

 

OK

AT+HTTPPARA=”CID”,1

 

OK

AT+HTTPPARA=”URL”,”www.baidu.com”

 

OK

AT+HTTPACTION=0

 

OK

 

+HTTPACTION: 0,200,154293

 

         参考2.1章节流程图,右下角的“收到+SAPBR 1: DEACT错误提示,表示PDP被动去激活”为异常处理的触发点

三、常见问题

3.1HTTP支持多连接吗

         目前HTTP仅支持单连接,不支持多连接

3.2HTTPS如何使用

         本文主要描述了基本流程和异常处理,对于HTTPS使用方法没有做过多描述,这一部分,请自行参考AT手册HTTP章节下《使用方法举例》中的SSL证书验证功能的HTTPS流程使用方法;支持的SSL参数,请自行参考AT+SSLCFG命令说明

         如果SSL的参数配置不变,则每次开机运行过程中,仅设置一次即可

3.3、重试多次PDPHTTP应用一直连接失败

         如果重试多次PDP激活,PDP一直激活失败,或者HTTP一直请求应答失败,则尝试使用如下手段恢复:

         1、使用RESET引脚复位模块

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

3.4HTTP如何下载大文件(断点续传)

         在实际的应用场景中,可能需要下载一个非常大的文件,例如几百K字节、几M字节,但是4G模块中HTTP可用的内存缓冲区为300KB左右,当文件大小超过这个缓冲区时,就要使用断点续传功能来分段下载处理了。下面以“下载一个11975260字节的文件”为例,来说明如何使用断点续传功能(注意:本示例仅仅演示了正常流程的HTTP AT命令,完整流程以及异常处理流程请参考本文第二章节)

AT+HTTPINIT

 

OK

AT+HTTPPARA=”URL”,”http://openluat-erp.oss-cn-hangzhou.aliyuncs.com/erp_site_file/product_file/sw_file_20200108162920_Luat_V0028_ASR1802.zip”

 

OK

AT+HTTPACTION=2

 

OK

 

+HTTPACTION: 2,200,0

AT+HTTPHEAD

 

+HTTPHEAD: 454

server: aliyunoss

date: thu, 16 jan 2020 06:50:58 gmt

content-type: application/zip

content-length: 11975260                            //此处的11975260表示文件总大小

connection: keep-alive

x-oss-request-id: 5e2007d108f4be32353a92ae

accept-ranges: bytes

etag: “a5b9cc75c0f26413bbaf00a0fa952bb2”

last-modified: wed, 08 jan 2020 08:29:29 gmt

x-oss-object-type: normal

x-oss-hash-crc64ecma: 16925484473913319613

x-oss-storage-class: standard

content-md5: pbnmdcdyzbo7rwcg+pursg==

x-oss-server-time: 111

 

OK

 

//如下红色指令,表示下载文件的第一个300KB数据

AT+HTTPPARA=”BREAK”,0

 

OK

AT+HTTPPARA=”BREAKEND”,307199

 

OK

AT+HTTPACTION=0

 

OK

 

+HTTPACTION: 0,206,307200

AT+HTTPREAD

 

+HTTPREAD: 307200

……                          //此处输出307200字节数据

OK

 

//如下绿色指令,表示下载文件的第二个300KB数据

AT+HTTPPARA=”BREAK”,307200

 

OK

AT+HTTPPARA=”BREAKEND”,614399

 

OK

AT+HTTPACTION=0

 

OK

 

+HTTPACTION: 0,206,307200

AT+HTTPREAD

 

+HTTPREAD: 307200

……                          //此处输出307200字节数据

OK

 

//此处参考上文的红色或者绿色指令,一直循环读取文件的下一个300KB数据,直到读取结束

……

 

AT+HTTPTERM

 

OK

 

3.5HTTP下载的大文件如何可靠的发送给MCUAT流控)

         3.4 章节中,如下一段AT指令

AT+HTTPREAD

 

+HTTPREAD: 307200

……                          //此处输出307200字节数据

OK

         ……处的307200字节数据,是模块通过UART AT口发送给MCU,在实际传输过程中,由于串口芯片驱动、MCU端的处理能力、波特率的选择都存在不确定性,可能会导致MCU端接收到的数据,实际上没有307200字节,这就要求UART AT口打开流控功能。模块支持硬流控和软流控两种:

1.      硬流控,参考如下步骤操作:

1)      模块和 的UART口,CTSRTS要交叉相连

2)      MCU端固件要支持并且打开硬流控功能

3)      MCU端要发送AT+IFC=2,2命令到模块端,打开模块端的硬流控功能

2.      软流控,参考如下步骤操作:

1)      MCU端固件要支持并且打开软流控功能

2)      MCU端要发送AT+IFC=1,1命令到模块端,打开模块端的硬流控功能


转载请注明原文链接:Air系列4G模块AT版本HTTP应用说明
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址