一種基於軟體APP技術的藍牙設備固件升級方法及系統與流程
2023-05-02 00:53:16 1

本發明涉及藍牙低能耗技術應用領域,特別涉及一種基於軟體app技術的藍牙設備固件升級方法及系統。
背景技術:
隨著低功耗藍牙ble技術的日益成熟,ble在智能設備以及智能控制中得到了廣泛地應用。所述設備可以是支持有ble協議的智能盒子、智能藍牙音箱或者智能燈等。然而,廠家通常因業務需要會針對某款ble設備的固件進行更新,用於修復缺陷和添加功能,因此ble設備的固件經常需要根據實際需求升級。但是,目前由於ble設備一般不具有網際網路能力,用戶在為ble設備升級的時,需要拆機,然後使用專用升級工具燒錄固件,該方法純屬人工操作,不僅操作不方便,還會導致ble設備外觀受損,有時甚至拆壞ble設備。
中國發明專利申請公開號為106210102a,該專利公開了基於藍牙ble的無線升級手柄固件的方法及裝置,獲取手柄的當前版本信息,並從固件伺服器獲取最新版本,然後通過ble發送數據包。然而,申請人發現,專利申請公開號為106210102a的方法存在以下不足之處:
1)、上述方法中ble服務並沒有使用特定的服務,易與手柄的控制指令混淆;升級固件需從伺服器獲取,該方法對app的網絡功能具有依賴性。
2)、上述方法中只是對每包數據進行檢驗,沒有對異常處理,而ble傳輸因設備的兼容性,及每次傳輸的數據小而需要分很多數據包後,會比較容易出現丟包的情況,經常app傳輸完成,但設備沒升級成功,導致升級成功率低。
3)、上述方法中數據傳輸與操作的連接間隔沒有區分開,考慮功耗的因素,在僅有控制指令存在的情況下,需要使用比較長的連接間隔,而固件升級時,需要設置比較小的連接間隔,否則會影響升級效率。
技術實現要素:
本發明所要解決的技術問題是:提供一種基於軟體app技術的藍牙設備固件升級方法及系統,能克服舊式三種方法的弊端,是目前藍牙設備固件升級等行業廣泛應用的趨勢。
為解決上述技術問題,本發明提供一種基於軟體app技術的藍牙設備固件升級方法及系統,包括智能設備、數據分析處理軟體app和藍牙設備ble。其中智能設備為手機、平板電腦等;藍牙設備ble對外進行藍牙通訊;其中智能設備上安裝數據分析處理軟體app;
進一步優化,智能設備通過藍牙通信模塊間的近距離通信;來接收藍牙設備ble的通訊;
進一步優化,數據分析處理軟體app與藍牙設備ble建立連接後實現數據交換。
進一步優化,數據分析處理軟體app獲取藍牙設備ble設備通訊後分析確定是否具有固件無線升級功能。
數據分析處理軟體app檢測藍牙設備ble設備所具備的服務,以具備先約定好的升級服務為判斷條件,含有該服務,就說明該設備具有無線升級的功能;若藍牙設備ble設備不具備該服務,則數據分析處理軟體app將拒絕給藍牙設備ble設備進行固件升級。
進一步優化,數據分析處理軟體app設置藍牙設備ble數據傳輸的連接間隔,
數據分析處理軟體app在連接升級服務成功後,設置升級數據包傳輸連接間隔,數據分析處理軟體app與藍牙設備ble在正常控制或數據交互時,使用連接間隔比較長的參數,這樣可以有效降低藍牙設備ble的功耗,但在升級數據包傳輸時,啟用連接間隔短的數據,可以提高數據傳輸速率
進一步優化,數據分析處理軟體app每隔20毫秒下發一包數據,整個傳輸最穩,出現的丟包率小。若是因智能設備原因引起的數據包發不出去,採用延時再次發送的方法,如原本數據分析處理軟體app間隔20毫秒發送一包數據,當數據包發送不出去時,首次延時100毫秒再次發送,若還是發不出去,再次延時300毫秒發送數據,還是發不出去,則再次延時1000毫秒發送數據。在啟動數據下發時,開啟傳輸異常監聽,用於處理異常數據的再次發送。
進一步優化,藍牙設備ble對每個收到的數據包進行校驗,判斷數據的有效性和有連續性,若出現數據異常,如收到的數據包序號不連續或數據校驗與數據分析處理軟體app下發的不一致,則通知數據分析處理軟體app數據異常,並攜帶異常數據包序號。
進一步優化,藍牙設備ble接收完所有數據,即最後的數據包序號與之前發的長度相同,且所有數據檢驗也一致,則通知數據分析處理軟體app數據接收完成,反之,通知app異常。
進一步優化,數據分析處理軟體app接收到藍牙設備ble通知數據接收完成後的消息,含異常消息,數據分析處理軟體app根據所接收到的消息做下一步指令。
進一步優化,基於軟體app技術的藍牙設備固件升級方法及系統的工作步驟:
a、智能設備的數據分析處理軟體app與ble設備建立藍牙設備ble連接;
b、智能設備的數據分析處理軟體app獲取藍牙設備ble是否具有固件無線升級功能;
c、智能設備的數據分析處理軟體app設置藍牙設備ble數據傳輸的連接間隔;
d、智能設備的數據分析處理軟體app獲取藍牙設備ble當前固件信息;
e、智能設備的數據分析處理軟體app根據當前藍牙設備ble的固件信息選擇本地或伺服器的新固件文件;
f、智能設備的數據分析處理軟體app下發新固件版本信息及文件長度;
g、智能設備的數據分析處理軟體app下發升級數據包,開啟異常監聽;
h、藍牙設備ble檢驗接收到的數據,若有異常,通知智能設備的數據分析處理軟體app;
i、智能設備的數據分析處理軟體app對異常數據包的處理;
j、藍牙設備ble接收完所有數據數據並檢驗,結果通知智能設備的數據分析處理軟體app;
k、智能設備的數據分析處理軟體app接收數據傳輸完成通知,並根據結果下發指令;
l、藍牙設備ble接收重啟指令後重啟設備,升級完成。
採用了上述技術方案後,本發明的有益效果是:
相對於現有的技術方案,提供一種快捷方便的利用常用的移動終端進行自動升級的方法及系統,解決現有相關技術中的因設備兼容性問題導致升級失敗,升級過程繁瑣且耗時的技術問題,提高傳輸數據的可靠性,大大方便用戶使用。
附圖說明
圖1是基於軟體app技術的藍牙設備固件升級方法及系統工作模塊圖
圖2是基於軟體app技術的藍牙設備固件升級方法及系統工作流程圖
具體實施方式
下面結合附圖1至附圖2和具體實施例對本發明進行詳細描述,但不作為對本發明的限定。
如附圖1至附圖2所示,一種基於軟體app技術的藍牙設備固件升級方法及系統,包括智能設備、數據分析處理軟體app和藍牙設備ble。其中智能設備為手機、平板電腦等;藍牙設備ble對外進行藍牙通訊;其中智能設備上安裝數據分析處理軟體app;智能設備通過藍牙通信模塊間的近距離通信;來接收藍牙設備ble的通訊;數據分析處理軟體app與藍牙設備ble建立連接後實現數據交換。數據分析處理軟體app獲取藍牙設備ble設備通訊後分析確定是否具有固件無線升級功能;
如圖1所示的系統,包括智能設備、數據分析處理軟體app和藍牙設備ble,以一臺智慧型手機和一臺智能藍牙設備ble音箱為例。
請參閱圖2,為本發明實施例提供的一種基於app技術的ble設備固件升級方法及系統的實現流程,其主要包括以下步驟:
s101智能設備的數據分析處理軟體app搜索藍牙設備ble的ble模塊,並進行連接;
在本發明實施例中,所述藍牙設備ble可以為智能盒子、智能藍牙音箱或者智能燈等,通過能設備的數據分析處理軟體app打開藍牙,搜索藍牙設備ble,並建立連接後,可實現能設備的數據分析處理軟體app與藍牙設備ble的數據交互。
s102智能設備的數據分析處理軟體app獲取藍牙設備ble是否具有固件無線升級功能;
在本發明實施例中,能設備的數據分析處理軟體app開始檢測藍牙設備ble設備所具備的服務,以具備先約定好的升級服務為判斷條件,含有該服務,就說明該設備具有無線升級的功能;若藍牙設備ble不具備該服務,則app將拒絕給藍牙設備ble進行固件升級。
s103智能設備的數據分析處理軟體app設置藍牙設備ble數據傳輸的連接間隔;
在本發明實施例中,數據分析處理軟體app在連接升級服務成功後,設置升級數據包傳輸連接間隔,數據分析處理軟體app與藍牙設備ble在正常控制或數據交互時,使用連接間隔比較長的參數,這樣可以有效降低藍牙設備ble設備的功耗,但在升級數據包傳輸時,啟用連接間隔短的數據,可以提高數據傳輸速率,格式如:0x04,0xa1,0x01,(min_interval),(max_interval)。
s104智能設備的數據分析處理軟體app獲取藍牙設備ble當前固件信息;
在本發明實施例中,數據分析處理軟體app根據約定下發讀取藍牙設備ble當前固件信息的指令,藍牙設備ble接收到讀取固件信息的指令後,以約定的格式回復app,信息格式如:uint16ver,uint16len,uint8uid[4],其中ver表示版本,len表示數據長度,uid表示版本號信息。
s105智能設備的數據分析處理軟體app根據當前藍牙設備ble的固件信息選擇本地或伺服器的新固件文件;
在本發明實施例中,智能設備的數據分析處理軟體app根據藍牙設備ble當前的固件信息匹配伺服器或本地的新固件,若服務有新固件,則app先把固件下載到本地;app選擇新固件,同時記錄當前的路徑,下次或給另一個臺設備升級時,直接定位保存的路徑,若沒有找到相應的固件,則定位到根目錄,此步驟特意不做版本號比較,避免設備出現不能回退之前版本的問題。
s106智能設備的數據分析處理軟體app下發新固件版本信息及文件長度;
在本發明實施例中,智能設備的數據分析處理軟體app按約定下發新固件版本信息及文件長度,用於ble設備做接收固件完整檢驗。
s107智能設備的數據分析處理軟體app下發升級數據包,開啟異常監聽;
在本發明實施例中,由於藍牙設備ble數據傳輸每包的大小受限制(一次最多20個字節),所以一個文件要分多包發送,發送數據格式:2bytes包號+16bytes內容+2bytescrc。crc檢驗算法如下:
u_int16crc16(u_int8*pd,u_int32len)
{
u_int32i,j;
u_int8ds;
u_int16crc=0xffff;
staticu_int16poly[2]={0,0xa001};
for(j=len;j>0;j--)
{
ds=*pd++;
for(i=0;i>1)^poly[(crc^ds)&1];
ds=ds>>1;
}
}
returncrc;
}
經過大量的手機測試發現,app每隔20毫秒下發一包數據,整個傳輸最穩,出現的丟包率小。若是因智慧型手機原因引起的數據包發不出去,採用延時再次發送的方法,如原本app間隔20毫秒發送一包數據,當數據包發送不出去時,首次延時100毫秒再次發送,若還是發不出去,再次延時300毫秒發送數據,還是發不出去,則再次延時1000毫秒發送數據。在啟動數據下發時,開啟傳輸異常監聽,用於處理異常數據的再次發送。
s108藍牙設備ble檢驗接收到的數據,若有異常,通知智能設備的數據分析處理軟體app;
在本發明實施例中,藍牙設備ble對每個收到的數據包進行校驗,判斷數據的有效性和有連續性,若出現數據異常,如收到的數據包序號不連續或數據校驗與app下發的不一致,則通知app數據異常,並攜帶異常數據包序號。
s109智能設備的數據分析處理軟體app對異常數據包的處理;
在本發明實施例中,智能設備的數據分析處理軟體app接收到藍牙設備ble通知的異常消息後,提取出異常包的序號,根據序號重新按格式組織數據,並下發。
s110藍牙設備ble接收完所有數據數據並檢驗,結果通知智能設備的數據分析處理軟體app;
在本發明實施例中,藍牙設備ble接收完所有數據,即最後的數據包序號與之前發的長度相同,且所有數據檢驗也一致,則通知app數據接收完成,反之,通知app異常,按約定,整個升級結果有:0x00:成功;0x01:校驗錯誤;0x02:丟包;0x03:數據無效;0x04:固件無效。
s111智能設備的數據分析處理軟體app接收數據傳輸完成通知,並根據結果下發指令;
在本發明實施例中,智能設備的數據分析處理軟體app接收到藍牙設備ble通知數據接收完成後的消息,含異常消息,數據分析處理軟體app根據所接收到的消息做下一步指令,如:當接收到數據接收成功的消息,下發設備重啟指令,若接收到數據異常的消息時,則ui上提示用戶,用戶可自行判斷是否要再次操作升級。
s112藍牙設備ble接收重啟指令後重啟設備,升級完成;
在本發明實施例中,若藍牙設備ble升級完沒有通知智能設備的數據分析處理軟體app而自動重啟,那麼可能出現智能設備的數據分析處理軟體app不知道升級成功的消息,則會讓用戶產生誤解,所以,ble設備在接收到智能設備的數據分析處理軟體app下發的重啟指令,重啟設備,確保讓用戶知道升級結果。
由技術常識可知,本技術方案可以通過其它的不脫離其精神實質或必要特徵的實施方案來實現。因此,上述公開的實施方案,就各方面而言,都只是舉例說明,並不是僅有的。所有在本發明範圍內或在等同於本發明的範圍內的改變均被本發明包含。