国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

HTTP模式下STM32程序遠(yuǎn)程升級設(shè)計

這篇具有很好參考價值的文章主要介紹了HTTP模式下STM32程序遠(yuǎn)程升級設(shè)計。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

針對嵌入式終端設(shè)備架設(shè)分散、數(shù)量龐大以及應(yīng)用程序更新迭代速度快帶來的程序升級困難局面,運用STM32微控制器的在應(yīng)用中編程(IAP)原理,設(shè)計了通過以太網(wǎng)遠(yuǎn)程升級程序的方案。

HTTP協(xié)議和LwIP協(xié)議的使用,不僅讓整個方案具備高安全性、可靠性。易用性,還有效降低了硬件資源的消耗。該方案穩(wěn)定、可靠、操作簡單,可以廣泛應(yīng)用于網(wǎng)絡(luò)環(huán)境下的IAP升級,具有較高的推廣價值。

引言

目前STM32設(shè)備程序升級的通用解決方案是使用在應(yīng)用中編程(IAP)原理進(jìn)行設(shè)計,通過串口、USB、4G無線模塊等通信方式將待升級程序文件傳輸至設(shè)備端,然后直接寫入用戶程序存儲區(qū)來實現(xiàn)。

在實際使用場景中,串口、USB的方式不支持遠(yuǎn)程操作,而4G無線模塊通信穩(wěn)定性較差,硬件成本較高。

針對上述問題,本文以某信號處理項目健康管理單元模塊為背景,開展使用以太網(wǎng)通信方式實現(xiàn)程序遠(yuǎn)程升級方法的研究,使用輕量化的通信協(xié)議以減少對內(nèi)存資源的占用,并提供精簡、安全的網(wǎng)頁操作界面供用戶使用。

LwIP協(xié)議

LwIP是一個小型開源的TCP/IP協(xié)議棧,有無操作系統(tǒng)的支持都可以運行,其實現(xiàn)的重點是在保持TCP協(xié)議主要功能的基礎(chǔ)上最大程序地減少對設(shè)備內(nèi)存的占用,以便在硬件資源緊張的嵌入式系統(tǒng)中使用。
其源代碼全部使用C語言實現(xiàn),開發(fā)人員可以方便地實現(xiàn)跨處理器、跨操作系統(tǒng)的移植。

數(shù)據(jù)流向

基于LwIP內(nèi)核自身的內(nèi)存管理策略和網(wǎng)絡(luò)數(shù)據(jù)包管理策略,網(wǎng)卡數(shù)據(jù)傳入LwIP內(nèi)核的流程大致如下:當(dāng)網(wǎng)口接收到網(wǎng)絡(luò)數(shù)據(jù)產(chǎn)生一個中斷后就會釋放一個信號量,通知網(wǎng)卡接收數(shù)據(jù)區(qū)處理這些收到的數(shù)據(jù),再將這些數(shù)據(jù)封裝成消息投遞到tcpip_mbox郵箱中,LwIP內(nèi)核線程得到這個消息后就對其進(jìn)行解析,根據(jù)消息中數(shù)據(jù)包的類型進(jìn)行處理,同時調(diào)用ethernet_input函數(shù)決定是否遞交到IP層。
如果是ARP包,內(nèi)核就不會遞交給IP層,僅僅只更新ARP緩存表;如果是IP數(shù)據(jù)包,則遞交給IP層去處理。
stm32網(wǎng)絡(luò)升級程序,論文學(xué)習(xí),http,stm32,網(wǎng)絡(luò)協(xié)議
這樣的數(shù)據(jù)流向使內(nèi)核處理數(shù)據(jù)包的效率得到較大提升,且各層之間保持相對獨立,某一層并不需要指定下一層如何實現(xiàn),僅需知道該層通過層間接口所提供的服務(wù)即可。用戶程序與內(nèi)核是完全獨立的,通過操作系統(tǒng)進(jìn)程間通信機制進(jìn)行數(shù)據(jù)交互。

HTTP服務(wù)器

HTTP是用于從萬維網(wǎng)服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議,它是基于TCP/IP通信的,使用“客服端-服務(wù)器”模型運作,是一個應(yīng)用層協(xié)議,可以用來傳輸服務(wù)器的各種資源,如文本、圖片、音頻等,本設(shè)計用它來傳輸應(yīng)用程序的二進(jìn)制文件。

