4G模块EC200S使用

一、简介

EC200S 是一系 LTE-FDD/LTE-TDD/GSM 无线通信模块,支持 LTE-FDD、LTE-TDD、EDGE 和 GPRS网络数据连接,支持最大下行速率
10Mbps 和最大上行速率5Mbps。在封装上兼容移远通信多网络制式LTE Standard EC2x(EC25、EC21、EC20 R2.0、EC20 R2.1)和
EC200T/EG25-G/EG21-G 模块以及UMTS/HSPA+ UC20/UC200T 模块,实现了3G 网络与4G 网络之间的无缝切换。

1.1支持的频段

网络制式频段
LTE-FDD B1/B3/B5/B8
LTE-TDD B34/B38/B39/B40/B41
GSM 900/1800MHz

1.2模块性能

  • 供电:VBAT供电电压范围:3.4V~4.3V

  • LTE特性:

    • 支持 1.4/3/5/10/15/20MHz 射频带宽
    • LTE-FDD:最大下行速率 10Mbps,最大上行速率 5Mbps
    • LTE-TDD:最大下行速率 7.5Mbps,最大上行速率 1Mbps
  • 网络协议特性:支持TCP/UDP/MQTT/PPP/FTP/HTTP/HTTPS/SSL协议

  • AT命令:3GPP TS 27.007 和 3GPP TS 27.005 定义的命令,以及移远通信增强型 AT 命令

  • 网络指示:NET_MODE 和 NET_STATUS 两个引脚指示网络状态

  • 软件升级:可通过 USB 接口或 FOTA**升级

1.3引脚描述

EC200S 模块共有 144 个引脚,其中 80 个为 LCC 引脚,64 个为 LGA 引脚。包括 电源供电 ,(U)SIM 接口,USB 接口,UART 接口, PCM 和 I2C 接口,ADC 接口,状态指示接口,FORCE_USB_BOOT 接口

 

 

注意:
1. 1) 表示 WAKE UP_IN 和 FORCE_USB_BOOT 引脚在模块开机成功前禁止上拉到高电平。
2. 若 PCM_CLK、SD_SDIO_CLK、I2C_SCL、WLAN_SLP_CLK 和 WLAN_SDIO_CLK 引脚不用,为
了防止对射频产生干扰,建议靠近这三个引脚处分别贴一个 33pF 电容。其他不用的引脚和RESERVED 引脚悬空,所有的 GND 引脚连接到地网络上。
3. 引脚 85~112 需做接地处理。引脚 73~84 无需进行原理图及 PCB 封装设计,且该区域禁止铺铜和布线。
4. WLAN 接口和 SD 卡接口功能正在开发中。
5、EC200 LCC 的模块上电不会自启动的,所以需要通过拉低这个 PWR 引脚电压才可以启动。
6、网络灯不会立刻点亮,一般至少 5S 左右网络灯才会亮。

  

二、AT指令

2.1 AT

AT 返回 OK,代表模块正常。

highlighter- accesslog
[09:52:22.822]发→◇AT
□
[09:52:22.828]收←◆AT

OK

2.2 AT+CIMI

AT+CIMI 是查询是否有卡,如果有卡,会返回 460,如果没有卡,会返回 ERROR。

highlighter- accesslog
[09:54:46.177]发→◇AT+CIMI
□
[09:54:46.181]收←◆AT+CIMI
460081290003366

OK

2.3 AT+CPIN?

查询 SIM 卡状态,返回 READY 则表示SIM卡正常,如果 20 秒后还无法识别 SIM 卡,重新启动模块。

highlighter- makefile
[10:03:51.501]发→◇AT+CPIN?
□
[10:03:51.508]收←◆AT+CPIN?
+CPIN: READY

OK

2.4 ATI

ATI是查询模块版本的,如果有连接模块,会打印出模块的版本信息

highlighter- makefile
[10:00:38.632]发→◇ATI
□
[10:00:38.639]收←◆ATI
Quectel
EC200S
Revision: ***********

OK

2.5 AT+CSQ

AT+CSQ 是查询信号的,如果注册网络成功,会有信号产生,最大 31,如果信号小于 10,
说明当前网络信号不佳。

highlighter- makefile
[09:55:33.065]发→◇AT+CSQ
□
[09:55:33.070]收←◆AT+CSQ
+CSQ: 15,99

OK

2.5 AT+CGATT?

AT+CGATT?是查询注册网络情况,如果注册成功,会返回 1,如果失败,返回 0。

