精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

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

如何使用AT32F407以太網(wǎng)通信接口實現(xiàn)在應(yīng)用中編程(IAP)

jf_pJlTbmA9 ? 來源:AT32 MCU 雅特力科技 ? 作者:AT32 MCU 雅特力科技 ? 2023-11-07 17:20 ? 次閱讀

IAP概述

工作原理

在應(yīng)用中編程(IAP)是一種在現(xiàn)場通過 MCU 通信接口(例如 USART、USBCAN以太網(wǎng))進行固件升級的方式。

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

IAP模式,用于執(zhí)行IAP代碼

正常模式,用于執(zhí)行應(yīng)用程序代碼

無論是IAP代碼還是應(yīng)用程序代碼都位于微控制器的內(nèi)置FLASH中,IAP代碼通常存儲在MCU FLASH的第一頁,而用戶應(yīng)用程序代碼則占據(jù)剩余的FLASH區(qū)域。

圖1介紹了IAP操作流程

100564539-273307-1.png

使用MCU以太網(wǎng)接口實現(xiàn)IAP

如果有以太網(wǎng)可用,則它通常是嵌入式系統(tǒng)中實現(xiàn)IAP功能的首選接口,其優(yōu)勢包含:

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

通過網(wǎng)絡(luò)(LAN或WAN)進行遠(yuǎn)程編程

可以使用FTP、TFTP、HTTP等基于TCP/IP棧的標(biāo)準(zhǔn)應(yīng)用協(xié)議實現(xiàn)IAP

通過以太網(wǎng)在AT32F407上實現(xiàn)IAP

本應(yīng)用筆記將介紹兩種使用以太網(wǎng)通信外設(shè)在AT32F407上實現(xiàn)IAP的解決方案:

使用TFTP(簡單文件傳輸協(xié)議)的IAP

使用HTTP(超文本傳輸協(xié)議)的IAP

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

使用TFTP實現(xiàn)IAP方法

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

TFTP是一種在UDP傳輸層上執(zhí)行的簡單文件傳輸協(xié)議。此協(xié)議非常適合在局域網(wǎng)環(huán)境中使用。它基于客戶端/服務(wù)器架構(gòu),在這種架構(gòu)中,客戶端會向服務(wù)器發(fā)出文件傳輸請求(讀取或?qū)懭氩僮鳎閷崿F(xiàn)IAP,需要在LwIP協(xié)議棧上實現(xiàn)一個簡單的TFTP服務(wù)器,服務(wù)器只須處理來自PC的TFTP客戶端的寫入請求即可。

使用HTTP實現(xiàn)IAP方法

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

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

本文檔中的后續(xù)章節(jié)將詳細(xì)介紹這兩種IAP方法的實現(xiàn),并會對如何使用軟件進行說明。

使用TFTP實現(xiàn)IAP

TFTP概述

TFTP是一種基于UDP的簡單文件傳輸協(xié)議。文件傳輸由TFTP客戶端發(fā)起,會向TFTP服務(wù)器發(fā)送讀取或?qū)懭胝埱蟆7?wù)器確認(rèn)請求后,即開始進行文件數(shù)據(jù)傳輸。數(shù)據(jù)將以固定大小的塊盡情發(fā)送(例如每塊含512個字節(jié))。

必須在每個發(fā)出的數(shù)據(jù)塊都得到接收方確認(rèn)后,才可以發(fā)送下一個數(shù)據(jù)塊。這種確認(rèn)機制通過隨各個數(shù)據(jù)塊一同發(fā)送的編塊號來實現(xiàn)。數(shù)據(jù)塊小于固定塊大小表示文件傳輸?shù)慕Y(jié)束。

圖2描述了各種TFTP數(shù)據(jù)包的格式:

100564539-273308-2.png 圖2 TFTP數(shù)據(jù)包

表1列出了TFTP操作碼。

100564539-273309-3.png 表1 TFTP操作碼

使用TFTP為AT32F407實現(xiàn)IAP

