首页 » 排名链接 » 远程升级单片机程序怎么设计?(升级程序设计数据设备)

远程升级单片机程序怎么设计?(升级程序设计数据设备)

乖囧猫 2024-10-23 15:38:35 0

扫一扫用手机浏览

文章目录 [+]

当设备出现程序问题或者需要更新程序时,只需在服务器上对设备进行升级,而无需再由专门的人员去现场进行升级,从而大大地节省了人力和物力。

01

要想实现远程升级,首先应实现以下几个基本功能:

远程升级单片机程序怎么设计?(升级程序设计数据设备) 排名链接
(图片来自网络侵删)

1、Flash读写:不管是本地IAP,还是远程IAP,这都是最基本的功能。

2、无线通讯:可通过WIFI、4G、以太网等多种方式来实现,根据实际项目需求选择。

3、通讯协议:常用的通讯协议有TCP、HTTP、FTP、MQTT等。
其中,HTTP、FTP和MQTT都属于应用层协议,都是基于TCP(传输层)来实现的。
当然,我们也可以自己基于TCP编写简单的通讯协议来实现。

02

远程IAP与本地IAP的设计思路是一致的,都需要设计BOOT程序和APP程序。
但也有一些需要注意的地方,主要是远程升级需要考虑网络延迟,甚至网络中断的问题。

嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!

无偿分享大家一个资料包,差不多150多G。
里面学习内容、面经、项目都比较新也比较全!
某鱼上买估计至少要好几十。

点击这里找小助理0元领取:嵌入式物联网学习资料(头条)

下面,具体介绍一下这些问题。

1、设计程序缓存区:在内部或外部存储器开辟一块区域,用于存储分包接收到的程序数据。
等到全部数据接收完毕后,再一次性写入到Flash进行升级。

这样做有两个好处:一是,直接升级时间可能会比较长,影响用户正常使用,而增加缓存区设计可以大大减少升级时间;二是,直接升级时,如果网络出现问题,可能导致设备无法正常启动变砖,而增加缓存区设计后,即使升级数据传输失败,也不影响设备的正常使用。

2、健壮的通讯协议:本地升级时数据传输出错的概率比较小,但远程设计时就需要多考虑一些,比如前后两包数据可能同时达到等。
因此,设计通讯协议时,就要更严谨,服务器发送的指令和数据都需要设备的确认回复。

3、程序备份设计:即使有上面的各种设计的保障,也不能保证升级过程不会失败。
最好能够设计一个程序备份区,在程序升级失败时运行备份区程序。

03

最后,介绍一种简单的远程升级的步骤:

1、服务器发送升级请求指令;

2、设备回复收到请求升级指令;

3、服务器发送程序升级数据,一般包含包头、包号、总包数、分包的程序数据、校验;

4、设备收到程序数据后,确认校验无误,存储到程序缓存区,并按包号回复服务器,防止出现传输包错乱;

5、服务器收到回复后,再发送下一包数据,直至结束;

6、程序数据发送完成后,服务器发送升级结束指令;

7、设备收到结束指令后,回复服务器,并在Flash指定位置写入升级标志,重启进入BOOT程序;

8、BOOT程序读取升级标志,若需要升级,则读取程序缓存区数据,写入到Flash中;

9、升级完毕,跳转到Flash指定地址运行。

END

来源:嵌入式技术开发

本文转载自“嵌入式微处理器”,如有侵权,请联系删除原文链接:远程升级单片机程序怎么设计?

版权声明:本文来源网络,免费传达知识,版权归原作者所有。
如涉及作品版权问题,请联系我进行删除。

标签:

相关文章