欢迎访问上海睿为通信技术有限公司官网!

总机021-63806970 销售直线021-63809727  

搜索
搜索
banner

EC20的各项使用问题说明

EC20的各项使用问题说明

 3f31c9e5-6d81-482c-b589-1e4f4a26c210.jpg

EC20现象 4G模组不断重启,分析原因是MCU主动发起4G重启过程。分析时发现服务器没有回复数据,导致无法登录服务器。但是,经过服务器测试,发现服务器没有问题。 4G断电,重现现象,分析日志发现4G模块在登录服务器后一直向服务器发送数据(下面传感器数据量太频繁),但是服务器发送4G后模块,4G模块不报$MYURCREAD(我自己做的定时读任务也没有,因为一直忙着发送),导致4G模块的接收缓冲区溢出(模块reset没用任何一个)。解决方法如下:

 

1)EC20改变与服务器通信的问答方式;

 

2)强制定期读取4G模块数据(注意数据溢出,如果处理不当很有可能4G模块收到溢出)。

 

2.EC20所有现场传感器断开

经过三天三夜的运行,所有的传感器都下线了。分析LOG后发现4G不断重启,基站不断登录服务器。基站发送登录帧后,服务器也回复了一个确认帧,但是基站没有解析出来。分析服务器发送的数据包也是正确的。怀疑:

 

(1) 堆栈混乱。为了增加接收缓冲区,减少了堆栈区域;

 

(2) SRAM乱七八糟,其中使用的链表有bug;

 

(3) 接收机制存在bug。当某个字节接收到错误时,长度错误,接收到帧时始终处于“死等待”状态,导致无法解析。从LOG分析和代码分析来看,第三点的可能性更大。添加接收到的数据后,如果5S没有接收到完成帧,则清空缓冲机制,测试一下是否有结果。程序运行了一周,还没有出现这种现象。基本确定是原因(3)造成的。当时在写逻辑代码的时候专门注释了这个问题,但是在后面的测试中并没有出现。

 

EC20客户端是 MQTT 协议。原来,用户名和密码被配置为直接登录。考虑到安全问题,需要添加 HmacSHA256 和 BASE64 以及算法。具体算法是如何实现的,算法原理这里就不介绍了,只介绍应用。

 

HmacSHA256算法下载地址:C语言实现SHA256和HMAC-SHA256_HMAC-SHA256C-C文档资源-CSDN下载

 

BASE64算法下载地址:C语言实现Base64编码/解码 - 程序员大本营

 

经验证,这两种算法都没有问题,以下是需要注意的点:

 

1)HmacSHA256算法生成一个32字节的HEX十六进制数。如果需要 64 字节的字符串,需要自己转换。与算法本身无关,只是生成的信息摘要格式转换;

 

2)BASE64算法的信息输入是什么格式,需要双方协议,与算法无关;

 

3)BASE64算法使用malloc在提供的连接中动态分配内存。这里我根据自己的实际使用环境进行修改。我自己传入了一个数组地址;

 

4) 提供的连接中BASE64算法的默认输入是字符串格式。如果是 HEX 格式,则需要进行简单的修改。

以前在EC20开发过程中遇到一个奇怪的问题,就是打开缓存到更大的lwip不正常,但是编译不报错,其他逻辑功能正常。原因我没有分析。我今天有时间。整个RAM大小是192K,我的RAM只有125.88kB,lwip不正常,现象是可以ping通,但是TCP连接失败,如果缓存减少到110.77kB是正常的。


CONTACT INFORMATION

联系方式

总公司地址:上海市虹口区四平路257号17B室(永融企业中心)

分公司地址:深圳市南山区西海明珠花园F座11楼C02室

Baobei@riswing.com

OFFICIAL ACCOUNTS

公众号

欢迎关注我们的官方公众号

公众号二维码

ONLINE MESSAGE

联系方式

留言应用名称:
客户留言
描述:
验证码