資源管理

統(tǒng)一資源標(biāo)識符(URI)是一個通用的概念,由2個子集組成,分別是統(tǒng)一資源定位符(URL)和統(tǒng)一資源名稱(URN)。
URL是互聯(lián)網(wǎng)上用來標(biāo)識某一處資源的絕對地址,即通過資源的位置來標(biāo)識資源,使用它就能找到資源。
其通用格式如下:??/:@:/

;?#
stm32網(wǎng)絡(luò)升級程序,論文學(xué)習(xí),http,stm32,網(wǎng)絡(luò)協(xié)議
URL不一定包含所有的組件內(nèi)容,常用的URL組件如表1所示。
本方案中升級網(wǎng)頁的地址http://192.168.0.12就是一個最簡單的URL,地址中的數(shù)字同時也是設(shè)備的IP地址,改變IP地址即可切換到局域網(wǎng)內(nèi)不同終端設(shè)備的升級網(wǎng)頁,有效提升程序升級效率。

HTTP報文

HTTP報文是在http應(yīng)用程序之間發(fā)送的數(shù)據(jù)塊,它包裹著請求數(shù)據(jù)交換的信息。
HTTP報文分請求報文和響應(yīng)報文,其結(jié)構(gòu)基本相同,分為:

  1. 起始行,它描述請求或響應(yīng)的基本信息
  2. 頭部,它使用關(guān)鍵詞-數(shù)值的形式詳細(xì)地說明報文
  3. 實體,即實際傳輸?shù)臄?shù)據(jù),可以使純文本,圖片,視頻等二進(jìn)制數(shù)據(jù)。

一個完整的HTTP報文如圖所示,需要特別注意的是,頭部和實體之間有一個空行。
stm32網(wǎng)絡(luò)升級程序,論文學(xué)習(xí),http,stm32,網(wǎng)絡(luò)協(xié)議

請求行
請求報文的起始行稱為請求行,它簡要描述了客戶端想要如何操作服務(wù)器的資源。
請求行的構(gòu)成:

  1. 請求方法:GET/POST,表示對資源的操作。
  2. 請求目標(biāo),通常是一個URI,標(biāo)記了請求方法要操作的資源。
  3. 版本,表示報文使用的HTTP協(xié)議版本。
    stm32網(wǎng)絡(luò)升級程序,論文學(xué)習(xí),http,stm32,網(wǎng)絡(luò)協(xié)議

狀態(tài)行
響應(yīng)報文的起始行又稱為狀態(tài)行,主要用來標(biāo)識服務(wù)器響應(yīng)的狀態(tài)。
狀態(tài)行的構(gòu)成:
4. 版本,表示報文使用的HTTP協(xié)議版本。
5. 狀態(tài)碼,一個3位數(shù),用代碼的形式表示處理結(jié)果,比如200是成功,500是服務(wù)器錯誤。
6. 原因,作為數(shù)字狀態(tài)碼補充,是更詳細(xì)的解釋文字,幫助人理解原因。

stm32網(wǎng)絡(luò)升級程序,論文學(xué)習(xí),http,stm32,網(wǎng)絡(luò)協(xié)議

總體架構(gòu)

系統(tǒng)主要由遠(yuǎn)程電腦主機、嵌入式終端設(shè)備組成,2者通過網(wǎng)線接入到同一局域網(wǎng)。
當(dāng)終端設(shè)備需要進(jìn)行程序升級時,在電腦主機端通過網(wǎng)頁登錄HTTP服務(wù)器,輸入用戶名和密碼進(jìn)入到程序升級網(wǎng)頁,然后選擇目標(biāo)程序文件并點擊升級按鈕,即可對設(shè)備程序進(jìn)行升級。

在嵌入式設(shè)備端,系統(tǒng)引導(dǎo)程序加載完畢后,首先檢查是否需要對設(shè)備程序進(jìn)行升級,若檢查到標(biāo)志位,則通過以太網(wǎng)接口接收目標(biāo)程序文件,校驗成功后燒寫到用戶應(yīng)用程序分區(qū)中,接著復(fù)位系統(tǒng),便可運行升級后的用戶應(yīng)用程序;若為檢測到標(biāo)志位,則直接運行用戶原來的應(yīng)用程序。

