999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2016-09-15 07:02:57李富民周風(fēng)余姜志飛
關(guān)鍵詞:程序系統(tǒng)

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

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

?

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

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

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

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

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

引 言

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

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

本文設(shè)計(jì)的遠(yuǎn)程監(jiān)控終端硬件系統(tǒng)整體結(jié)構(gòu)如圖1所示。系統(tǒng)控制核心選用的是ST公司的一款工業(yè)級(jí)微控制器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能夠通過(guò)運(yùn)行在FLASH中的程序來(lái)對(duì)自身的FLASH進(jìn)行更新。這個(gè)功能使其能夠通過(guò)CAN、UART、USB、無(wú)線通信等接口將程序下載到自身的FLASH中[1]。

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

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

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

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升級(jí)程序約10 KB,將IAP升級(jí)程序從0x 8000 000開始存儲(chǔ),存儲(chǔ)位置空間設(shè)為0x 8000 000~0x 8004 FFF,共20 KB。應(yīng)用程序從0x 8005 000開始存儲(chǔ),存儲(chǔ)位置為0x 8005 000~0X 8022 7FF,共118 KB。應(yīng)用程序備份區(qū)域從0x 8022 800開始存儲(chǔ),存儲(chǔ)位置為0x 8022 800~0x 803F FFF,共118 KB。然后將MCU的BOOT引腳接地,使程序從FLASH開始啟動(dòng)。

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

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

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

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

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

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

① main函數(shù):用于初始化UART串口、時(shí)鐘等。若此時(shí)有升級(jí)程序的請(qǐng)求,利用IAP引導(dǎo)升級(jí)程序;若沒(méi)有升級(jí)程序的請(qǐng)求,則跳轉(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頁(yè)。

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

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

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

圖4 IAP升級(jí)程序流程圖

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

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

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

設(shè)計(jì)的通信包數(shù)據(jù)結(jié)構(gòu)如表1所列,每一包數(shù)據(jù)為1041個(gè)字節(jié),其中包頭2字節(jié),包尾2字節(jié),CRC校驗(yàn)值4字節(jié),總包數(shù)和當(dāng)前包數(shù)各4個(gè)字節(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校驗(yàn)包尾

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

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

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

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

3 實(shí)驗(yàn)結(jié)果

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

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

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

表2 測(cè)試結(jié)果

結(jié) 語(yǔ)

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

[1] 楊照巖.ARM和GPRS相配合的軟件無(wú)線升級(jí)系統(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固件升級(jí)技術(shù)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2014,14(12):11-13.

[5] 姜曉梅,李祥和,任朝榮,等.基于ARM的IAP在線及遠(yuǎn)程升級(jí)技術(shù)[J].計(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)

猜你喜歡
程序系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無(wú)人機(jī)系統(tǒng)
ZC系列無(wú)人機(jī)遙感系統(tǒng)
基于PowerPC+FPGA顯示系統(tǒng)
試論我國(guó)未決羈押程序的立法完善
半沸制皂系統(tǒng)(下)
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
主站蜘蛛池模板: 91亚瑟视频| 四虎国产精品永久在线网址| 国产视频自拍一区| 久久国产精品夜色| 国产微拍精品| 欧洲在线免费视频| 一区二区午夜| 国产精品精品视频| 54pao国产成人免费视频| 亚洲福利片无码最新在线播放| 国产一级裸网站| 看你懂的巨臀中文字幕一区二区| 久久综合亚洲色一区二区三区| 热久久综合这里只有精品电影| 国产精品短篇二区| 国产一级裸网站| 亚洲精品在线观看91| 亚洲一级色| 久久福利片| 99视频在线免费观看| 四虎国产成人免费观看| 亚洲中文在线看视频一区| 亚洲成人福利网站| 日日摸夜夜爽无码| 午夜国产不卡在线观看视频| 精品人妻无码中字系列| 国产精品久线在线观看| 伊人久综合| 国产成人h在线观看网站站| 女人18一级毛片免费观看 | 国产乱人伦偷精品视频AAA| 欧美国产综合色视频| 99精品福利视频| 欧美在线视频不卡第一页| 亚洲男人的天堂在线观看| 中文纯内无码H| 国产青榴视频在线观看网站| 亚洲精品国产首次亮相| 国产大片黄在线观看| 在线观看国产精品一区| 啪啪啪亚洲无码| 亚洲免费福利视频| 亚洲精选高清无码| 亚洲天堂精品在线观看| 久久夜色精品| 国产成年女人特黄特色大片免费| 亚洲AⅤ永久无码精品毛片| 九九九精品成人免费视频7| 国产天天射| 国国产a国产片免费麻豆| 亚洲第一成网站| 精久久久久无码区中文字幕| 少妇精品在线| 亚洲成a人在线观看| 亚洲精品另类| 午夜福利网址| 国产精品亚洲va在线观看| 久久这里只有精品23| 亚洲国产综合精品一区| 亚洲精品无码av中文字幕| 成人午夜视频在线| 欧美h在线观看| 波多野结衣二区| 丁香综合在线| 国产www网站| 欧美一区二区自偷自拍视频| 一级爱做片免费观看久久| 精品亚洲麻豆1区2区3区| a亚洲天堂| 青青青伊人色综合久久| 欧美19综合中文字幕| 亚洲欧美精品日韩欧美| 亚洲国产成人无码AV在线影院L| 国产精品视频999| 国产精品视频观看裸模| 亚洲高清国产拍精品26u| 欧美激情综合一区二区| 欧美午夜网站| 蜜桃臀无码内射一区二区三区| 香蕉网久久| 久久免费精品琪琪| 午夜在线不卡|