本發(fā)明涉及計(jì)量儀表技術(shù)領(lǐng)域,尤其涉及一種物聯(lián)網(wǎng)計(jì)量儀表遠(yuǎn)程固件升級方法及計(jì)量儀表系統(tǒng)。
背景技術(shù):
計(jì)量儀表指專門用來測量水、氣、電、熱、油等的壓力、流量、溫度、電能、熱能的精密設(shè)備,如:水表、電表、燃?xì)獗?、熱能表等。裝在用戶家里的計(jì)量儀表,如果需要添加某些新的功能或者修復(fù)某些問題,就需要對計(jì)量儀表的微處理器進(jìn)行固件升級。現(xiàn)有計(jì)量儀表上傳采集數(shù)據(jù)和下載固件都使用同一個(gè)服務(wù)器,且下載固件都是在同一時(shí)間進(jìn)行的,給服務(wù)器帶來的壓力過大。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是克服現(xiàn)有物聯(lián)網(wǎng)計(jì)量儀表進(jìn)行遠(yuǎn)程固件升級給服務(wù)器帶來壓力過大的技術(shù)問題,提供了一種物聯(lián)網(wǎng)計(jì)量儀表遠(yuǎn)程固件升級方法及計(jì)量儀表系統(tǒng),其使用專門的固件服務(wù)器供計(jì)量儀表下載固件,安排計(jì)量儀表錯(cuò)峰下載固件,大大降低了服務(wù)器壓力。
為了解決上述問題,本發(fā)明采用以下技術(shù)方案予以實(shí)現(xiàn):
本發(fā)明的一種物聯(lián)網(wǎng)計(jì)量儀表遠(yuǎn)程固件升級方法,包括以下步驟:
計(jì)量儀表定期上傳采集數(shù)據(jù)到采集服務(wù)器;
當(dāng)采集服務(wù)器中有遠(yuǎn)程固件升級任務(wù)時(shí),采集服務(wù)器在計(jì)量儀表上傳采集數(shù)據(jù)時(shí)將固件服務(wù)器信息和計(jì)量儀表被分配的升級時(shí)間發(fā)送給計(jì)量儀表;
計(jì)量儀表在升級時(shí)間訪問固件服務(wù)器,從固件服務(wù)器下載需要升級的新固件,新固件下載完成后進(jìn)行固件升級。
在本技術(shù)方案中,采集服務(wù)器用于存儲(chǔ)計(jì)量儀表上傳的采集數(shù)據(jù),管理遠(yuǎn)程固件升級任務(wù)。固件服務(wù)器存儲(chǔ)固件,供計(jì)量儀表下載固件。固件服務(wù)器與采集服務(wù)器分離,減少采集服務(wù)器的壓力,確保采集服務(wù)器的正常運(yùn)行,不影響物聯(lián)網(wǎng)計(jì)量儀表的核心功能。
當(dāng)需要計(jì)量儀表升級固件時(shí),在固件服務(wù)器存儲(chǔ)用于升級的新固件,在采集服務(wù)器觸發(fā)一個(gè)遠(yuǎn)程固件升級任務(wù)。計(jì)量儀表有預(yù)設(shè)的采集數(shù)據(jù)上傳周期,當(dāng)?shù)竭_(dá)采集數(shù)據(jù)上傳時(shí)間時(shí),計(jì)量儀表的微處理器啟動(dòng)遠(yuǎn)程通信模塊,計(jì)量儀表通過遠(yuǎn)程通信模塊與采集服務(wù)器建立通信,上傳采集數(shù)據(jù),同時(shí),采集服務(wù)器將固件服務(wù)器信息和該計(jì)量儀表被分配的升級時(shí)間發(fā)送給計(jì)量儀表。
當(dāng)計(jì)量儀表的內(nèi)部時(shí)鐘到達(dá)升級時(shí)間時(shí),計(jì)量儀表根據(jù)采集服務(wù)器發(fā)送的固件服務(wù)器信息訪問固件服務(wù)器,從固件服務(wù)器下載需要升級的新固件。每臺(tái)表的升級時(shí)間由采集服務(wù)器自動(dòng)設(shè)置,這樣可以有效解決固件服務(wù)器的并發(fā)壓力問題。新固件下載完成后,計(jì)量儀表進(jìn)行固件升級。
如果計(jì)量儀表在下載固件過程中斷網(wǎng),固件服務(wù)器記錄計(jì)量儀表下載的斷點(diǎn)位置,計(jì)量儀表下次連接固件服務(wù)器時(shí)從斷點(diǎn)位置開始下載。
作為優(yōu)選,計(jì)量儀表上傳采集數(shù)據(jù)到采集服務(wù)器時(shí),還將自身信息上傳到采集服務(wù)器。計(jì)量儀表自身信息包括計(jì)量儀表的ID、狀態(tài)、位置等。
作為優(yōu)選,采集服務(wù)器根據(jù)每個(gè)計(jì)量儀表上傳采集數(shù)據(jù)的時(shí)間給每個(gè)計(jì)量儀表分配不同的升級時(shí)間。越早上傳采集數(shù)據(jù)的計(jì)量儀表分配到的升級時(shí)間越早,計(jì)量儀表錯(cuò)峰下載固件,避免給固件服務(wù)器造成太大負(fù)荷,有效解決固件服務(wù)器的并發(fā)壓力問題。
作為優(yōu)選,計(jì)量儀表從固件服務(wù)器下載的新固件存儲(chǔ)在計(jì)量儀表的固件存儲(chǔ)模塊中。
作為優(yōu)選,計(jì)量儀表從固件服務(wù)器下載新固件完成后,在固件存儲(chǔ)模塊設(shè)置待升級標(biāo)志。
作為優(yōu)選,所述計(jì)量儀表進(jìn)行固定升級包括以下步驟:判斷固件存儲(chǔ)模塊中是否有待升級標(biāo)志,如果有待升級標(biāo)志,則讀取并校驗(yàn)存儲(chǔ)在固件存儲(chǔ)模塊中的新固件,校驗(yàn)通過后把新固件寫入計(jì)量儀表的微處理器,接著讀取并校驗(yàn)存儲(chǔ)在微處理器中新固件,校驗(yàn)通過后微處理器運(yùn)行新固件,同時(shí)清除固件存儲(chǔ)模塊中的待升級標(biāo)志。
作為優(yōu)選,計(jì)量儀表進(jìn)行固件升級成功后,發(fā)送固件升級成功信息到采集服務(wù)器。
本發(fā)明的一種物聯(lián)網(wǎng)計(jì)量儀表系統(tǒng),使用上述的一種物聯(lián)網(wǎng)計(jì)量儀表遠(yuǎn)程固件升級方法,包括計(jì)量儀表、采集服務(wù)器和固件服務(wù)器,所述計(jì)量儀表能夠與采集服務(wù)器、固件服務(wù)器遠(yuǎn)程通信。
作為優(yōu)選,所述計(jì)量儀表包括計(jì)量儀表基表和控制器,所述控制器包括微處理器、電源模塊、遠(yuǎn)程通信模塊、存儲(chǔ)器模塊和采集計(jì)量儀表基表數(shù)據(jù)的數(shù)據(jù)采集模塊,存儲(chǔ)器模塊包括數(shù)據(jù)存儲(chǔ)模塊和固件存儲(chǔ)模塊,所述微處理器分別與電源模塊、遠(yuǎn)程通信模塊、存儲(chǔ)器模塊和數(shù)據(jù)采集模塊電連接。
計(jì)量儀表基表為水表、電表、燃?xì)獗砘驘崮鼙淼幕?。電源模塊給控制器供電。遠(yuǎn)程通信模塊是指可通過第三方移動(dòng)運(yùn)營商的設(shè)備訪問互聯(lián)網(wǎng)的模塊,包括但不限于GPRS模塊、CDMA模塊、NB-IOT模塊、4G模塊。數(shù)據(jù)采集模塊可采集計(jì)量儀表基表的計(jì)量信息,數(shù)據(jù)采集模塊包括但不限于干簧管、霍爾傳感器、光電直讀模塊等。
作為優(yōu)選,所述控制器還包括人機(jī)交互模塊,所述人機(jī)交互模塊與微處理器電連接,所述人機(jī)交互模塊包括顯示模塊或輸入模塊。人機(jī)交互模塊可提示用戶計(jì)量儀表升級的狀態(tài),包括但不限于LED、液晶、鍵盤。
本發(fā)明的有益效果是:(1)采集服務(wù)器管理遠(yuǎn)程固件升級,無需人為干預(yù)。(2)固件服務(wù)器與采集服務(wù)器分離,固件服務(wù)器專門供計(jì)量儀表下載固件,減少了采集服務(wù)器的壓力。(3)錯(cuò)峰下載固件,減少了固件服務(wù)器的壓力。
附圖說明
圖1是本發(fā)明的遠(yuǎn)程固件升級方法的流程圖;
圖2是本發(fā)明的計(jì)量儀表升級固件的流程圖;
圖3是本發(fā)明的物聯(lián)網(wǎng)計(jì)量儀表系統(tǒng)的結(jié)構(gòu)示意圖。
圖中:1、采集服務(wù)器,2、固件服務(wù)器,3、人機(jī)交互模塊,4、控制器,5、微處理器,6、電源模塊,7、遠(yuǎn)程通信模塊,8、存儲(chǔ)器模塊,9、數(shù)據(jù)采集模塊。
具體實(shí)施方式
下面通過實(shí)施例,并結(jié)合附圖,對本發(fā)明的技術(shù)方案作進(jìn)一步具體的說明。
實(shí)施例:本實(shí)施例的一種物聯(lián)網(wǎng)計(jì)量儀表遠(yuǎn)程固件升級方法,如圖1所示,包括以下步驟:
計(jì)量儀表定期上傳采集數(shù)據(jù)到采集服務(wù)器;
當(dāng)采集服務(wù)器中有遠(yuǎn)程固件升級任務(wù)時(shí),采集服務(wù)器在計(jì)量儀表上傳采集數(shù)據(jù)時(shí)將固件服務(wù)器信息和計(jì)量儀表被分配的升級時(shí)間發(fā)送給計(jì)量儀表;
計(jì)量儀表在升級時(shí)間訪問固件服務(wù)器,從固件服務(wù)器下載需要升級的新固件存儲(chǔ)在計(jì)量儀表的固件存儲(chǔ)模塊中,新固件下載完成后,在固件存儲(chǔ)模塊設(shè)置待升級標(biāo)志,接著進(jìn)行固件升級,固件升級成功后,發(fā)送固件升級成功信息到采集服務(wù)器。
計(jì)量儀表上傳采集數(shù)據(jù)到采集服務(wù)器時(shí),還將自身信息上傳到采集服務(wù)器。計(jì)量儀表自身信息包括計(jì)量儀表的ID、狀態(tài)、位置等。
采集服務(wù)器用于存儲(chǔ)計(jì)量儀表上傳的采集數(shù)據(jù),管理遠(yuǎn)程固件升級任務(wù)。固件服務(wù)器存儲(chǔ)固件,供計(jì)量儀表下載固件。固件服務(wù)器與采集服務(wù)器分離,減少采集服務(wù)器的壓力,確保采集服務(wù)器的正常運(yùn)行,不影響物聯(lián)網(wǎng)計(jì)量儀表的核心功能。
當(dāng)需要計(jì)量儀表升級固件時(shí),在固件服務(wù)器存儲(chǔ)用于升級的新固件,在采集服務(wù)器觸發(fā)一個(gè)遠(yuǎn)程固件升級任務(wù)。計(jì)量儀表有預(yù)設(shè)的采集數(shù)據(jù)上傳周期,當(dāng)?shù)竭_(dá)采集數(shù)據(jù)上傳時(shí)間時(shí),計(jì)量儀表的微處理器啟動(dòng)遠(yuǎn)程通信模塊,計(jì)量儀表通過遠(yuǎn)程通信模塊與采集服務(wù)器建立通信,上傳采集數(shù)據(jù),同時(shí),采集服務(wù)器將固件服務(wù)器信息和該計(jì)量儀表被分配的升級時(shí)間發(fā)送給計(jì)量儀表。
當(dāng)計(jì)量儀表的內(nèi)部時(shí)鐘到達(dá)升級時(shí)間時(shí),計(jì)量儀表根據(jù)采集服務(wù)器發(fā)送的固件服務(wù)器信息訪問固件服務(wù)器,從固件服務(wù)器下載需要升級的新固件。每臺(tái)表的升級時(shí)間由采集服務(wù)器自動(dòng)設(shè)置,這樣可以有效解決固件服務(wù)器的并發(fā)壓力問題。新固件下載完成后,計(jì)量儀表進(jìn)行固件升級。
如果計(jì)量儀表在下載固件過程中斷網(wǎng),固件服務(wù)器記錄計(jì)量儀表下載的斷點(diǎn)位置,計(jì)量儀表下次連接固件服務(wù)器時(shí)從斷點(diǎn)位置開始下載。
采集服務(wù)器根據(jù)每個(gè)計(jì)量儀表上傳采集數(shù)據(jù)的時(shí)間給每個(gè)計(jì)量儀表分配不同的升級時(shí)間。越早上傳采集數(shù)據(jù)的計(jì)量儀表分配到的升級時(shí)間越早,計(jì)量儀表錯(cuò)峰下載固件,避免給固件服務(wù)器造成太大負(fù)荷,有效解決固件服務(wù)器的并發(fā)壓力問題。
如圖2所示,計(jì)量儀表進(jìn)行固定升級包括以下步驟:
N1:計(jì)量儀表自動(dòng)復(fù)位后進(jìn)入BOOTLOAD程序;
N2:計(jì)量儀表BOOTLOAD程序檢測固件存儲(chǔ)模塊中是否有待升級標(biāo)志,如果有則執(zhí)行步驟N3,否則步驟N7;
N3:讀取并校驗(yàn)固件存儲(chǔ)模塊中的新固件,如果校驗(yàn)通過則執(zhí)行步驟N4,否則執(zhí)行步驟N8;
N4:將新固件寫入計(jì)量儀表的微處理器;
N5:讀取并校驗(yàn)存儲(chǔ)在微處理器中的新固件,如果校驗(yàn)通過則執(zhí)行步驟N6,否則執(zhí)行步驟N9;
N6:微處理器運(yùn)行新固件,結(jié)束;
N7:微處理器運(yùn)行舊固件,結(jié)束;
N8:從固件存儲(chǔ)模塊讀取新固件失敗次數(shù)加1,如果失敗次數(shù)超過設(shè)定值,則執(zhí)行步驟N7,否則執(zhí)行步驟N3;
N9:從微處理器讀取新固件失敗次數(shù)加1,如果失敗次數(shù)超過設(shè)定值,則執(zhí)行步驟N7,否則執(zhí)行步驟N5。
本實(shí)施例的一種物聯(lián)網(wǎng)計(jì)量儀表系統(tǒng),使用上述的一種物聯(lián)網(wǎng)計(jì)量儀表遠(yuǎn)程固件升級方法,如圖3所示,包括計(jì)量儀表、采集服務(wù)器1和固件服務(wù)器2,計(jì)量儀表能夠與采集服務(wù)器1、固件服務(wù)器2遠(yuǎn)程通信。
計(jì)量儀表包括計(jì)量儀表基表和控制器4,控制器4包括微處理器5、電源模塊6、遠(yuǎn)程通信模塊7、存儲(chǔ)器模塊8、人機(jī)交互模塊3和采集計(jì)量儀表基表數(shù)據(jù)的數(shù)據(jù)采集模塊9,存儲(chǔ)器模塊8包括數(shù)據(jù)存儲(chǔ)模塊和固件存儲(chǔ)模塊,微處理器5分別與電源模塊6、遠(yuǎn)程通信模塊7、存儲(chǔ)器模塊8、人機(jī)交互模塊3和數(shù)據(jù)采集模塊9電連接,人機(jī)交互模塊3包括顯示模塊或輸入模塊。
計(jì)量儀表基表為水表、電表、燃?xì)獗砘驘崮鼙淼幕?。電源模塊給控制器供電。遠(yuǎn)程通信模塊是指可通過第三方移動(dòng)運(yùn)營商的設(shè)備訪問互聯(lián)網(wǎng)的模塊,包括但不限于GPRS模塊、CDMA模塊、NB-IOT模塊、4G模塊。數(shù)據(jù)采集模塊可采集計(jì)量儀表基表的計(jì)量信息,數(shù)據(jù)采集模塊包括但不限于干簧管、霍爾傳感器、光電直讀模塊等。
人機(jī)交互模塊可提示用戶計(jì)量儀表升級的狀態(tài),包括但不限于LED、液晶、鍵盤。數(shù)據(jù)存儲(chǔ)模塊用來保存固件服務(wù)器、采集器服務(wù)器的信息以及計(jì)量儀表采集的數(shù)據(jù);固件存儲(chǔ)模塊用于存儲(chǔ)待升級的固件及升級狀態(tài)的固件,包括但不限于FLASH芯片、EEPROM、SD卡等。電源模塊包括主電源和備用電源,主電源包括堿性電池,備用電源包括鋰電池。備用電源在主要電源缺失或電量低的情況下,為計(jì)量儀表供電。