0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

如何遠程升級單片機程序詳細解說

Q4MP_gh_c472c21 ? 來源:CSDN技術社區(qū) ? 作者:天外飛仙CUG ? 2021-04-17 09:32 ? 次閱讀

之前的文章中介紹過串口和U盤的IAP程序設計。在物聯(lián)網(wǎng)應用中,遠程IAP升級MCU的程序是一項非常有用的功能。當設備出現(xiàn)程序問題或者需要更新程序時,只需要在服務器上對設備進行升級,不需要在有專門的人員去現(xiàn)場進行升級,節(jié)省人力物力。

要實現(xiàn)遠程升級,首先要實現(xiàn)以下幾個基本功能:

1、Flash讀寫。不管是本地IAP還是遠程IAP,這都是最基本的功能。

2、無線通訊。可通過WIFI、4G、以太網(wǎng)等多種方式來實現(xiàn),根據(jù)實際項目需求選擇。

3、通訊協(xié)議。常用的通訊協(xié)議有TCP、HTTP、FTP、MQTT等。其中HTTP、FTP和MQTT都屬于應用層協(xié)議,都是基于TCP(傳輸層)來實現(xiàn)的。用戶也可以自己基于TCP編寫簡單的通訊協(xié)議來實現(xiàn)。

遠程IAP與本地IAP的設計思路是一致的,都需要設計BOOT程序和APP程序。但也有一些需要注意的地方。主要是遠程升級需要考慮網(wǎng)絡延遲甚至網(wǎng)絡中斷的問題。體現(xiàn)在以下幾方面:

設計程序緩存區(qū)

在內(nèi)部或外部存儲器開辟一塊區(qū)域,用于存儲分包接收到的程序數(shù)據(jù)。等到全部數(shù)據(jù)接收完畢后再一次性寫入到Flash進行升級。這樣做有以下2點好處:

1.直接升級時間可能會比較長,影響用戶正常使用,增加緩存區(qū)設計可以大大減少升級時間。

2.直接升級時,如果網(wǎng)絡出現(xiàn)問題,可能導致設備無法正常啟動變磚。增加緩存區(qū)設計后,即使升級數(shù)據(jù)傳輸失敗,也不影響設備的正常使用。

健壯的通訊協(xié)議

本地升級時數(shù)據(jù)傳輸出錯的概率比較小。但遠程設計時就需要多考慮一些,比如前后兩包數(shù)據(jù)可能同時達到等。因此,設計通訊協(xié)議時,就要更嚴謹,服務器發(fā)送的指令和數(shù)據(jù)都需要設備的確認回復。

程序備份設計

即使有上面的各種設計的保障,也不能保證升級過程不會失敗。最好能夠設計一個程序備份區(qū),在程序升級失敗時運行備份區(qū)程序。 下面介紹一種簡單的遠程升級的步驟。

服務器發(fā)送升級請求指令。

設備回復收到請求升級指令。

服務器發(fā)送程序升級數(shù)據(jù)。(一般包含包頭、包號、總包數(shù)、分包的程序數(shù)據(jù)、校驗)

設備收到程序數(shù)據(jù)后,確認校驗無誤,存儲到程序緩存區(qū),并按包號回復服務器,防止出現(xiàn)傳輸包錯亂。

服務器收到回復后再發(fā)送下一包數(shù)據(jù),直至結束。

程序數(shù)據(jù)發(fā)送完成后,服務器發(fā)送升級結束指令。

設備收到結束指令后,回復服務器。并在Flash指定位置寫入升級標志,重啟進入BOOT程序。

BOOT程序讀取升級標志,若需要升級,則讀取程序緩存區(qū)數(shù)據(jù),寫入到Flash中。

升級完畢,跳轉到Flash指定地址運行。
編輯:lyn

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6023

    文章

    44376

    瀏覽量

    628456
  • FlaSh
    +關注

    關注

    10

    文章

    1598

    瀏覽量

    147340
  • WIFI
    +關注

    關注

    81

    文章

    5256

    瀏覽量

    201735
  • Boot
    +關注

    關注

    0

    文章

    148

    瀏覽量

    35675

