前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >教你动手写UDP协议栈 - OTA上位机<3>

教你动手写UDP协议栈 - OTA上位机<3>

作者头像
Rice加饭
发布2022-05-10 17:16:01
7050
发布2022-05-10 17:16:01
举报
文章被收录于专栏:Rice嵌入式

前言

  • 据上次更新文章已经两个星期了,因为工作的原因,没有时间更新。以后我也会尽量抽空总结近期的知识点。
  • 今天这篇文章是属于专辑《TCP-UDP协议栈》里面的一篇文章。这篇文章也是描述OTA的新的方案。前两篇文章是关于下位机的mini UDP代码实现,那么我们写了小型网络协议栈究竟可以做什么?答案是OTA。之前也写了两篇关于手写UDP协议栈的,如下:
  • 那肯定有人问,OTA采用现成的协议栈不香吗,为什么要自己写协议栈。究竟有啥好处?答案如下:
  1. 因为现成的协议栈比较大,而且OTA功能用不到那么多协议栈功能。
  2. 现在物联网的时代,很多设备都是MCU + WIFI,在一些情况可能你要对MCU和WIFI进行升级,大部分的升级方式如下图,PC或服务器发送升级包到MCU,然后MCU转发升级包给WIFI,这样实现WIFI模块的升级,很浪费资源,而且还要求MCU上的flash更加大。这样是一个不怎么理智的做法。如果这样的方式给MCU升级确实没有啥问题。
  1. 自己写的mini UDP协议栈实质是放在wifi模块上的,通过制定的协议将OTA包发送出去,WIFI模块的mini UDP协议栈拦截制定协议的OTA包,然后进行升级。如下图,这样的形式,MCU不用参与WIFI的升级,可以说WIFI可以不知不觉的进行升级,MCU一点知觉也没有。这样的升级方式快速,稳定。
  • 通过上述的描述,总的来说就是简化wifi模块的OTA功能。降低MCU的负担。

上位机

《Mini UDP OTA Tool》这是一个非常简陋的软件,采用Python写的。在这我想吐槽一下,Python写上位机真心不好写,我用过几种语言写过上位机,Python写上位机是最痛苦的。

这个软件支持一键批量设备串行升级。也可根据版本号,对某一批设备进行一键升级。可以指定某个网卡设备上的设备进行升级。

软件说明:

  1. OTA固件路径选择。
  2. 需要进行OTA的设备选择。
  3. 网卡选择。
  4. OTA流程显示。
  5. OTA进度条。
  6. 扫描设备。
  7. 一键升级按钮。

实操演示

通过对WIFI默默的升级,MCU一点知觉都没有,WIFI就完成了固件的升级,这样的方案比起转发升级效率高很多,不影响MCU的性能,只会在升级的过程中影响一点网速。

声明

由于这个上位机的的代码包含一些协议的东西,是不能对外暴露的。如果你对这个方案感兴趣,欢迎私聊我。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Rice 嵌入式开发技术分享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 上位机
  • 实操演示
  • 声明
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档