highlighter- makefile
[09:56:00.865]发→◇AT+CGATT?
□
[09:56:00.870]收←◆AT+CGATT?
+CGATT: 1

OK

2.6.1 AT + CREG?

查询模组是否注册上GSM网络,如果 90秒后未能在 CS 上注册域名服务,重新启动模块。如果返回 1 或 5 ,代表 CS 服务注册成功。
+CREG:0,1 表示已注册上本地网,+CREG:0,5表示注册上漫游网。

highlighter- makefile
[10:07:28.537]发→◇AT + CREG?
□
[10:07:28.543]收←◆AT + CREG?
+CREG: 0,1

OK

2.6.2 AT + CGREG?

查询模组是否注册上GPRS网络,+CGREG:0,1 表示已注册上本地网,+CGREG:0,5表示注册上漫游网。

highlighter- makefile
[10:09:05.347]发→◇AT+CGREG?
□
[10:09:05.353]收←◆AT+CGREG?
+CGREG: 0,1

OK

2.7 AT+QIACT=1

AT+QIACT=1 是激活场景,如果激活成功,会返回 OK,这一步很重要,必须要激活,否则没法连接服务器,因为这个地方是让模块获取到基站分配的 IP,如果没获取到 IP,那是没法正常工作的。

highlighter- routeros
[09:56:30.139]发→◇AT+QIACT=1
□
[09:56:30.144]收←◆AT+QIACT=1
OK

2.8 AT+QIACT?

AT+QIACT?是获取 IP 的,没有激活没有 IP ,激活成功才有 IP,有 IP,那么就可以操作连接服务器等工作。

highlighter- ada
[09:58:25.930]发→◇AT+QIACT?
□
[09:58:25.935]收←◆AT+QIACT?
+QIACT: 1,1,1,"10.82.198.229"

OK

AT指令总结

指令解析
AT 测试指令,若返回OK,则模块可正常通信
AT+CPIN? 检查SIM卡是否在位
AT+CSQ 查询信号质量
AT+CREG? 查询入网状态
AT+CGATT=1 激活网络
AT+CGATT? 查询激活状态

三、TCP测试

1、AT+QIOPEN

该命令用于打开套接字服务。

highlighter- xml
打开 Socket 服务:
AT+QIOPEN=?1,?2,<service_type>,<IP_address>/<domain_name>,<remote_port>[,<local_po CONNECTrt>[,<access_mode>]] :

?1:整数类型。上下文ID。范围是1-16。
?2:整数类型。套接字服务索引。范围是0-11。

<SERVICE_TYPE>:字符串类型。套接字服务类型。

highlighter-
1、“ TCP ” :作为客户端启动TCP连接
2、“ UDP ”:作为客户端启动UDP连接
3、“TCP LISTENER” :启动TCP服务器以侦听TCP连接
4、“UDP SERVICE” :启动UDP服务

<IP_address>:字符串类型。

highlighter- elm
如果<service_type>是TCP或UDP ,则表示远程服务器的IP地址,例如 “220.180.239.212”。
如果<service_type>是TCP LISTENER或UDP SERVICE 地址,请输入“127.0.0.1”。

<domain_name>:字符串类型。远程服务器的域名地址。
<remote_port> :远程服务器的端口,仅在<service_type>为“TCP”或“UDP”时有效。范围是0-65535。

<LOCAL_PORT> :本地端口。范围是0-65535。

highlighter- elm
如果<service_type>是“TCP LISTENER”或“UDP SERVICE”,则此参数必须指定。
如果<service_type>是“TCP”或“UDP”。如果<local_port>为0,那么本地端口将是自动分配。否则,将按指定分配本地端口。

<access_mode> :整数类型。套接字服务的数据访问模式。

highlighter- arcade
0: 非透传Buffer模式
1: 非透传Push模式
2: 透传模式

[10:20:23.055]发→◇AT+QIOPEN=1,0,"TCP","47.92.146.210",8888,0,1

[10:20:23.062]收←◆AT+QIOPEN=1,0,"TCP","47.92.146.210",8888,0,1
OK

2、AT+QISEND

该命令用于发送数据,到指定套接字服务<access_mode>是非透传Buffer模式或非透传Push模式的数据可以是通过AT+QISEND发送。如果数据成功发送到模块,将返回“ SEND OK ” 。否则返回“ SEND FAIL ” 或“ ERROR ”,“ SEND FAIL ” 表示发送缓冲区已满可以尝试重新发送数据。“ERROR”表示在发送过程中遇到错误应该延迟一段时间来发送数据。“SEND OK”并不意味着数据已成功发送到服务器。可以查询数据是否通过AT + QISEND =0,0命令到达服务器。透传模式下不需要AT指令发送数据。

