本發明涉及程序遠程更新技術領域,特別涉及一種車載終端外設程序遠程更新方法及系統。
背景技術:
車載終端系統通常由智能服務終端和各種功能外設組成,配套的功能外設如計價器、智能頂燈、服務器評價器、刷卡器等往往不具備無線通信功能,無法同遠程更新服務器進行直接通信實現自身固件的遠程更新,必須依靠智能服務終端實現功能外設軟件遠程升級。遠程更新服務器在進行功能外設軟件遠程升級時,往往采用自動推送的方式,不論功能外設當前是否正常連接,就啟動升級軟件遠程下載。當功能外設與智能服務終端未正常連接時,造成了非必要的網絡流量開支,增加了智能服務終端和遠程更新服務器負載壓力。
技術實現要素:
本發明的目的在于克服現有技術的不足,提出一種車載終端外設程序遠程更新方法及系統,采用主動探詢方式,及時有效地判斷智能服務終端與功能外設連接狀態,根據連接狀態下載功能外設的升級文件,減少了非必要的網絡流量開支,降低了遠程更新服務器負載壓力。
本發明解決其技術問題所采用的技術方案是:
一種車載終端外設程序遠程更新方法,包括如下步驟:
1)智能服務終端啟動,信息初始化;
2)通過心跳交互檢測確定智能服務終端與功能外設通信狀態;
3)智能服務終端啟動升級文件遠程下載;
4)智能服務終端下載升級文件成功,通知功能外設接收升級文件,收到功能外設確認應答,啟動升級文件傳送;
5)功能外設接收升級文件并保存至內部存儲模塊;
6)功能外設接收升級文件完成,啟動程序更新模塊進行新版本更新,更新完成后重啟;
7)功能外設重啟完成,同智能服務終端恢復連接;
8)智能服務終端檢測功能外設版本信息,向遠程更新服務器發送版本更新結果。
所述信息初始化,包括:
將功能外設接入標識置為未連接狀態;清空功能外設版本信息;記錄初始時間T0;首次心跳時間T1=T0。
所述通過心跳交互檢測確定智能服務終端與功能外設通信狀態,包括:
判斷智能服務終端與功能外設心跳交互是否正常;
若智能服務終端檢測到功能外設心跳交互正常,將功能外設接入標識置為連接狀態,采集記錄功能外設的當前版本,周期性更新每次心跳交互成功的時間Tn,其中n>1,進入步驟3);
若智能服務終端檢測到功能外設心跳交互不正常,引入心跳超時時間MT進一步檢測功能外設的連接狀態,若(T-Tn)<MT,重復步驟2),其中T為智能服務終端當前時間,心跳超時時間MT=(S+P*2),外設啟動時長S=T2-T0,P為心跳周期,T2為第一次心跳交互成功時間;
若(T-Tn)>MT,智能服務終端將功能外設接入標識置為未連接狀態,清空功能外設版本信息,重復步驟2)。
所述智能服務終端啟動升級文件遠程下載,包括:
智能服務終端從遠程更新服務器獲取功能外設的新版本信息,若功能外設接入標識為連接狀態,則進行功能外設版本信息比較,若遠程更新服務器存在功能外設新版本,并且存在條件(T-Tn)<MT,則智能服務終端啟動升級文件遠程下載并保存至內部存儲模塊。
一種車載終端外設程序遠程更新系統,包括遠程更新服務器和車載終端系統,所述車載終端系統包括智能服務終端和功能外設;
所述智能服務終端包括無線通信模塊、微處理器模塊、存儲模塊和外設交互模塊,所述功能外設包括主機交互模塊、微處理器模塊、存儲模塊和更新模塊;
所述智能服務終端包括無線通信模塊、微處理器模塊、存儲模塊和外設交互模塊,所述功能外設包括主機交互模塊、微處理器模塊、存儲模塊和更新模塊;
所述智能服務終端通過無線通信模塊與遠程更新服務器進行通信,下載功能外設的程序升級文件,保存更新文件至內部存儲模塊,通過外設交互模塊將存儲的升級文件傳送給功能外設,微處理器模塊與無線通信模塊及外設交互模塊交互完成運算控制;
所述功能外設通過主機交互模塊接收智能服務終端傳送的升級文件,保存升級文件至內部存儲模塊,啟動更新模塊完成版本更新,微處理器模塊與主機交互模塊、存儲模塊及更新模塊交互完成運算控制。
以下結合附圖及實施例對本發明作進一步詳細說明,但本發明的一種車載終端外設程序遠程更新方法及系統不局限于實施例。
附圖說明
圖1為本發明方法的主流程圖;
圖2為本發明系統的結構框圖。
具體實施方式
參見圖1,本發明的一種車載終端外設程序遠程更新方法,包括如下步驟:
步驟101:智能服務終端啟動,信息初始化;
具體地,信息初始化包括:
將功能外設接入標識置為未連接狀態;清空功能外設版本信息;記錄初始時間T0;更新首次心跳時間T1=T0。
步驟102:檢測智能服務終端與功能外設交互狀態;
本實施例中,智能服務終端與功能外設通過串口通信,具體的,可采用RS-232串口通信。
步驟103:當前時間T,心跳交互是否成功;
具體的,當心跳周期P時間到后,檢測智能服務終端與功能外設是否正常交互。如心跳周期P設置為1分鐘,首次心跳時間T1為8:00,智能服務終端當前時間T為8:01分,如果8:01智能服務終端收到了功能外設的心跳應答,則表示心跳交互正常。
心跳交互不正常,實施步驟104;心跳交互正常,實施步驟106。
步驟104:判斷(T-Tn)>MT;
具體的,T為智能服務終端當前時間,n大于1時,Tn表示最后一次心跳交互成功時間,n等于1時,Tn表示首次心跳時間,等于初始時間T0,心跳超時時間MT=(S+P*2),外設啟動時長S=T2-T0,T2為第一次心跳交互成功的時間。
若(T-Tn)>MT,實施步驟105,若(T-Tn)<MT,返回步驟103,重新檢測心跳交互是否正常。
步驟105:接入標識置為未連接狀態,清空版本信息;
具體的,該步驟實施完成后,返回步驟103,繼續心跳交互檢測。
步驟106:接入標識置為連接狀態,采集記錄功能外設的當前版本,更新當次心跳交互 成功的時間Tn;
具體的,n>1,該步驟實施完成后,實施步驟107,同時返回步驟103,繼續心跳交互檢測。
步驟107:智能服務終端從遠程更新服務器獲取功能外設新版本信息;
步驟108:判斷接入標識是否連接;
如果功能外設接入標識為連接狀態,實施步驟109,如果如果功能外設接入標識為未連接狀態,本次升級結束。
步驟109:判斷是否存在新版本;
具體的,智能服務終端將記錄的功能外設當前版本與從遠程更新服務器獲取功能外設新版本信息進行比較,如果存在匹配的新版本,實施步驟110,如果沒有匹配的新版本,則功能外設不需要升級,本次升級結束。
步驟110:判斷(T-Tn)>MT;
如果(T-Tn)<MT,實施步驟111,如果(T-Tn)>MT,本次升級結束。
步驟111:智能服務終端啟動升級文件遠程下載并保存至內部存儲模塊;
步驟112:智能服務終端下載升級文件成功,通知功能外設接收升級文件,收到功能外設確認應答,啟動升級文件傳送;
步驟113:功能外設接收升級文件并保存至內部存儲模塊;
步驟114:功能外設接收升級文件完成,啟動程序更新模塊進行新版本更新,更新完成后重啟;
步驟115:功能外設重啟完成,同智能服務終端恢復連接;
步驟116:智能服務終端檢測功能外設版本信息,向遠程服務器發送版本更新結果,本次升級完成。
參見圖2,一種車載終端外設程序遠程更新系統,包括遠程更新服務器1和車載終端系統2,車載終端系統2包括智能服務終端21和功能外設22,智能服務終端21包括無線通信模塊211、微處理器模塊212、外設交互模塊213和存儲模塊214,功能外設22包括主機交互模塊221、存儲模塊222、更新模塊223和微處理器模塊224。
智能服務終端21通過無線通信模塊211與遠程更新服務器1進行通信,下載功能外設22的程序升級文件,保存更新文件至內部存儲模塊214,通過外設交互模塊213將存儲的升級文件傳送給功能外設22,微處理器模塊212用于運算及控制。
功能外設22通過主機交互模塊221接收智能服務終端21傳送的升級文件,保存升級文件至內部存儲模塊222,啟動更新模塊223完成版本更新,微處理器模塊224用于運算及控 制。
本發明提供的技術方案帶來的有益效果是:通過智能服務終端啟動,信息初始化;確定智能服務終端與功能外設通信狀態;智能服務終端啟動升級文件遠程下載;智能服務終端啟動升級文件傳送;功能外設接收升級文件并保存;功能外設進行新版本更新,更新完成后重啟;功能外設重啟完成,同智能服務終端恢復連接;智能服務終端檢測功能外設版本信息,向遠程更新服務器發送版本更新結果的技術方案的實現,使得功能外設程序更新實現了主動探詢,及時有效地判斷智能服務終端與功能外設連接狀態,根據連接狀態下載功能外設的升級文件,減少了非必要的網絡流量開支,降低了遠程更新服務器負載壓力。
以上所述僅為本發明的較佳實施例,并不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。