EC20 FTP升级问题总结

EC20模块升级网上参考资料比较少,自己也搞了好久,以前升级还是比较低的,现在稍微修正了下,成功率如果排除网络问题的话,能到99%。
现分享下做升级时候的经验和问题汇总:

[1]AT配置流程

[1-1]步骤1:配置FTP服务器初始化

1.配置FTP服务器
“AT+QFTPCFG=“contextid”,1\r\n”
Return: OK

2.配置账号密码
“AT+QFTPCFG=“account”,“anonymous”,“xxx.com.cn”\r\n”
Return: OK

3.配置文件传输的格式,我这边配置成二进制(.bin文件)
“AT+QFTPCFG=“filetype”,1\r\n”
Return: OK

4.将传输模式配置成被动模式
“AT+QFTPCFG=“transmode”,1\r\n”
Return: OK

5.超时时间配置
“AT+QFTPCFG=“rsptimeout”,500\r\n”
Return: OK

[1-2]读取FTP数据

1.打开FTP服务器网址
“AT+QFTPOPEN=“www.xxxxx.com.cn”,21\r\n”
Return: “+QFTPOPEN: 0,0”
以上就代表登录成功了

2.设置需要下载的文件所在的目录
“AT+QFTPCWD=”/wmc/VendingMachine/lyyproj/"\r\n"
Return:"+QFTPCWD: 0,0"

3.列出目录中的文件讯息
“AT+QFTPLIST=”/wmc/xxx/lyyproj/",“COM:”\r\n"
Return:返回的是文件讯息的字符串

4.清除4G模块里的数据 (这边看你是需要把下载的文件放到EC20中还是直接输出到外部地址中,我这边是放到外部flash中,所以其实不要也可以)
“AT+QFDEL=”*"\r\n"
Return: OK
== 这个时候可以对mcu内部flash也做一个clear操作==

5.获取1024个字节
这是个sprintf操作name和ADDR代表了文件名和 当前的文件字节地址(比如开始是0地址,第二帧开始地址就是1024地址开始),1024代表一次下载1024个字节
“AT+QFTPGET=”%s",“COM:”,%d,1024\r\n",name,ADDR
Return:对应的1024个字节

6.关闭FTP服务器
“AT+QFTPCLOSE\r\n”
Return: OK

[2]FTP升级失败问题总结:

[2-1]原因1:数据存储导致的升级中断

我们采用的是把数据直接输出到外部串口的,所以传来一帧,我们就要存储一帧。
但有时候我们发现,存储完后传输就,就升级结束了,等不到下一帧的发送了。
解决方法:尽可能缩减存储的时间,可以在下载前就把空间给擦除了,不要一遍擦一遍写。还有一种就是传一帧数据不要太多,1024个字节就可以了。

[2-2]原因2:校验没有通过(校验需要自己加)

校验没有通过的原因有很多,大部分是由于单片机端接受到的字节不全导致的,如果条件允许,可以传一帧就校验一下,通过了在让EC20发送下一帧,这种方法当然是最好的。但是这种方法在传输的较大文件的时候,效率就大大降低了,还需要事先得到每一帧的校验值才行。
最简单的方式就是传一个总的校验值就行了,但是这个方法也有弊端,就是当单帧出现错误时,整个升级就失败了,所以确保单帧竟可能传输正确,可以对单帧的字符数进行一个判断,这样虽然还是有概率校验不过,但基本上可以基本上杜绝校验失败。小编就用的这个方法,目前除了网络问题导致的升级失败,还没出现过升级失败的情况。

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mhj258258

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值