stm32網(wǎng)絡(luò)升級程序,論文學(xué)習(xí),http,stm32,網(wǎng)絡(luò)協(xié)議
相比采用串口、USB、無線模塊等實現(xiàn)的在線升級功能,本方案對于設(shè)備維護人員來說,無需進(jìn)行復(fù)雜的接線操作,免去上位機繁瑣的安裝及設(shè)置過程,只要電腦主機和設(shè)備端位于同一局域網(wǎng)即可。

LwIP支持的通信協(xié)議較為完整,支持多種編程接口,開源免費,其流暢運行只需要40kB的存儲空間和幾十kB的運行內(nèi)存,消耗的硬件資源較少。

升級代碼由跳轉(zhuǎn)檢測代碼和用戶程序燒寫代碼2部分組成,當(dāng)檢測代碼識別到升級標(biāo)志位后,系統(tǒng)則等待網(wǎng)絡(luò)中傳來的程序文件。程序文件傳送完畢且校驗無誤后,隨機跳轉(zhuǎn)到用戶程序區(qū)燒寫代碼,完成終端設(shè)備的程序升級工作。

跳轉(zhuǎn)代碼

為了區(qū)別IAP模式與正常運行的用戶程序,系統(tǒng)在初始化完外圍器件后需要讀取一個狀態(tài)標(biāo)志位來確定是否進(jìn)行用戶程序升級。
使用內(nèi)部存儲區(qū)的某個特定區(qū)域來存放升級標(biāo)志位,當(dāng)程序讀取到該標(biāo)志位后便進(jìn)入IAP模式,否則直接運行用戶應(yīng)用程序。

當(dāng)跳轉(zhuǎn)程序檢查棧頂?shù)刂泛戏ê蟊阍O(shè)置用戶代碼區(qū)第二個字位程序開始地址,接著初始化應(yīng)用程序堆棧指針,最后跳轉(zhuǎn)到應(yīng)用程序,等待接收升級文件。文章來源地址http://www.zghlxwxcb.cn/news/detail-672130.html

