当前位置: 首页 > news >正文

GD32实战篇-移远EC800M进行TCP/UDP连接测试-上位机测试

 本文章基于兆易创新GD32 MCU所提供的2.2.4版本库函数开发

向上代码兼容GD32F450ZGT6中使用

后续项目主要在下面该专栏中发布:

https://blog.csdn.net/qq_62316532/category_12608431.html?spm=1001.2014.3001.5482

感兴趣的点个关注收藏一下吧!

电机驱动开发可以跳转:

GD32F103RCT6/GD32F303RCT6-实战项目-无刷电机驱动(1)_gd32f103rct6例程-CSDN博客

BMS电源系统开发可以跳转:

暂未放链接

DCDC-双向BUCK-BOOST实战链接:

GD32实战篇-双向数控BUCK-BOOST-BUCK降压理论基础-CSDN博客

GD32实战篇-双向数控BUCK-BOOST-BOOST升压理论基础-CSDN博客

介绍

EC800M-CN是由移远通信推出的一款专为机器对机器和物联网应用设计的超小型LTE Cat 1无线通信模块。这款模块以其紧凑的设计、高效的性能和合理的成本效益,在众多应用中脱颖而出。

尺寸小巧:EC800M-CN的尺寸仅为17.7mm × 15.8mm × 2.4mm,非常适合对空间有严格要求的小型设备或终端。
高速率:支持最大10 Mbps的下行速率和5 Mbps的上行速率,满足大多数物联网应用的数据传输需求。
封装形式:采用LCC封装,便于集成到各种终端产品中。
工作温度范围广:能够在-40°C至+85°C的温度范围内稳定工作,适应各种恶劣环境。
兼容性高:与移远通信的其他模块如EC800E-CN、EC800G-CN、EC800N-CN、EC800K-CN和EG800K-CN等兼容,方便用户进行产品升级或替换。
支持多种功能:除了基本的数据传输外,还支持DFOTA(Device Firmware Over-The-Air,设备固件空中升级)、Wi-Fi Scan定位、GNSS(全球导航卫星系统)定位等功能,增加了模块的应用灵活性。
内置丰富协议:内置多种网络协议和工业标准接口,支持多种操作系统下的USB虚拟串口驱动,进一步扩展了其应用范围。

AT命令手册:提供模块使用的AT命令集,帮助开发者快速掌握模块控制方法。
应用指导:涵盖Wi-Fi Scan、文件管理、FTP(S)、HTTP(S)、IMS/XML、MQTT、MUX、PPP、QuecCell、SSL/TLS、TCP/IP等多种协议和功能的应用指南。
硬件设计手册:为开发者提供详细的硬件设计指导,确保模块正确集成到目标产品中。

模块购买

本次实验购买移远的EC00M模块进行测试,EC800M/EC800E/EC800N等同系列产品均可通用一个封装。

硬件连接

使用USB转TTL模块进行连接!

VCC->5V

GND->GND

TXD->RXD

RXD->TXD

(注意,模块需要稳定5V供电,否则会出现模块上电异常、不工作等问题)

上位机调试

使用SSCOM串口助手进行上位机串口调试

AT指令

接下来进行AT指令测试!

初始化测试

首先是进行UDP/TCP/MQTT连接前的初始化测试,确保模块正常使用与联网:

AT测试

首先发送AT:

注意!上电后芯片默认波特率为115200,并且需要勾选加回车换行,否则无法正常收发,在上位机中选择对应端口,找不到的可以查看一下资源管理器。

发送AT以后默认返回OK说明模块目前能够正常收发AT指令。

查询是否有卡

然后便是查询是否有卡

返回如下代表卡就绪,如果返回ERROR则代表没卡。

查询卡信号
如果网络连接成功,会返回一个数,最大为 31, 若是数据小于 10,
说明当前网络信号不佳。

查询注册状态

如果注册成功,会返回 1, 如果失败,返回 0。

以上步骤如果没有任何问题,则说明该模块能够正常工作以及上网

DUP测试(非透传)

DUP测试可以参考移远的用户手册

其中,我们首先需要一个用于测试的服务器,我这里使用的是安信可透传云

这是链接:

安信可透传云 V1.0

建立一个测试用服务器

我们刷新以后会获得一组服务器以及端口,将其记录

UDP连接指令

发送一下语句即可连接。

返回OK,以及+QIOPEN:0,0代表已经成功连接,若返回的不是0,说明连接有问题。

