• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于STM32的嵌入式設(shè)備程序無線更新系統(tǒng)

      2017-10-26 00:15周李錢龍
      電腦知識與技術(shù) 2017年22期

      周李 錢龍

      摘要:嵌入式設(shè)備經(jīng)常需要程序更新以進(jìn)行設(shè)備維護(hù)和升級。該文結(jié)合在應(yīng)用編程(IAP)技術(shù)和藍(lán)牙技術(shù)設(shè)計(jì)出一個無線更新系統(tǒng)來實(shí)現(xiàn)嵌入式設(shè)備程序的更新。其主要目標(biāo)是:在不接觸嵌入式設(shè)備的情況下,對設(shè)備進(jìn)行程序無線更新。這種更新方式可節(jié)約嵌入式設(shè)備成本,提高工作效率,是對傳統(tǒng)有線更新方式的一種創(chuàng)新。

      關(guān)鍵詞:STM32;嵌入式設(shè)備;lAP;無線更新

      中圖分類號:TP23 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2017)22-0212-02

      隨著嵌入式設(shè)備廣泛應(yīng)用,各行各業(yè)對嵌入式設(shè)備的系統(tǒng)功能、性能的要求都在日益提高。開發(fā)者必須能夠針對客戶的需求及時方便地對系統(tǒng)進(jìn)行維護(hù)和升級,以延長系統(tǒng)的使用周期,改善系統(tǒng)的性能。顯然傳統(tǒng)的點(diǎn)對點(diǎn)的有線下載更新維護(hù)方式已經(jīng)不適應(yīng)了。鑒于此,本文對基于STM32微控制器的嵌入式系統(tǒng)軟件遠(yuǎn)程無線升級技術(shù)進(jìn)行研究,提出了一種已成功驗(yàn)證的無線升級實(shí)現(xiàn)方法。

      1在應(yīng)用編程(IAP)

      在應(yīng)用編程(In Application Programming,IAP)是指最終產(chǎn)品出廠后,由最終用戶在使用中對用戶程序部分進(jìn)行編程,實(shí)現(xiàn)在線升級。IAP技術(shù)從結(jié)構(gòu)上將Flash存儲器映射為兩個存儲體,當(dāng)運(yùn)行一個存儲體上的用戶程序時,可對另一個存儲體重新編程,之后將控制從一個存儲體轉(zhuǎn)向另一個。IAP的實(shí)現(xiàn)程序需要由兩部分組成:1.引導(dǎo)程序(Boofloader),2.應(yīng)用程序(APP)。Bootloader負(fù)責(zé)更新程序的拷貝和跳轉(zhuǎn)到應(yīng)用程序,必須通過其他手段,如JTAG或ISP燒人。APP運(yùn)行程序要實(shí)現(xiàn)的功能和更新程序的下載、保存??梢允褂肐AP功能燒入,也可以和第一部分代碼一道燒入,以后需要程序更新是再通過第一部分IAP代碼更新。

      2系統(tǒng)總體設(shè)計(jì)

      本系統(tǒng)主要由STM32單片機(jī),無線通訊模塊,上位機(jī)組成,系統(tǒng)組成如圖1所示。用戶操作上位機(jī)發(fā)送相應(yīng)的指令和所需要更新的程序文件(bin文件),無線通訊模塊負(fù)責(zé)將控制指令和更新程序從上位機(jī)傳送到STM32嵌入式設(shè)備,STM32接收到了正確的控制指令和更新程序后,開始運(yùn)行新的程序,接收順序不分先后。

      3程序更新流程

      開機(jī)時STM32單片機(jī)先運(yùn)行Bootloader程序,檢測片內(nèi)Flash(或者片外Flash或者FRAM)“程序更新標(biāo)志”是否置位,如果沒有,則直接跳轉(zhuǎn)到應(yīng)用程序。應(yīng)用程序運(yùn)行時檢測無線模塊收到的數(shù)據(jù)命令,如果有程序更新指令,則接收程序,并保存到片內(nèi)Flash的靠后的代碼段(或者片外Flashl,接收保存完數(shù)據(jù)后,片內(nèi)Flash(或者片外Flash或者FRAM)“程序更新標(biāo)志”置位,然后重啟STM32單片機(jī)。STM32單片機(jī)重新運(yùn)行Boofload-er,此時Bootloader檢測到有程序更新標(biāo)志,則將片內(nèi)Flash的靠后的代碼段(或者片外Flash)的更新代碼拷貝回應(yīng)用程序代碼段,并復(fù)位更新程序標(biāo)志,然后跳轉(zhuǎn)到應(yīng)用程序,至此程序更新完畢。

      4系統(tǒng)硬件設(shè)計(jì)

      單片機(jī)的選用STM32F103VET6。其采用ARM Cortex-M3架構(gòu),擁有512KB程序內(nèi)存,64KB存儲器容量,最高可達(dá)72MHz的處理頻率,完全可以滿足此次設(shè)計(jì)要求。此外我們選取了市面上常見的HC-05主從一體藍(lán)牙模塊作為本次的無線通訊模塊。它可以實(shí)現(xiàn)數(shù)據(jù)透傳,兩個藍(lán)牙模塊配對成功后(藍(lán)牙模塊上的指示燈雙閃),可以進(jìn)行全雙工通信。

      5系統(tǒng)軟件設(shè)計(jì)

      本文設(shè)計(jì)了一種無線更新的具體實(shí)施方案。該方案由Bootloader、APP1、APP2三者組成,三者之間的程序切換無需使用下載線重新下載,操作人員無需接觸開發(fā)板。該方案的設(shè)計(jì)思想如圖2。

      Bootloader、APP1、APP2三者的軟件執(zhí)行過程如下:

      1)Boofloader通過指令A(yù)跳轉(zhuǎn)到APP1,APP1通過指令D跳回到Bootloader。

      2)APP1通過指令c跳轉(zhuǎn)到APP2,APP2通過指令B跳回到AFP1。

      3)APP2通過指令E跳回Bootloader。

      4)當(dāng)STM32嵌入式設(shè)備接受錯誤的控制指令時,程序不會執(zhí)行跳轉(zhuǎn)操作。Bootloader不能直接跳轉(zhuǎn)到APP2,必須要經(jīng)過APP1執(zhí)行。

      5)當(dāng)APP2程序運(yùn)行時,要想繼續(xù)無線更新,需返回Boot-loader,在Bootloader的運(yùn)行過程中執(zhí)行程序的無線更新。新的更新文件會覆蓋APP1原來在Flash空間的存儲;或者返回APP1,在APP1的運(yùn)行過程中執(zhí)行程序的無線更新,新的更新文件會覆蓋APP2原來在Flash空間的存儲。

      6總結(jié)

      經(jīng)測試,整個無線更新系統(tǒng)可以完成實(shí)現(xiàn)程序跳轉(zhuǎn),實(shí)現(xiàn)STM32嵌入式設(shè)備的無線更新。該方法還可以減少嵌入式設(shè)備的維護(hù)成本、提高設(shè)備的工作效率。endprint

      通城县| 康定县| 大竹县| 汪清县| 丰台区| 萍乡市| 武城县| 山东省| 青冈县| 盐山县| 启东市| 同心县| 拉孜县| 团风县| 新巴尔虎左旗| 邵阳市| 聂荣县| 朝阳市| 张家港市| 扎赉特旗| 昆明市| 上杭县| 安平县| 延庆县| 彭泽县| 临沂市| 筠连县| 绥德县| 大足县| 资溪县| 曲靖市| 观塘区| 英德市| 河西区| 胶南市| 邳州市| 响水县| 博乐市| 永州市| 边坝县| 广昌县|