4.1 GPRS 与 TCP/IP 简介

  • GPRS 是通用分组无线业务(GeneralPacket Radio Service)的简称,是一 种以全球手机系统(GSM)为基础的数据传输技术,可说是 GSM 的延续。GPRS 和以往连续在频道传输的方式不同,是以封包(Packet)式来传输。
  • GPRS 通信 模块,采用高性能工业级无线模块及嵌入式处理器,以实时操作系统作为软件支 撑平台,内嵌 TCP/IP 协议,为用户提供高速,稳定可靠,永远在线的透明数据 传输通道。我们 GPRS 通信,其实都是指通过 GPRS 实现 TCP/IP 通信。
  • TCP/IP 是互联网的核心协议,也是大多数网络应用的核心协议。
  • TCP/IP 是一个协议簇,指基于 IP 的一系列通信协议的总称,它是一个分层的结 构,如下图 4-2 所示。

4.2

  • 图 4-2 TCP/IP 分层结构

  • 常用的互联网应用层协议如 HTTP FTP DNS都在这个协议簇中,都是通过传 输层的 TCP 和 UDP 通信,绝大多数用户使用 GPRS 功能,都是为了使用 TCP 和 UDP 进行数据传输的。
  • TCP(Transmission ControlProtocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。UDP(User Data Protocol,用户数据报协议)是与 TCP 相对应的协议。它是面向非连接的协议, 它不与对方建立连接,而是直接就把数据包发送过去!TCP 适合对数据传输可靠 性要求高的场合,UDP 适合要求不高,且大量传输数据的场合。UDP 相对于 TCP 会节省流量。

4.2 TCP 通信测试

  • 目前 Air系列系列模块共支持 6 路链接。连接模式分成2 种,单路链接模式 和多路链接模式。将使用到的指令有以下几个(可以查看Air 系列 AT 命令手 册),这些都是 GPRS 通信业务相关的 AT 命令。如图 4-3 所示。

4.3

4.3-2

  • Air系列模块实现联网通信,需要买一张联通或者移动的 GSM 卡,且已经开通流量(移动数据业务)。 局域网内可以进行 TCP 和 UDP 通信,由于 GPRS 模块只能和具有公网IP的服务 器等设备通信,因此需要准备一台有公网 IP 的电脑或者云服务器。
  • 如果电脑的 IP 是路由器分配的,且路由器的外网 IP 为公网 IP,则可以通过路由映射的方法,把本地 IP 端口映射到公网IP 端口。在此举例说明这个 GPRS 通信过程,例如本地电脑是路由器下内网IP(如 192.168.1.101),路由器外是 公网 IP(如113.89.239.227),需要进行地址映射:把内网的端口映射到外网的某一端口,最好是同一个端口,比如 8080。这样发给113.89.239.227:8080 的数据都会转发给 192.168.1.101:8080,同样 192.168.1.101:8080 发出的 数据也会通过113.89.239.227:8080 发到其他 IP。
  • 提示:公网 IP 不是固定的,在进行 TCP 链接测试之前,都要确认公网 IP 是否 变更,否则测试连接都是失败。由于本地 IP 是路由器 DHCP 服务器分配的,所有时是不固定的。如果这样,用户每次测试的时候需要查看一下本机 IP,变了 就要重新设置,会很麻烦,为了省去这种麻烦,用户可以把电脑设置成固定 IP。

4.4

  • 图 4-4 GPRS 通信测试过程

4.2.1 鉴别是否具有公网 IP

  • 前面已经提到过,GPRS 通信测试,所连接的服务器设备必须具有公网 IP 才 行,然而很多用户不知道自己的电脑或者路由器所连接的外网是不是公网,这时可以通过查找对比 IP 地址方式来鉴别。
  • 鉴别方法:直接打开浏览器,百度输入 搜索关键词 IP,查看本地公网 IP 地址,然后打开查看本地电脑或者路由器的 IP 地址,与百度上所查找到的 IP 是否一致,如果一致,说明服务器设备连接的 就是公网,否则不是
  • 没有公网 IP 的用户,可以连接云服务器进行通信测试。 如下图 4-5 所示。

4.5

  • 图 4-5 百度查询本地公网 IP

4.2.2 连接云服务器通信测试

  • 有云服务器的用户,可以使用 GPRS 模块连接云服务,同样可以实现 TCP/IP 通信测试。GPRS**模块配置过程如下:
如下图 所示 在服务器上建立一个 TCP 连接的服务器,
发送命令 AT+CGCLASS=”B” 设置模块移动台类别为”B”类型
发送命令 AT+CGATT=1 设置附着 GPRS 业务(即开启流量)
发送命令 **AT+CIPSTART=”TCP”,”120.xx.xxx.249”,”8080”
设置模块连接云服务器平台的 IP 地址和端口号。
发送命令 AT+CIPSEND **设置发送数据
testing 待出现“>”,输入 Air模块测试 Freestrongfrom TCP client!
发送命令 1A(十六进制数 0x1A**设置输入内容完成结束符

整个演示流程如下图 4-5 至4-7 所示。

4.6

  • 图 4-6 建立 TCP 服务器**

4.7

  • 图 4-7TCP 连接云服务器

4.2.3 连接本地电脑服务器通信测试

  • 连接路由器的用户,测试前先进行路由器地址映射。 路由器地址映射:以水星路由器为例,在路由器的后台界面“转发规则”
  • -->DMZ 主机-->输入主机IP 地址,选择启用、并点击保存。DMZ 主机是把选定的 IP 暴露到外网,可以随机选择端口进行通信。其他路由器可能有“端口映射”、 “虚拟服务器”等端口映射的其他叫法,本质上都是一样的。如下图 4-6所示。

4.8

  • 图 4-6 路由器地址映射

  • 配置本机为 TCP 服务器:**打开网络调试助手软件,软件会自动识别本地电脑 的 IP,然后选择 TCP Server ,端口号设置为 8080 或其他 5000 以上的端口(必须 为公网或者是映射到公网的端口)如图 4-7 所示。

4.9

  • ​ 图 4-7 电脑上建立 TCP 服务器

  • GPRS 模块配置过程:其和连接云服务器一样操作,唯独在使用该命令AT+CIPSTART 设置连接本地服务器的 IP 地址和端口不相同,其他设置过程都一 样,演示如下图 4-8 所示。

4.10

  • 图 4-8 连接本地电脑服务器

4.11

  • 图 4-9 服务器收到数据

4.3 UDP 通信测试

  • UDP 和 TCP 传输过程一样,只不过 UDP 传输是点对面的操作,而 TCP 是点对 点操作。只需修改这 2 个命令,AT+CIPSTART 及 AT+CLPORT 即可完成 UDP 配置。 演示过程如下
  • 图 4-10 UDP 连接测试(连接云服务器)

4.12

  • 图 4-11 UDP 连接测试(连接云服务器)

4.13

更多的TCPIP命令详解以及相关的用法,请到Luat软件开发相关文档 下载相关模块的AT命令手册。