2.1 Buffer模式下发送定长数据

2.2 Buffer模式下从服务器接受数据

2.3 非透传Push模式下发送定长数据

2.4 发送不定长数据

2.5 发送16进制字符串

[10:54:47.095]发→◇AT+QISENDEX=0,"313233"
□
[10:54:47.104]收←◆AT+QISENDEX=0,"313233"
SEND OK

[10:54:47.492]收←◆
+QIURC: "recv",0,3
123

3、AT+QICLOSE

通信完毕之后,可以使用命令关闭TCP连接:AT+QICLOSE=<connectID>[,<timeout>]

highlighter- routeros
[10:57:38.719]发→◇AT+QICLOSE=0
□
[10:57:38.726]收←◆AT+QICLOSE=0
OK

4、AT+QIDNSGIP(需要打开 Socket 服务才可以使用)

对域名解析,命令格式:AT+QIDNSGIP=<contextID>,<hostname>

返回参数:
+QIURC: "dnsgip",<err>,<IP_count>,<DNS_ttl>
……
+QIURC: "dnsgip",<hostIPaddr>

highlighter- armasm
err:整型,操作错误代码;
IP_count:表示该域名对应几个ip;
DNS_ttl:DNS的TTL值;
hostIPaddr:域名解析出的ip地址;
highlighter- csharp
[11:00:02.315]发→◇AT+QIDNSGIP=1,"www.baidu.com"
□
[11:00:02.322]收←◆AT+QIDNSGIP=1,"www.baidu.com"
OK

[11:00:02.404]收←◆
+QIURC: "dnsgip",0,2,10

+QIURC: "dnsgip","183.232.231.174"

+QIURC: "dnsgip","183.232.231.172"

四、MQTT测试

MQTT里面的收发有专业术语:发是发布(publish),收是订阅(subscribe)。同样 MQTT 也是需要有服务器的,这个服务器一般不需要用户去搭建。服务器主要做数据转发功能,不参与数据的介入。换句话说服务器不会对我们发数据,只会对发来的数据进行检测,从而返回相关的处理流程给到设备。最大的特色就是支持了模块板与模块板之间的数据收发功能。下面是接入流程。

 

1、接入服务器

AT+QMTOPEN=0,"47.92.146.210",1883

highlighter- csharp
[11:11:20.361]发→◇AT+QMTOPEN=0,"47.92.146.210",1883
□
[11:11:20.367]收←◆AT+QMTOPEN=0,"47.92.146.210",1883
OK

[11:11:20.582]收←◆
+QMTOPEN: 0,0

2、发送ID验证服务器

MQTT有一个登录约束条件,每一个用户登录服务器时,需要发送一个唯一的ID(有的服务器是有登录账号和密码),ID可以选用模块IMEI号作为登录ID,这样就可以唯一啦。发送 ID 到服务器进行审核,审核通过后返回 0, 0,0,如果返回的不是三个 0,表明审核失败。查看是否需要账号密码,还是连接断开等问题。登录成功之后,用户就可以随意的进行数据发布与订阅。
AT+QMTCONN=0,"唯一的ID"

highlighter- csharp
[11:18:22.609]发→◇AT+QMTCONN=0,"clientExample"
□
[11:18:24.975]收←◆
RDY

3、数据订阅与发布

发送数据出去,要告诉别人你的数据是发给谁的。就像寄快递:快递公司要有一个收件人和快递件。收件人就是发布数据的“主题”,快递件就是发布的“数据”。因此发布数据的两个要素是:一个是主题收件人,一个是包裹内容,

3.1主题订阅

