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