亚洲综合色丁香婷婷六月图片,亚洲欧洲av一区二区久久,亚洲精品欧美综合四区,亚洲熟妇少妇任你躁在线观看无码,亚洲精品中文字幕乱码

歡迎進(jìn)入儀商網(wǎng)!

基于GPRS通信的MCU固件遠(yuǎn)程更新技術(shù)的實(shí)現(xiàn)

 在以物聯(lián)網(wǎng)、大數(shù)據(jù)、云計(jì)算為代表的信息科技爆炸式發(fā)展的今天,嵌入式產(chǎn)品越來越豐富,并且版本的升級迭代速度非常快。如果需要對軟件代碼進(jìn)行升級,或者生產(chǎn)廠家想要對產(chǎn)品進(jìn)行修改,就必須到現(xiàn)場重新燒寫程序。這樣,從時(shí)間到成本都造成了很大的開銷,非常不靈活。因此遠(yuǎn)程更新MCU的固件就成為解決這一問題的有效手段。本文以STM32F103VET6 為平臺,使用GPRS通信方式和IAP 技術(shù)實(shí)現(xiàn)MCU固件的遠(yuǎn)程更新。該技術(shù)對于具備GPRS通信的嵌入式產(chǎn)品有很好的幫助,對3G或者4G的嵌入式產(chǎn)品也有借鑒的意義。

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

本系統(tǒng)的結(jié)構(gòu)如圖1所示。MCU使用芯片STM32F103VET6,該處理器是意法半導(dǎo)體(ST)公司發(fā)布的基于CortexM3內(nèi)核的增強(qiáng)型系列處理器,工作頻率最高達(dá)到72 MHz,帶有片內(nèi)RAM、片內(nèi)Flash和豐富的外設(shè)。GPRS模塊的型號是G510。MCU通過串口,使用AT命令與G510模塊進(jìn)行數(shù)據(jù)交互。USB轉(zhuǎn)串口模塊作為PCMCU的數(shù)據(jù)交互的有效手段,通過打印數(shù)據(jù)信息就可以知道MCU的工作狀態(tài)。電源模塊產(chǎn)生兩種電壓,包括為MCUUSB模塊供電的3.3 V電壓和為GPRS模塊供電的4.0 V電壓。


2MCU的地址

STM32F103VET6的內(nèi)核是CortexM3,它的存儲(chǔ)系統(tǒng)采用統(tǒng)一尋址方式,程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器、寄存器和輸入輸出接口被組織在同一個(gè)4 GB的線性地址空間內(nèi)。存儲(chǔ)空間被分成8個(gè)主要塊,每個(gè)塊為512 MB。以STM32F103VET6處理器為例, 圖2為代碼塊和片內(nèi)SRAM的地址映射圖。STM32F103VET6512 KBFlash存儲(chǔ)空間,地址從00800000000807ffff;64 KBSRAM,地址從02000000002000ffff。


通過設(shè)置BOOT1:0]引腳值為00,使STM32F103 VET6上電后從Flash008000000地址處開始執(zhí)行代碼。

3IAP技術(shù)的實(shí)現(xiàn)

3.1IAP技術(shù)原理

在應(yīng)用編程(IAP)技術(shù)是指MCU在執(zhí)行用戶程序的過程中對片內(nèi)Flash 的部分區(qū)域進(jìn)行擦寫,把真正的用戶二進(jìn)制代碼燒寫到Flash中。在這里,IAP的程序要實(shí)現(xiàn)兩個(gè)功能: 一是通過GPRS通信接收已經(jīng)編譯鏈接好的二進(jìn)制的應(yīng)用代碼到內(nèi)存;二是將應(yīng)用代碼燒寫到片內(nèi)Flash 中。系統(tǒng)復(fù)位后,MCU首先執(zhí)行IAPGPRS通信程序,此段代碼必須使用硬件燒寫器,比如Jlink燒寫到MCU中;等待MCU接收并燒寫好真正的功能代碼后,跳轉(zhuǎn)至此段代碼開始執(zhí)行用戶程序。這兩段代碼都是燒寫在片內(nèi)Flash中,必須保證兩段代碼的存放區(qū)域不能重疊,否則會(huì)出現(xiàn)程序覆蓋,將無法正確執(zhí)行用戶程序。通過設(shè)置標(biāo)志位,并且存儲(chǔ)到Flash中,來判斷上電后執(zhí)行的是IAP程序還是用戶程序。

3.2燒寫文件格式

IAP驅(qū)動(dòng)和GPRS通信程序是用MDK編譯器生成的HEX文件,通過JTAG燒寫到STM32F103VET6Flash中,起始地址是008000000。由于MDK產(chǎn)生的是HEX文件,因此需要使用轉(zhuǎn)換工具將用于通過GPRS通信方式從服務(wù)器端下發(fā)到終端的固件代碼由HEX文件格式轉(zhuǎn)換成BIN文件格式。終端將新的固件代碼寫入到Flash中,起始地址設(shè)為008020000。