`AT+QMTSUB=0,1,"主题名"

highlighter- csharp
[11:25:45.151]发→◇AT+QMTSUB=0,1,"ec200s",0
□
[11:25:45.159]收←◆AT+QMTSUB=0,1,"ec200s",0
OK

[11:25:45.318]收←◆
+QMTSUB: 0,1,0,0

3.2发布数据

AT+QMTSUB=0,0,0,0,"ec200s","hello,MQTT"

highlighter- csharp
[11:32:47.118]发→◇AT+QMTSUB=0,1,"ec200s",0
□
[11:32:47.126]收←◆AT+QMTSUB=0,1,"ec200s",0
OK

[11:32:47.310]收←◆
+QMTSUB: 0,1,0,0

+QMTRECV: 0,0,"ec200s","hello mqtt."

此外也可以通过软件mqtt.fx实现在自己电脑或者手机端进行数据的订阅与发布

五、EC200S-CN模块接入阿里云物联网平台

5.1省略部分

注册账号、创建产品、创建设备

阿里云三元素要保存(包括 DeviceSecret、ProductKey与DeviceSecret),后续需要用到。产品信息里面有 TOPIC 主题类列表,我们可以用到的是物模型通信 TOPIC,分别用到属性上报和属性设置,分别代表上发和下发数据。
主题。

5.2 AT+CGPADDR

此命令用于查看IP地址。查询到IP后,代表已经正常注网啦
AT+CGPADDR=1

highlighter- routeros
[16:52:35.657]发→◇AT+CGPADDR=1
□
[16:52:35.667]收←◆AT+CGPADDR=1
+CGPADDR: 1,"10.163.58.149"

OK

5.3 AT+QMTCFG

MQTT 参数配置是和设备的参数是需要对应的,分别是对应产品 key,设备名称以及设备密钥,一一对应。

at+qmtcfg="aliauth",0,"a16UbXBtHSi","Soil_sensor","f1cc2d92ff99df9dac26bb2765db42ab"

highlighter- ada
[17:00:08.267]发→◇at+qmtcfg="aliauth",0,"a16UbXBtHSi","Soil_sensor","f1cc2d92ff99df9dac26bb2765db42ab"
□
[17:00:08.275]收←◆at+qmtcfg="aliauth",0,"a16UbXBtHSi","Soil_sensor","f1cc2d92ff99df9dac26bb2765db42ab"
OK

5.4 AT+QMTOPEN

Open a Network for MQTT Client,采用域名的方式登录

打开一个MQTT客户端网络

AT+QMTOPEN=0,"iot-as-mqtt.cn-shanghai.aliyuncs.com",1883

highlighter- csharp
[17:02:54.358]发→◇AT+QMTOPEN=0,"iot-as-mqtt.cn-shanghai.aliyuncs.com",1883
□
[17:02:54.366]收←◆AT+QMTOPEN=0,"iot-as-mqtt.cn-shanghai.aliyuncs.com",1883
OK

[17:02:54.783]收←◆
+QMTOPEN: 0,0

5.5 AT+QMTCONN

AT+QMTCONN Connect a Client to MQTT Server

AT+QMTCONN=0,"DeviceName" //连接MQTT服务器

highlighter- csharp
[17:06:40.986]发→◇AT+QMTCONN=0,"2553"
□
[17:06:40.993]收←◆AT+QMTCONN=0,"2553"
OK

[17:06:41.200]收←◆
+QMTCONN: 0,0,0


可以看到此时阿里云物联网平台显示在线了,表明现在设备与平台端的连接
已经打通了,那么就可以进行数据订阅与发布。发布数据需要用 A-LINK 格式要求,除非用透传,所以要用 ALINK 的协议要求规范来发数据。
 点击未激活旁边的绿色开关2次便可激活,现在的设备上线后可自动激活不用再手动点击绿色开关两次。


5.6 AT+QMTSUB

位置:产品-->Topic类列表-->自定义Topic
AT+QMTSUB=0,1,"/a10hC2CWMGC/DeviceName/user/get",0 //订阅服务器发布主题即能接受到服务器下发的数据

highlighter- makefile
[16:35:42.552]收←◆AT+QMTCONN=0,\"Soil_sensor\"
OK

[16:35:42.701]收←◆
+QMTCONN: 0,0,0

5.7 AT+QMTPUB

从设备发布数据到云端

highlighter- mipsasm
发布主题消息:AT+QMTPUB=0,0,0,0,"/sys/ProductKey/DeviceName/thing/event/property/post"

发布JSON数据:{params:{IndoorTemperature:27.5}}

数据结束符:0x1A

参考资料:

1、Quectel_EC20_TCPIP_AT_Commands_Manual_V1.0
2、Quectel_MQTT_Application_Note_V1.0
3、Quectel_EC200S_硬件设计手册_V1.0
4、MQTT-3.1.1-CN中文手册.pdf
5、墨子号EC200模块板使用说明书

posted @ 2023-12-28 22:01  星火撩原  阅读(255)  评论(0编辑  收藏  举报