国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于GPRS與IAP技術(shù)的監(jiān)控系統(tǒng)遠(yuǎn)程升級軟件設(shè)計

2016-09-15 07:02李富民周風(fēng)余姜志飛
關(guān)鍵詞:字節(jié)應(yīng)用程序遠(yuǎn)程

李富民,周風(fēng)余,姜志飛

(山東大學(xué) 控制科學(xué)與工程學(xué)院,濟(jì)南 250061)

?

基于GPRS與IAP技術(shù)的監(jiān)控系統(tǒng)遠(yuǎn)程升級軟件設(shè)計

李富民,周風(fēng)余,姜志飛

(山東大學(xué) 控制科學(xué)與工程學(xué)院,濟(jì)南 250061)

基于GPRS無線網(wǎng)絡(luò)通信技術(shù)和IAP(In Application Programming)技術(shù),針對STM32L系列低功耗MCU,設(shè)計并實(shí)現(xiàn)了一種適用于遠(yuǎn)程監(jiān)控系統(tǒng)的無線遠(yuǎn)程程序升級軟件。大量實(shí)驗及應(yīng)用表明,該軟件能夠根據(jù)上位機(jī)的要求,對終端設(shè)備進(jìn)行快速準(zhǔn)確的程序更新,同時最大限度地保證了終端設(shè)備不間斷運(yùn)行,避免了傳統(tǒng)終端設(shè)備需要人到現(xiàn)場進(jìn)行升級程序的麻煩,有效降低了人工成本。

STM32L;IAP;無線網(wǎng)絡(luò);遠(yuǎn)程升級

引 言

由于人工監(jiān)測存在成本高、效率低、數(shù)據(jù)的實(shí)時性和準(zhǔn)確性較差等缺陷,基于無線網(wǎng)絡(luò)的遠(yuǎn)程監(jiān)控系統(tǒng)越來越廣泛地被應(yīng)用到城市燃?xì)廨斉涔芫€泄露監(jiān)測、遠(yuǎn)程電網(wǎng)質(zhì)量監(jiān)控等過程中[1]。并且行業(yè)對遠(yuǎn)程監(jiān)控終端系統(tǒng)的功能、性能及規(guī)模不斷提出更高的要求,需要系統(tǒng)能夠進(jìn)行及時的維護(hù)和升級。但是管線監(jiān)控終端系統(tǒng)分布范圍廣,并且大部分都安裝在地下管道中,惡劣的環(huán)境及條件給監(jiān)控終端系統(tǒng)維護(hù)和程序升級帶來極大的不便。針對上述問題,本文對基于STM32L151VCT6微控制器的嵌入式監(jiān)控終端遠(yuǎn)程在線升級軟件進(jìn)行了設(shè)計,大大提高了設(shè)備性能,降低了維護(hù)成本。

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

本文設(shè)計的遠(yuǎn)程監(jiān)控終端硬件系統(tǒng)整體結(jié)構(gòu)如圖1所示。系統(tǒng)控制核心選用的是ST公司的一款工業(yè)級微控制器STM32L151VCT6,它是基于Cortex-M3內(nèi)核的超低功耗32位MCU,擁有豐富的外設(shè)和增強(qiáng)的I/O功能,運(yùn)行頻率為32 MHz;具有256 KB FLASH和32 KB SRAM,內(nèi)部支持自編程,具有多種boot方式。另外,STM32L151VCT6能夠通過運(yùn)行在FLASH中的程序來對自身的FLASH進(jìn)行更新。這個功能使其能夠通過CAN、UART、USB、無線通信等接口將程序下載到自身的FLASH中[1]。

