亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于TFTP協(xié)議實現(xiàn)STM32的IAP*

        2016-12-23 07:26:07孫曉曄
        關(guān)鍵詞:嵌入式程序系統(tǒng)

        孫曉曄,王 程,成 彬

        (1.石家莊開發(fā)區(qū)冀科雙實科技有限公司,河北 石家莊 050081;2. 河北省科學(xué)院應(yīng)用數(shù)學(xué)研究所,河北 石家莊 050081; 3.河北省信息安全認(rèn)證工程技術(shù)研究中心,河北 石家莊 050081)

        ?

        基于TFTP協(xié)議實現(xiàn)STM32的IAP*

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

        (1.石家莊開發(fā)區(qū)冀科雙實科技有限公司,河北 石家莊 050081;2. 河北省科學(xué)院應(yīng)用數(shù)學(xué)研究所,河北 石家莊 050081; 3.河北省信息安全認(rèn)證工程技術(shù)研究中心,河北 石家莊 050081)

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

        嵌入式微控制器;在應(yīng)用編程;以太網(wǎng);簡單文件傳輸協(xié)議

        0 引言

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

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

        1 IAP工作原理

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

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

        2 系統(tǒng)硬件設(shè)計

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

        3 系統(tǒng)軟件設(shè)計

        本系統(tǒng)中PHY層芯片LAN8720A相當(dāng)于物理層,STM32F407自帶的MAC層相當(dāng)于數(shù)據(jù)鏈路層,而移植的LWIP提供的就是網(wǎng)絡(luò)層、傳輸層的功能,應(yīng)用層需要用戶根據(jù)具體功能去實現(xiàn),即BootLoader和APP程序。

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

        3.1 BootLoader程序

        BootLoader程序主要完成系統(tǒng)初始化、TFTP數(shù)據(jù)通信、更新Flash存儲區(qū)內(nèi)容和執(zhí)行程序的跳轉(zhuǎn)等功能[6]。其工作流程如圖1所示。

        圖1 BootLoader軟件工作流程

        系統(tǒng)初始化主要完成外部總線控制器的初始化、堆棧的初始化、定時器配置和LAN8720A網(wǎng)卡芯片的初始化、LWIP內(nèi)核初始化等操作。之后,通過監(jiān)測外部按鍵,判斷是否進(jìn)入IAP模式進(jìn)行升級,若超時,則跳轉(zhuǎn)到常態(tài)存儲區(qū),執(zhí)行原來的APP程序[7-8]。

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

        3.2 APP程序

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

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

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

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

        3.3 系統(tǒng)軟件設(shè)計需注意的問題

        系統(tǒng)在軟件設(shè)計中需注意以下幾點:

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

        (2)BootLoader代碼設(shè)計時應(yīng)盡量簡潔,避免使用中斷、復(fù)雜的底層驅(qū)動及算法。

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

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

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

        4 結(jié)論

        本文對基于TFTP協(xié)議的STM32軟件更新進(jìn)行了研究,充分利用以太網(wǎng)的傳輸能力和便捷性,設(shè)計并實現(xiàn)了IAP升級系統(tǒng)。通過實驗測試,基于TFTP 協(xié)議的STM32軟件遠(yuǎn)程升級系統(tǒng)能夠保證數(shù)據(jù)的正確傳輸和存儲,大大降低了對嵌入式系統(tǒng)軟件的升級維護(hù)難度,應(yīng)用廣泛。

        [1] 溫世堅,張偉波.基于STM32的遠(yuǎn)程升級系統(tǒng)的設(shè)計[J].科技廣場,2013,26(5):97-100.

        [2] 李興鶴,蔡亮,宋吉波,等.STM32用戶基于IAP的程序更新技術(shù)[J].單片機與嵌入式系統(tǒng)應(yīng)用, 2012,12(1):74-75.

        [3] 王程,周安琳.基于Autofac對乳制品安全風(fēng)險預(yù)警系統(tǒng)的擴展設(shè)計[J]. 河北省科學(xué)院學(xué)報,2013,30(1):1-4,14.

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

        [5] 王娜,成彬,郝友帥.水流量遠(yuǎn)程智能監(jiān)測系統(tǒng)的設(shè)計與實現(xiàn)[J]. 河北省科學(xué)院學(xué)報,2011,28(2):34-39.

        [6] 武輝林.模數(shù)轉(zhuǎn)換器AD7791及其應(yīng)用格式[J].河北省科學(xué)院學(xué)報, 2011,28(2):26-29.

        [7] 李俊,王金海.基于TFTP協(xié)議的ARM軟件遠(yuǎn)程更新系統(tǒng)[J].工礦自動化,2010,37(7):22-25.

        [8] 游侃民.嵌入式系統(tǒng)網(wǎng)絡(luò)化BOOTLOADER的設(shè)計與實現(xiàn)[D].廣州:華南理工大學(xué),2010.

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

        STM32 in-application programming based on TFTP

        Sun Xiaoye1,2, Wang Cheng2,3, Cheng Bin2,3

        (1.Shijiazhuang Development Zone JKSS Science & Technology Co., Ltd, Shijiazhuang 050081, China;2.Institute of Applied Mathematics, Hebei Academy of Sciences, Shijiazhuang 050081, China;3.Hebei Information Security Certification Engineering Technology Research Center, Shijiazhuang 050081, China)

        Aiming at the problems of wide-range distribution, dispersed location, weak maintenance and difficult upgrade for embedded products, a resolving scheme of remote update system of STM32 software based on Trivial File Transfer Protocol (TFTP) is put forward in this paper. The system is mainly composed of STM32F407 microcontroller, LAN8720A network card chip, W25Q128 FLASH and IS62WV51216 SRAM. It can remotely update application software of STM32 microcontroller without operating system by using IAP technology and TFTP protocol of Ethernet. The testing results show that the system can ensure correct transmission and reliable storage of upgrade file data, and reduce the difficulty of upgrade and maintenance of STM32 embedded system software greatly.

        embedded microcontroller; in-application programming (IAP); Ethernet; trivial file transfer protocol

        河北省科學(xué)院科技計劃項目(15604)

        TP39

        A

        1674-7720(2016)07- 0076- 03

        孫曉曄,王程,成彬. 基于TFTP協(xié)議實現(xiàn)STM32的IAP[J].微型機與應(yīng)用,2016,35(7):76-78.

        2015-11-04)

        孫曉曄(1981-),女,本科,電子工程師,主要研究方向:嵌入式系統(tǒng)。

        王程(1978-),男,本科,副研究員,主要研究方向:大數(shù)據(jù)分析與處理。

        成彬(1973-),男,碩士,研究員,主要研究方向:云計算與大數(shù)據(jù)。

        猜你喜歡
        嵌入式程序系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機系統(tǒng)
        ZC系列無人機遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        試論我國未決羈押程序的立法完善
        搭建基于Qt的嵌入式開發(fā)平臺
        “程序猿”的生活什么樣
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        英國與歐盟正式啟動“離婚”程序程序
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        四川少妇大战4黑人| 人妻中文久久人妻蜜桃| 草草影院发布页| 日本不卡一区二区三区在线 | 99麻豆久久久国产精品免费| 久久人人玩人妻潮喷内射人人| 久久精品国产亚洲婷婷| 日韩美女人妻一区二区三区| 精品国产一区二区三区三| 超碰97资源站| 国产精品九九九无码喷水| 自拍偷拍一区二区三区四区| 免费国产在线视频自拍白浆| 西西人体444www大胆无码视频| 亚洲春色AV无码专区在线播放| 一区二区三区黄色一级片| 亚洲a无码综合a国产av中文| 玩弄少妇高潮ⅹxxxyw| 东京热加勒比在线观看| 国产少妇高潮在线视频| 成熟丰满熟妇av无码区| 精品视频一区二区三三区四区| 亚洲啪啪AⅤ一区二区三区| 青青草小视频在线观看| 97精品国产97久久久久久免费| 成人免费xxxxx在线视频| 用力草我小逼视频在线播放| 亚洲中文字幕av天堂自拍| 国产成人av性色在线影院色戒| 98国产精品永久在线观看| 亚洲av综合日韩精品久久| 亚洲国产日韩欧美综合a| 国产精品美女久久久久久2018| 国内精品人人妻少妇视频| 国产精品专区第一页天堂2019| 亚洲熟女乱色综合亚洲av| 久久精品国产亚洲AV无码不| 久久精品视频日本免费| 亚洲国产成人一区二区精品区| 中文在线√天堂| 偷柏自拍亚洲综合在线|