原文標題:遠程升級單片機程序怎么設計?

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    keil可以讀出單片機程序

    Keil是一款廣泛應用于單片機程序開發(fā)的軟件,它提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案。然而,關于Keil是否能直接“讀出”單片機程序
    的頭像 發(fā)表于 09-02 10:32 ?241次閱讀

    單片機燒錄程序用什么軟件

    單片機燒錄程序單片機開發(fā)過程中的一個重要環(huán)節(jié),涉及到將編寫好的程序代碼通過燒錄器寫入單片機的ROM中,以實現(xiàn)對
    的頭像 發(fā)表于 09-02 10:05 ?265次閱讀

    單片機燒錄程序的線比單片機上的少還能燒錄嗎

    單片機燒錄原理 單片機燒錄是指將編寫好的程序代碼通過一定的方式傳輸?shù)?b class='flag-5'>單片機的存儲器中,使其能夠按照程序的指令運行。這個過程通常需要使用燒錄器
    的頭像 發(fā)表于 09-02 09:54 ?216次閱讀

    單片機燒錄程序的基本步驟是什么

    單片機燒錄程序單片機開發(fā)過程中非常重要的一步,它涉及到將編寫好的程序代碼通過一定的方式傳輸?shù)?b class='flag-5'>單片機內(nèi)部的存儲器中,使
    的頭像 發(fā)表于 09-02 09:47 ?244次閱讀

    單片機怎么能夠與手機實現(xiàn)遠程通訊呢?

    多種應用。本文將從遠程通訊原理、通訊方式以及應用案例等方面進行詳細介紹。 一、遠程通訊原理 1. Wi-Fi通訊原理 Wi-Fi(無線局域網(wǎng))是一種常用的遠程通訊方式,通過將
    的頭像 發(fā)表于 01-15 14:59 ?2077次閱讀

    基于單片機的糧倉遠程監(jiān)控系統(tǒng)的設計

    電子發(fā)燒友網(wǎng)站提供《基于單片機的糧倉遠程監(jiān)控系統(tǒng)的設計.rar》資料免費下載
    發(fā)表于 01-12 10:52 ?10次下載

    單片機程序讀取需要什么工具

    單片機程序讀取的工具可以分為硬件工具和軟件工具兩類。下面將詳細介紹這些工具的種類、功能和使用方法。 一、硬件工具 單片機開發(fā)板:單片機開發(fā)板
    的頭像 發(fā)表于 01-02 18:10 ?3078次閱讀

    基于單片機的糧倉遠程監(jiān)控系統(tǒng)的設計

    基于單片機的糧倉遠程監(jiān)控系統(tǒng)的設計(實物)
    發(fā)表于 01-02 09:59 ?2次下載

    單片機串口通信的接收與發(fā)送程序

    單片機串口通信的接收與發(fā)送程序 一、引言 單片機串口通信是一種常見的通信方式,廣泛應用于各種嵌入式系統(tǒng)和工業(yè)控制領域。通過串口通信,單片機可以與其他設備或計算機進行數(shù)據(jù)交換,實現(xiàn)
    的頭像 發(fā)表于 12-19 13:57 ?4428次閱讀

    STM32單片機實現(xiàn)固件在線升級(IAP)

    1,固件升級方案綜述單片機的固件升級方式有很多種。1、ICP:簡單說就是在單片機開發(fā)時使用燒錄器升級程序
    的頭像 發(fā)表于 12-16 08:00 ?3785次閱讀
    STM32<b class='flag-5'>單片機</b>實現(xiàn)固件在線<b class='flag-5'>升級</b>(IAP)

    基于單片機的汽車遠程監(jiān)測系統(tǒng)車載采集終端

    電子發(fā)燒友網(wǎng)站提供《基于單片機的汽車遠程監(jiān)測系統(tǒng)車載采集終端.pdf》資料免費下載
    發(fā)表于 11-16 09:26 ?0次下載
    基于<b class='flag-5'>單片機</b>的汽車<b class='flag-5'>遠程</b>監(jiān)測系統(tǒng)車載采集終端

    GD32單片機STM32遠程下載手機程序升級固件下載局域網(wǎng)網(wǎng)頁升級工具

    GD32、STM32單片機,是我們最常見的一種MCU。通常我們在使用STM32單片機都會遇到程序在線升級下載的問題。 GD32/STM32單片機
    發(fā)表于 11-10 15:03

    GD32單片機STM32遠程下載手機程序升級固件下載局域網(wǎng)網(wǎng)頁升級工具

    GD32、STM32單片機,是我們最常見的一種MCU。通常我們在使用STM32單片機都會遇到程序在線升級下載的問題。使用該方法可以完成手機網(wǎng)頁在線
    的頭像 發(fā)表于 11-09 12:31 ?1677次閱讀
    GD32<b class='flag-5'>單片機</b>STM32<b class='flag-5'>遠程</b>下載手機<b class='flag-5'>程序</b><b class='flag-5'>升級</b>固件下載局域網(wǎng)網(wǎng)頁<b class='flag-5'>升級</b>工具

    基于單片機的汽車遠程監(jiān)測車載終端硬件設計

    電子發(fā)燒友網(wǎng)站提供《基于單片機的汽車遠程監(jiān)測車載終端硬件設計.pdf》資料免費下載
    發(fā)表于 11-03 14:22 ?1次下載
    基于<b class='flag-5'>單片機</b>的汽車<b class='flag-5'>遠程</b>監(jiān)測車載終端硬件設計

    基于LabVIEW和IAP的單片機遠程實驗系統(tǒng)

    電子發(fā)燒友網(wǎng)站提供《基于LabVIEW和IAP的單片機遠程實驗系統(tǒng).pdf》資料免費下載
    發(fā)表于 10-25 11:06 ?1次下載
    基于LabVIEW和IAP的<b class='flag-5'>單片機</b><b class='flag-5'>遠程</b>實驗系統(tǒng)