日期:2024-05-21 15:45:42 編輯: 瀏覽:
智能手環(huán)在人們的生活中屢見不鮮,它出現(xiàn)在消費者手里的時候自帶程序,每個智能手環(huán)里面的程序在出廠的時候就設(shè)置好了。但是您知道嗎,智能手環(huán)里面的固件程序不會一成不變,是會迭代更新的,那么智能手環(huán)里面的藍(lán)牙模塊如何更新升級呢?其實智能手環(huán)里的藍(lán)牙模塊固件升級需要使用手機給固件進行更新,以達(dá)到修復(fù)bug,完善功能的作用。
升級的大概流程是:首先,當(dāng)智能手環(huán)的固件需要升級時,由嵌入式開發(fā)人員提供新的固件,由服務(wù)器管理人員將固件放到服務(wù)器上,此時,用戶打開手機APP的時候會檢測到服務(wù)器有更新,請求更新智能手環(huán)固件,確認(rèn)更新后,手機會從服務(wù)器下載固件。下載完畢后,APP會讀取固件內(nèi)容,并根據(jù)升級協(xié)議將內(nèi)容傳到手環(huán)里,完成升級。
1.DFU=Device Firmware Update(設(shè)備固件更新)
2.OTA=Over The Air(空中升級)
智能手環(huán)內(nèi)部藍(lán)牙模塊升級流程
由于各個藍(lán)牙設(shè)備不盡相同,以下是示例升級流程:
OTA下載固件
從云端下載的固件為.bin后綴的文件,文件名會有一定的格式,含有固件版本號和文件CRC32校驗值。
數(shù)據(jù)分塊
規(guī)定一個數(shù)據(jù)塊大小比如2048字節(jié),然后把升級數(shù)據(jù)進行分塊,不夠的就剩余多少作為一塊。藍(lán)牙一次發(fā)送的數(shù)據(jù)量是有限的,所以每次發(fā)送20字節(jié)的數(shù)據(jù)。這個數(shù)據(jù)要遵循升級數(shù)據(jù)格式,帶指令頭和校驗和,下載包的數(shù)據(jù)只是這20字節(jié)中的一部分。所有包內(nèi)數(shù)據(jù)都攜帶在每條升級數(shù)據(jù)指令中。
升級過程
連接設(shè)備,發(fā)送升級請求。
待藍(lán)牙確認(rèn)之后,開始發(fā)送數(shù)據(jù)頭告知藍(lán)牙此次發(fā)送的數(shù)據(jù)量和CRC校驗。
開始發(fā)送升級數(shù)據(jù)。(每條數(shù)據(jù)之間間隔20ms為了藍(lán)牙能夠方便處理)
待一個“塊”發(fā)送完就發(fā)送“塊”結(jié)束命令
藍(lán)牙確認(rèn)發(fā)送下一個“塊”,返回錯誤則終止此次升級
發(fā)完所有數(shù)據(jù)之后發(fā)送升級完成
藍(lán)牙模塊確認(rèn)則升級完成,返回錯誤則升級失敗
智能手環(huán)藍(lán)牙模塊升級最復(fù)雜的就在升級過程,大量的數(shù)據(jù)與藍(lán)牙交互,這時最好記錄發(fā)送到升級數(shù)據(jù)的那一部分,可以給用戶展示升級的進程。