我是靠谱客的博主 火星上鸡,最近开发中收集的这篇文章主要介绍移远 EC20 模组(4G通信模组)AT指令测试 TCP 通信过程移远EC20 4G 模组1. 环境准备2. 模组信号查询与网络查询AT指令3. 激活移动场景4. 基于 TCP 协议连接远程服务器通信实例5. 域名解析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

移远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
Quectel_EC2x&EG9x&EM05_TCP(IP)_AT_Commands_Manual_V1.0.pdf

 

此文档来自于移远官方!阅读本教程时,关于AT指令的详细说明请参考该文档!

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

AT

指令:AT

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

示例:

 

AT

OK

 

AT+CPIN?

指令:AT+CPIN?

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

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

 

AT+CPIN?

+CPIN: READY

OK

AT+CSQ

指令:AT+CSQ

命令返回:AT+CSQ: <rssi>,<ber> 

                 其中<rssi>应在0到31之间(含99表示无信号),数值越大表明信号质量越好。

                ber为误码率。

功能:查询模组的信号强度,第一个值为0-31则正常(99为无信号),数值越大表明信号质量越好(但是前提必须限定在0-31内)

          第二个值为误码率,值在 0 到 99 之间。否则应检查天线或 SIM 卡是否正确安装

示例:

 

   

AT+CSQ

+CSQ: 17,0

OK

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

 

AT+CREG?

指令:AT+CREG?

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

示例:

 

AT+CREG?

+CREG: 0,1

OK

AT+CGREG?

指令:AT+CERGE?

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

示例:

 

AT+CGREG?

+CGREG: 0,1

OK

3. 激活移动场景

 

必须在查询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场景,确保连接正确

示例:

 

AT+QIDEACT=1
OK

AT+QIACT=1

指令:AT+QIACT=1

功能:激活移动场景

示例:

 

AT+QIACT=1

OK

4. 基于 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则关闭socket
            if "quit" in data.decode():
                break
        
        # 关闭socket
        client_socket.close()
        server_socket.close()
        print("socket closed.")
        break
except:
    client_socket.close()
    server_socket.close()
    print("socket closed.")

运行:

效果如下:

 

4.2. 模组连接服务器

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

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

示例:

 

AT+QIOPEN=1,0,"TCP","117.50.111.72",8902,0,0

OK

+QIOPEN: 0,0

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

 

4.2. 模组接收消息

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

使用命令读取数据:

 

AT+QIRD=0,1500

+QIRD: 14
Hello, client!

OK

4.3. 模组主动发送消息

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

示例:

 

AT+QISEND=0

> hello

SEND OK

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

4.4. 关闭TCP连接

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

示例:

 

AT+QICLOSE=0

OK

5. 域名解析

指令:

功能:域名解析

示例:

 

AT+QIDNSGIP=1,"www.mculover666.cn"

OK

+QIURC: "dnsgip",0,1,600

+QIURC: "dnsgip","122.51.89.94"

————————————————
版权声明:本文为CSDN博主「Mculover666」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Mculover666/article/details/105877183/

https://blog.csdn.net/Mculover666/article/details/105877183/

 

最后

以上就是火星上鸡为你收集整理的移远 EC20 模组(4G通信模组)AT指令测试 TCP 通信过程移远EC20 4G 模组1. 环境准备2. 模组信号查询与网络查询AT指令3. 激活移动场景4. 基于 TCP 协议连接远程服务器通信实例5. 域名解析的全部内容,希望文章能够帮你解决移远 EC20 模组(4G通信模组)AT指令测试 TCP 通信过程移远EC20 4G 模组1. 环境准备2. 模组信号查询与网络查询AT指令3. 激活移动场景4. 基于 TCP 协议连接远程服务器通信实例5. 域名解析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部