色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

AT32講堂037 | 如何使用AT32F437以太網通信接口實現在應用中編程(IAP)

雅特力 AT32 MCU ? 2022-11-23 09:26 ? 次閱讀

IAP概述

工作原理

在應用中編程(IAP)是一種在現場通過MCU通信接口(例如USART、USB、CAN以太網)進行固件升級的方式。

啟動微控制器時,可以選擇讓其在以下任一模式運行:

  • IAP模式,用于執行IAP代碼
  • 正常模式,用于執行應用程序代碼

無論是IAP代碼還是應用程序代碼都位于微控制器的內置FLASH中,IAP代碼通常存儲在MCU FLASH的第一頁,而用戶應用程序代碼則占據剩余的FLASH區域。

圖1介紹了IAP操作流程

圖1 IAP操作流程ea3ac0c2-69a9-11ed-b116-dac502259ad0.png

使用MCU以太網接口實現IAP

如果有以太網可用,則它通常是嵌入式系統中實現IAP功能的首選接口,其優勢包含:

高速通信接口(10/100 Mbps)

通過網絡(LAN或WAN)進行遠程編程

可以使用FTP、TFTP、HTTP等基于TCP/IP棧的標準應用協議實現IAP

通過以太網在AT32F437上實現IAP

本應用筆記將介紹兩種使用以太網通信外設在AT32F437上實現IAP的解決方案:

  • 使用TFTP(簡單文件傳輸協議)的IAP
  • 使用HTTP(超文本傳輸協議)的IAP

這兩種解決方案均基于LwIP棧(2.1.2),它是輕量級的TCP/IP協議棧

使用TFTP實現IAP方法使用TFTP實現IAP的方法廣泛應用于需要具有固件升級功能的嵌入式系統應用中(例如,嵌入式Linux bootloader中)。

TFTP是一種在UDP傳輸層上執行的簡單文件傳輸協議。此協議非常適合在局域網環境中使用。它基于客戶端/服務器架構,在這種架構中,客戶端會向服務器發出文件傳輸請求(讀取或寫入操作)。

為實現IAP,需要在LwIP協議棧上實現一個簡單的TFTP服務器,服務器只須處理來自PC的TFTP客戶端的寫入請求即可。

使用HTTP實現IAP方法使用HTTP協議進行固件升級沒有使用TFTP常見,但是在需要通過Internet進行遠程編程時,這種解決方案就顯得極為有用。這時,需要使用TCP傳輸協議來實現HTTP服務。

HTTP基于TCP協議運行,它提供了一個一種以HTML表單形式從Web客戶端(Mozilla Firefox或Microsoft Internet Explorer)發送一個二進制文件的方式。這稱為HTTP文件上傳(RFC1867)。

本文檔中的后續章節將詳細介紹這兩種IAP方法的實現,并會對如何使用軟件進行說明。

使用TFTP實現IAP

TFTP概述

TFTP是一種基于UDP的簡單文件傳輸協議。文件傳輸由TFTP客戶端發起,會向TFTP服務器發送讀取或寫入請求。服務器確認請求后,即開始進行文件數據傳輸。數據將以固定大小的塊盡情發送(例如每塊含512個字節)。

必須在每個發出的數據塊都得到接收方確認后,才可以發送下一個數據塊。這種確認機制通過隨各個數據塊一同發送的編塊號來實現。數據塊小于固定塊大小表示文件傳輸的結束。

圖2描述了各種TFTP數據包的格式:圖2 TFTP數據包eb2c7d04-69a9-11ed-b116-dac502259ad0.png表1列出了TFTP操作碼。表1 TFTP操作碼eb410f80-69a9-11ed-b116-dac502259ad0.png

使用TFTP為AT32F437實現IAP

