转载https://blog.csdn.net/Mculover666/article/details/105877183?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.compare&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.compare
移远 EC20 模组(4G通信模组)AT指令测试 TCP 通信过程

移远EC20 4G 模组

LTE Standard EC20 R2.1是移远通信推出的 LTE Cat 4 无线通信模块,采用 LTE 3GPP Rel.11 技术,支持最大下行速率 150Mbps 和最大上行速率 50Mbps,使用LCC封装,主要特点有:

供电电压: 3.3V~4.3V,典型值 3.8V
支持的网络协议栈众多
TCP/UDP/PPP/FTP/HTTP/NTP/PING
QMI/NITZ/CMUX/HTTPS/SMTP/MMS/FTPS/SMTPS/SSL/FILE
驱动支持众多:
USB 虚拟串口驱动
RIL 驱动、NDIS 驱动、ECM 驱动、Gobinet 驱动、Linux qmi wwan 驱动:
GNSS支持:GPS/GLONASS/BeiDou/Galileo/QZSS

  1. 环境准备
    1.1. 硬件准备
    EC20通信模组+USB转串口+一条USB线:

模组引脚图如下:

1.2. 软件准备
QCOM串口助手
EC20通信模组测试AT命令脚本(EC20.ini)
Windows USB 驱动
使用AT指令测试移远EC20模组有两种方法:

① 第一种是使用USB转串口连接模组:

② 第二种是直接使用USB线连接到模组,使用虚拟AT串口测试。

本文使用第二种方法,将模组直接通过USB线连接到电脑之后,安装官方提供的驱动,驱动安装成功后在设备管理器中即可看到虚拟AT串口:

使用QCOM工具打开该串口,波特率115200-8-N-1:

1.3. 文档准备
EC20 AT命令手册:Quectel_EC20_R2.1_AT_Commands_Manual_V1.0.pdf
EC20 TCP/IP应用手册:Quectel_EC2x&EG9x&EM05_TCP(IP)_AT_Commands_Manual_V1.0.pdf
此文档来自于移远官方!阅读本教程时,关于AT指令的详细说明请参考该文档!

  1. 模组信号查询与网络查询AT指令
    AT
    指令:AT

功能:测试AT指令功能是否正常

示例:

ATOK

AT+CPIN?
指令:AT+CPIN?

功能:查询SIM卡是否正常,返回ready则表示SIM卡正常

示例,如果SIM卡插入成功,则返回结果为:

AT+CPIN?

+CPIN: READY

OK

如果未插入SIM卡,则返回结果为:
AT+CPIN?

+CME ERROR: 10

AT+CSQ
指令:AT+CSQ

功能:查询模组的信号强度,第一个值为0-31则正常,99为不正常

示例:

AT+CSQ+CSQ: 17,0OK

此处有问题,模组实际返回+CSQ:22,99

AT+CREG?
指令:AT+CREG?

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

示例:

AT+CREG?+CREG: 0,1OK

AT+CGREG?
指令:AT+CERGE?

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

示例:

AT+CGREG?+CGREG: 0,1OK
  1. 激活移动场景
    必须在查询GPRS网络已正常注册网络的情况下进行本节实验!

AT+QICSGP=1,1,“CMNET”
指令:AT+QICSGP=1,1,“CMNET”

功能:设置GPRS的APN,移动CMNET,联通UNINET

示例:

AT+QICSGP=1,1,“CMNET”
OK

AT+QIDEACT=1
指令:AT+QIDEACT=1
功能:在激活GPRS场景之前先关闭GPRS场景,确保连接正确

示例:

+QIDEACT=1
OK

AT+QIACT=1
指令:AT+QIACT=1

功能:激活移动场景

示例:

AT+QIACT=1
OK

  1. 基于 TCP 协议连接远程服务器通信实例
    4.1. 搭建远程TCP服务器
    首先我们需要搭建一个TCP服务器,有两种方式:

在服务器上使用Python、Java、C#等语言自行编写服务器程序;
在本地PC上使用网络调试助手开启TCP服务器;
因为EC20模组直接注册的是公网ip地址,所以这里我们使用第一种方式,在Linux服务器上运行一个Python编写的tcp测试服务器:

本地PC使用的是局域网,公网不可以直接根据ip地址访问到本PC,需要进行内网穿透,不推荐使用。

这里的Python程序如下:

tcpserver.py

from socket import *

host = ‘’
port = 8902

创建server socket

server_socket = socket(AF_INET,SOCK_STREAM)

绑定socket监听地址

server_addr = (host,port)
server_socket.bind(server_addr)

开始监听,最大允许连接数5

server_socket.listen(5)

处理连接请求

try:
while True:
print(‘waiting for connect…’)
#阻塞等待客户端的连接
client_socket, client_addr = server_socket.accept()
# 连接成功后,打印客户端信息
print(‘a client connnect from:’, client_addr)

    while(True):# 向客户端发送数据client_socket.send('Hello, client!'.encode())# 接收客户端的数据data = client_socket.recv(1024)print('recv data is ', data.decode())# 接收到quit则关闭socketif "quit" in data.decode():break# 关闭socketclient_socket.close()server_socket.close()print("socket closed.")breakexcept:
client_socket.close()
server_socket.close()
print("socket closed.")

运行:

python3 tcp-server.py

效果如下:

4.2. 模组连接服务器
使用AT命令连接TCP服务器,其中第一个参数是协议类型,“TCP”则表示使用TCP协议,第二个参数是TCP服务器ip地址,也可以使用域名,最一个参数是TCP服务器开启监听的端口:

AT+QIOPEN=,,<service_type>,<IP_address>/<domain_name>,<remote_port>[,<local_port>[,<access_mode>]]

最后一个参数access_mode是接收模式配置,0-缓冲区接收方式,1-直接接收方式。

示例:

AT+QIOPEN=1,0,“TCP”,“117.50.111.72”,8902,0,0

OK

+QIOPEN: 0,0

连接之后,在服务器端也可以看到:

4.2. 模组接收消息
模组连接到服务器后,服务器会自动发送消息,模组还没有配置,所以直接打印出了:

+QIURC: “recv”,0

使用命令读取数据:

AT+QIRD=0,1500
+QIRD: 14
Hello, client!
OK

直接模式接收效果如下:

+QIURC: “recv”,0,14
Hello, client!

4.3. 模组主动发送消息
使用如下的命令即可向TCP服务器发送消息,首先设置要发送数据的字节数,等待模组返回>后,输入要发送的数据即可,如果发送的数据超过了设置的n个字节,则只发送前n个字节,后面的数据被认为是无效数据,不会发送:

AT+QISEND=0

hello<0x1a>

示例:

AT+QISEND=0
hello
SEND OK

发送成功看服务器上运行的TCP服务器是否收到:

4.4. 关闭TCP连接
通信完毕之后,可以使用下面的命令关闭TCP连接:

AT+QICLOSE=[,]
1
示例:

AT+QICLOSE=0
OK

  1. 域名解析
    指令:
AT+QIDNSGIP=<contextID>,<hostname>

功能:域名解析

示例:

AT+QIDNSGIP=1,"www.mculover666.cn"OK+QIURC: "dnsgip",0,1,600+QIURC: "dnsgip","122.51.89.94"

移远 EC20 模组(4G通信模组)转载相关推荐

  1. 移远 EC200x/EC600x/EG912Y 4G 系列模组 AT 命令 MQTT 接入 ThingsCloud 云平台

    移远 4G 系列模组 AT 命令 MQTT 接入 移远 4G 系列模组的 AT 命令支持 MQTT,请参考以下步骤,只需几分钟就可以接入云平台并上报数据,还可以从云平台下发命令实现远程实时控制. 如果 ...

  2. OpenHarmony3.1适配移远EC20模组4G上网功能

    OpenHarmony3.1适配移远EC20模组4G上网功能 一.概述 通过阅读本篇文档,您将学习到如何适配移远EC20模组到OpenHarmony3.1(以下简称OHOS),并添加4G上网功能. 本 ...

  3. 4G模块使用记录移远EC20、BC20

    目录 0. 概述 硬件连接 -- UART 休眠管脚的使用 硬件连接 -- USB USB线序定义 驱动安装 抓取模组log 模组型号和SIM卡 模组区别 本地卡和漫游卡 SIM卡和APN 1. EC ...

  4. 移远EC20 4G模块的GPS部件刷新率修改方法,附GPS数据格式说明

    关键词:移远  EC20  全功能版  CE FAG  GPS  GNSS  GLONASS  全球定位系统  刷新率  Quectel_EC20_GNSS_AT_Commands_Manual_V1 ...

  5. 移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网

    摘自:移远EC20 4G模块LTE开发板三网通模块 MQTT阿里云物联网STM32代码-电脑看 地址:https://www.bilibili.com/video/BV1EJ411P7CR?from= ...

  6. 树莓派烧写OpenWrt系统后外接华为ME909或移远EC20 4G LTE模块实现4G软路由即MiFi

    By Mcuzone 关键词:OpenWrt  4G  LTE  软路由  华为ME909s  移远 EC20  树莓派  Raspberry  Pi  3B  4B  WiFi  热点  SSID ...

  7. 海思3531添加移远EC20 4G模块

    在linux下加载驱动有两种常用方法:静态加载和动态加载. 静态加载就是把驱动程序直接编译进内核,系统启动后可以直接调用.静态加载的缺点是调试起来比较麻烦,每次修改一个地方都要重新编译和下载内核,效率 ...

  8. 【openwrt】使用4G模块 移远EC20/25(2)pppd拨号与配置

    [openwrt]使用4G模块 移远EC20/25 :2)pppd拨号与配置 参考 Raspberrypi -- 实现 EC20 4G模块PPP拨号上网_梦小羊的博客-CSDN博客 添加链接描述 == ...

  9. 小白求,用RE文件管理器移植移远EC20 4G模块驱动。 有重谢。请加w jiao1998524

    小白求,用RE文件管理器移植移远EC20   4G模块驱动.  有重谢.请加w  jiao1998524

  10. Hi3798移植4G模块(移远EC20)

    Hi3798移植4G模块(移远EC20) 一.前言 二.USB驱动修改 2.1 添加VID和PID信息 2.2 添加空包处理机制 2.3 添加复位重连机制 2.4 修改内核配置 三.GoBiNet测试 ...

最新文章

  1. 独家 | 解析Tansformer模型—理解GPT-3, BERT和T5背后的模型(附链接)
  2. 有关IList 、List 使用Contains的问题
  3. Android自动测试之MonkeyRunner之monkeyrunner
  4. mysql 连接openfire_修改openfire数据库连接(转)
  5. 時鐘,天氣預報--js
  6. 预训练语言模型真的是世界模型?
  7. java框架谁搭建_从零开始搭建一个开发框架(Java + Hibernate + Spring + Oracle)
  8. 一步一步教你Pycharm的配置Python环境
  9. Linux下通过 rm -f 删除大量文件时报错:Argument list too long
  10. 编译HG255D的openwrt固件
  11. hdfs中与file数组类似的数组_Java中的数组
  12. mac git 自动补全
  13. wps怎么关闭修改痕迹_WPS文字如何保留修改痕迹?WPS文字保留修改痕迹教程
  14. 一款永久免费的CRM软件客户关系管理系统
  15. 如何下载Eclipse?
  16. OSChina 周二乱弹 ——普通高等男友招生考试
  17. Js实现在线Hex转Base64,在线Base64转Hex
  18. 华为p40手机是不是android,华为P40新手机配新操作系统,网友:再见了安卓
  19. rtx和gtx区别_gtx和rtx显卡哪个好
  20. Spring AOP 的工作原理

热门文章

  1. 安装 Linux双系统
  2. 营销系统优惠券模板设计
  3. R语言入门(2)——R包的安装
  4. 转:有效沟通的四种工具
  5. golang db事务的统一封装
  6. c语言习题集(含答案)
  7. Docker数据管理
  8. SQL server 2008 r2 安装教程
  9. 常用组合逻辑电路及MSI组合电路模块的应用—上篇
  10. PMP教程第6版中文 网盘下载