無線通信模塊采用了希姆通公司生產(chǎn)的一款GPRS和GPS二合一低功耗模塊SIM908,它與STM32L151VCT6通過串口進(jìn)行通信,其外圍電路包括SIM卡、GPRS天線、GPS天線。此外還包括電源模塊、以LCD12864為顯示器配以紅外遙控的人機(jī)交互模塊、用于存儲大量傳感器數(shù)據(jù)的外部存儲單元以及各種傳感器模塊。外部FLASH采用的是Winbond公司的W25Q64BVSIG芯片,此芯片可重復(fù)擦寫10萬次,數(shù)據(jù)保持超過20年。外部的EEPROM芯片采用I2C總線讀寫,這個芯片具有很高的可靠性和耐久力,可重復(fù)擦寫10萬次,數(shù)據(jù)可保留40年。在整個系統(tǒng)中,根據(jù)I2C總線、SPI總線及芯片的特點(diǎn),經(jīng)常需要擦除的且小數(shù)量的數(shù)據(jù)存儲在外部EEPROM中,一些較大的數(shù)據(jù)則存儲外部FLASH中。

圖1 系統(tǒng)結(jié)構(gòu)示意圖

2 遠(yuǎn)程升級軟件設(shè)計

STM32L系列微控制器是2010年3月份推出的,需要注意的是早前的一些IAR版本不支持STM32L系列的芯片[3],因此本系統(tǒng)的開發(fā)環(huán)境必須采用IAR Embedded Workbench 6.4及以后的版本。

2.1程序地址分配

圖2 IAP程序、應(yīng)用程序及應(yīng)用程序備份區(qū)域地址分配圖

IAP程序、應(yīng)用程序以及備份應(yīng)用程序在FLASH中的地址分配如圖2所示。STM32L151VCT6的FLASH共有256 KB,其起始地址為0x 8000 000。IAP升級程序約10 KB,將IAP升級程序從0x 8000 000開始存儲,存儲位置空間設(shè)為0x 8000 000~0x 8004 FFF,共20 KB。應(yīng)用程序從0x 8005 000開始存儲,存儲位置為0x 8005 000~0X 8022 7FF,共118 KB。應(yīng)用程序備份區(qū)域從0x 8022 800開始存儲,存儲位置為0x 8022 800~0x 803F FFF,共118 KB。然后將MCU的BOOT引腳接地,使程序從FLASH開始啟動。

此時應(yīng)用程序需要重新定位中斷向量表的位置,因為現(xiàn)在的應(yīng)用程序已經(jīng)與沒有IAP升級程序時的存儲位置不同,具體重定位方法有如下兩種。

方法一,在程序的開始位置調(diào)用重定位函數(shù),將應(yīng)用程序定位到指定的位置NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x5000)。

方法二,在IAR環(huán)境下,對程序空間按如下步驟進(jìn)行重定向操作:打開“Options”→“Linker”→“Config”,點(diǎn)擊“Edit”,在彈出的窗口中設(shè)置如圖3所示的地址空間[3]。

2.2IAP程序升級流程及主要函數(shù)

圖4為IAP遠(yuǎn)程程序升級流程圖。程序首先初始化時鐘與串口,然后判斷上位機(jī)是否有程序升級的要求,如果沒有,則程序會跳轉(zhuǎn)去執(zhí)行應(yīng)用程序的任務(wù)。如果有,則運(yùn)行升級程序。升級程序首先將舊應(yīng)用程序進(jìn)行備份,避免后續(xù)出現(xiàn)因升級程序錯誤導(dǎo)致的系統(tǒng)癱瘓;然后從與GPRS連接的串口讀取數(shù)據(jù)并校驗,由于內(nèi)部SDRAM有限,因此升級程序是邊接收數(shù)據(jù)邊寫入相應(yīng)的FLASH區(qū)域。在升級過程中,如果出現(xiàn)某一包數(shù)據(jù)接收錯誤,終端會請求上位機(jī)重發(fā)。當(dāng)某一包數(shù)據(jù)連續(xù)出現(xiàn)錯誤次數(shù)達(dá)到5次或者升級程序數(shù)據(jù)大于FLASH容量時,程序會認(rèn)為升級失敗,直接讀取備份區(qū)域的原有應(yīng)用程序進(jìn)行執(zhí)行,避免了終端因為升級失敗而癱瘓。

