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

        ?

        STM32F205VB在遠程系統(tǒng)升級中的應(yīng)用

        2014-06-01 09:20:08丁鵬飛
        自動化儀表 2014年5期
        關(guān)鍵詞:用戶程序系統(tǒng)升級存儲器

        丁鵬飛 法 林

        (西安郵電大學電子工程學院,陜西 西安 710121)

        0 引言

        隨著嵌入式終端技術(shù)的發(fā)展,嵌入式系統(tǒng)在化工、機電、國防等領(lǐng)域的應(yīng)用越來越廣泛,嵌入式系統(tǒng)在現(xiàn)代工業(yè)中無處不在[1]。在石油化工行業(yè)中,用于設(shè)備運行狀態(tài)檢測和數(shù)據(jù)采集的智能儀器儀表的內(nèi)部軟件需要定期或不定期地進行升級[2],用于滿足電網(wǎng)中配電變壓器的自動化裝置對系統(tǒng)的遠程升級與維護提出的要求[3]。遠程升級技術(shù)通過遠程升級儀器的應(yīng)用程序,滿足應(yīng)用過程提出的新的應(yīng)用要求,降低系統(tǒng)升級的成本。

        本文利用通用無線分組業(yè)務(wù)(general packet radio service,GPRS),設(shè)計了基于 STM32F205VB處理器的遠程升級系統(tǒng)。系統(tǒng)使用GPRS模塊實現(xiàn)升級代碼的傳輸,具有價格低廉、網(wǎng)絡(luò)覆蓋范圍廣、無線傳輸?shù)忍攸c[4]。系統(tǒng)通過升級程序?qū)⒔邮盏纳壌a寫入程序存儲區(qū),實現(xiàn)系統(tǒng)的遠程升級,避免了工作人員到現(xiàn)場進行設(shè)備的升級,節(jié)約了時間和人力。

        1 遠程系統(tǒng)升級原理

        在微處理器中,程序存儲器的編程方法通常有3種[5]:并行編程模式、通過串口或JTAG等接口進行編程的在系統(tǒng)編程(in system programming,ISP)模式,以及在應(yīng)用程序控制下的在應(yīng)用編程(in application programming,IAP)模式。

        并行編程是較早單片機的編程方式。該模式通過專用的編程器對單片機進行程序的燒寫,需要額外的編程器,且花費較多的開發(fā)時間,這種單片機已被淘汰。ISP編程模式由于其調(diào)試的方便性得到眾多廠家的廣泛支持。IAP是應(yīng)用Flash程序存儲器的一種編程模式[6]。IAP模式是將Flash程序存儲區(qū)化分為兩個不同程序區(qū)域(程序區(qū)域1和程序區(qū)域2)。運行于程序區(qū)域1的應(yīng)用程序為引導(dǎo)加載程序,即Bootloader程序;運行于程序區(qū)域2的應(yīng)用程序為用戶應(yīng)用程序。Bootloader程序是一段引導(dǎo)程序,它駐留在處理器的程序存儲器,當處理器上電或復(fù)位后在用戶應(yīng)用程序之前運行。Bootloader程序檢測升級標志位確定是否需要對用戶應(yīng)用程序進行升級。如果不需要升級應(yīng)用程序時,直接運行用戶應(yīng)用程序;如果需要升用戶級應(yīng)用程序時,Bootloader程序通過Flash存儲器的擦除、讀、寫機制對程序區(qū)域2進行擦除,并將需要更新的程序?qū)懭氤绦騾^(qū)域2,即寫入應(yīng)用程序區(qū)域。當程序區(qū)域2的應(yīng)用程序更新完畢后,跳轉(zhuǎn)到程序區(qū)域2運行新用戶程序,從而實現(xiàn)程序的升級。

        2 遠程升級功能的實現(xiàn)

        本文針對意法半導(dǎo)體(ST)公司所開發(fā)的基于ARM Cortex-M3內(nèi)核的STM32F205VB處理器,研究遠程升級功能的實現(xiàn)方法。該方法將STM32F205VB處理器的 Flash存儲器分為3個區(qū):升級引導(dǎo)程序(Bootloader)區(qū)、用戶應(yīng)用程序區(qū)以及升級代碼+升級標志區(qū)。每次上電后,Bootloader根據(jù)升級標志判斷是否需要升級用戶程序。當需要升級應(yīng)用程序時,Bootloader將接收的升級代碼寫入用戶程序區(qū),并刪除升級標志并運行用戶應(yīng)用程序;當不需要升級應(yīng)用程序時,直接運行用戶應(yīng)用程序。STM32F205VB處理器通過GPRS模塊與遠程控制中心實現(xiàn)無線連接,并通過GPRS模塊接收控制中心的控制命令和升級代碼。遠程升級的連接框圖如圖1所示。

        圖1 遠程升級連接框圖Fig.1 Block diagram of the remote upgrading system

        2.1 STM32F205VB 處理器

        STM32F205VB處理器是意法半導(dǎo)體公司生產(chǎn)的基于ARM 32位Cortex-M3內(nèi)核的處理器,其自適應(yīng)實時加速器使Flash存儲器的程序無等待執(zhí)行,時鐘頻率高達120 MHz。該處理器集成了3路12位A/D轉(zhuǎn)換器、2路12位D/A轉(zhuǎn)換器、通用DMA控制器、高達17個定時器,支持串行線調(diào)試(serial wire debug,SWD)和聯(lián)合測試測試行動小組(joint test action group,JTAG)接口協(xié)議。該處理器具有128 kB程序存儲器和64 kB SRAM,支持I2C、SPI、CAN等通信方式。

        2.2 Flash程序存儲器的劃分

        STM32F205VB處理器有1片統(tǒng)存儲器區(qū),地址為:0x1FFF0000~0x1FFF7A0F。該存儲器區(qū)域為處理器的引導(dǎo)空間,即通過串口下載用戶程序的內(nèi)置引導(dǎo)程序。處理器的引導(dǎo)模式選擇管腳(BOOT1、BOOT0)決定處理器的啟動模式。當BOOT1=X、BOOT0=0時,運行用戶程序;當 BOOT1=0、BOOT0=1時,運行內(nèi)置引導(dǎo)程序?qū)崿F(xiàn)應(yīng)用程序的下載;當BOOT1=1、BOOT0=1時,運行內(nèi)置SRAM中的程序。運行用戶應(yīng)用程序時,BOOT0=0;運行內(nèi)置引導(dǎo)程序下載用戶應(yīng)用程序時,BOOT0=1。因此,通過內(nèi)置引導(dǎo)程序升級用戶程序時必須改變BOOT0管腳的電平,而當程序下載完成時需再次改變BOOT0管腳的電平。應(yīng)用內(nèi)置引導(dǎo)程序進行程序的下載需要對BOOT0關(guān)鍵進行短接,而“短接”動作與“遠程”直接矛盾[7]。因此,基于STM32F205VB處理器應(yīng)用系統(tǒng)的遠程升級必須通過自己的引導(dǎo)程序?qū)崿F(xiàn)應(yīng)用程序的更新。

        為實現(xiàn)應(yīng)用系統(tǒng)的遠程升級,將STM32F205VB處理的程序分為用于實現(xiàn)用戶應(yīng)用程序升級的Bootloader程序和用戶應(yīng)用程序。在升級應(yīng)用程序前,需要接收用于系統(tǒng)升級的程序代碼。因此,實現(xiàn)遠程升級功能涉及Bootloader程序、用戶應(yīng)用程序的設(shè)計和升級代碼的存儲。充分考慮STM32F205VB存儲器內(nèi)置了128 kB的Flash存儲器,將Flash存儲器劃分為Bootloader程序存儲區(qū)、用戶程序存儲區(qū)和升級代碼存儲區(qū)。STM32F205VB將Flash存儲器將存儲區(qū)劃分為5個扇區(qū),存儲地址從0x80000000開始,第0~3扇區(qū)分別為16 kB,第4扇區(qū)為64 kB,共128 kB(如果需要更多的存儲空間,可以選擇Flash存儲空間更大的處理器,如STM32F205ZG的Flash存儲空間為1 MB)。扇區(qū)的擦除是以扇區(qū)為單位進行的。為此,根據(jù)Bootloader和用戶程序的大小,將Flash存儲器空間進行分配,分配值如表1所示。

        表1 STM32F205VB Flash存儲器分配Tab.1 STM32F205VB Flash memory allocation

        2.3 系統(tǒng)升級程序設(shè)計

        系統(tǒng)升級程序設(shè)計成用于接收升級代碼的升級代碼接收程序和更新應(yīng)用程序的Bootloader兩個部分。系統(tǒng)升級程序的流程圖如圖2所示。系統(tǒng)上電后,首先運行Bootloader程序,Bootloader程序通過讀取升級標志位確認是否對系統(tǒng)程序進行升級。當升級標志位置位時,Bootloader讀取升級代碼并將升級代碼寫入用戶程序區(qū),升級代碼寫入完畢后,啟動應(yīng)用程序。當應(yīng)用程序接收到升級代碼時,應(yīng)用程序接收升級代碼并存儲到升級代碼區(qū),升級代碼接收完畢后判斷接收代碼是否完整、正確。當判斷升級代碼接收完畢且完整無誤時,置位升級標志位并復(fù)位處理器。處理器復(fù)位后運行Bootloader將接收的升級代碼寫入用戶程序區(qū)實現(xiàn)系統(tǒng)程序的升級。

        圖2 系統(tǒng)升級程序流程圖Fig.2 Flowchart of the system upgrading program

        Bootloader設(shè)計是遠程升級的重點,如何避免升級過程中出現(xiàn)的各種意外情況,是遠程升級的基礎(chǔ)。很多遠程升級系統(tǒng)通過Bootloader接收升級程序數(shù)據(jù)[6-9],而在升級程序數(shù)據(jù)傳輸過程中有以下兩種常見的原因?qū)е聜鬏敃r間較長:①由于傳輸傳輸鏈路不穩(wěn)定可能導(dǎo)致同一包數(shù)據(jù)需要多次發(fā)送;②升級程序數(shù)據(jù)量大,而傳輸速率較低。這種遠程升級系統(tǒng)方案在升級過程中應(yīng)用程序停止運行,用戶應(yīng)用程序因較長時間不能處理設(shè)備的任務(wù)而不能滿足實時性要求較高的場合。本文通過改變以往遠程升級的數(shù)據(jù)傳輸方式,通過用戶升級代碼接收程序接收升級代碼。升級代碼數(shù)據(jù)準確接收后,設(shè)置程序升級標志,并重啟處理器由Bootloader完成應(yīng)用程序的升級,從而減少升級任務(wù)的處理時間,滿足系統(tǒng)實時性的要求。Bootloader程序流程圖如圖3所示。

        圖3 Bootloader程序流程圖Fig.3 Flowchart of the Bootloader

        升級代碼接收程序完成升級代碼的接收。該程序通過接收數(shù)據(jù)中斷啟動,不影響應(yīng)用程序的正常運行,保證了升級代碼接收階段系統(tǒng)的正常運行。升級代碼接收程序的流程圖如圖4所示。

        圖4 升級代碼接收程序流程圖Fig.4 Flowchart of the upgrading code receiving program

        3 系統(tǒng)升級的可靠性設(shè)計

        系統(tǒng)應(yīng)用程序的升級必須保證升級數(shù)據(jù)的正確性和升級代碼的完整性。不完整的升級代碼或不正確的升級代碼都將使系統(tǒng)癱瘓。通過遠程升級的抗掉電、抗誤碼和合法性等措施,保證了系統(tǒng)升級的可靠性和安全性。

        3.1 遠程升級抗掉電設(shè)計

        在進行升級的過程中,難免會出現(xiàn)突然掉電的情況,所以必須有可靠的機制避免因突然掉電而導(dǎo)致程序升級失敗的情況。在程序升級的過程中,突然掉電可能發(fā)生在以下兩種情況:①數(shù)據(jù)接收過程中;②數(shù)據(jù)已接收完畢,Bootloader正將升級程序復(fù)制到應(yīng)用程序區(qū)。在第一種情況下,應(yīng)用程序不會置位升級標志位,原來的應(yīng)用程序區(qū)域保持不變,重新上電后,處理器運行老的應(yīng)用程序,不會出現(xiàn)因升級的應(yīng)用程序不完整而使系統(tǒng)癱瘓的情況。在第二種情況下,重新上電后,Bootloader讀取升級標志位并重新復(fù)制應(yīng)用程序,完成應(yīng)用程序的升級,從而保證寫入程序存儲區(qū)的程序是完整的。

        升級代碼接收程序?qū)⑸壌a存儲到Flash存儲器,充分保證在第二種情況發(fā)生時能進行應(yīng)用程序的正常升級。在接收升級代碼期間,系統(tǒng)應(yīng)用程序正常工作,大大減少了因系統(tǒng)升級而不能工作的時間。

        3.2 遠程升級抗誤碼設(shè)計

        升級代碼接收程序接收的升級代碼數(shù)據(jù)是處理器運行的代碼,很小的傳輸錯誤都會造成升級后的系統(tǒng)癱瘓。因此,消除升級錯誤傳輸碼的升級程序是保證系統(tǒng)升級后正常運行的關(guān)鍵,為此,采用帶CRC校驗的通信協(xié)議解決。

        為保證接收數(shù)據(jù)的正確性,設(shè)計升級代碼的傳輸幀格式表2所示。

        表2 升級代碼的傳輸幀格式Tab.2 The transmission frame format of upgrading code B

        表2中,起始標志表示幀頭;功能碼表示該幀是升級命令幀,收到該幀數(shù)據(jù)表示接收的數(shù)據(jù)為遠程升級代碼;總幀數(shù)表示升級代碼的總幀數(shù);當前幀表示當前為升級代碼的第幾幀;數(shù)據(jù)表示升級代碼數(shù)據(jù);校驗位表示數(shù)據(jù)幀中前1028個數(shù)據(jù)的CRC校驗碼。當傳輸最后一幀數(shù)據(jù)時,有可能升級代碼不足1024 B,不足的字節(jié)在數(shù)據(jù)幀中用0xff填充,從而保證所有幀中數(shù)據(jù)的個數(shù)為1024 B。發(fā)送升級代碼端在發(fā)送完一幀數(shù)據(jù)后等待下位機的應(yīng)答數(shù)據(jù)幀,若收到正確的回應(yīng)幀,則繼續(xù)發(fā)送下一幀數(shù)據(jù);若收到請求重發(fā)回應(yīng)幀,則重發(fā)剛才發(fā)送的數(shù)據(jù)幀;3次等待超時則停止發(fā)送。

        3.3 升級程序合法性檢查

        在遠程升級的控制中心,可能因為操作人員的誤操作將非升級代碼的BIN文件當作升級程序文件進行了升級操縱。在誤發(fā)送升級代碼的情況下,接收端在升級了錯誤的升級代碼后導(dǎo)致系統(tǒng)癱瘓,必須由技術(shù)人員到現(xiàn)場進行修復(fù)。因此,升級程序合法性檢查是保證系統(tǒng)升級后正常運行的重要手段。為此,采取以下方式保證升級程序的合法。

        ①對發(fā)送升級代碼端的應(yīng)用程序設(shè)置登錄密碼,并設(shè)置登錄人員的使用權(quán)限。只有授權(quán)進行遠程升級的用戶,才能進行遠程升級操作。

        ②在應(yīng)用程序設(shè)計過程中,定義用于程序合法性的字符串常量,并將該常量定位到某個固定的地址,當控制中心打開升級代碼的BIN文件時,檢查固定地址的合法性字符串常量。當檢測到字符串為非法時,拒絕執(zhí)行遠程升級操作;當字符串合法時,才允許操作人員執(zhí)行遠程升級操作。

        通過升級程序合法性檢查措施,杜絕了因操作人員的非法操縱或誤操作導(dǎo)致的系統(tǒng)癱瘓,大大提高了遠程升級的安全性和可靠性。

        4 結(jié)束語

        本文所設(shè)計的基于STM32F205VB的遠程升級技術(shù),通過Flash存儲器的合理劃分、抗掉電設(shè)計、抗誤碼設(shè)計和程序合法性檢查等手段,保證了該升級技術(shù)的高度穩(wěn)定性和可靠性。該設(shè)計方案巧妙地將升級代碼接收程序作為系統(tǒng)應(yīng)用程序的一部分并通過中斷方式啟動,在升級代碼接收結(jié)束后運行Bootloade實現(xiàn)系統(tǒng)的升級,解決了升級過程中系統(tǒng)長時間不能工作的難題,滿足了系統(tǒng)實時性的要求。該遠程升級技術(shù)可以應(yīng)用于其他控制系統(tǒng),具有廣泛的應(yīng)用前景和較高的使用價值。

        [1]Shi Wenchang.Implementing operating system support for extended trusted path in TPM-capable environments[J].Journal of Natural Sciences,2006,11(6):1493 -1497.

        [2]張宏建,蒙建波.自動檢測技術(shù)與裝置[M].北京:化學工業(yè)出版社,2004.

        [3]韋文詳,劉曉莉,張桂玉.一種嵌入式遠程配變監(jiān)控終端的研究與設(shè)計[J].自動化儀表,2007,28(3):13 -16.

        [4]陳新,劉慧威,趙彥平,等.單片機程序遠程升級的研究與實現(xiàn)[J].電子質(zhì)量,2011(12):53 -56,78.

        [5]田日才,王國鵬,梁學東.ATMEGA128單片機的軟件遠程升級[J].電子技術(shù)應(yīng)用,2003(11):23-25.

        [6]李衛(wèi)紅,張凌云,陳天喜,等.基于IAP程序遠程更新設(shè)計在車載乘客信息顯示中的應(yīng)用[J].機車電傳動,2012(2):79-81.

        [7]尹恒,嚴華.一種針對嵌入式遠程升級安全的存儲解決方案[J].計算機應(yīng)用,2011,31(4):942 -944,998.

        [8]孫鋼,朱忠常,景振興.煤礦安全監(jiān)控分站遠程升級方案[J].工礦自動化,2012(3):58 -60.

        [9]楊晶,何鵬舉,朱升林,等.具有遠程升級功能的網(wǎng)絡(luò)化智能溫控器[J].測控技術(shù),2012,31(11):6-10.

        猜你喜歡
        用戶程序系統(tǒng)升級存儲器
        靜態(tài)隨機存儲器在軌自檢算法
        變速箱控制系統(tǒng)Bootloader設(shè)計與實現(xiàn)
        嵌入式設(shè)備遠程升級方案設(shè)計
        甘肅省高速公路通信系統(tǒng)升級改造解決方案
        高速公路監(jiān)控系統(tǒng)升級探究
        “一張網(wǎng)”收費系統(tǒng)升級改造項目探析
        存儲器——安格爾(墨西哥)▲
        C8051F410單片機BootLoader的實現(xiàn)
        基于Nand Flash的高速存儲器結(jié)構(gòu)設(shè)計
        觸摸屏項目移植在自動化系統(tǒng)升級中的應(yīng)用
        国产哟交泬泬视频在线播放| 成人乱码一区二区三区av| 国产精品熟女视频一区二区 | 麻豆夫妻在线视频观看| 东北女人一级内射黄片| 国产白袜脚足j棉袜在线观看| 欧美日本日韩aⅴ在线视频| 91久国产在线观看| 国产精品人妻熟女男人的天堂| 九色综合九色综合色鬼| 亚洲av第一成肉网| 激情综合五月天开心久久| 熟妇人妻精品一区二区视频免费的 | 包皮上有一点一点白色的| 亚洲av无码xxx麻豆艾秋| 亚洲熟女网站| 日本高清无卡一区二区三区| 图片小说视频一区二区| 日本公妇在线观看中文版| 国产高清国内精品福利99久久| av一区二区三区有码| 天天做天天摸天天爽天天爱| 日日碰狠狠丁香久燥| 亚洲欧美国产成人综合不卡| 玖玖资源站亚洲最大的网站| 成年女人黄小视频| 香蕉视频一级| 激情视频在线播放一区二区三区| 国产精品日日做人人爱| 丰满人妻在公车被猛烈进入电影| 国产黑色丝袜在线观看视频| 中文字幕中文字幕777| 国产综合在线观看| 久久青草伊人精品| 日本一曲二曲三曲在线| 亚洲成av人综合在线观看| 亚洲中文字幕无码mv| 国产伦码精品一区二区| 中文字幕一区在线直播| 性色av闺蜜一区二区三区| 亚洲色偷拍一区二区三区|