}
}
cat1_timeout = 0;
printf("simcard ok\r\n");
while(Iot\_SendCmd(RSSI,"+CSQ", 200)){
HAL\_Delay(1);
cat1_timeout ++;
if(cat1_timeout >= 2000){
return;
}
}
cat1_timeout = 0;
while(Iot\_SendCmd(CEREG,"0,1", 200)){
HAL\_Delay(1);
cat1_timeout ++;
if(cat1_timeout >= 2000){
return;
}
}
printf("网络注册 ok\r\n");
cat1_timeout = 0;
while(Iot\_SendCmd(CGATT,"+CGATT: 1", 200)){
HAL\_Delay(1);
cat1_timeout ++;
if(cat1_timeout >= 2000){
return;
}
}
printf(" 网络附着 ok\r\n");
}
### 2.3 PDP 上下文
我们在看文档的时候,会有一个 PDP 上下文的概念,这里我们需要对这个概念说明一下。
>
> PDP,Packet Data Protocol,分组数据规程,移动通信用户在发送和接收分组数据时应用的协议,应用于 GPRS以及 WCDMA 等分组网络。
> .
> PDP context 即 PDP 上下文,保存用户面进行隧道转发的所有信息,包括 RNC / GGSN 的用户面 IP 地址、隧道标识和 QoS 等。
>
>
>
实际上如果对网络不了解的看完了上面的基本概念,应该还是不理解,所以我这里用白话文简单解释一下:
就是说我们需要用 PDP(Packet Data Protocol )传输数据,那么就必须给他建立一个背景,就是所谓的上下文,你得告诉 SGSN 和 GGSN (什么是 SGSN 和 GGSN ,往下面看,就类似于中转站,网关类) 一些基本信息 :本地标识(cid),你想要的 pdp\_type(这里就是IP),你的接入点信息。
>
> 接入点不同的运行商是不同的:
> 联通:UNINET 移动:CMNET 电信:CTNET
>
>
>
我们不把 PDP 上下文用专业的术语去理解,简单的说,PDP 上下文就是在你准备连接 Internet 传输数据之前,必须要做的一些基本配置,给你发个通讯卡,后面你就可以传输数据了,激活一个 PDP 上下文意味着发起一个分组数据业务呼叫。
#### 2.3.1 什么是 SGSN 和 GGSN ?
在上面介绍 PDP 的时候提到过 SGSN 和 GGSN ,关于这一块,我也是参考前人的博文:
[移动数据通信网络工作原理(SGSN&GGSN)]( )
图片引用至上面推荐博文:
![在这里插入图片描述](https://img-blog.csdnimg.cn/89271832f0e64b95b6f5843a4e6069e1.png)
内容引用至上面推荐博文:
>
> **SGSN**
> SGSN主要用于为在其地理范围内的移动站传递数据包,相当于无线网络中的路由节点。它可以进行分组路由和转发,移动性管理(附着,去附着和位置管理),逻辑链路管理,鉴权以及计费功能。SGSN的位置寄存器保存着位置信息,比如当前的小区。
> SGSN的主要功能包括:
> 1 完成和GGSN的通信,通过GTP协议将用户数据传递给GGSN,并将GGSN返回的数据传递给用户
> 2 当用户地理位置发生变化,执行移动性管理。
> **GGSN**
> GSGN作为整个GPRS/UMTS网络的网关,位于GPRS网络和外部分组交换网络(Internet)之间。网关的作用能将一种协议格式的数据转换为另一种格式的数据。
> GGSN把来自的SGSN的GPRS数据包转化为适当的分组数据协议格式,比如IP,然后再把它们发送到相应的分组数据网络,比如广域有线网。反之亦然。
> **SGSN和GGSN的区别**
> 所以,GGSN和SGSN的主要区别就在于,GGSN作为网关,是在不同的通信网中转换协议,而SGSN作为路由,只是在使用相同协议的网络中发送、接受以及延迟它的数据包。
> 另外,GGSN能够实现地址的转换,比如把无线网络内部地址(PDP地址)转换为一个分组数据网络协议地址(IP地址),而SGSN只能实现PDP地址映射,即根据一个地址,映射到相同种类的另一个地址。可见,我们常说的3、4G网络的IP地址,其实就是对应GGSN的出口IP地址。
>
>
>
到这里,一些开始使用需要了解的基础问题都已经说明了,那么下面其实就可以直接开启 HTTP 的使用了。
## 三、 HTTP 流程
上面准备工作做完了,我们接下来往下面进行。
### 3.1 客户端
客户端实际上就是我们的板子,在上面我们已经给出了 EC800M 上电初始化的流程。
在完成上述的初始化以后,我们就可以按照官方手册进行下去了,本部分我们主要使用图示和实际测试代码给出说明。
我们来回顾一下上