IAP升級程序涉及的主要函數(shù)及相應(yīng)的功能說明如下[4]:

① main函數(shù):用于初始化UART串口、時鐘等。若此時有升級程序的請求,利用IAP引導(dǎo)升級程序;若沒有升級程序的請求,則跳轉(zhuǎn)到應(yīng)用程序部分運(yùn)行應(yīng)用程序。

② voidFLASH_Unlock(void):解除FLASH擦寫鎖定碼,為后續(xù)FLASH擦除寫入做準(zhǔn)備[5]。

③ FLASH_Status FLASH_ErasePage(uint32_t Page_Address):擦除將要寫入數(shù)據(jù)的FLASH頁。

④ void FLASH_Lock(void):FLASH擦寫鎖定,保護(hù)數(shù)據(jù)。

⑤ FLASH_StatusFLASH_ProgramWord(uint32_t Address, uint32_t Data):向特定的FLASH地址寫入一個字。

⑥ void NVIC_SystemReset(void):軟件復(fù)位函數(shù),在升級完程序以后,通過此函數(shù)進(jìn)行復(fù)位并執(zhí)行應(yīng)用程序。

圖4 IAP升級程序流程圖

2.3通信協(xié)議設(shè)計

上位機(jī)向遠(yuǎn)程監(jiān)控終端發(fā)送的數(shù)據(jù)結(jié)構(gòu)如下所示:

包頭總包數(shù)當(dāng)前包數(shù)命令字?jǐn)?shù)據(jù)段CRC校驗包尾

設(shè)計的通信包數(shù)據(jù)結(jié)構(gòu)如表1所列,每一包數(shù)據(jù)為1041個字節(jié),其中包頭2字節(jié),包尾2字節(jié),CRC校驗值4字節(jié),總包數(shù)和當(dāng)前包數(shù)各4個字節(jié),數(shù)據(jù)段為1024字節(jié),不夠1024字節(jié)的要在數(shù)據(jù)段補(bǔ)齊。

表1 通信包的數(shù)據(jù)結(jié)構(gòu)

遠(yuǎn)程監(jiān)控終端向上位機(jī)發(fā)送的應(yīng)答數(shù)據(jù)包結(jié)構(gòu)如下所示:

包頭當(dāng)前包數(shù)是否正確接收標(biāo)志CRC校驗包尾

其中包頭、當(dāng)前包數(shù)、CRC校驗、包尾的具體形式與表1相同。是否正確接收標(biāo)志:0表示接收失敗,1表示接收成功。

2.4系統(tǒng)應(yīng)用程序設(shè)計

應(yīng)用程序的起始地址為0x 8005 000,共118 KB存儲空間。應(yīng)用程序有兩個主要任務(wù):一是進(jìn)行日常的工作任務(wù);二是時刻檢測上位機(jī)是否有升級程序的要求。當(dāng)收到上位機(jī)的升級要求后,應(yīng)用程序首先進(jìn)行軟件復(fù)位,這樣程序重新從0x 8000 000處開始執(zhí)行IAP升級程序。

由于遠(yuǎn)程監(jiān)控終端應(yīng)用程序執(zhí)行的任務(wù)可能比較復(fù)雜,涉及很多重要數(shù)據(jù)和參數(shù),并且這些數(shù)據(jù)和參數(shù)在升級后的程序運(yùn)行過程中仍要繼續(xù)使用,因此在程序升級前要將這些重要數(shù)據(jù)和參數(shù)分別存放到外部FLASH和EEPROM中[6],以保證程序更新后系統(tǒng)仍能正常運(yùn)行。應(yīng)用程序設(shè)計中還必須要注意,由于系統(tǒng)采用錯誤重傳機(jī)制,數(shù)據(jù)塊越大,出現(xiàn)錯誤的機(jī)率就越大。根據(jù)實(shí)際應(yīng)用經(jīng)驗,建議采用小數(shù)據(jù)塊傳輸,不僅可以降低誤碼率,而且還可以提供傳輸效率[1]。