此IAP實現由基于LwIP TCP/IP棧的TFTP服務器組成。此服務器會對遠程TFTP客戶端(PC)發來的寫請求做出響應。TFTP讀請求會被忽略。TFTP通常會將接收到的文件寫入到文件系統,但是該服務器卻并非如此,它會將接受到的數據塊寫入到MCU FLASH(用戶FLASH區域中)。注:在這個實現過程中,數據塊大小固定為512個字節。

圖3 概述了使用TFTP實現IAP操作的過程。

圖3 使用TFTP實現IAP流程圖eb58c03a-69a9-11ed-b116-dac502259ad0.png

使用軟件

要通過TFTP對IAP進行測試,需執行以下步驟:1. 在iap.h文件中,取消USE_IAP_TFTP選項的注釋。2. 重新編譯軟件。使用生成的映射文件,確保IAP代碼區域之間沒有重疊(從地址0x0開始),而且用戶FLASH區域從以下地址開始:APP_START_SECTOR_ADDR(在iap.h中定義)。3. 在AT32 FLASH中編寫并運行軟件程序。4. 要進入IAP模式,需要在按住開發版上的USER Key。5. 分配完IP后(可以是靜態或動態地址),用戶即可啟動IAP流程。6. 在PC側,打開TFTP客戶端(例如Tftpd64),然后配置TFTP服務器地址(Tftpd64中的主機地址)7. 單擊Tftpd64實用程序中的Put(寫入)按鈕,啟動文件寫請求8. 在IAP操作結束時,可以復位開發板并在AT32 FLASH中運行剛剛編寫的應用程序圖4 TFTP64對話框eb95ce4e-69a9-11ed-b116-dac502259ad0.png

使用HTTP實現IAP

HTTP文件上傳概述

RFC1867中定義了使用HTTP進行文件上傳。此文件上傳方法是基于HTTP表單。發送原始二進制數據時,要使用HTTP POST方法而不是GET方法。

以下是一個HTML代碼示例,用于實現基于表單的文件上傳:

圖5 文件上傳HTML表單的瀏覽器畫面ebd3f098-69a9-11ed-b116-dac502259ad0.png注:在發送文件數據前,Web客戶端會首先發送HTTP頭文件數據,其中包含諸如文件名稱和內容長度等信息,Web服務器必須對其中的一些信息進行解析。Web客戶端使用的HTTP頭文件格式并不總是相同。圖6顯示的是Internet Explorer在POST請求中的HTTP頭文件格式。圖7顯示的是Mozilla Firefox的HTTP頭文件格式。HTTP Web服務器必須能夠處理這些不同的格式。

圖6 IE11 HTTP頭文件格式

ebeaf680-69a9-11ed-b116-dac502259ad0.png

圖7 Mozilla Firefox HTTP頭文件格式

ebfb276c-69a9-11ed-b116-dac502259ad0.png

使用HTTP在AT32F437上實現IAP

此IAP實現由基于LwIP棧的HTTP Web服務器組成。

在瀏覽器中輸入的AT32的IP地址后,將顯示登錄Web頁面(圖8)。此登錄Web頁面只有已獲授權的用戶才能使用IAP文件上傳功能。

圖8 登錄web頁面ec6f59c0-69a9-11ed-b116-dac502259ad0.png注:1. 默認的User ID(用戶ID)為user, Password(密碼)為at322. 如果User ID(用戶ID)或Password(密碼)不正確,登錄Web頁面會重新加載。登錄成功后,瀏覽并選擇要上傳到AT32 FLASH的二進制文件注:確保二進制文件大小不超過AT32用戶FLASH區域的總容量。單擊Upload(上傳)按鈕后(參見圖x),將向服務器發出POST請求。這時,服務器開始擦除用戶FLASH區域的全部內容,等待接受二進制文件原始數據。然后將街收到的數據寫入用戶FLASH區域。注意,要接收的數據總長度信息將從傳輸開始時發出的HTTP頭文件數據中提取。在IAP操作結束后,Web頁面將只是IAP操作成功,同時顯示一個可用于復位MCU的按鈕。圖9 文件上傳完成web頁面ec803d62-69a9-11ed-b116-dac502259ad0.png

