《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于TFTP協議實現STM32的IAP
基于TFTP協議實現STM32的IAP
2016年微型機與應用第07期
孫曉曄1,2,王程2,3,成彬2,3
(1.石家莊開發區冀科雙實科技有限公司,河北 石家莊 050081; 2. 河北省科學院應用數學研究所,河北 石家莊 050081; 3.河北省信息安全認證工程技術研究中心,河北 石家莊 050081)
摘要: 針對嵌入式產品分布廣、位置分散、維護升級困難的問題,提出了一種基于TFTP協議的STM32軟件升級系統的設計方案。該系統主要由STM32F407微控制器、LAN8720A網卡芯片和外擴存儲器W25Q128、IS62WV51216組成,采用IAP技術和以太網TFTP協議來更新無操作系統環境下STM32微控制器的軟件。經測試,該系統能夠保證升級文件數據的正確傳輸和可靠存儲,大大降低了嵌入式系統軟件升級的難度,減少了人工維護的成本。
Abstract:
Key words :

  孫曉曄1,2,王程2,3,成彬2,3

 ?。ǎ保仪f開發區冀科雙實科技有限公司,河北 石家莊 050081;2. 河北省科學院應用數學研究所,河北 石家莊 050081; 3.河北省信息安全認證工程技術研究中心,河北 石家莊 050081)

  摘要:針對嵌入式產品分布廣、位置分散、維護升級困難的問題,提出了一種基于TFTP協議的STM32軟件升級系統的設計方案。該系統主要由STM32F407微控制器、LAN8720A網卡芯片和外擴存儲器W25Q128、IS62WV51216組成,采用IAP技術和以太網TFTP協議來更新無操作系統環境下STM32微控制器的軟件。經測試,該系統能夠保證升級文件數據的正確傳輸和可靠存儲,大大降低了嵌入式系統軟件升級的難度,減少了人工維護的成本。

  關鍵詞嵌入式微控制器;在應用編程;以太網;簡單文件傳輸協議

0引言

  隨著嵌入式技術以及32位嵌入式微處理器的發展,嵌入式系統的應用日益廣泛,嵌入式產品與人們的生產、生活結合得越來越緊密。然而,嵌入式系統的設計不可能一步到位,尤其是嵌入式軟件,需要不斷修改和完善。當程序出錯或用戶需求變更時,傳統的方法是安排技術人員到現場或將設備回收對控制器芯片重新編程。這種方式費時費力,效率低下[1]。采用IAP(In-Application Programming)技術則可以免除拆卸設備、燒錄MCU(Microcontroller Unit)等繁瑣的過程。IAP即“在應用中編程”,是指產品發布后在運行過程中通過預留的通信接口(如USART、I2C、CAN、USB、以太網接口等)對微控制器MCU中的軟件進行更新升級。

  支持IAP技術的首要前提是微控制器必須基于可重復編程的閃存。STM32微控制器帶有可編程的內置閃存,擁有在數量上和種類上都非常豐富的外設通信接口,因此在STM32上實現IAP技術是完全可行的[2]。本文針對STM32F407型號的微控制器,基于TFTP(Trivial File Transfer Protocol)協議通過網口實現IAP,可以大大節省維護升級成本, 更方便快捷[3]。

1IAP工作原理

  在實現IAP功能時,MCU內部需要有兩塊存儲區,BOOT區和常態存儲區。MCU上電先運行BOOT區代碼,檢測是否需要更新軟件,如果不需要更新,程序指針跳到常態存儲區,開始執行放在常態存儲區的內容;如果需要更新,則先通過外設通信接口接收新的程序代碼,對常態存儲區的內容進行改寫,然后再跳轉執行新寫入的程序[4]。

  相應的,軟件程序代碼也分為兩部分:存放在BOOT區的BootLoader程序和存放在常態存儲區的APP程序。BootLoader程序負責通過某種通信方式(如USB、USART等)接收程序或數據,執行對APP程序的更新。 APP程序才是真正的功能代碼,完成嵌入式系統需要的各種業務功能。 BootLoader程序必須通過JTAG(Joint Test Action Group)編程方式或ISP(InSystem Programming)方式燒入,APP程序可以和BootLoader程序一起燒入,也可以通過BootLoader程序的IAP功能燒入。