3 實(shí)驗結(jié)果

為了保證本文設(shè)計的遠(yuǎn)程升級軟件的準(zhǔn)確、可靠,進(jìn)行了大量的測試,圖5為上位機(jī)向終端發(fā)送升級程序數(shù)據(jù)的過程。

圖5 上位機(jī)向終端發(fā)送升級程序數(shù)據(jù)界面

表2為測試結(jié)果。從表中可以看出,在升級94 KB代碼容量數(shù)據(jù)時,出現(xiàn)了一次升級失敗。這是因為在升級過程中,網(wǎng)絡(luò)信號較差且升級的代碼容量較大造成的。除去這一次升級失敗,其他測試都是成功的,這也證明了本升級程序系統(tǒng)的準(zhǔn)確性、可靠性。

表2 測試結(jié)果

結(jié) 語

通過大量的實(shí)驗測試及長時間的實(shí)際應(yīng)用表明,本文運(yùn)用IAP技術(shù)和芯片內(nèi)部FLASH讀寫技術(shù),設(shè)計的遠(yuǎn)程升級軟件具有較高的成功率和較快的升級速度,對相關(guān)類似系統(tǒng)設(shè)計具有一定的參考價值。

[1] 楊照巖.ARM和GPRS相配合的軟件無線升級系統(tǒng)[J].Microcontrollers & Embedded Systems,2010(7):72-74.

[2] ST.STM32L和STM8L系列超低功耗EnergyLite 32位和8位微控制器[EB/OL].[2016-03].http://www.docin.com/p-232975083.html.

[3] ARM.IAR Embedded Workbench IDE User Guide,2004.

[4] 蔣俊,藍(lán)敏.基于IAP和網(wǎng)口的ARM Cortex-M3固件升級技術(shù)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2014,14(12):11-13.

[5] 姜曉梅,李祥和,任朝榮,等.基于ARM的IAP在線及遠(yuǎn)程升級技術(shù)[J].計算機(jī)應(yīng)用,2008,28(2):519-521.

[6] Chen M,Zhang Y,Hu L,et al.Cloud-based wireless network:Virtualized,reconfigurable,smart wireless network to enable 5G technologies[J].Mobile Networks and Applications,2015,20(6):704-712.

Remote Upgrade Software for Monitor System Based on GPRS and IAP

Li Fumin,Zhou Fengyu,Jiang Zhifei

(School of Control Science and Engineering,Shandong University,Jinan 250061,China)

Based on GPRS wireless network communication technology and IAP (In Application Programming) technology,a kind of wireless remote upgrade software for remote monitoring and control system is designed,which uses the low-power MCU of STM32L series.A large number of experiments and applications show that the remote upgrade software can not only have an accurate and quick application update according to the requirements of the upper computer,but also guarantee the continuous operation of terminal equipments,which avoids the traditional upgrade by the manual work on the site,and effectively reduces the human cost.

STM32L;IAP;wireless network;remote upgrade

TP36

A

(責(zé)任編輯:薛士然2016-03-14)

猜你喜歡
字節(jié)應(yīng)用程序遠(yuǎn)程
讓人膽寒的“遠(yuǎn)程殺手”:彈道導(dǎo)彈
遠(yuǎn)程工作狂綜合征
No.8 字節(jié)跳動將推出獨(dú)立出口電商APP
刪除Win10中自帶的應(yīng)用程序
No.10 “字節(jié)跳動手機(jī)”要來了?
谷歌禁止加密貨幣應(yīng)用程序
遠(yuǎn)程詐騙
簡談MC7字節(jié)碼
人類進(jìn)入“澤它時代”
三星電子將開設(shè)應(yīng)用程序下載商店