圖10對使用HTTP實現IAP方法進行了總結

圖10 使用HTTP實現IAP的流程圖ed2c8220-69a9-11ed-b116-dac502259ad0.png

使用軟件

要使用HTTP對IAP進行測試,需執行以下步驟:1. 在iap.h文件中,取消選項USE_IAP_HTTP的注釋。2. 重新編譯軟件,使用生成的映射文件,確保IAP區域代碼之間沒有重疊(從地址0x0開始),而且用戶FLASH區域從以下地址開始:APP_START_SECTOR_ADDR(在iap.h中定義)。3. 在AT32 FLASH中編寫并運行軟件程序。4. 要進入IAP模式,需要再按住開發板上的USER Key。5. 分配完IP地址后(可以是靜態或動態地址),用戶即可啟動IAP流程6. 打開Web客戶端(Mozilla Firefox或Internet Explorer),輸入AT32 IP地址7. 會顯示登錄Web頁面。在User ID(用戶ID)字段中輸入”user”,在Password(密碼)字段中輸入”at32”,然后按下Login(登錄)按鈕。8. IP操作結束后,將加載新的Web頁面,只是文件上傳操作已經成功完成。9. 可以按下Reset MCU(復位MCU)按鈕復位MCU,然后在AT32 FLASH中運行剛剛編寫的應用程序。注:使用以下Web客戶端對軟件進行測試:Microsoft Internet Explorer11和Mozilla Firefox 80.0

已知限制

二進制文件中添加的額外字節Internet瀏覽器(Microsoft Internet Explorere或Mozilla Firefox)會在上傳的二進制文件的末尾添加一個隨機邊界標記(根據RFC1521規定,此標記不得超過72個字節)。在最新的IAP軟件版本中,并沒有刪除此邊界標記,而是在空間足夠的情況下將其存儲在FLASH中。如果沒有足夠空間,則不會在FLASH中寫入額外字節,也不會返回錯誤。

環境

硬件配置

1. DM9162以太網模塊2. AT-START-F407開發板3. 以太網線

軟件源碼

  • utilities\AT32F437_emac_iap_demo\source_code\bootloader, emac iap源程序,運行iap升級程序

MAC地址和IP地址設置

在netconf.h文件中對MAC地址進行了定義。默認的MAC地址固定為:004456:01。在netconf.h文件中對IP地址進行了定義。IP地址可以設置為靜態地址,也可以設置為由DHCP服務器分配的動態地址。默認的靜態地址為:192.168.81.37??梢酝ㄟ^在lwipopts.h文件中使能LWIP_DHCP來選擇DHCP模式。

軟件文件組成

表2 介紹了項目源文件ed5454bc-69a9-11ed-b116-dac502259ad0.png注:表格中沒有列出標準固件庫和 LwIP 棧中所使用的文件。

構建IAP映像

、為了構建IAP映像(將會使用IAP軟件加載),應確保以下幾點:1. 編譯/鏈接的軟件必須從用戶FLASH區域的起始地址開始運行(此地址應與iap.h的APP_START_SECTOR_ADDR中所定義的地址相同)。2. 將向量表的起始地址配置為用戶FLASH區域的起始地址:A. 在應用程序代碼中,使用misc.h/.c驅動程序的NVIC_SetVectorTable函數來重新定位應用程序加載地址的向量表。例如,將向量表基本位置設置為0x08010000:NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x10000);B. 通過修改system_at32f4xx.c文件中定義的VECT_TAB_OFFSET常量的值。例如,將向量表基本位置設置為0x08010000:#define VECT_TAB_OFFSET 0x100003. 編譯后的軟件大小不超過用戶FLASH區域的總容量。關于雅特力雅特力科技于2016年成立,是一家致力于推動全球市場32位微控制器(MCU)創新趨勢的芯片設計公司,專注于ARM Cortex-M4/M0+的32位微控制器研發與創新,全系列采用55nm先進工藝及ARM Cortex-M4高效能或M0+低功耗內核,締造M4業界最高主頻288MHz運算效能,并支持工業級別芯片工作溫度范圍(-40°~105°)。雅特力目前已累積相當多元的終端產品成功案例:如微型打印機、掃地機、光流無人機、熱成像儀、激光雷達、工業縫紉機、伺服驅控、電競周邊市場、斷路器、ADAS、T-BOX、數字電源、電動工具等終端設備應用,廣泛地覆蓋5G、物聯網、消費、商務及工控等領域。

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

    關注

    146

    文章

    17316

    瀏覽量

    352504
  • 以太網
    +關注

    關注

    40

    文章

    5460

    瀏覽量

    172595