UDP 是无连接模式,不管当前的端口是否存在,他依然会显示连接成功。TCP则不会,因为TCP具有握手协议以及检测机制,所以我们这里UDP连接上以后,安信可透传云上面没有显示,但是TCP就不会这样,大家如果想具体去了解的话,可以去看这个链接:
TCP与UDP的区别_tcp和udp的区别-CSDN博客

发送不定长指令

发数据他支持不固定长度与固定长度发送,支持字符串与十六进制方式的发
送。这里使用AT+QISEND=0不定长发送模式进行演示,后续的定长以及16位发送和这个是一样的。

发送完以后就可以发送我们需要发送的数据了,这里我们随意发送一些字符串过去

发送不定长结束以后需要用1A去结尾,在发生结尾标识符的时候,需要勾选HEX发送才会生效,否则会被当成一帧数据而不是指令,如果返回了SEND OK则代表发送完成

TCP测试

接下来我们将会去演示TCP测试的方式

首先需要一个服务器以及端口:

建立TCP连接指令

发送该语句即可通过TCP连接到我们的服务器,注意这里是39262(端口),0,1

这里的1代表的是TCP模式,如果是2则代表的是透传模式

如果返回的是+QIOPEN:0,0则代表连接成功,否则连接失败。

连接成功后就可以在服务器上面看见已经连接的客户端了,这也是TCP协议和UDP协议的最大区别:

发送定长数据指令

这里我们讲解一下发送固定长度,这里的4代表的发送4个长度的数据,如图:

在上一句语句之后,我们知道要发送4个长度的数据了,这里我们用1234作为演示,发送完毕以后,他会自动去检查用户发送数据的长度,当到达4个长度以后,就会自动截取,意思是多发是没有用的,如果这里返回了SEND OK则代表发送成功了。

然后我们就能在服务器这端,看到我模块客户端发送过来的数据:1234了

发送不定长数据指令

刚刚我们讲述的是定长发送,我们删除后面的长度变量以后,就会变成不定长发送,这个时候从发送这个指令的时候开始,后续发送的都会是一个数据而不是指令。

在发送完不定长的数据以后,接下来我们需要用1A结尾,使用1A的时候需要勾选HEX发送。发送完成后,会返回SEND OK

我们在服务器上这个时候就能看见我们之前发的那串数据了

断开TCP/UDP连接指令

发送这端代码可以断开TCP连接,可以看到服务器上的设备已经下线了

TCP透传

透传连接指令

接下来是关于TCP透传的测试,首先我们需要断开连接的情况下,再去发送这段代码,否则会失败,其中结尾处的2代表的是透传模式,如果成功连接以后,会回复CONNECT这段代码。

透传建立成功后,会在服务器上显示,和之前TCP测试的时候是一样的

接下来我们发送的任何数据,都会属于数据的一部分,而不是指令,发送的任何都会被显示

结语

这里是我整理好的,关于TCP以及UDP传输中所使用到的AT指令,大家感兴趣可以看看

本节到此结束,接下来会是GD32的代码编写,记住大家需要先在上位机上面跑通以后,再移动到单片机上进行编写。


http://www.mrgr.cn/news/60829.html

相关文章:

  • 2024.10.25 软考学习笔记(知识点)
  • java小白到架构师技术图谱
  • 深入计算机语言之C++:类与对象(下)
  • MySQL中的Redo Log、Undo Log和Binlog:深入解析
  • OpenAI的结构化浅析
  • asp.net core会话session设置滑动过期时间
  • C语言常用的数据类型有哪些?
  • 使用串口监视器查看是否有错误信息
  • Python小游戏15——俄罗斯方块
  • 什么是JVM
  • Vue3中props的使用方法以及例子
  • OpenCV图像处理方法:腐蚀操作
  • flutter实战短视频课程
  • docker 相关操作命令
  • 前端项目代码风格及校验统一格式化配置
  • 代码随想录算法训练营第十三天|二叉树的递归遍历、 二叉树的迭代遍历、二叉树的层次遍历
  • 常见学习陷阱及解决方案
  • 认识线程 — JavaEE
  • 论文精读:Approximating Maximin Share Allocations(上)
  • java中的二叉树
  • MinIO服务部署指南
  • < 背包问题 >
  • 多源BFS问题(1)_01矩阵
  • Tangible Software Solutions 出品最准确可靠的源代码转换器
  • 大数据新视界 -- 大数据大厂之大数据重塑影视娱乐产业的未来(4 - 2)
  • DispatchingController