<noscript id="jftie"></noscript>
    <style id="jftie"><mark id="jftie"><dfn id="jftie"></dfn></mark></style>
  1. <span id="jftie"></span>
    • 国产成人精品久久一区二区,韩国精品久久久久久无码,国产精品国产高清国产av,欧美99久久无码一区人妻a片,亚洲高清码在线精品av,午夜人妻久久久久久久久,伊人热热久久原色播放www ,亚洲女教师丝祙在线播放
      你的位置:首頁 > RF/微波 > 正文

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

      發(fā)布時間:2022-10-10 責任編輯:lina

      【導讀】在應用中編程(IAP)是一種在現(xiàn)場通過 MCU 通信接口(例如 USART、USB、CAN 和以太網(wǎng))進行固件升級的方式。無論是IAP代碼還是應用程序代碼都位于微控制器的內(nèi)置FLASH中,IAP代碼通常存儲在MCU FLASH的第一頁,而用戶應用程序代碼則占據(jù)剩余的FLASH區(qū)域。


      工作原理


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


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


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


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


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


      圖1介紹了IAP操作流程


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

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


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


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


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


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


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


      本應用筆記將介紹兩種使用以太網(wǎng)通信外設在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的方法廣泛應用于需要具有固件升級功能的嵌入式系統(tǒng)應用中(例如,嵌入式Linux bootloader中)。


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


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


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


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


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


      使用TFTP實現(xiàn)IAP


      TFTP概述


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


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


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


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

      圖2 TFTP數(shù)據(jù)包


      表1列出了TFTP操作碼。


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

      表1 TFTP操作碼


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


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


      此服務器會對遠程TFTP客戶端(PC)發(fā)來的寫請求做出響應。


      TFTP讀請求會被忽略。


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


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


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


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

      圖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側,打開TFTP客戶端(例如Tftpd64),然后配置TFTP服務器地址(Tftpd64中的主機地址)


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


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


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

      圖4 TFTP64對話框


      使用HTTP實現(xiàn)IAP


      HTTP文件上傳概述


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


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


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

      圖5 文件上傳HTML表單的瀏覽器畫面


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


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


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


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

      圖6 IE11 HTTP頭文件格式


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

      圖7 Mozilla Firefox HTTP頭文件格式


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


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


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


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

      圖8 登錄web頁面


      注:1. 默認的User ID(用戶ID)為user, Password(密碼)為at32

      2. 如果User ID(用戶ID)或Password(密碼)不正確,登錄Web頁面會重新加載。


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


      注:確保二進制文件大小不超過AT32用戶FLASH區(qū)域的總容量。

      單擊Upload(上傳)按鈕后(參見圖x),將向服務器發(fā)出POST請求。這時,服務器開始擦除用戶FLASH區(qū)域的全部內(nèi)容,等待接受二進制文件原始數(shù)據(jù)。然后將街收到的數(shù)據(jù)寫入用戶FLASH區(qū)域。


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


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


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

      圖9 文件上傳完成web頁面


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


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

      圖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操作結束后,將加載新的Web頁面,只是文件上傳操作已經(jīng)成功完成。


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


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


      已知限制


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


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


      環(huán)境


      硬件配置


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


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


      3. 以太網(wǎng)線


      軟件源碼


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


      MAC地址和IP地址設置


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


      默認的MAC地址固定為:00:00:44:45:56:01。


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


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


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


      軟件文件組成


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

      表2 介紹了項目源文件


      注:表格中沒有列出標準固件庫和LwIP棧中所使用的文件。


      構建IAP映像


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


      1. 編譯/鏈接的軟件必須從用戶FLASH區(qū)域的起始地址開始運行(此地址應與iap.h的

      APP_START_SECTOR_ADDR 中所定義的地址相同)。


      2. 將向量表的起始地址配置為用戶FLASH區(qū)域的起始地址:

      A. 在應用程序代碼中,使用misc.h/.c驅動程序的NVIC_SetVectorTable函數(shù)來重新定位應用程序加載地址的向量表。


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


      NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x10000);


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


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


      #define VECT_TAB_OFFSET 0x10000


      3. 編譯后的軟件大小不超過用戶FLASH區(qū)域的總容量。


      (來源:AT32 MCU 雅特力科技)



      免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯(lián)系小編進行處理。



      推薦閱讀:

      電源線噪聲:共模干擾、差模干擾

      由運放和電壓調節(jié)器構成的恒流源電路

      運放的信號疊加電路與求差電路

      鎖相環(huán)環(huán)路計算中用到的波特圖

      SPARC:用于先進邏輯和 DRAM 的全新沉積技術


      特別推薦
      技術文章更多>>
      技術白皮書下載更多>>
      熱門搜索
      Murata NAND NFC NFC芯片 NOR ntc熱敏電阻 OGS OLED OLED面板 OmniVision Omron OnSemi PI PLC Premier Farnell Recom RF RF/微波IC RFID rfid RF連接器 RF模塊 RS Rubycon SATA連接器 SD連接器 SII SIM卡連接器 SMT設備 SMU
      ?

      關閉

      ?

      關閉

      主站蜘蛛池模板: 亚洲成年看片在线观看| 欧美又大粗又爽又黄大片视频| 怡红院精品久久久久久久高清| 亚洲人成网线在线播放va| 欧美国产日韩在线三区| 九九视频免费精品视频| 亚洲中文字幕日产乱码高清app| 免费中文熟妇在线影片| 黄页网站18以下勿看| 日本巨大的奶头在线观看| 欧美精品亚洲精品日韩传电影| 精精国产xxxx视频在线| 久久久国产精品一区二区18禁| 亚洲欧美人成电影在线观看| 欧美日韩国产综合草草| 亚洲成av人片在线观看天堂无| 内射国产内射夫妻免费频道| 欧美成人精品高清视频在线观看| 久久丫免费无码一区二区| 免费无码毛片一区二区app| 九九精品无码专区免费| 国产美女精品视频线免费播放| 国产女精品视频网站免费蜜芽| 亚洲综合无码一区二区三区不卡| 国内精品久久久久影院蜜芽 | 欧洲美熟女乱av亚洲一区| 人人玩人人添人人澡| 精品国产精品久久一区免费式| 一本久道中文无码字幕av| yyyy11111少妇无码影院| 国内精品久久久久影院蜜芽| 992tv精品视频tv在线观看| 使劲快高潮了国语对白在线| 国产乱子伦精品无码码专区| 丰满人妻一区二区三区无码av| 女人高潮内射99精品| 国产成人av无码永久免费一线天| 国产极品美女到高潮| 国产av国片精品一区二区| 国产精品无卡毛片视频| 白嫩少妇bbw撒尿视频|