到了這里,關(guān)于HTTP模式下STM32程序遠(yuǎn)程升級設(shè)計的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • STM32 OTA遠(yuǎn)程升級

    STM32 OTA遠(yuǎn)程升級

    前言:OTA全稱是over the air,主要應(yīng)用于物聯(lián)網(wǎng)設(shè)備作為更新代碼使用,其原理在不同芯片上相通,應(yīng)用較為廣泛。 一、OTA硬件組成 ? 對于OTA硬件來講,常用的硬件組成是無線芯片+MCU,常用的無線模塊有WIFI、4G、LORA甚至是藍(lán)牙等具有無線傳輸功能的設(shè)備,MCU則是例如51,STM3

    2024年02月11日
    瀏覽(24)
  • 基于stm32作品設(shè)計:多功能氛圍燈、手機APP無線控制ws2812,MCU無線升級程序

    基于stm32作品設(shè)計:多功能氛圍燈、手機APP無線控制ws2812,MCU無線升級程序

    作品嗶哩嗶哩視頻:https://www.bilibili.com/video/BV1Yb4y1a7AQ#reply5536921990 資料鏈接: 藍(lán)牙彩燈v1.01資料鏈接: CSDN: https://download.csdn.net/download/mbs520/25149435 百度網(wǎng)盤: https://pan.baidu.com/s/14Vout7Q2P6JBDZCCd8Gm6w 提取碼:b7it 藍(lán)牙彩燈v1.03資料鏈接: https://download.csdn.net/download/mbs520/25150035 取

    2024年02月09日
    瀏覽(25)
  • stm32利用bootloader與app實現(xiàn)遠(yuǎn)程升級

    stm32利用bootloader與app實現(xiàn)遠(yuǎn)程升級

    1、flash空間分配: 事先在flash開辟好空間,假設(shè)flash為128k,我這邊給它分為五個區(qū),分別為bootloader、標(biāo)志位、application、application backup、標(biāo)簽ID。 (注:升級之前,app的代碼燒錄于application的flash存儲區(qū)域內(nèi)。用于app升級的 bin文件 大小一定要小于自己開辟的flash空間大?。?/p>

    2024年02月13日
    瀏覽(27)
  • STM32 10個工程篇:1.IAP遠(yuǎn)程升級(六)

    STM32 10個工程篇:1.IAP遠(yuǎn)程升級(六)

    ? ? ? ?在IAP遠(yuǎn)程升級的最后一篇博客里,筆者想概括性地梳理總結(jié)IAP程序設(shè)計中值得注意的問題,誠然市面上或者工作后存在不同版本的IAP下位機和上位機軟件,也存在不同定義的報文格式,甚至對于相似的知識點不同教程又有著完全不同的解讀,這就很容易讓初學(xué)者摸不

    2024年02月06日
    瀏覽(23)
  • STM32 10個工程篇:1.IAP遠(yuǎn)程升級(四)

    STM32 10個工程篇:1.IAP遠(yuǎn)程升級(四)

    ? ? ? 在前三篇博客中主要介紹了 IAP 遠(yuǎn)程升級的應(yīng)用背景、下位機的實現(xiàn)原理、以及基于 STM32CubeMX 對 STM32F103 串口 DMA 的基本配置,第四篇博客主要想介紹 Labview 端上位機和下位機端的報文定義和通信等。 ? ? ? ?當(dāng)筆者工作上剛接觸到 STM32 IAP 升級的時候,實事求是地說存

    2024年02月06日
    瀏覽(20)
  • STM32 10個工程篇:1.IAP遠(yuǎn)程升級(三)

    STM32 10個工程篇:1.IAP遠(yuǎn)程升級(三)

    ? ? ? ?本想著周六去更新 IAP 遠(yuǎn)程升級(三),但是周三單位突然通知團建周六去爬水長城,晚上回來已經(jīng)精疲力竭,打開電腦不由地點開網(wǎng)易云音樂聽著聽著感覺很乏,去床上躺了會可一覺醒來已經(jīng)夜里三點,于是調(diào)整一下周日晚上開始撰寫這篇博客,言簡意賅不想贅述過

    2024年02月13日
    瀏覽(18)
  • STM32 10個工程篇:1.IAP遠(yuǎn)程升級(五)

    STM32 10個工程篇:1.IAP遠(yuǎn)程升級(五)

    ? ? ? ? 伴隨著催更不斷,周日晚上來繼續(xù)撰寫STM32 IAP遠(yuǎn)程升級的項目例程,在這篇博客中筆者主要結(jié)合上位機報文發(fā)送機制來介紹下位機的報文解析設(shè)計,堅持做原創(chuàng)博客確實是一件很考驗?zāi)土Φ氖虑椋环矫娌┛偷奈淖趾蛨D片需要投入大量精力和時間,另一方面想要把意

    2024年02月13日
    瀏覽(17)
  • STM32 USB DFU固件升級的設(shè)計與實現(xiàn)

    STM32 USB DFU固件升級的設(shè)計與實現(xiàn)

    STM32微控制器支持通過USB DFU(Device Firmware Upgrade)協(xié)議進(jìn)行固件升級,這使得設(shè)備可以在不需要特殊的調(diào)試工具或編程器的情況下,通過USB接口實現(xiàn)固件的更新。 在本文中,我們將介紹如何設(shè)計和實現(xiàn)STM32 USB DFU固件升級功能,并提供相關(guān)的代碼示例。 ?作者簡介:熱愛科研

    2024年01月25日
    瀏覽(23)
  • stm32 在線升級程序 bost IAP程序 + app程序

    機器內(nèi) bootloader程序 啟動默認(rèn)程序 默認(rèn)程序有 串口判斷 是否收到 升級命令 收到升級命令后 接受串口發(fā)送過來的 更新程序 接受完成后 跳轉(zhuǎn)到新程序位置開始執(zhí)行 https://www.zhihu.com/people/lian-zhu-50 首先arm單片機控制程序運行是通過PC指針完成的,PC指到哪里,程序就運行到哪里

    2024年02月10日
    瀏覽(24)
  • STM32 IAP應(yīng)用開發(fā)--bootloader升級程序

    STM32 IAP應(yīng)用開發(fā)--bootloader升級程序

    原文鏈接:https://blog.csdn.net/ShenZhen_zixian/article/details/129424077 什么是IAP? IAP(In-Application Programming) 指MCU可以在系統(tǒng)中獲取新代碼并對自己重新編程,即可用程序來改變程序。在應(yīng)用編程(IAP)是用戶的應(yīng)用代碼對片內(nèi)Flash存儲器進(jìn)行擦除/編程的方法。這種方式的典型應(yīng)用就

    2024年01月17日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包