0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

电子设计 来源:电子设计 作者:电子设计 2020-12-24 17:46 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言

据上次更新文章已经两个星期了,因为工作的原因,没有时间更新。以后我也会尽量抽空总结近期的知识点。

今天这篇文章是属于专辑《TCP-UDP协议栈》里面的一篇文章。这篇文章也是描述OTA的新的方案。前两篇文章是关于下位机的mini UDP代码实现,那么我们写了小型网络协议栈究竟可以做什么?答案是OTA。之前也写了两篇关于手写UDP协议栈的,如下:

教你动手写UDP协议栈教你动手写UDP协议栈-DHCP数据包解析<2>

那肯定有人问,OTA采用现成的协议栈不香吗,为什么要自己写协议栈。究竟有啥好处?答案如下:

因为现成的协议栈比较大,而且OTA功能用不到那么多协议栈功能。现在物联网的时代,很多设备都是MCU + WIFI,在一些情况可能你要对MCU和WIFI进行升级,大部分的升级方式如下图,PC或服务器发送升级包到MCU,然后MCU转发升级包给WIFI,这样实现WIFI模块的升级,很浪费资源,而且还要求MCU上的flash更加大。这样是一个不怎么理智的做法。如果这样的方式给MCU升级确实没有啥问题。

自己写的mini UDP协议栈实质是放在wifi模块上的,通过制定的协议将OTA包发送出去,WIFI模块的mini UDP协议栈拦截制定协议的OTA包,然后进行升级。如下图,这样的形式,MCU不用参与WIFI的升级,可以说WIFI可以不知不觉的进行升级,MCU一点知觉也没有。这样的升级方式快速,稳定。

通过上述的描述,总的来说就是简化wifi模块的OTA功能。降低MCU的负担。上位机

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

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

审核编辑:符乾江
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式设计
    +关注

    关注

    0

    文章

    399

    浏览量

    22567
  • UDP协议栈
    +关注

    关注

    0

    文章

    4

    浏览量

    1264
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    DPE5500/W5500—SPI 接口以太网协议芯片

    DPE5500是一款SPI接口的以太网协议芯片,适用于单片系统实现以太网通讯。DPE5500集成了全硬件TCP/IP协议,10/100
    发表于 05-21 17:46

    从零开始学硬件 &amp;lt;4&amp;gt;demo源码2.OceanOS-CM0-B2解读

    : 开灯 -&amp;gt; os_tick_delay(500) 延时 500 tick(通常约 500ms) 关灯 -&amp;gt; 再延时 500 tick 结果就是 LED
    发表于 04-15 17:12

    从零开始学硬件 &amp;lt;3&;gt;demo源码1.OceanOS-CM0-B1解读

    : Keil菜单选项Debug-&amp;gt;Start/Stop Debug Session,运行 烧录: Keil 要先构建快捷build(或者菜单选项project-&amp;gt
    发表于 04-15 17:06

    从零开始学硬件 &amp;lt;2&amp;gt;硬件连接

    3、调试仿真器的接线,也是一样对应OceanOS-CM0板的接线,共三根线一一对应。调试仿真器(线口)-&amp;gt;OceanOS-CM0板(线口
    发表于 03-24 01:01

    分享一个周末手搓的高性能C++虚拟示波器上位(附带抗压测试视频)

    建立局部空容器,准备接 std::vector&amp;lt;uint16_t&amp;gt; vSnap1, vSnap2, vSnap3
    发表于 03-08 13:03

    S32K3 OTA 演示示例在 EVB 上复位后无法启动S32K358怎么解决?

    = IP_DCM-&amp;gt;DCMSTAT; if (DCMStat &amp;amp; DCM_DCMLCS_DCMLCE3_MA
    发表于 03-06 07:59

    零知IDE——基于STM32与W5500的UDP通信实现温湿度监控

    以太网模块,实现了一套完整的UDP通信温湿度监控系统。系统通过DHT11传感器实时采集环境温湿度数据,通过W5500以太网模块建立UDP通信链路,将数据发送至PC上位。同时,
    发表于 02-28 16:08

    采用蓝牙OTA方式需要注意哪些位置

    ] 推荐使用简化开关 CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU: 在 prj.conf 中添加:&amp;lt;span&amp;
    发表于 02-12 10:19

    【道生物联TKB-623评估板试用】基于串口透传的手写数字识别

    ,默认 3 &amp;lt;最大包长&amp;gt; 取值范围为 1~2048 详见:TK8620基于SDK2.0的AT指令使用说明 — 资
    发表于 11-08 11:44

    esp8266 udp server 端口监听错误的原因?

    ;amp; sock-&amp;gt;type == AT_SOCKET_UDP &amp;amp
    发表于 09-23 07:03

    【上海晶珩睿莓1开发板试用体验】5、网络性能测试

    ) 支持自定义窗口、带宽、端口和持续时间 iperf3常用参数 -c &amp;lt;host&amp;gt;: 以客户端模式连接到服务端
    发表于 08-19 10:25

    具有 I&lt;sup&gt;2&lt;/sup&gt;C 接口的 3 通道/2 通道升压 LED 驱动器 skyworksinc

    电子发烧友网为你提供()具有 I&lt;sup&gt;2&lt;/sup&gt;C 接口的 3 通道/2 通道升压 LED 驱动器相关产品参
    发表于 07-24 18:29
    具有 I&<b class='flag-5'>lt</b>;sup&<b class='flag-5'>gt</b>;2&<b class='flag-5'>lt</b>;/sup&<b class='flag-5'>gt</b>;C 接口的 <b class='flag-5'>3</b> 通道/2 通道升压 LED 驱动器 skyworksinc

    CS86706适用1~3节锂电应用,内置升压模块,2×30W立体声&amp;amp;amp;50W单声道R类音频功率放大器

    CS86706适用1~3节锂电应用,内置升压模块,2×30W立体声&amp;amp;50W单声道R类音频功率放大器
    的头像 发表于 07-16 20:42 972次阅读
    CS86706适用1~<b class='flag-5'>3</b>节锂电应用,内置升压模块,2×30W立体声&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;50W单声道R类音频功率放大器

    基于LockAI视觉识别模块:手写数字识别

    Result对象包含预测得分(score)和对应的标签ID(label_id),即识别出的手写数字。 2.2 Visualize函数 2.2.1 头文件 #include &amp;lt
    发表于 06-30 16:45

    CYW4373E如何设置AP信道自动跟随STA?

    建立与 hostapd 的连接 &amp;lt;3&;gt;AP-已禁用 &amp;lt;
    发表于 06-05 07:43