搜索
bottom↓
回复: 34

SIM900A 使用FTP 进行远程升级

[复制链接]

出0入0汤圆

发表于 2014-8-4 12:04:44 | 显示全部楼层 |阅读模式
之前打算用TCP/IP进行远程升级,后来因为以后产品使用网络环境不稳定等等问题,打算更改为FTP传输


在做之前先调研一下:用FTP相比简单的TCP/IP优势劣势有哪些?


可能我的搜索方法不对,网上这方面的资料好像比较少,大伙如果能提供点资料那在下感激不尽。

出0入0汤圆

 楼主| 发表于 2014-8-4 12:05:31 | 显示全部楼层
怒顶,望大神速来……

出1070入962汤圆

发表于 2014-8-4 12:10:30 | 显示全部楼层
FTP是位于TCP之上的一个协议,如果TCP都稳定不了,FTP如何能稳定?

出0入0汤圆

发表于 2014-8-4 12:10:31 | 显示全部楼层
FTP基于TCP/IP. 亲

出0入0汤圆

 楼主| 发表于 2014-8-4 12:12:25 | 显示全部楼层
Appcat 发表于 2014-8-4 12:10
FTP是位于TCP之上的一个协议,如果TCP都稳定不了,FTP如何能稳定?

那这个远程升级是简单的使用TCP分包传输好呢还是FTP传输好呢?

出0入0汤圆

 楼主| 发表于 2014-8-4 12:13:06 | 显示全部楼层
Appcat 发表于 2014-8-4 12:10
FTP是位于TCP之上的一个协议,如果TCP都稳定不了,FTP如何能稳定?

那这个远程升级是简单的使用TCP分包传输好呢还是FTP传输好呢?文件可能有100k左右的。

出0入0汤圆

发表于 2014-8-4 12:13:34 | 显示全部楼层
怒顶助攻一次。

出215入118汤圆

发表于 2014-8-4 12:16:01 来自手机 | 显示全部楼层
在服务器上放置一个描述文件标识最新固件版本url和checksum,客服端周期检查该文件,发现更新,下载然后烧写。

出0入0汤圆

发表于 2014-8-4 12:19:00 | 显示全部楼层
把想法说的具体一点解决的可能性大一点

出1070入962汤圆

发表于 2014-8-4 12:22:47 | 显示全部楼层
zcbAzfl 发表于 2014-8-4 12:13
那这个远程升级是简单的使用TCP分包传输好呢还是FTP传输好呢?文件可能有100k左右的。 ...

对付不稳定的链路,采用TCP协议,并且自己写断点续传机制,才是正解。

出0入0汤圆

 楼主| 发表于 2014-8-4 12:25:48 | 显示全部楼层
Ai_evan 发表于 2014-8-4 12:19
把想法说的具体一点解决的可能性大一点

是这样的,我们的产品可能需要加入远程升级功能,原本是打算通过建立TCP连接然后把程序文件(我不知道是该传递.hex还是.bin)分成一个个包加上序列号校验码然后慢慢地传递到远程中心,但是这样速度慢,而且丢包处理比较麻烦。

后来看了有用FTP传输的,是直接把整个文件传输过去的,我就在想这样不用我自己去做分包处理而且也没有什么断点续传的工作要做,不仅工作量小而且速度更快。

出0入0汤圆

 楼主| 发表于 2014-8-4 12:27:14 | 显示全部楼层
Appcat 发表于 2014-8-4 12:22
对付不稳定的链路,采用TCP协议,并且自己写断点续传机制,才是正解。

哦哦哦,原来是这样啊,之前我是以为FTP底层可能会为我们做一些断点续传的工作呢,我本来是想省些功夫的。

出0入0汤圆

 楼主| 发表于 2014-8-4 12:28:14 | 显示全部楼层
snowy 发表于 2014-8-4 12:16
在服务器上放置一个描述文件标识最新固件版本url和checksum,客服端周期检查该文件,发现更新,下载然后烧 ...

每个远程模块都可能要烧写不同的升级程序(需要根据客户要求做定制的),所以这个处理起来也是略微有些麻烦的。

出0入0汤圆

 楼主| 发表于 2014-8-4 12:28:39 | 显示全部楼层
HadesHe 发表于 2014-8-4 12:13
怒顶助攻一次。

记 助攻

出0入0汤圆

 楼主| 发表于 2014-8-4 13:01:31 | 显示全部楼层
再顶一下,望前辈指导

出0入0汤圆

 楼主| 发表于 2014-8-4 13:21:50 | 显示全部楼层
睡午觉,晚上继续搞……

出0入0汤圆

发表于 2014-8-4 15:30:35 | 显示全部楼层
你的FTP是模块做客户端还是服务端?
如果是做服务端,就比较难搞了!

出0入0汤圆

发表于 2014-8-4 16:06:58 | 显示全部楼层
Appcat 发表于 2014-8-4 12:22
对付不稳定的链路,采用TCP协议,并且自己写断点续传机制,才是正解。

话说我们的产品就是苹果猫的方法,我设备端还好说,服务器端的大哥被摧残的不行不行的了,支持3000个设备,批量升级、单个升级、web页面,整整弄了半年。

出0入0汤圆

发表于 2014-8-4 16:18:04 | 显示全部楼层
zcbAzfl 发表于 2014-8-4 13:01
再顶一下,望前辈指导