收藏 人收藏

    評論

    相關推薦

    三格電子NAT網關:讓你的以太網通訊設備輕松聯網!

    有 1 個兩口以太網交換機接口(LAN 口)和 1 個以太網通接口(WAN 口)。不對原系統做任何硬件和軟件修改,不影響原系統通訊,可以實現
    的頭像 發表于 01-16 18:30 ?98次閱讀
    三格電子NAT網關:讓你的<b class='flag-5'>以太網通</b>訊設備輕松聯網!

    以太網通信線的屏蔽要求

    以太網通信線的屏蔽要求主要取決于通信速率、傳輸距離以及周圍環境的電磁干擾情況。
    的頭像 發表于 12-14 11:29 ?233次閱讀

    以太網幀格式和功能詳解

    以太網幀(Ethernet Frame)是以太網(Ethernet)協議用于在局域網(LAN)傳輸數據的基本單位。理解以太網幀的結構和傳輸過程對于掌握局域
    的頭像 發表于 10-08 10:03 ?2279次閱讀

    以太網幀結構是怎樣的

    以太網幀(Ethernet Frame)是以太網(Ethernet)協議用于在局域網(LAN)傳輸數據的基本單位。理解以太網幀的結構對于掌握局域
    的頭像 發表于 10-08 10:00 ?1366次閱讀

    能否使用PLC無線通信模塊實現力控與FX5U無線以太網通信?

    ,不但施工麻煩也會徒增成本。這里所介紹的無線以太網方案通信距離從幾米到1公里,與布線施工的成本(材料、人工、時間)進行綜合比較的話,無線以太網是更為經濟和實施簡便的組網通訊方案。本方案
    的頭像 發表于 09-09 11:22 ?381次閱讀
    能否使用PLC無線<b class='flag-5'>通信</b>模塊<b class='flag-5'>實現</b>力控與FX5U無線<b class='flag-5'>以太網通信</b>?

    以太網通信網關是什么

    在日益復雜的網絡環境,以太網通信網關作為連接不同設備和網絡的橋梁,扮演著至關重要的角色。本文將深入探討以太網通信網關的定義、功能、工作機制及其在各個領域的應用。 一、以太網通信網關的
    的頭像 發表于 08-29 14:04 ?537次閱讀
    <b class='flag-5'>以太網通信</b>網關是什么

    工業以太網通信協議的主要類別

    隨著工業4.0和智能制造的快速發展,工業以太網通信協議與標準在工業自動化領域扮演著越來越重要的角色。工業以太網不僅提供了高效、可靠的數據傳輸手段,還為實現設備間的無縫集成和信息共享提供了可能。本文將詳細介紹工業
    的頭像 發表于 06-28 18:02 ?1169次閱讀

    上位機與PLC的以太網通信方法

      在現代工業自動化系統,上位機與PLC(可編程邏輯控制器)之間的通信實現高效、穩定控制的關鍵環節。以太網作為一種廣泛應用的局域
    的頭像 發表于 06-18 09:13 ?3636次閱讀

    PLC以太網通訊怎么掉線

    在現代工業自動化領域,PLC(可編程邏輯控制器)作為核心控制設備,其以太網通訊的穩定性和可靠性對于整個生產流程至關重要。然而,在實際應用,PLC以太網通訊掉線問題時有發生,嚴重影響了
    的頭像 發表于 06-13 11:28 ?2716次閱讀

    RJ45接口以太網接口的區別

    在當今的計算機網絡世界,RJ45接口以太網接口是兩個常見的術語,它們在網絡通信中扮演著不可或缺的角色。然而,盡管它們都與網絡連接有關,但
    的頭像 發表于 05-29 16:33 ?4844次閱讀

    RS485接口怎么轉換以太網接口

    率、廣覆蓋和易集成等優勢,成為現代網絡通信的主流。然而,在實際應用,我們有時需要將RS485接口轉換為以太網接口,以
    的頭像 發表于 05-29 16:32 ?8322次閱讀

    PLC以太網開放式通信概述

    以太網開放式通信與其他PLC或者第三方設備通信;   4、每種PLC實現以太網開放式通信均需單獨
    發表于 04-16 12:06 ?1174次閱讀
    PLC<b class='flag-5'>以太網</b>開放式<b class='flag-5'>通信</b>概述

    PLC以太網通訊模塊是什么?PLC以太網通訊模塊的功能特點

    PLC以太網通訊模塊是一種專為工業控制系統設計的硬件設備,用于將PLC系統連接到以太網(Ethernet)網絡,實現與其它設備或系統的高效、可靠的數據交換。它是PLC系統與外部通信的關
    的頭像 發表于 04-10 14:04 ?2392次閱讀

    人機界面和三菱PLC之間以太網通信

    本文主要描述人機界面WinCC如何與三菱Q系列PLC進行以太網通訊,主要介紹了CPU自帶以太網口和擴展以太網模塊兩種情況以及分別使用TCP、UDP兩種協議進行通訊組態步驟及其注意事項。 一、 說明
    的頭像 發表于 02-27 09:57 ?712次閱讀
    人機界面和三菱PLC之間<b class='flag-5'>以太網通信</b>

    plc以太網通訊模塊在哪 plc以太網通訊掉線怎么解決

    PLC(可編程邏輯控制器)是一種用于工業自動化控制的設備,常用于監控和控制機器、生產線、工廠等。PLC通常使用多種通信接口進行數據交換,以太網通信是其中一種常用的方式。 一、PLC
    的頭像 發表于 02-05 10:14 ?3502次閱讀
    主站蜘蛛池模板: 小寡妇水真多好紧 | 东京热无码中文字幕av专区 | 人妻少妇69式99偷拍 | 亚洲另类欧美综合在线 | 青青青伊人| 亚洲精品久久国产高清 | 亚洲欧美成人在线 | 菠萝菠萝蜜在线观看视频 | 好男人好资源在线播放 | 97免费观看视频 | 高hbl双性浪荡古代 高h 大尺度纯肉 np快穿 | 国产手机精品一区二区 | 国产美女影院 | 极品少妇小泬50PTHEPON | 亚洲欧美日韩在线观看一区二区三区 | 国精产品一区一区三区有限 | SORA是什么意思 | 一个人HD在线观看免费高清视频 | 99精品视频在线观看 | 全是肉的高h短篇列车 | 国产成人h在线视频 | 色一欲一性一乱一区二区三区 | 两性午夜色视频免费网站 | 9久久免费国产精品特黄 | 最近的中文字幕2019国语 | 九九在线免费视频 | 国产成人一区免费观看 | 欧美精品九九99久久在免费线 | 国产精品久久久久久久久久久 | 亚洲国产精品一区二区久久第 | 久青草国产在线视频 | 黄色软件色多多 | 国产亚洲精品免费视频 | 亚洲欧美成人 | 动漫护士被乳羞羞漫 | 日本妈妈在线观看中文字幕 | 久久精品亚洲AV中文2区金莲 | 日本无码人妻精品一区二区视频 | 被窝国产理论一二三影院 | 最近中文字幕MV免费高清视频8 | 蜜臀色欲AV无人A片一区 |