2系統硬件設計

  系統硬件電路主要介紹以太網接口電路的設計。 STM32F407自帶MAC控制器,只需外接PHY芯片就可以完成以太網通信。PHY芯片選用LAN8720A,內置10BASET/100BASETX全雙工傳輸模塊,支持10 Mb/s和100 Mb/s數據傳輸。STM32F407采用RMII接口與LAN8720A連接, RMII減少了10/100 Mb/s下微控制器以太網外設與外部PHY間的引腳數,僅需10根線連接即可[4]。RMII和PHY共用的參考時鐘必須是50 MHz,且必須由外部提供,如有源晶振或STM32F4的MCO輸出。這里,LAN8720A外接25 MHz石英晶振,通過內部倍頻到50 MHz,給STM32F407的RMII提供50 MHz參考時鐘,輸出參考時鐘給MAC控制器,這樣可以降低BOM(Bill of Material)成本[5]。

3系統軟件設計

  本系統中PHY層芯片LAN8720A相當于物理層,STM32F407自帶的MAC層相當于數據鏈路層,而移植的LWIP提供的就是網絡層、傳輸層的功能,應用層需要用戶根據具體功能去實現,即BootLoader和APP程序。

  STM32F407的內部閃存地址起始于0x8000000,一般情況下, BootLoader代碼就從該地址開始存放,APP程序存放在Flash中剩余的空間,并且偏移量為0x200的倍數。

  3.1BootLoader程序

  BootLoader程序主要完成系統初始化、TFTP數據通信、更新Flash存儲區內容和執行程序的跳轉等功能[6]。其工作流程如圖1所示。

001.jpg

  系統初始化主要完成外部總線控制器的初始化、堆棧的初始化、定時器配置和LAN8720A網卡芯片的初始化、LWIP內核初始化等操作。之后,通過監測外部按鍵,判斷是否進入IAP模式進行升級,若超時,則跳轉到常態存儲區,執行原來的APP程序[78]。

  升級過程中文件的傳送采用TFTP協議。TFTP是一個工作在UDP頂層的簡單文件傳輸協議,基于C/S結構。一個TFTP客戶端向TFTP服務器發起一個文件傳輸請求,服務器響應請求,文件傳輸開始。數據以固定尺寸(本系統采用512 B)的幀進行傳輸。在下一個數據幀傳輸前,接收方必須對剛剛收到的數據幀進行回應。如果接收到的數據幀大小小于指定的數據幀大小,說明當前傳輸的數據幀是最后一個數據幀,傳輸結束。這里PC機作為客戶端,嵌入式平臺實現TFTP服務器,TFTP服務器響應PC TFTP客戶端發送的寫文件請求。由于TFTP基于不可靠的UDP協議, 因此,在程序中添加能夠保證數據有效傳輸的機制來及時處理數據丟失的情況。在接收到每個以太網數據幀后進行CRC校驗,如果有錯誤則通知客戶端重新發送該數據幀, 這樣能有效提高程序更新的可靠性。

  3.2APP程序

  APP程序的生成需注意以下幾點:

  (1)起始地址和存儲空間大小設置;

  (2)中斷向量表偏移量設置;

  (3)生成.bin文件,用于IAP更新。MDK開發工具默認生成的文件是.hex,但利用IAP寫入的程序文件不能是.hex格式,可利用MDK自帶的格式轉換工具fromelf.exe轉換成.bin文件。

  3.3系統軟件設計需注意的問題

  系統在軟件設計中需注意以下幾點:

  (1)存儲空間的分配。Boot區和常態存儲區的大小可以根據應用的具體情況人為分配,但分配時盡可能使常態存儲區最大化,為以后程序的升級留出余量。

  (2)BootLoader代碼設計時應盡量簡潔,避免使用中斷、復雜的底層驅動及算法。

  (3)BootLoader代碼在使用外設后,啟動APP代碼之前一定要先初始化該外設,即要讓APP代碼認為MCU只是剛上電運行,而不是跑完一個系統再調用自己。如果BootLoader代碼沒有執行該動作,當APP代碼運行時,MCU的外設處于不確定狀態(尤其是中斷未關閉),可能會帶來一些預料不到的錯誤。

  (4)數據通信過程中, 向STM32發送程序文件時需考慮STM32對Flash的寫入速度,保證每次傳送的數據包都能正確寫入。

  (5)傳輸過程中,升級文件分段傳送,可能存在數據丟失、網絡不穩定等現象。對每段數據編號,根據編號判斷是否有數據包丟失,并增加CRC校驗,保證每段數據傳輸的正確性。對于錯誤或丟失的數據包,采取重傳機制,提高IAP的成功率[9]。

