升級操作概述
在現如今的科技時代,我們日常高頻率使用的電子產品譬如手機/平板系統、APP程序、智能家居等等,都會遇到不定期的版本更新。同理,我們產品項目研發無論是在調試還是后期量產階段,也都存在著版本更新升級的操作。通訊模塊的研發階段可能針對某個功能/新的需求做調試校驗;量產后亦可能有運營商網絡配置升級、功能迭代升級、程序BUG修復升級等操作。可謂升級操作是貫穿整個產品生命周期的。本文將以移遠通訊模塊升級為主題進行一個詳細的說明。
升級場景分類
通訊產品需要更新4G模塊的版本主要集中在三種場景:
1、本地調試升級:設備在本地環境下調試或者臨時版本驗證時,通常我們都優先考慮使用USB信號接入操作系統來手動升級。這類場景下操作靈活,遇到異常隨時可以進一步分析處理。
2、遠程網絡升級:遠程升級僅建議在已經部署在終端環境下的設備上操作,這類操作因受網絡傳輸波動、設備電源不可控、程序邏輯可靠性等影響存在一定的風險。但優點是可以大批量高效率的完成模塊版本更新。
3、本地批量升級:open版本燒錄用戶程序或標準模塊新舊版本批量轉換操作,優先考慮本地環境下一拖多的燒錄夾具配合一拖多的燒錄程序來完成版本更新。一拖多的燒錄請聯系DXY的技術接口獲取對應的工具license以及操作支持。
升級方式介紹
1、Widows系統
作為用戶基數最大,最容易獲取的系統環境,我們建議優先考慮在Windows系統環境下做燒錄操作,既可以使用通用的Qflash工具,也可以通過串口工具跑內置協議棧用遠程文件的形式升級。接下來重點介紹一下通用工具Qflash在Windows環境下的操作使用。
首先,硬件環境搭建需要把主板上原有的USB與主控線路斷開,使用USB數據線將模塊的USB信號接入到PC上,確保主板上USB走線沒有分叉。確保主控程序在升級過程中不會給模塊斷電或復位。在模塊穩定供電開機后,Windows系統設備管理器可以看到多個新的USB設備節點。
硬件環境搭建完成后請與技術接口獲取對應模塊的驅動以及燒錄工具資料包。安裝好驅動后,設備管理器可以看到多個COM口設備(見圖一)。
圖一
燒錄工具的操作可以參考圖二標注步驟:
圖二
當固件包內未包含Firehose文件夾時,工具將默認使用Sahara模式升級;或者有明確要求全包燒錄時,可以在工具左上角Configuration>Sahara only選項來指定Sahara全包燒錄。
2、Android&Linux系統
在Android和Linux系統上,高通平臺的模塊統一使用Qfirehose工具燒錄,國產平臺的使用QDloader工具燒錄(國產平臺具體型號的選擇請與DXY技術接口溝通確認)。對于Android系統,工具包內部已經有編譯完成的可執行文件,對于Linux系統環境,需要在設備系統環境下編譯生成執行文件。
Qfirehose工具的參數組-f為必選,指定固件包解壓后的路徑,到文件夾目錄即可,燒錄端口無需手動指定,程序內置判斷邏輯尋找DM口。執行./Qfirehose -f <固件路徑> 開始燒錄,燒錄成功打印:“Upgrade module successfully”,燒錄失敗則會打印“Upgrade module fail”。使用命令"echo $?"可以查詢工具執行結果代碼,返回0表示執行成功。
QDloader工具參數組-f為必選,指定燒錄路徑到固件包的具體文件:
.pac或firmware.bin或_fbf.bin |
例如:
./QDloader -f ./ec800k.bin |
執行結果打印和查詢參考上一條Qfirehose工具。
3、MCU單片機
若產品沒有涉及到SOC系統或只能通過MCU單片機控制網絡部分升級,則可以考慮使用模塊內置協議棧走空中升級??罩猩壱话惴譃镕OTA和DFOTA。出于流量成本考慮,絕大部分設備都是集成DFOTA差分升級:通過應用程序判斷設備本地模塊的版本,將當前版本與目標版本信息提供給到DXY技術接口,用于制作差分包。在獲取到差分包后,可以使用FTP或者HTTP服務器部署差分包以便程序能通過蜂窩網絡下載并升級。
A、FTP協議升級
使用FTP協議做FOTA升級操作指令:
AT+QFOTADL="FTP://賬號:密碼@FTP地址:端口/文件完整路徑",指令執行后分兩個部分來完成,先通過FTP下載,下載成功后進行燒錄。這兩部分的執行結果碼為0則代表執行成功。
B、HTTP協議升級
使用HTTP協議做FOTA升級操作指令:
AT+QFOTADL="http://www.xxxx.com:100/xxx.bin"
指令執行后分兩個部分來完成,先通過FTP下載,下載成功后進行燒錄。這兩部分的執行結果碼為0則代表執行成功。
升級注意事項
1、緊急下載模式
對于部分異常模塊或生產需要提高燒錄效率,減少USB口切換耗時的需求。模塊可以在上電開機之前將USB_BOOT腳上拉(高通平臺)至VDD_EXT1.8V腳位。大部分國產平臺的芯片需要將USB_BOOT下拉至地進入緊急下載模式,具體操作可以從硬件文檔或咨詢DXY技術接口。
2、FOTA固件包基線版本確認
針對FOTA升級的場景,MCU程序必須得判斷設備當前模塊版本,確保模塊當前版本與獲取的差分包信息一致再進行升級,否則升級操作會失敗。
3、遠程路徑可訪問
遠程升級時,一定要確保HTTP/HTTPS/FTP的地址、端口、賬號、密碼有效性;以及我們設備上的網絡是否可以訪問到這類文件路徑(專用網絡或者海外服務器)。強烈建議我們在做FOTA升級的邏輯時,一定要反復驗證測試可行性,避免終端自動遠程升級的成功率。
4、硬件環境搭建
燒錄環境下,要確保模塊VBAT供電穩定,MCU部分不會操作模塊斷電或復位。將USB或UART信號接入燒錄系統環境。USB線材要選用標準的USB數據線,切不可以使用杜邦線代替。同時要確保USB在PCB上走線信號無分叉。
5、限制區域版本升級
因國際形勢影響,為保障模塊僅用于民用,通過技術手段在特定區域限制模塊的正常注網,這類限制主要影響到出歐洲、北美市場的高通平臺模塊。針對這類產品做升級時,確保模塊在版本系列范圍內更新,以及版本回退的范圍。
6、同區域多設備FOTA升級
在指定小范圍區域內,同時處理龐大數量的設備升級時請特別留意網絡吞吐量的干擾限制。建議工廠、倉庫這類有大批量設備使用FOTA燒錄需求時,分批次分時段來處理,盡量避免網絡堵塞的可能性。
7、文件路徑注意事項
升級包存放的路徑,無論是本地存儲還是服務器存儲,請務必使用英文字符,且不應包含任何空格、半角括號或中文字符。若存放在本地路徑,建議路徑不要太深,路徑名稱不應過長。