3.3軟件實(shí)現(xiàn)

由于要更新的固件的存儲(chǔ)地址是008020000,因此需要調(diào)整新固件的中斷向量表的地址:NVIC_SetVectorTable(NVIC_VectTab_FLASH,008020000)。使用起始地址為00807f800最后一頁Flash存儲(chǔ)字符型變量Update_Flag,該變量的值保存了固件更新的狀態(tài)。當(dāng)Update_Flag等于0時(shí),代表無應(yīng)用程序,MCU執(zhí)行IAP驅(qū)動(dòng)和GPRS通信程序;當(dāng)Update_Flag等于1時(shí),代表應(yīng)用程序是已經(jīng)寫入Flash中的有效代碼,則MCU執(zhí)行新的固件程序。系統(tǒng)的軟件流程如圖3所示。



連接的流程圖STM32F103VET6GPRS模塊的數(shù)據(jù)交互通過串口來完成,終端與服務(wù)器的連接建立的過程如圖4所示。建立連接后,MCU可以發(fā)送報(bào)文A1向服務(wù)器請求新固件。服務(wù)器收到此報(bào)文后,把要發(fā)送的BIN格式的新固件按照表1所示的報(bào)文格式發(fā)送至終端。幀長度是包含從類型到校驗(yàn)位的總長度。這里考慮到G510傳輸每幀數(shù)據(jù)的最長字節(jié)數(shù)和Flash寫操作的方便性,設(shè)定數(shù)據(jù)區(qū)的最大長度為1024 B。服務(wù)器端打開BIN格式的文件,并且按照表1所示的幀格式把數(shù)據(jù)裝載成幀A2,然后發(fā)送。用幀計(jì)數(shù)來避免因?yàn)榫W(wǎng)絡(luò)擁堵等問題造成的數(shù)據(jù)傳輸錯(cuò)誤。采用應(yīng)答式的交互方式,終端每次收到一條固件幀,就以正確幀R1或者錯(cuò)誤幀R2回應(yīng)。R1R2中包含幀計(jì)數(shù)和服務(wù)器端設(shè)置延時(shí),發(fā)送完一幀數(shù)據(jù)后,延時(shí)5 s,在這段時(shí)間內(nèi),沒有收到回應(yīng)的數(shù)據(jù)則重發(fā)。服務(wù)器發(fā)送完最后一幀固件數(shù)據(jù),并且收到正確的回答后,再發(fā)送一幀結(jié)束數(shù)據(jù)A3,使終端知道固件已經(jīng)全部發(fā)送完畢。具體的服務(wù)器和終端的數(shù)據(jù)傳輸?shù)牧鞒虉D如圖5所示。


先使用JTAGIAP驅(qū)動(dòng)和GPRS通信的代碼寫入到Flash的起始地址008000000處,然后復(fù)位終端,等待終端與服務(wù)器建立好連接。服務(wù)器使用圖6所示的客戶端界面形成規(guī)范的報(bào)文,然后發(fā)送到終端,實(shí)現(xiàn)終端固件的遠(yuǎn)程更新。



4結(jié)論

通過實(shí)驗(yàn),用戶代碼被正常執(zhí)行,說明遠(yuǎn)程更新已經(jīng)正常實(shí)現(xiàn)。因此,IAP 技術(shù)為遠(yuǎn)程更新用戶代碼提供了極大的方便,不僅能夠提高產(chǎn)品性能,增強(qiáng)產(chǎn)品的功能,而且大大降低了企業(yè)產(chǎn)品運(yùn)營和維護(hù)的成本,是一門實(shí)用性很強(qiáng)的技術(shù),在將來的3G4G等嵌入式產(chǎn)品中將會(huì)被廣泛地使用。

聲明: 聲明:凡本網(wǎng)注明"來源:儀商網(wǎng)"的所有作品,版權(quán)均屬于儀商網(wǎng),未經(jīng)本網(wǎng)授權(quán)不得轉(zhuǎn)載、摘編使用。
經(jīng)本網(wǎng)授權(quán)使用,并注明"來源:儀商網(wǎng)"。違反上述聲明者,本網(wǎng)將追究其相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它來源的作品,歸原版權(quán)所有人所有。目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。如有作品的內(nèi)容、版權(quán)以及其它問題的,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
本網(wǎng)轉(zhuǎn)載自其它媒體或授權(quán)刊載,如有作品內(nèi)容、版權(quán)以及其它問題的,請聯(lián)系我們。相關(guān)合作、投稿、轉(zhuǎn)載授權(quán)等事宜,請聯(lián)系本網(wǎng)。
QQ:2268148259、3050252122。