4結論

  本文對基于TFTP協議的STM32軟件更新進行了研究,充分利用以太網的傳輸能力和便捷性,設計并實現了IAP升級系統。通過實驗測試,基于TFTP 協議的STM32軟件遠程升級系統能夠保證數據的正確傳輸和存儲,大大降低了對嵌入式系統軟件的升級維護難度,應用廣泛。

參考文獻

 ?。?] 溫世堅,張偉波.基于STM32的遠程升級系統的設計[J].科技廣場,2013,26(5):97100.

 ?。?] 李興鶴,蔡亮,宋吉波,等.STM32用戶基于IAP的程序更新技術[J].單片機與嵌入式系統應用, 2012,12(1):7475.

 ?。?] 王程,周安琳.基于Autofac對乳制品安全風險預警系統的擴展設計[J]. 河北省科學院學報,2013,30(1):14,14.

 ?。?] 李婉婉,李宏.單片機IAP升級方法在血液分析儀中的應用[J]. 微型機與應用,2014,33(21):1618.

 ?。?] 王娜,成彬,郝友帥.水流量遠程智能監測系統的設計與實現[J]. 河北省科學院學報,2011,28(2):3439.

 ?。?] 武輝林.模數轉換器AD7791及其應用格式[J].河北省科學院學報, 2011,28(2):2629.

  [7] 李俊,王金海.基于TFTP協議的ARM軟件遠程更新系統[J].工礦自動化,2010,37(7):2225.

 ?。?] 游侃民.嵌入式系統網絡化BOOTLOADER的設計與實現[D].廣州:華南理工大學,2010.

  [9] 許青青.一種輕量級Bootloader(LWBL)的設計與實現[D].上海:華東師范大學,2012.