此IAP實現(xiàn)由基于LwIP TCP/IP棧的TFTP服務(wù)器組成。

此服務(wù)器會對遠(yuǎn)程TFTP客戶端(PC)發(fā)來的寫請求做出響應(yīng)。

TFTP讀請求會被忽略。

TFTP通常會將接收到的文件寫入到文件系統(tǒng),但是該服務(wù)器卻并非如此,它會將接受到的數(shù)據(jù)塊寫入到MCU FLASH(用戶FLASH區(qū)域中)。

注:在這個實現(xiàn)過程中,數(shù)據(jù)塊大小固定為512個字節(jié)。

圖3概述了使用TFTP實現(xiàn)IAP操作的過程。

100564539-273310-4.png 圖3 使用TFTP實現(xiàn)IAP流程圖

使用軟件

要通過TFTP對IAP進行測試,需執(zhí)行以下步驟:

1. 在iap.h文件中,取消USE_IAP_TFTP選項的注釋。

2. 重新編譯軟件。使用生成的映射文件,確保IAP代碼區(qū)域之間沒有重疊(從地址0x0開始),而且用戶FLASH區(qū)域從以下地址開始:APP_START_SECTOR_ADDR(在iap.h中定義)。

3. 在AT32 FLASH中編寫并運行軟件程序。

4. 要進入IAP模式,需要在按住開發(fā)版上的USER Key。

5. 分配完IP后(可以是靜態(tài)或動態(tài)地址),用戶即可啟動IAP流程。

6. 在PC側(cè),打開TFTP客戶端(例如Tftpd64),然后配置TFTP服務(wù)器地址(Tftpd64中的主機地址)

7. 單擊Tftpd64實用程序中的Put(寫入)按鈕,啟動文件寫請求

8. 在IAP操作結(jié)束時,可以復(fù)位開發(fā)板并在AT32 FLASH中運行剛剛編寫的應(yīng)用程序

wKgZomUD3DaAP0M9AAEvs8SXF7g900.png 圖4 TFTP64對話框

使用HTTP實現(xiàn)IAP

HTTP文件上傳概述

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

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

100564539-273312-6.png 圖5 文件上傳HTML表單的瀏覽器畫面

注:在發(fā)送文件數(shù)據(jù)前,Web客戶端會首先發(fā)送HTTP頭文件數(shù)據(jù),其中包含諸如文件名稱和內(nèi)容長度等信息,Web 服務(wù)器必須對其中的一些信息進行解析。

Web客戶端使用的HTTP頭文件格式并不總是相同。圖6顯示的是Internet Explorer在POST請求中的HTTP頭文件格式。圖7顯示的是Mozilla Firefox的HTTP頭文件格式。

HTTP Web服務(wù)器必須能夠處理這些不同的格式。

wKgaomUD3DqACfeYAAFiiVe6dqc646.png 圖6 IE11 HTTP頭文件格式

wKgaomUD3DuAFUgnAAGnPgAqMfk246.png 圖7 Mozilla Firefox HTTP頭文件格式

使用HTTP在AT32F407上實現(xiàn)IAP

此IAP實現(xiàn)由基于LwIP棧的HTTP Web服務(wù)器組成。

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

wKgZomUD3D2ABqUjAABPXgYvK2o705.png 圖8 登錄web頁面

注:1. 默認(rèn)的User ID(用戶ID)為user, Password(密碼)為at32
2. 如果User ID(用戶ID)或Password(密碼)不正確,登錄Web頁面會重新加載。

登錄成功后,瀏覽并選擇要上傳到AT32 FLASH的二進制文件

注:確保二進制文件大小不超過AT32用戶FLASH區(qū)域的總?cè)萘俊?br /> 單擊Upload(上傳)按鈕后(參見圖x),將向服務(wù)器發(fā)出POST請求。這時,服務(wù)器開始擦除用戶FLASH區(qū)域的全部內(nèi)容,等待接受二進制文件原始數(shù)據(jù)。然后將街收到的數(shù)據(jù)寫入用戶FLASH區(qū)域。