给你点参考,设备和服务器保持长连接,定时心跳,设备开个专门的线程维护连接。
1、用户点击升级,服务器给设备发个消息(我要给你升级+版本号),设备接收到这个消息判断版本号回复服务器(我是否可升级)
2、服务器得知设备可升级后,发送升级包信息(文件名、有多少个包、每个包大小,MD5校验),设备收到消息后对服务器进行确认。
3、此时服务器处于等待设备要包的状态。
4、设备发送数据包申请(我要什么文件的几号包),服务器回复对应包,设备收到包后记录一个标志。
5、一直等到设备请求完所有包或超时的时候,MD5校验通过,进行烧写FLASH操作,成功后回复升级成功标志。
关于升级包我们按512字节一个包,最后一包不足512补上0xff。

这样做的好处是,给服务器减少负担,升级的状态等信息由设备自己维护,服务器仅对包请求做出回应即可。

出0入0汤圆

发表于 2014-8-4 16:24:03 | 显示全部楼层
zcbAzfl 发表于 2014-8-4 12:25
是这样的,我们的产品可能需要加入远程升级功能,原本是打算通过建立TCP连接然后把程序文件(我不知道是 ...

FTP不建议用,对模块依赖性强。客户想要cdma的就傻眼了。
我们支持GSM cdma的,每种制式支持两种品牌,底层at指令不一样而已。

出0入0汤圆

 楼主| 发表于 2014-8-5 11:13:43 | 显示全部楼层
abbott 发表于 2014-8-4 15:30
你的FTP是模块做客户端还是服务端?
如果是做服务端,就比较难搞了!

模块做客户端来着。

出0入0汤圆

 楼主| 发表于 2014-8-5 11:14:32 | 显示全部楼层
lanqilove 发表于 2014-8-4 16:18
给你点参考,设备和服务器保持长连接,定时心跳,设备开个专门的线程维护连接。
1、用户点击升级,服务器 ...

非常感谢……

出0入0汤圆

 楼主| 发表于 2014-8-5 11:15:18 | 显示全部楼层
lanqilove 发表于 2014-8-4 16:24
FTP不建议用,对模块依赖性强。客户想要cdma的就傻眼了。
我们支持GSM cdma的,每种制式支持两种品牌,底 ...

好的,谢谢指导。

出215入118汤圆

发表于 2014-8-5 20:06:37 | 显示全部楼层
走HTTP+XML做标记,不是很好么?

出0入0汤圆

发表于 2014-8-6 00:07:13 | 显示全部楼层
用FTP的飘过

出0入0汤圆

 楼主| 发表于 2014-8-6 10:42:21 | 显示全部楼层
snowy 发表于 2014-8-5 20:06
走HTTP+XML做标记,不是很好么?

不懂,能否再详细一点?

出0入0汤圆

 楼主| 发表于 2014-8-6 10:42:43 | 显示全部楼层

效果如何呀?

出0入0汤圆

发表于 2014-8-9 02:12:14 来自手机 | 显示全部楼层
lanqilove 发表于 2014-8-4 16:24
FTP不建议用,对模块依赖性强。客户想要cdma的就傻眼了。
我们支持GSM cdma的,每种制式支持两种品牌,底 ...

cdma为什么傻眼?目前我们用sim900a+联通gsm卡,还真没试过cdma。如果只是cdma卡,也是支持gsm的吧?感觉速度也够用了,一般数据也没多大

出0入0汤圆

发表于 2014-8-9 21:51:40 | 显示全部楼层
ldw 发表于 2014-8-9 02:12
cdma为什么傻眼?目前我们用sim900a+联通gsm卡,还真没试过cdma。如果只是cdma卡,也是支持gsm的吧?感觉 ...

cdma你得换模块吧?换模块就不一定支持ftp了吧?

出0入0汤圆

发表于 2014-8-10 00:36:42 | 显示全部楼层
lanqilove 发表于 2014-8-9 21:51
cdma你得换模块吧?换模块就不一定支持ftp了吧?

呃....了解了一下,才知道cdma的手机卡和gsm的sim卡不通用。一直没用过cdma的手机,还不知道有这区别

出10入284汤圆

发表于 2014-8-10 01:20:10 | 显示全部楼层
居然涉及到了GSM,深奥

出0入10汤圆

发表于 2015-3-24 09:30:18 | 显示全部楼层
楼主最终使用的哪种方法?测试成功了吗?

出0入53汤圆

发表于 2015-5-7 20:14:01 | 显示全部楼层
lanqilove 发表于 2014-8-4 16:18
给你点参考,设备和服务器保持长连接,定时心跳,设备开个专门的线程维护连接。
1、用户点击升级,服务器 ...

服务器提出更新信息给 客户端的mcu,mcu接到升级版本后自动升级,这种方法对服务器的要求很高吗?

出0入53汤圆

发表于 2015-5-20 16:28:10 | 显示全部楼层
lanqilove 发表于 2014-8-4 16:18
给你点参考,设备和服务器保持长连接,定时心跳,设备开个专门的线程维护连接。
1、用户点击升级,服务器 ...

请问用过RJ45网口 连接广域网进行IAP升级吗?

出0入8汤圆

发表于 2020-2-14 10:57:03 | 显示全部楼层
lanqilove 发表于 2014-8-4 16:24
FTP不建议用,对模块依赖性强。客户想要cdma的就傻眼了。
我们支持GSM cdma的,每种制式支持两种品牌,底 ...

一般都使用GSM模块
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 04:09

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表