此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          久久伊人精品天天| 亚洲人妖在线| 久久国产夜色精品鲁鲁99| 亚洲国产高清在线观看视频| 精品va天堂亚洲国产| 欧美成人四级电影| 美女精品视频一区| 国产精品久久久久久久久免费桃花| 欧美在线免费看| 亚洲欧美日韩一区二区三区在线观看| 久久精品视频一| 亚洲黄色三级| 久久久精品国产免大香伊| 久久精品亚洲精品国产欧美kt∨| 欧美v亚洲v综合ⅴ国产v| 欧美精品日韩三级| 久久久精品午夜少妇| 国产欧美日韩视频在线观看| 亚洲经典一区| 亚洲片区在线| 国产麻豆一精品一av一免费| 一区二区三区欧美视频| 国产视频自拍一区| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲黄色免费电影| 亚洲欧美文学| 欧美日韩一区二区在线观看| 欧美午夜精品久久久久久超碰| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲一区二区黄色| 久久青草福利网站| 亚洲国产日韩在线一区模特| 国产精品久久久久久久久久ktv| 亚洲——在线| 欧美精品二区三区四区免费看视频| 91久久久亚洲精品| 久久人人爽国产| 亚洲午夜久久久久久久久电影网| 欧美视频在线免费看| 亚洲人午夜精品免费| 中文一区二区| 欧美在线观看一区| 免费观看日韩| 黄色成人在线观看| 国产日韩欧美在线看| 亚洲电影免费观看高清完整版在线| 亚洲资源在线观看| 亚洲成色精品| 欧美久久久久免费| 国产精品永久在线| 亚洲欧美日韩精品久久久| 国产香蕉久久精品综合网| 国产精品v一区二区三区| 欧美日韩综合视频| 久久精品主播| 免费成人网www| 香蕉精品999视频一区二区| 国产主播在线一区| 欧美一级久久| 久久国产精品72免费观看| 久久久久久久久久码影片| 欧美在线free| 欧美精品国产一区二区| 欧美寡妇偷汉性猛交| 久久夜色精品国产欧美乱| 国产一区二区av| 激情视频一区二区| 欧美日韩国产综合网| 国产精品区一区| 牛人盗摄一区二区三区视频| 亚洲裸体俱乐部裸体舞表演av| 国产精品成人av性教育| 国产精品久久久久久久久借妻| 欧美激情亚洲一区| 国产午夜一区二区三区| 欧美激情欧美狂野欧美精品| 欧美大片免费看| 国产精品爽黄69| 亚洲电影av| 在线视频你懂得一区二区三区| 国产欧美二区| 欧美高清hd18日本| 一色屋精品视频在线观看网站| 欧美日韩国产精品| 日韩视频一区| 亚洲女同性videos| 亚洲午夜久久久| 国产精品久久久久久一区二区三区| 久久精品国产一区二区电影| 激情文学一区| 欧美不卡视频一区发布| 欧美日韩一区二区三区免费看| 亚洲一区二区在线观看视频| 亚洲第一视频网站| 亚洲国产免费| 欧美精品v日韩精品v韩国精品v| 国产精品久久福利| 亚洲精品视频啊美女在线直播| 国产精品毛片a∨一区二区三区|国| 亚洲午夜视频| 午夜精品久久久久久久白皮肤| 欧美ab在线视频| 欧美在线一级视频| 国产精品一区二区黑丝| 亚洲制服欧美中文字幕中文字幕| 亚洲小说春色综合另类电影| 一区二区三区黄色| 韩国av一区二区三区在线观看| 99xxxx成人网| 欧美电影电视剧在线观看| 欧美亚洲成人网| 国产一区二区久久久| 欧美激情女人20p| 亚洲毛片网站| 久久伊人亚洲| 亚洲精品社区| 99视频+国产日韩欧美| 亚洲精品乱码久久久久久按摩观| 久久福利一区| 欧美日韩在线观看一区二区三区| 亚洲精品影视| 激情亚洲一区二区三区四区| 欧美成人高清| 亚洲卡通欧美制服中文| 国产日韩一区二区三区| 欧美日韩综合视频网址| 亚洲深爱激情| 国产精品视频yy9099| 在线看片一区| 夜夜嗨av一区二区三区网页| 国产精品你懂的在线欣赏| 国产精品videosex极品| 欧美精品自拍偷拍动漫精品| 一本一道久久综合狠狠老精东影业| 欧美日韩精品二区第二页| 欧美成人精品在线| 久久成人精品电影| 麻豆九一精品爱看视频在线观看免费| 欧美另类高清视频在线| 国产精品亚洲аv天堂网| 一本久道久久综合婷婷鲸鱼| 欧美日韩综合不卡| 欧美亚洲在线| 亚洲国产小视频在线观看| 欧美一区二区福利在线| 免播放器亚洲一区| 国产精品久久久久久久久久免费看| 亚洲在线播放电影| 欧美一级视频精品观看| 国产精品一级久久久| 欧美日韩视频第一区| 亚洲国产精品久久久久秋霞影院| 性色av一区二区三区| 亚洲免费av网站| 亚洲欧美国产精品桃花| 麻豆久久久9性大片| 国产欧美一区二区三区久久人妖| 亚洲第一区在线观看| 亚洲人人精品| 国产精品啊啊啊| 久久色在线观看| 欧美全黄视频| 伊人天天综合| 日韩一二三区视频| 欧美 日韩 国产一区二区在线视频| 亚洲在线不卡| 欧美日一区二区三区在线观看国产免| 日韩视频久久| 欧美亚洲一区二区在线观看| 久久av最新网址| 免费看成人av| 亚洲二区在线| 亚洲第一视频网站| 国产主播一区二区三区四区| 亚洲国产高清自拍| 亚洲欧美精品伊人久久| 国产性做久久久久久| 国产亚洲精品aa午夜观看| 精品成人a区在线观看| 国产女主播一区二区| 欧美激情2020午夜免费观看| 亚洲一卡久久| 欧美aⅴ99久久黑人专区| 老司机免费视频一区二区三区| 欧美精品激情在线观看| 亚洲乱码一区二区| 国产日韩在线一区二区三区| 欧美一区在线直播| 久久精品国内一区二区三区| 久久精品欧美日韩| 欧美日韩中文在线观看| 国产精品麻豆欧美日韩ww| 欧美+日本+国产+在线a∨观看| 一区二区在线视频播放| 今天的高清视频免费播放成人| 午夜久久久久久| 在线视频你懂得一区| 久久国产精品一区二区三区| 国产一区二区精品在线观看| 亚洲欧美日韩专区| 最新日韩av| 亚洲美女在线国产| 欧美激情 亚洲a∨综合| 亚洲视频在线观看免费| 激情六月婷婷久久| 激情欧美一区二区三区在线观看| 欧美日韩国产综合视频在线| 国产精品综合av一区二区国产馆| 亚洲国产日韩在线一区模特| 激情综合五月天| 国产小视频国产精品| 欧美xxx成人| 国产欧美一区二区在线观看| 亚洲电影免费观看高清完整版在线观看| 99国产麻豆精品| 国产女主播视频一区二区| 免费久久久一本精品久久区| 亚洲国产日韩精品| 尤物视频一区二区| 欧美日韩另类丝袜其他| 亚洲人成网站在线观看播放| 亚洲国产成人av好男人在线观看| 亚洲电影观看| 牛牛国产精品| 亚洲欧美成人网| 欧美午夜视频网站| 欧美日韩第一区日日骚| 欧美一区二区三区在线播放| 欧美日韩国产精品一区二区亚洲| aa成人免费视频| 久久综合色影院| 欧美激情欧美激情在线五月| 国产精品第十页| 1000部精品久久久久久久久| 亚洲欧洲精品天堂一级| 尤物在线精品| 亚洲视屏一区| 国产精品人人做人人爽人人添| 欧美激情精品久久久久久久变态| 亚洲国内精品在线| 香蕉尹人综合在线观看| 亚洲电影免费观看高清完整版在线| 亚洲一级黄色片| 国产一本一道久久香蕉| 欧美激情综合五月色丁香| 国产精品日本欧美一区二区三区| 国产一区二区三区av电影| 国产日韩在线一区| 亚洲尤物在线| 久久久久女教师免费一区| 国产一区二区| 国产综合婷婷| 日韩网站在线| 欧美成人免费观看| 国内自拍视频一区二区三区| 欧美高清成人| 久久国产精品色婷婷| 91久久亚洲| 午夜精品久久久久久久久久久久久| 日韩视频一区二区三区在线播放免费观看| 国产精品一区二区在线| 亚洲欧美日韩爽爽影院| 中文在线资源观看视频网站免费不卡| 欧美高清视频一区二区三区在线观看| 国产精品videosex极品| 国产精品亚洲第一区在线暖暖韩国| 国产精品伊人日日| 亚洲视屏一区| 欧美日韩一区二区在线观看视频| 在线成人激情黄色| 国产揄拍国内精品对白| 亚洲专区欧美专区| 久久午夜羞羞影院免费观看| 夜夜嗨av一区二区三区四季av| 国产精品日日摸夜夜摸av| 亚洲欧洲av一区二区三区久久| 久久精品国产视频| 国产九色精品成人porny| 久久婷婷久久一区二区三区| 免费视频一区二区三区在线观看| 蜜桃av一区| 欧美一区二区三区视频在线观看| 欧美一区二区播放| 久久久久久亚洲精品中文字幕| 另类酷文…触手系列精品集v1小说| 国产人妖伪娘一区91| 欧美三级小说| 久久一日本道色综合久久| 欧美三区视频| 久久精品99国产精品| 夜夜嗨av色一区二区不卡| 亚洲高清不卡在线| 最新国产成人av网站网址麻豆| 国产精品免费网站在线观看| 在线观看福利一区| 亚洲一区二区三区精品动漫| 国产精品日韩欧美一区二区| 亚洲素人在线| 久久综合色综合88| 国产精品你懂的在线欣赏| 在线观看国产精品淫| 欧美国产日韩二区| 亚洲高清资源| 亚洲欧美综合另类中字| 在线观看欧美激情| 老牛影视一区二区三区| 韩国精品主播一区二区在线观看| 香蕉久久夜色| 欧美日韩一本到| 国产亚洲欧美一区在线观看| 免费在线视频一区| 欧美日韩大片一区二区三区| 在线观看三级视频欧美| 亚洲激情图片小说视频| 怡红院精品视频在线观看极品| 蜜臀99久久精品久久久久久软件| 亚洲欧美在线看| 狠狠狠色丁香婷婷综合久久五月| 欧美区视频在线观看| 欧美国产欧美亚州国产日韩mv天天看完整| 国产欧美一级| 久久精品成人欧美大片古装| 欧美午夜www高清视频| 国产美女扒开尿口久久久| 亚洲理伦在线| 国产日韩视频一区二区三区| 久久激情视频久久| 午夜精品免费视频|