注意,要接收的數(shù)據(jù)總長度信息將從傳輸開始時發(fā)出的HTTP頭文件數(shù)據(jù)中提取。

在IAP操作結(jié)束后,Web頁面將只是IAP操作成功,同時顯示一個可用于復(fù)位MCU的按鈕。

wKgZomUD3D6ARSbDAAAx1_xGT3w209.png 圖9 文件上傳完成web頁面

圖10對使用HTTP實現(xiàn)IAP方法進行了總結(jié)

wKgaomUD3ECAMH76AAKoL4-m0EA128.png 圖10 使用HTTP實現(xiàn)IAP的流程圖

使用軟體

要使用HTTP對IAP進行測試,需執(zhí)行以下步驟:

1. 在iap.h文件中,取消選項USE_IAP_HTTP的注釋。

2. 重新編譯軟件,使用生成的映射文件,確保IAP區(qū)域代碼之間沒有重疊(從地址0x0開始),而且用戶FLASH區(qū)域從以下地址開始:APP_START_SECTOR_ADDR(在iap.h中定義)。

3. 在AT32 FLASH中編寫并運行軟件程序。

4. 要進入IAP模式,需要再按住開發(fā)版上的USER Key。

5. 分配完IP地址后(可以是靜態(tài)或動態(tài)地址),用戶即可啟動IAP流程

6. 打開Web客戶端(Mozilla Firefox或Internet Explorer),輸入AT32 IP地址

7. 會顯示登錄Web頁面。在User ID(用戶ID)字段中輸入”user”,在Password(密碼)字段中輸入”at32”,然后按下Login(登錄)按鈕。

8. IP操作結(jié)束后,將加載新的Web頁面,只是文件上傳操作已經(jīng)成功完成。

9. 可以按下Reset MCU(復(fù)位MCU)按鈕復(fù)位MCU,然后在AT32 FLASH中運行剛剛編寫的應(yīng)用程序。

注:使用以下Web客戶端對軟件進行測試:Microsoft Internet Explorer 11和Mozilla Firefox 80.0

已知限制

二進制文件中添加的額外字節(jié)

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

環(huán)境

硬件配置

1. DM9162以太網(wǎng)模塊

2. AT-START-F407開發(fā)板

3. 以太網(wǎng)線

軟件源碼

utilitiesat32f407_emac_iap_demosource_codebootloader, emac iap源程序,運行iap升級程序

MAC地址和IP地址設(shè)置

在netconf.h文件中對MAC地址進行了定義。

默認(rèn)的MAC地址固定為:00:00:44:45:56:01。

在netconf.h文件中對IP地址進行了定義。

IP地址可以設(shè)置為靜態(tài)地址,也可以設(shè)置為由DHCP服務(wù)器分配的動態(tài)地址。默認(rèn)的靜態(tài)地址為:192.168.81.37。

可以通過在lwipopts.h文件中使能LWIP_DHCP來選擇DHCP模式。

軟件文件組成

wKgZomUD3EGAHBV_AAFI1u1nYIs915.png 表2 介紹了項目源文件

注:表格中沒有列出標(biāo)準(zhǔn)固件庫和LwIP棧中所使用的文件。

構(gòu)建IAP映像

為了構(gòu)建IAP映像(將會使用IAP軟件加載),應(yīng)確保以下幾點:

1. 編譯/鏈接的軟件必須從用戶FLASH區(qū)域的起始地址開始運行(此地址應(yīng)與iap.h的
APP_START_SECTOR_ADDR 中所定義的地址相同)。

2. 將向量表的起始地址配置為用戶FLASH區(qū)域的起始地址:
A. 在應(yīng)用程序代碼中,使用misc.h/.c驅(qū)動程序的NVIC_SetVectorTable函數(shù)來重新定位應(yīng)用程序加載地址的向量表。

例如,將向量表基本位置設(shè)置為0x08010000:

NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x10000);

B. 通過修改system_at32f4xx.c文件中定義的VECT_TAB_OFFSET常量的值。

