女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

電子發燒友App

硬聲App

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

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

3天內不再提示
電子發燒友網>電子資料下載>嵌入式開發>基于TFTP協議實現STM32的IAP資料下載

基于TFTP協議實現STM32的IAP資料下載

2021-04-15 | pdf | 198.7KB | 次下載 | 3積分

資料介紹

0引言隨著嵌入式技術以及32位嵌入式微處理器的發展,嵌入式系統的應用日益廣泛,嵌入式產品與人們的生產、生活結合得越來越緊密。然而,嵌入式系統的設計不可能一步到位,尤其是嵌入式軟件,需要不斷修改和完善。當程序出錯或用戶需求變更時,傳統的方法是安排技術人員到現場或將設備回收對控制器芯片重新編程。這種方式費時費力,效率低下[1]。采用IAP(In-Application Programming)技術則可以免除拆卸設備、燒錄MCU(Microcontroller Unit)等繁瑣的過程。IAP即“在應用中編程”,是指產品發布后在運行過程中通過預留的通信接口(如USART、I2CCANUSB以太網接口等)對微控制器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所示。系統初始化主要完成外部總線控制器的初始化、堆棧的初始化、定時器配置和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軟件遠程升級系統能夠保證數據的正確傳輸和存儲,大大降低了對嵌入式系統軟件的升級維護難度,應用廣泛。參考文獻[1] 溫世堅,張偉波.基于STM32的遠程升級系統的設計[J].科技廣場,2013,26(5):97100.[2] 李興鶴,蔡亮,宋吉波,等.STM32用戶基于IAP的程序更新技術[J].單片機與嵌入式系統應用, 2012,12(1):7475.[3] 王程,周安琳.基于Autofac對乳制品安全風險預警系統的擴展設計[J]. 河北省科學院學報,2013,30(1):14,14.[4] 李婉婉,李宏.單片機IAP升級方法在血液分析儀中的應用[J]. 微型機與應用,2014,33(21):1618.[5] 王娜,成彬,郝友帥.水流量遠程智能監測系統的設計與實現[J]. 河北省科學院學報,2011,28(2):3439.[6] 武輝林.模數轉換器AD7791及其應用格式[J].河北省科學院學報, 2011,28(2):2629.[7] 李俊,王金海.基于TFTP協議的ARM軟件遠程更新系統[J].工礦自動化,2010,37(7):2225.[8] 游侃民.嵌入式系統網絡化BOOTLOADER的設計與實現[D].廣州:華南理工大學,2010.[9] 許青青.一種輕量級Bootloader(LWBL)的設計與實現[D].上海:華東師范大學,2012.(mbbeetchina)
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1TC358743XBG評估板參考手冊
  2. 1.36 MB  |  330次下載  |  免費
  3. 2開關電源基礎知識
  4. 5.73 MB  |  6次下載  |  免費
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設計
  8. 0.60 MB  |  3次下載  |  免費
  9. 5基于FPGA的光纖通信系統的設計與實現
  10. 0.61 MB  |  2次下載  |  免費
  11. 6基于FPGA的C8051F單片機開發板設計
  12. 0.70 MB  |  2次下載  |  免費
  13. 751單片機窗簾控制器仿真程序
  14. 1.93 MB  |  2次下載  |  免費
  15. 8基于51單片機的RGB調色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21548次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6653次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537796次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191185次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183278次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費