zcbAzfl 发表于 2014-8-4 12:04:44

SIM900A 使用FTP 进行远程升级

之前打算用TCP/IP进行远程升级,后来因为以后产品使用网络环境不稳定等等问题,打算更改为FTP传输


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


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

zcbAzfl 发表于 2014-8-4 12:05:31

怒顶,望大神速来……

Appcat 发表于 2014-8-4 12:10:30

FTP是位于TCP之上的一个协议,如果TCP都稳定不了,FTP如何能稳定?

sxmilovebb2 发表于 2014-8-4 12:10:31

FTP基于TCP/IP. 亲

zcbAzfl 发表于 2014-8-4 12:12:25

Appcat 发表于 2014-8-4 12:10
FTP是位于TCP之上的一个协议,如果TCP都稳定不了,FTP如何能稳定?

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

zcbAzfl 发表于 2014-8-4 12:13:06

Appcat 发表于 2014-8-4 12:10
FTP是位于TCP之上的一个协议,如果TCP都稳定不了,FTP如何能稳定?

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

HadesHe 发表于 2014-8-4 12:13:34

怒顶助攻一次。

snowy 发表于 2014-8-4 12:16:01

在服务器上放置一个描述文件标识最新固件版本url和checksum,客服端周期检查该文件,发现更新,下载然后烧写。

Ai_evan 发表于 2014-8-4 12:19:00

把想法说的具体一点解决的可能性大一点

Appcat 发表于 2014-8-4 12:22:47

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

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

zcbAzfl 发表于 2014-8-4 12:25:48

Ai_evan 发表于 2014-8-4 12:19
把想法说的具体一点解决的可能性大一点

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

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

zcbAzfl 发表于 2014-8-4 12:27:14

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

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

zcbAzfl 发表于 2014-8-4 12:28:14

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

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

zcbAzfl 发表于 2014-8-4 12:28:39

HadesHe 发表于 2014-8-4 12:13
怒顶助攻一次。

记 助攻

zcbAzfl 发表于 2014-8-4 13:01:31

再顶一下,望前辈指导

zcbAzfl 发表于 2014-8-4 13:21:50

睡午觉,晚上继续搞……

abbott 发表于 2014-8-4 15:30:35

你的FTP是模块做客户端还是服务端?
如果是做服务端,就比较难搞了!

lanqilove 发表于 2014-8-4 16:06:58

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

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

lanqilove 发表于 2014-8-4 16:18:04

zcbAzfl 发表于 2014-8-4 13:01
再顶一下,望前辈指导

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

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

lanqilove 发表于 2014-8-4 16:24:03

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

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

zcbAzfl 发表于 2014-8-5 11:13:43

abbott 发表于 2014-8-4 15:30
你的FTP是模块做客户端还是服务端?
如果是做服务端,就比较难搞了!

模块做客户端来着。

zcbAzfl 发表于 2014-8-5 11:14:32

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

非常感谢……

zcbAzfl 发表于 2014-8-5 11:15:18

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

好的,谢谢指导。

snowy 发表于 2014-8-5 20:06:37

走HTTP+XML做标记,不是很好么?

Bastagne 发表于 2014-8-6 00:07:13

用FTP的飘过

zcbAzfl 发表于 2014-8-6 10:42:21

snowy 发表于 2014-8-5 20:06
走HTTP+XML做标记,不是很好么?

不懂,能否再详细一点?

zcbAzfl 发表于 2014-8-6 10:42:43

Bastagne 发表于 2014-8-6 00:07
用FTP的飘过

效果如何呀?

ldw 发表于 2014-8-9 02:12:14

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

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

lanqilove 发表于 2014-8-9 21:51:40

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

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

ldw 发表于 2014-8-10 00:36:42

lanqilove 发表于 2014-8-9 21:51
cdma你得换模块吧?换模块就不一定支持ftp了吧?

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

brother_yan 发表于 2014-8-10 01:20:10

居然涉及到了GSM,深奥

lklhzu 发表于 2015-3-24 09:30:18

楼主最终使用的哪种方法?测试成功了吗?

zhcj66 发表于 2015-5-7 20:14:01

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

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

zhcj66 发表于 2015-5-20 16:28:10

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

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

wukong998 发表于 2020-2-14 10:57:03

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

一般都使用GSM模块
页: [1]
查看完整版本: SIM900A 使用FTP 进行远程升级