例如,將向量表基本位置設(shè)置為0x08010000:

#define VECT_TAB_OFFSET 0x10000

3. 編譯后的軟件大小不超過用戶FLASH區(qū)域的總?cè)萘俊?/p>

來源:AT32 MCU 雅特力科技

審核編輯:湯梓紅

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

    關(guān)注

    40

    文章

    5374

    瀏覽量

    171101
  • 通信接口
    +關(guān)注

    關(guān)注

    3

    文章

    234

    瀏覽量

    30962
  • IAP
    IAP
    +關(guān)注

    關(guān)注

    2

    文章

    163

    瀏覽量

    24249
收藏 人收藏

    評論

    相關(guān)推薦

    以太網(wǎng)通信網(wǎng)關(guān)是什么

    在日益復(fù)雜的網(wǎng)絡(luò)環(huán)境以太網(wǎng)通信網(wǎng)關(guān)作為連接不同設(shè)備和網(wǎng)絡(luò)的橋梁,扮演著至關(guān)重要的角色。本文將深入探討以太網(wǎng)通信網(wǎng)關(guān)的定義、功能、工作機制及其在各個領(lǐng)域的應(yīng)用。 一、以太網(wǎng)通信網(wǎng)關(guān)的
    的頭像 發(fā)表于 08-29 14:04 ?318次閱讀
    <b class='flag-5'>以太網(wǎng)通信</b>網(wǎng)關(guān)是什么

    工業(yè)以太網(wǎng)通信協(xié)議的主要類別

    隨著工業(yè)4.0和智能制造的快速發(fā)展,工業(yè)以太網(wǎng)通信協(xié)議與標(biāo)準(zhǔn)在工業(yè)自動化領(lǐng)域扮演著越來越重要的角色。工業(yè)以太網(wǎng)不僅提供了高效、可靠的數(shù)據(jù)傳輸手段,還為實現(xiàn)設(shè)備間的無縫集成和信息共享提供了可能。本文將詳細(xì)介紹工業(yè)
    的頭像 發(fā)表于 06-28 18:02 ?1031次閱讀

    上位機與PLC的以太網(wǎng)通信方法

      在現(xiàn)代工業(yè)自動化系統(tǒng),上位機與PLC(可編程邏輯控制器)之間的通信實現(xiàn)高效、穩(wěn)定控制的關(guān)鍵環(huán)節(jié)。以太網(wǎng)作為一種廣泛應(yīng)用的局域
    的頭像 發(fā)表于 06-18 09:13 ?2874次閱讀

    PLC以太網(wǎng)通訊怎么掉線

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

    如何實現(xiàn)以太網(wǎng)功能的,是用F107或F407芯片自己移植Lwip還是采用SPI轉(zhuǎn)以太網(wǎng)模塊?

    一般大家是如何實現(xiàn)以太網(wǎng)功能的,是用F107或F407芯片自己移植Lwip還是采用SPI轉(zhuǎn)以太網(wǎng)模塊?
    發(fā)表于 05-17 06:49

    PLC以太網(wǎng)開放式通信概述

    以太網(wǎng)開放式通信與其他PLC或者第三方設(shè)備通信;   4、每種PLC實現(xiàn)以太網(wǎng)開放式通信均需單獨
    發(fā)表于 04-16 12:06 ?954次閱讀
    PLC<b class='flag-5'>以太網(wǎng)</b>開放式<b class='flag-5'>通信</b>概述

    PLC以太網(wǎng)通訊模塊是什么?PLC以太網(wǎng)通訊模塊的功能特點

    PLC以太網(wǎng)通訊模塊是一種專為工業(yè)控制系統(tǒng)設(shè)計的硬件設(shè)備,用于將PLC系統(tǒng)連接到以太網(wǎng)(Ethernet)網(wǎng)絡(luò),實現(xiàn)與其它設(shè)備或系統(tǒng)的高效、可靠的數(shù)據(jù)交換。它是PLC系統(tǒng)與外部通信的關(guān)
    的頭像 發(fā)表于 04-10 14:04 ?2029次閱讀

    plc以太網(wǎng)通訊模塊在哪 plc以太網(wǎng)通訊掉線怎么解決

    PLC(可編程邏輯控制器)是一種用于工業(yè)自動化控制的設(shè)備,常用于監(jiān)控和控制機器、生產(chǎn)線、工廠等。PLC通常使用多種通信接口進行數(shù)據(jù)交換,以太網(wǎng)通信是其中一種常用的方式。 一、PLC
    的頭像 發(fā)表于 02-05 10:14 ?3054次閱讀

    如何用aurix開發(fā)工具進行以太網(wǎng)通信

    我想用aurix開發(fā)工具進行以太網(wǎng)通信。 你能提供示例代碼或方法嗎?
    發(fā)表于 01-22 06:02

    plc怎么通過以太網(wǎng)遠(yuǎn)程通信

    以太網(wǎng)(Ethernet)是一種常用的局域網(wǎng)通信技術(shù),廣泛應(yīng)用于各種領(lǐng)域。PLC(可編程邏輯控制器)是一種常用的自動化控制設(shè)備,用于實現(xiàn)工業(yè)過程的監(jiān)控與控制。在許多工業(yè)自動化應(yīng)用
    的頭像 發(fā)表于 01-15 09:52 ?1858次閱讀

    plc以太網(wǎng)通訊模塊在哪個位置

    PLC以太網(wǎng)通信模塊是一種常用的工業(yè)自動化設(shè)備,廣泛應(yīng)用于工廠、機械設(shè)備和自動化控制系統(tǒng)。它被用來實現(xiàn)PLC與其他設(shè)備之間的數(shù)據(jù)傳輸和通信。在本文中,我們將詳細(xì)介紹PLC
    的頭像 發(fā)表于 01-10 15:30 ?1132次閱讀

    組態(tài)王與S7-1200PLC之間 Profinet無線以太網(wǎng)通信

    組態(tài)王與S7-1200PLC之間想要搭建 Profinet無線以太網(wǎng)通信,需要用到以下設(shè)備: ● 西門子PLC型號:S7-1200 × 2臺 ● 上位機:組態(tài)王6.55 × 1臺 ● 無線通訊終端
    的頭像 發(fā)表于 01-09 09:21 ?912次閱讀
    組態(tài)王與S7-1200PLC之間 Profinet無線<b class='flag-5'>以太網(wǎng)通信</b>

    stm32f407 LAN8720A速率調(diào)整

    STM32F407是一款基于ARM Cortex-M4內(nèi)核的高性能微控制器,而LAN8720A是一款高速以太網(wǎng)PHY芯片。它們的組合可以實現(xiàn)在STM32F407上使用
    的頭像 發(fā)表于 01-05 13:54 ?3487次閱讀

    串行通信以太網(wǎng)通信,該怎么選才好?

    串行通信以太網(wǎng)通信都通過有線傳輸數(shù)據(jù),但各自有不同的用途。串行通信以太網(wǎng)通信的主要區(qū)別在于:串行通信是通過串行
    的頭像 發(fā)表于 12-22 08:20 ?1064次閱讀
    串行<b class='flag-5'>通信</b>和<b class='flag-5'>以太網(wǎng)通信</b>,該怎么選才好?

    力控與多臺PLC的ModbusTCP/IP協(xié)議無線以太網(wǎng)通信實現(xiàn)過程

    ,不但施工麻煩也會徒增成本。這里所介紹的無線以太網(wǎng)方案通信距離從幾米到1公里,與布線施工的成本(材料、人工、時間)進行綜合比較的話,無線以太網(wǎng)是更為經(jīng)濟和實施簡便的組網(wǎng)通訊方案。
    的頭像 發(fā)表于 11-27 09:25 ?1862次閱讀
    力控與多臺PLC的ModbusTCP/IP協(xié)議無線<b class='flag-5'>以太網(wǎng)通信實現(xiàn)</b>過程