跳转至

Air700ECQ AT TCP 快速入门教程

一、AT 命令概述

AT 命令是一种古老的使用方式,从有线通信就开始使用了。

距离到 2024 年的今天, 已经有超过 40 年的使用历史。

AT 命令的使用场景是,把 4G 模组当做一个黑盒配件,设备必须有一个主控 CPU。

设备的主控 CPU, 通过串口,(也可以是 SPI 或者 USB,但是 99% 的场景都是通过串口),发送一个 "AT"字符串开头的指令, 像 4G 模组请求各种服务。

4G 模组完成服务后, 回复一个字符串,向主控 CPU 做应答。

通过这样一系列的发送请求,应答的交互方式, 使设备具备了通信能力。

AT 命令发展到今天, 功能日趋完善。

厂家的 4G 模组的 AT 指令至少具备如下完善的功能:

  1. 基本的网络查询指令 信号强度查询,运营商查询,SIM 卡状态查询,IMEI 查询,注册网络状态查询,等等;
  2. 各种通信协议的支持 TCP/UDP 协议, HTTP 协议,SSL 协议,FTP 协议,MQTT 协议,等等;
  3. 模组内部资源的使用 电话本,文件系统的存入,删除,查询,等等。

尽管 AT 使用起来很便利,但是 AT 指令方式依然有几个明显的缺点:

  1. 运行效率低 只能是两个物理 CPU 通过串口这样的介质做异步通信, 沟通效率很低,如果要做高效的业务和通信的整合动作的话, 代价更大。
  2. 需要一个额外的主控 CPU;

  3. 对于复杂度不高的物联网设备,虽然 4G 模组本身的运算资源和存储资源已经过剩, 但是为了使用 AT 指令,依然需要一个额外的主控 CPU。

  4. 为了节约成本,主控 CPU 往往会选择一个资源不太大的型号,通常无法运行高级语言, 所以往往要用 C 语言开发业务逻辑。
  5. 这需要研发团队熟悉主控 CPU 的开发架构,仍然是一个不小的学习成本。
  6. 而 4G 模组因为资源足够大, 大多数 4G 模组已经支持脚本开发应用了,
  7. 所以省掉设备主控 CPU,直接用 4G 模组开发应用, 研发成本更低。

尽管 AT 指令有这些缺点, 但是由于 AT 指令有庞大的用户群, 基于使用的惯性, AT 指令在今天仍然有非常大的使用比例。

二、本教程实现的功能概述

本文教你怎么使用 AT 命令,通过几个简单的步骤,就可以让合宙 4G 模组连接上一个 TCP 服务器,并且模组和服务器之间实现数据的双向传输!

本教程实现的功能定义是:

  1. 通过网页端启动一个 TCP 服务器;
  2. 4G 模组插卡开机后,连接上 TCP 服务器;
  3. 4G 模组向 TCP 服务器发送 data from 4G module,服务器可以收到数据并且在网页端显示;
  4. TCP 服务器网页端向 4G 模组发送 data from tcp server,4G 模组可以收到数据并且通过串口输出显示;

三、准备硬件环境

工欲善其事,必先利其器。在正式介绍本功能示例之前,需要先准备好以下硬件环境。

本文章使用 Air700MQ 核心板做演示;

参考:硬件环境清单,准备以及组装好硬件环境。

四、准备软件环境

工欲善其事,必先利其器。在正式介绍本功能示例之前,需要先准备好以下软件环境。

在量产的项目硬件设计中,一般都是由主控 MCU 通过 UART 给 4G 模组发送命令实现具体的业务逻辑;

在本教程中,为了测试方便,没有使用主控 MCU;

而是使用了 PC 电脑上的一个串口工具 LLCOM 给 4G 模组发送命令来实现演示功能;

1. Luatools工具

2. LLCOM 串口通信工具

3. 合宙TCP/UDP web测试工具

4. 本教程使用的AT固件版本号是:AirM2M_700EMQ_V2019_LTE_AT,如果版本号不正确,参考:固件版本确认和烧录检查确认。

五、开发板开机,确认固件正确

参考:固件版本确认和烧录,进行版本确认和烧录。

六、打开 LLCOM 和 WEB 测试工具

6.1 打开 LLCOM 并且配置正确

此时需要关闭 Luatools 工具,因为 Luatools 会占用 AT 命令端口!!!

打开 LLCOM 工具后,按照下图提示进行配置并且验证

6.2 打开 WEB 测试工具,启动一个 TCP 服务器

访问 WEB 测试工具 ,启动一个 TCP 服务器,如下图所示:

七、AT 命令控制实现具体的业务逻辑

7.1 查询 SIM 卡状态

每隔 1 秒发送 AT+CPIN?查询 SIM 卡状态,直到收到 +CPIN: READY 表示正常识别的 SIM 卡;

如果模组主动上报 SIM REMOVED 或者查询返回 +CME ERROR: 10,表示没有检测到 SIM 卡;

如果 10s 内没有仍然没有识别到 SIM 卡,建议重启模块,如果重启后问题依旧,需要检查卡是否有插好,或者排查板子的硬件连接。

正常如下图所示:

7.2 查询模组信号强度

每隔 1 秒发送 AT+CSQ 查询信号强度,直到信号强度正常;

一般来说,信号强度 18 以上才能稳定通讯;

11-17 存在断网的可能;

10 以下基本连接不上;

正常如下图所示:

7.3 查询网络注册情况

每隔 1 秒发送 AT+CGATT?查询是否成功注册网络,直到收到 +CGATT: 1;

值为 1 表示注册成功,正常情况下注册时间不会超过两分钟,如果超过两分钟没有注册可以重启开发板再试下;

值为 0 表示没有注册成功;

正常如下图所示:

7.4 激活数据网络

AT+CSTT 命令表示配置数据网络;

AT+CIICR 表示激活数据网络;

AT+CIFSR 表示查询是否激活成功,如果返回一个 ip 地址,表示激活成功;

正常如下图所示:

7.5 连接 TCP 服务器

使用 AT+CIPSTART 命令连接 WEB 测试工具启动的 TCP 服务器,返回 CONNECT OK 表示连接成功;

正常如下图所示:

7.6 4G 模组发送数据给 TCP 服务器

AT+CIPSEND 命令可以发送指定长度的数据给服务器;

本示例中,要发送 data from 4G module 数据给服务器,这段数据有 19 个字符,但是因为 LLCOM 工具上勾选了发送回车换行选项,所有在这 19 个字符后面会紧跟着回车和换行两个字符,所以一共要发送 21 个字符给服务器;

正常如下图所示:

此时再观察下 WEB 测试工具网页,可以看到已经收到了模组发送的数据,如下图所示:

7.6 TCP 服务器发送数据给 4G 模组

在 WEB 测试工具网页端,输入 data from tcp server,然后点击发送按钮,如下图所示:

此时观察 LLCOM,可以看到 4G 模组收到了数据,如下图所示: