QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之05【EC20模组TCP/IP模块AT指令说明】
QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之05【EC20模组TCP/IP模块AT指令说明】
- Socket长连接
- 一、准备工作
- 二、针对TCP/IP协议
- 关于TCP/IP协议操作的AT指令解释
原文链接:https://blog.csdn.net/praguejing/article/details/116087466
Socket长连接
所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接(心跳包),一般需要自己做在线维持。短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接。比如Http的,只是连接、请求、关闭,过程时间较短,服务器若是一段时间内没有收到请求即可关闭连接。其实长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务端的连接状态。通常的短连接操作步骤是:连接→数据传输→关闭连接;
而长连接通常就是:连接→数据传输→保持连接(心跳)→数据传输→保持连接(心跳)→……→关闭连接;
什么时候用长连接,短连接?长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况,。每个TCP连接都需要三步握手,这需要时间,如果每个操作都是先连接,再操作的话那么处理 速度会降低很多,所以每个操作完后都不断开,次处理时直接发送数据包就OK了,不用建立TCP连接。例如:数据库的连接用长连接, 如果用短连接频繁的通信会造成Socket错误,而且频繁的Socket创建也是对资源的浪费。
什么是心跳包为什么需要:心跳包就是在客户端和服务端间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包。网络中的接收和发送数据都是使用Socket进行实现。但是如果此套接字已经断开(比如一方断网了),那发送数据和接收数据的时候就一定会有问题。可是如何判断这个套接字是否还可以使用呢?这个就需要在系统中创建心跳机制。其实TCP中已经为我们实现了一个叫做心跳的机制。如果你设置了心跳,那TCP就会在一定的时间(比如你设置的是3秒钟)内发送你设置的次数的心跳(比如说2次),并且此信息不会影响你自己定义的协议。也可以自己定义,所谓“心跳”就是定时发送一个自定义的结构体(心跳包或心跳帧),让对方知道自己“在线”,以确保链接的有效性。
本系列博文将系统性讲解物联网模组系列的实际使用和调试指南,以移远4G模组EC20为例(其他厂家模组的调试方法大同小异),加快嵌入式软、硬件工程师对物联网模组调试和使用的上手速度。
一、准备工作
1、软件:串口调试助手(推荐官方的QCOM,可以讲命令保存为脚本,方便后续多次的调用)
2、硬件:EC20硬件套件、USB转串口线及SIM卡
3、文档:《Quectel_EC20_R2.1_AT_Commands_Manual》、《Quectel_EC2x&EG9x&EM05_TCP(IP)_AT_Commands_Manual_V1.0》
4、硬件环境搭建:模组正常开机,将模组的串口通过USB转串口正常连接到电脑并且打开QCOM,正常识别到模组对应串口;
5、网络服务器:因为设计到数据和网络服务器两者间的通讯,所以需要一个网络服务器实现数据下发到模组(模组数据的上传需要得知服务器的IP地址和端口号);
二、针对TCP/IP协议
针对初次接触到蜂窝式通讯模组的同学而言,TCP/IP的连接流程相比会比较陌生,本博文开始讲系统性的讲解关于模组在网络通讯部分的知识;关于TCP/IP部分,建议大家参考文档《Quectel_EC2x&EG9x&EM05_TCP(IP)_AT_Commands_Manual_V1.0》,关于TCP/IP的链接逻辑部分还是很值得大家的参考,可以提高大家对整体的TCP连接的感性认识(因为自己走了很多的弯路,所以分享此文档给大家)。
关于AT指令部分:下图中将关于TCP/IP的重要AT指令做了标出,个人认为红色框框中是比较重要的部分,需要完全进行掌握;
AT指令发送:由于AT指令比较多,串口助手的窗口显示不全,我已经将AT指令的Log保存为“.txt”文件,大家可以在文档末尾给出的链接中进行免费下载,进行学习和分析;
关于TCP/IP协议操作的AT指令解释
1、AT+CGATT?/AT+CGREG?命令:PS域的注册,命令主要是检测模组是否注册到了基站的PS域,简言之就是模组和基站的数据通讯是否建立(注意:CS域主要负责通话部分,PS主要负责数据通讯部分);
2、AT+QICSGP=1,1,“CMNET”,"","",1:关于APN的设置问题,大家在使用手机的时候或者支持蜂窝的PAD的时候都没有进行过APN的设置,网络也可以正常连接,为什么需要设置APN?之前我也很困惑这个问题,后面有请教到移动内部的一位技术大佬,大佬是这样回答的:国内所有运营商网络在一开始的时候并没有让设备的使用者去操作输入APN,基站侧检测到未携带正确APN的设备时,基站会进行自动纠错PAN,以达到让客户正常上网的目的,随着国内用户的增加和物联网设备的爆发式增长,目前基站的纠错能力存在纠错的风险,所以如果可能的话还是建议设备携带正确APN进行上网。所以最终建议用户还是需要设置正确的APN,避免设备在SIM卡正常,模组正常,APN不正确的情况下造成PS域链接网络失败的情况。(其中中国联通的APN为:UNINET,中国移动为:CMNET);
3、AT+QIACT=1:激活PDP 的连接,为下一步的TCP/IP的连接做准备;
4、AT+QIOPEN=1,0,“TCP”,“119.xxx.xxx.29”,xxxx2,0,1:此命令用来创建TCP/IP的连接;此时需要再服务器上先建立好服务器端口,否则发送此命令会出现创建失败的提示;模块支持创建多个contextID和connectID/socket,默认的序号开始分别为1和0;支持TCP、UDP、TCP LISTENER和UDP SERVICE、我们今天讲解TCP,所以这个参数为TCP;然后为服务器的IP地址和端口号,根据自己的实际地址和端口号进行填写即可;最后一个参数为数据接收的模式;我们这里选择1,即Direct push mode;
关于access_mode:
Buffer access mode:此模式下模组收到服务器下发的数据是会进行提示“+QIURC: “recv”,”.然后可以根据接收到的数据长度和connectID进行读取数据;
Direct push mode:此模式下模组收到服务器下发的数据是会进行直接显示,如下图中串口助手上红色框中的提示(服务器我选择的是收到什么信息回复什么信息,所以接收到的和发送的数据一样)
Transparent access mode:此模式是透传模式,特别适合大数据的给服务器发送数据;在此模式下发送的所有信息都会被发送到服务器,包括AT命令;退出时需要发送特殊指令“+++”退出;
5、AT+QISEND=1;发送数据开始的命令,发送此指令后,模组会回复“>”,等待接受串口数据的到来;然后可以发送数据到串口;注意单次发送的数据量应该小于等于1460Byte,否则多余的数据会被忽略;
6、1A[HEX]:1A的格式需要再HEX模式下进行发送,此特殊字符为模组判断用户将数据发送到串口完成的标志;发送此命令后,模组会将数据发送到服务器;
模组和服务器的数据交互如下所示:
7、AT+QIDEACT=1:此命令用于去激活PDP的连接,简单理解就是和服务器断开连接;
8、AT+QICLOSE=1:此命令为关闭connectID/socket的连接,把之前的connectID/socket资源进行回收;否则下次创建同样序号的connectID/socket时会出现创建失败的情况;
9、AT+QPOWD=1:如果需要低功耗,可以将模组正常关机;
模组的TCP/IP链接的创建和数据发送相对简单,主要特别注意每次AT指令发送完毕需要等待模组回复是否正常,建议大家详细阅读AT指令手册中相关的命令,否则会出现错误或者失败的现象。
关于出现错误或者失败的处理策略,应该遵循手册中给出的流程图,避免暴力操作引起模组的损坏。
以上就是针对移远4G通讯CAT4模组EC20关于TCP/IP模块的AT指令简单介绍,希望大家能够对模组AT命令调试方面有一些更加深刻的认识,下一节会针对模组的UDP连接流程和命令进行详细介绍,敬请期待。
因为小编自己能力水平有限,文中难免有错误或表达不到的信息,还望广大阅读者留言批评指正,谢谢。
QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之05【EC20模组TCP/IP模块AT指令说明】相关推荐
- QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之04【EC20模组SIM卡和驻网模组指令说明】
QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之04[EC20模组SIM卡和驻网模组指令说明] 一.准备工作 二.硬件环境的搭建 三.基础AT指令的说明和测试 关于SIM ...
- QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之02【EC20模组硬件供电和开关机复位操作】
QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之02[EC20模组硬件供电和开关机复位操作] 一.模组硬件知识 1.背景知识:网络制式 2.模组的供电 3.模组的开机 4 ...
- QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之03【EC20模组基础串口指令说明】
QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之03[EC20模组基础串口指令说明] 一.准备工作 二.硬件环境的搭建 三.基础AT指令的说明和测试 STM32F103学 ...
- QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之01物联网模组简介
本系列博文将系统性讲解物联网模组系列的实际使用和调试指南,以移远4G模组EC20为例(其他厂家模组的调试方法大同小异),加快嵌入式软硬件工程师对物联网模组调试和使用的上手速度,让你们的项目进度尽可能快 ...
- QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之02EC20模组硬件供电和开关机复位操作
本系列博文将系统性讲解物联网模组系列的实际使用和调试指南,以移远4G模组EC20为例(其他厂家模组的调试方法大同小异),加快嵌入式软.硬件工程师对物联网模组调试和使用的上手速度. 一.模组硬件知识 1 ...
- QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之03EC20模组基础串口指令说明
本系列博文将系统性讲解物联网模组系列的实际使用和调试指南,以移远4G模组EC20为例(其他厂家模组的调试方法大同小异),加快嵌入式软.硬件工程师对物联网模组调试和使用的上手速度. 一.准备工作 1.软 ...
- QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之【05EC20模组TCP/IP模块AT指令说明】
本系列博文将系统性讲解物联网模组系列的实际使用和调试指南,以移远4G模组EC20为例(其他厂家模组的调试方法大同小异),加快嵌入式软.硬件工程师对物联网模组调试和使用的上手速度. 一.准备工作 1.软 ...
- QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之04EC20模组SIM卡和驻网模组指令说明
本系列博文将系统性讲解物联网模组系列的实际使用和调试指南,以移远4G模组EC20为例(其他厂家模组的调试方法大同小异),加快嵌入式软.硬件工程师对物联网模组调试和使用的上手速度. 一.准备工作 1.软 ...
- 华为gsm模块_出货量全球第一,华为阿里腾讯都是其客户,上海移远通信牛在哪?...
近些年来,我们明显感受到了科技进步带来的便捷,微信支付.支付宝付款早已经成为绝大多数人的支付方式:交水费.电费等再也不用去缴费大厅排队,手机就能一键实现:出门也不怕迷路了,滴滴出行.手机地图等让你想去 ...
最新文章
- xampp的Apache配置
- tp5.1的安装与运行流程
- MySQL+号的作用
- SAP Marketing Cloud功能简述(三) 营销活动内容设计和产品推荐
- python time模块详解_py 模块之 time模块 讲解②
- [折半搜索][has] Jzoj P4250 路径
- Dev Lake 0.4.0 版本:开源、开放的研发效能数据平台
- 卡尔曼_卡尔曼滤波最完整公式推导
- 数组c语言什么时候学的,C语言学习之数组
- 随想录(cloud 网络库)
- pe擦除服务器硬盘,老毛桃winpe分区助手删除分区后如何用Gutmann算法擦除硬盘数据?...
- Description: Field smsClient in com.atguigu.gmall.pms.service.impl.SpuServiceImpl required a bean o
- ftp误删服务器文件恢复,ftp服务器文件误删
- win11在计算机管理中添加用户发现没有本地用户和组,命令方式添加用户以及查看用户
- PL/0编译器(java version)–Pcode.java
- echarts使用百度地图
- 关于同一局域网中,获取的IP非本地真实IP的问题。
- 交换机与路由器技术:动态路由协议、RIP路由协议和OSPF路由协议
- 测距必备,8个超声波测距方案,实时更可控
- 英语学习单词篇(19)