前言:想要寫出一篇引人入勝的文章?我們特意為您整理了移動(dòng)網(wǎng)絡(luò)多功能航標(biāo)采集系統(tǒng)更新實(shí)現(xiàn)范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:隨著多功能航標(biāo)應(yīng)用的快速發(fā)展,多功能航標(biāo)采集系統(tǒng)在多功能航標(biāo)使用中的作用日益增大。對多功能航標(biāo)采集系統(tǒng)遠(yuǎn)程更新的功能需求就顯得尤為重要。本文根據(jù)移動(dòng)網(wǎng)絡(luò)的特點(diǎn),提出一種簡單、可靠的遠(yuǎn)程更新多功能航標(biāo)采集系統(tǒng)的方法。
關(guān)鍵詞:航標(biāo);多功能航標(biāo);遠(yuǎn)程更新;移動(dòng)網(wǎng)絡(luò)
1.引言
港域環(huán)境監(jiān)測系統(tǒng)是一個(gè)建于港口,用于監(jiān)測港域海洋環(huán)境素(如水溫、潮流、流向、水位、風(fēng)力、風(fēng)向等),并為船舶進(jìn)出港、離靠泊提供安全保障的監(jiān)測服務(wù)網(wǎng)絡(luò)。其核心是及時(shí)將海洋環(huán)境要素觀測值予以傳輸和顯示。系統(tǒng)的使用更好地輔助海事管理人員進(jìn)行通航環(huán)境的監(jiān)測、日常船舶通行的管理以及水上交通安全事故的應(yīng)急處置工作,進(jìn)一步提升天津海事局船舶交通管理能力,并進(jìn)一步促進(jìn)提升天津海事局其海事業(yè)務(wù)信息化水平。多功能航標(biāo)作為觀測設(shè)備載體,航標(biāo)數(shù)據(jù)采集系統(tǒng)更是多功能航標(biāo)的核心。其通信手段可以采用移動(dòng)網(wǎng)絡(luò)(移動(dòng)、電信、聯(lián)通三大運(yùn)營商)、北斗衛(wèi)星導(dǎo)航系統(tǒng)(短報(bào)文功能)、海事衛(wèi)星、甚高頻VHF(Veryhighfrequency)等。本文介紹一種基于移動(dòng)網(wǎng)絡(luò)通信的多功能航標(biāo)采集系統(tǒng)遠(yuǎn)程更新的實(shí)現(xiàn)。近年來隨著移動(dòng)網(wǎng)絡(luò)的大力建設(shè),擴(kuò)大了近海移動(dòng)網(wǎng)絡(luò)覆蓋區(qū)域,也為多功能航標(biāo)的大規(guī)模布放提供了通信支撐,加速推進(jìn)了多功能航標(biāo)的發(fā)展。移動(dòng)網(wǎng)絡(luò)作為多功能航標(biāo)數(shù)據(jù)交換的媒介已廣泛使用。依托移動(dòng)網(wǎng)絡(luò)對多功能航標(biāo)采集系統(tǒng)功能更新升級也成為一種手段,使用無線方式升級可以節(jié)省大量的人力、物力和財(cái)力。由于移動(dòng)網(wǎng)絡(luò)信號作用距離有限,并且受天氣、風(fēng)向等環(huán)境因素影響嚴(yán)重,大多數(shù)海上多功能航標(biāo)信號不夠穩(wěn)定,通信丟包情況嚴(yán)重,所以需要借助應(yīng)用內(nèi)編程、分包傳輸與中斷續(xù)傳等方式保證多功能航標(biāo)采集系統(tǒng)遠(yuǎn)程更新的可靠性和成功率。
2.關(guān)鍵技術(shù)
2.1應(yīng)用內(nèi)編程(IAP)
應(yīng)用內(nèi)編程(IAPInApplicationProgramming)即應(yīng)用內(nèi)編程,是用戶自己的程序在運(yùn)行過程中對UserFlash的部分區(qū)域進(jìn)行燒寫,目的是為了在產(chǎn)品后可以方便地通過預(yù)留的通信口對產(chǎn)品中的固件程序進(jìn)行更新升級。通常在實(shí)現(xiàn)IAP功能時(shí),即用戶程序在運(yùn)行過程中進(jìn)行自身程序的更新操作,需要在設(shè)計(jì)程序時(shí)編寫兩個(gè)部分的代碼,第一個(gè)部分的程序不執(zhí)行正常的功能操作,只是通過某種通信管道(如USB、USART)接收程序或數(shù)據(jù),用來執(zhí)行對第二部分代碼的更新操作,第二個(gè)部分的代碼才是真正的功能代碼。這兩部分代碼都同時(shí)燒錄在UserFlash中,當(dāng)芯片上電后,第一部分代碼開始運(yùn)行,檢查是否需要對第二部分代碼進(jìn)行更新,如果需要更新就直接運(yùn)行第二部分代碼,如果需要更新,先執(zhí)行更新操作,等更新完成后執(zhí)行第二部分代碼。本文的IAP功能的實(shí)現(xiàn),使用基于ArmCoretex-M3架構(gòu)的STM32F10x系列芯片。STM32復(fù)位后,從0x08000004地址取出復(fù)位中斷向量的地址,并跳轉(zhuǎn)到復(fù)位中斷服務(wù)程序,在運(yùn)行完復(fù)位中斷服務(wù)程序之后跳轉(zhuǎn)到IAP的main函數(shù)。在執(zhí)行完IAP以后跳轉(zhuǎn)至新寫入程序的復(fù)位向量表,取出新程序的復(fù)位中斷向量的地址,并跳轉(zhuǎn)執(zhí)行新程序的復(fù)位中斷服務(wù)程序,隨后跳轉(zhuǎn)至新程序的main函數(shù)。
2.2分包傳輸與中斷續(xù)傳
盡管在陸地上移動(dòng)網(wǎng)絡(luò)覆蓋范圍很廣,但在近海很多區(qū)域移動(dòng)網(wǎng)絡(luò)信號強(qiáng)度有限,尤其是部分區(qū)域信號非常弱并且不穩(wěn)定,網(wǎng)絡(luò)連接時(shí)斷時(shí)續(xù),這對遠(yuǎn)程更新的實(shí)現(xiàn)提出了不小的挑戰(zhàn)。本文提出分包傳輸和記錄中斷續(xù)傳的方式,用來提高傳輸?shù)姆€(wěn)定性和可靠性。
3.實(shí)現(xiàn)方式
3.1更新流程
整個(gè)數(shù)據(jù)傳輸過程為應(yīng)答-響應(yīng)模式,啟動(dòng)更新升級模式后,根據(jù)本地保存的已更新的數(shù)據(jù)包,請求遠(yuǎn)程服務(wù)器未更新的數(shù)據(jù)包,然后進(jìn)行校驗(yàn),如果校驗(yàn)成功就保存數(shù)據(jù)包,直到所有數(shù)據(jù)包更新完畢。其中,每次應(yīng)答都需要有超時(shí)控制,流程見下圖。
3.2數(shù)據(jù)幀格式定義
所有傳輸?shù)挠行?shù)據(jù)均是數(shù)據(jù)幀中的載荷數(shù)據(jù),數(shù)據(jù)幀包括數(shù)據(jù)長度、CRC16校驗(yàn)碼、payload數(shù)據(jù)和幀分隔符四部分,具體內(nèi)容和所占字節(jié)見表1。請求更新的消息結(jié)構(gòu)和更新時(shí)的數(shù)據(jù)消息結(jié)構(gòu)兩類不同的數(shù)據(jù)類型根據(jù)消息類型來區(qū)分。見表2和表3。更新的數(shù)據(jù)包采用CRC64校驗(yàn),保證數(shù)據(jù)的可靠性。請求更新的消息結(jié)構(gòu)和更新時(shí)的數(shù)據(jù)消息結(jié)構(gòu)的消息頭格式見表4。
4.結(jié)語
本文的提出的一種基于移動(dòng)網(wǎng)絡(luò)多功能航標(biāo)采集系統(tǒng)遠(yuǎn)程更新的實(shí)現(xiàn)方案,在實(shí)際使用中的一次更新成功率很高,還未出現(xiàn)過多次更新不成功的情況。但有一種情形需考慮,因更新時(shí),每成功接收一包數(shù)據(jù),更新一次flash中的數(shù)據(jù),這個(gè)過程必須持續(xù)結(jié)束才可以。如果網(wǎng)絡(luò)信號長時(shí)間不穩(wěn)定,就會(huì)導(dǎo)致正常業(yè)務(wù)功能長時(shí)間無法工作。為解決此問題,可以考慮將flash中的用戶數(shù)據(jù)區(qū)域分為兩部分,一部分為更新下載的數(shù)據(jù)區(qū)域,另一部分為原來的用戶數(shù)據(jù)在區(qū)域,只有在全部下載完畢后,才跳轉(zhuǎn)到更新后的區(qū)域,保證如果網(wǎng)絡(luò)長時(shí)間不穩(wěn)定,可以切換回原先的業(yè)務(wù)流程,擇機(jī)再繼續(xù)更新,這樣不會(huì)長時(shí)間中斷正常的業(yè)務(wù)功能。雖然實(shí)際使用中還未遇見過此類極端的情況,但可以作為今后優(yōu)化完善的方向。
作者:張義欣 吳昊 黃加順 單位:天津海事局