陳 賢,金業勇,陳 康
(1.中煤科工集團常州研究院有限公司,江蘇 常州213015;2.天地(常州)自動化股份有限公司,江蘇 常州213015)
井下人員定位系統作為煤礦井下必備的安全避險“六大系統”之一,是井下人員定位,考勤,調度等應用的重要保障[1-2]。該系統下的定位標識卡或定位信息礦燈是下井人員必須攜帶的設備,具有數量多,位置分散且不固定等特點。隨著煤礦安全生產的標準提升,以及礦方的需求差異化,不可避免的面臨該類設備的程序升級問題。
由于礦用設備使用環境惡劣,三防要求等級高,不易拆卸的特點,采用IAP(In Application Programming,應用內編程)編程方式與礦用人員便攜設備的無線射頻結合,可以有效的解決升級程序時設備需要拆卸的問題[3-7]。而程序升級另一個問題在于現場情況:①設備數量多,上千是正常數量級,統計升級情況耗時耗力;②煤礦生產一般采用輪班制,如常見的三班倒,導致設備某一時間一部分在井下,一部分在井上,位置分散不固定,且該類設備一般由使用者個人保管,不便于收集,而無線升級覆蓋區域有限,難以集中升級;③人員定位信息關聯定位與考勤,升級過程不能影響設備的井下正常工作,加上人員下井罐籠不等人,人員上井在疲憊的驅使下急于下班的情況,特別是信息礦燈鎖在充電柜中充電,升級過程難以保障。針對上述問題,提出了一種可靠性高、操作方便的礦用人員便攜設備的無線程序升級方法,采用無線廣播傳輸和斷點續傳的方式在下井口實現礦用人員便攜設備程序的批量無線IAP 升級。
用于礦井定位的無線通信技術主要有Wi-Fi、RFID、UWB、ZigBee 等[1],以使用較多的RFID 井下無線定位方案來說明無線程序升級的方法。升級過程采用一對多的網絡模式進行數據交互,即1 個無線升級終端設備對應多個礦用人員便攜設備,通過2.4 GHz 無線通信模塊完成無線升級終端設備與礦用人員便攜設備之間的數據傳輸。
硬件上,礦用人員便攜設備保持原有硬件架構不變,增加無線升級終端設備,設備采用單片機+雙無線芯片+USB 虛擬串口的架構[8-9],具有雙射頻模塊,分別用于升級程序文件的發送和升級探測,且工作在不同無線信道,減少空中碰撞,提高升級的速度。
軟件上,礦用人員便攜設備的軟件重新架構,將Flash 分為Boot(引導)區、APP(應用程序)區、APPBackup(應用程序備份)區及Data(數據)區4 大區域[10],其中APP 區和APPBackup 區大小相同,無線升級過程Flash 操作過程如圖1。
一次完整的無線升級交互過程如圖2。
圖1 無線升級Flash 操作過程Fig.1 Wireless upgrade Flash operation process
具體步驟如下:①礦用人員便攜設備發送正常工作報文;②無線升級終端設備捕獲報文,定向發送升級命令,礦用人員便攜設備捕獲升級命令,若版本落后,切換信道進入升級模式等待接收升級數據包;③無線升級終端將升級文件拆分成多個獨立數據包,并循環發送;④數據包接收完成,上報升級完成信息,軟重啟進入Boot 區,完成拷貝新程序到APP區后,跳轉到APP 區正常工作。
圖2 無線升級交互過程Fig.2 Wireless upgrade interaction process
以常用的STM32F103CBT6 單片機為例,Flash存儲區共有128 KB。按實際使用需求劃分4 個區域的大小,Flash 存儲區域劃分見表1。
表1 Flash 存儲區域劃分Table 1 Flash storage area division
礦用人員便攜設備在原有功能的基礎上增加無線升級部分功能,礦用人員便攜設備無線升級程序流程框圖如圖3。
礦用人員便攜設備上電啟動正常情況沒有更新標志,直接跳轉至APP 區執行正常工作流程,當接收到無線升級終端的升級命令,比對當前版本,若版本落后且電量充足,切換至升級信道進入升級模式,接收無線升級終端循環廣播的升級數據包,將校驗通過的單包升級數據存放到APP 備份區的指定位置,同時保存每一個升級數據單包的接收情況,用于斷點續傳,同時判斷是否長時間(1 s)未收到升級數據包,若超時,切換回正常工作流程,再次經過升級區域時重新進入升級模式,已接收的數據包無需再重新接收保存,保證升級的連續性。若升級數據包全部接收完畢,且校驗通過,保存升級數據校驗值等參數和更新標志至Data 區指定位置,軟復位重啟進入Boot 區啟動。判斷更新標志并再次校驗APP 備份區的升級數據,校驗通過后拷貝至APP 區,重置更新標志后軟復位重啟,進入更新后的APP 區正常工作,至此,整個程序升級過程完成。
圖3 礦用人員便攜設備無線升級程序流程框圖Fig.3 Mine personnel portable equipment wireless upgrade process flow diagram
升級數據包的正確性直接影響升級能否成功,因此,將升級數據包采用單包校驗和整包校驗的雙重校驗,先將升級程序bin 文件按16 字節整數倍全1 補齊,計算整包的校驗值,再按16 字節1 包計算總包數N,加上通信協議組成32 字節的單包數據,升級數據單包協議見表2。
礦用人員便攜設備升級數據包接收過程采用斷點續傳方式,使用1 個bit 記錄1 個單包16 bytes 的升級情況,以最大50 kB 為例,占用Ram 資源50/8/16=0.39 kB,對STM32F103CBT6 單片機20 kB 的Ram來說,完全勝任。參考芯片手冊,單包16 字節數據保存到flash 的寫入時間小于1 ms,射頻芯片SPI 接口采用8 MHz 時鐘,單次接收數據讀取時間在1 ms內,預留計算處理時間,以單包升級數據接收完成時間5 ms 計算,50 kB 數據的理論單次循環接收時間為50×1024/16×5=16 000 ms=16 s,考慮到無線通信丟包的因素,理論計算的無線升級耗時在30 s 以內,在無線信號穩定覆蓋的10 m 范圍內,基本可以做到短暫停留即可完成升級。
無線升級終端設備硬件框圖如圖4。
圖4 無線升級終端設備硬件框圖Fig.4 Hardware diagram of wireless upgrade terminal device
無線升級終端設備主要包含4 個功能模塊:①主控芯片:作為專用的無線升級終端,能存放一個更新程序即可,結合其他外圍要求,因此也選用STM32F103CBT6 單片機;②雙射頻模塊:根據對端待升級的無線射頻類型,選用nRF24L01 2.4 GHz 無線射頻芯片;③串口:為了方便與PC 端上位機軟件連接,選用USB 虛擬串口芯片CP2102;④人機交互,1 個按鍵,用于無上位機時的脫機無線升級控制,LED 指示燈及小型OLED 顯示屏用于升級過程及狀態顯示。
主控芯片128 kB Flash 按需求劃分為3 個區域,Flash 存儲區域劃分見表3。APP 區用于存放應用主程序,APPNew 區空間對應礦用人員便攜設備的APP 區,用于存放從PC 端上位機下發的升級程序bin 文件。
表3 Flash 存儲區域劃分Table 3 Flash storage area division
無線升級終端設備軟件主要實現2 個功能,升級程序加載和無線升級過程處理。升級程序加載交互過程如圖5,無線升級過程處理軟件流程如圖6。
圖5 升級程序加載交互過程Fig.5 Escalation load interaction
圖6 無線升級過程處理流程Fig.6 Wireless upgrade process processing flow
1)升級程序加載。PC 端上位機將升級程序的bin文件分包后,加上必要的通訊協議和校驗組成升級程序包,通過USB 虛擬串口逐條發送給無線升級終端設備,升級終端對升級數據包校驗通過后存放在內部存儲APPNew 區對應的位置,并反饋數據包接收成功確認。最后交互確認升級程序的總校驗信息,保證升級程序的正確性。無線升級終端完成升級程序的加載后,置加載成功標志,返回空閑模式。
2)無線升級。在空閑模式下,程序已加載成功,收到上位機或按鍵的升級命令,無線升級終端進入升級模式,主要對2 個射頻模塊處理。射頻1 始終工作在發送模式,在指定的信道按5 ms 的間隔循環發送表2 格式的升級數據包;射頻2 工作在中斷接收模式,以便對接收到的數據快速響應。對收到的正常報文,射頻2 立刻切換到發送模式定向發送升級探測命令,發送完成后立刻切換回中斷接收模式,繼續等待接收,對升級完成反饋信息,直接通過串口發送給上位機。當收到上位機或按鍵的關閉升級命令,射頻1 停止發送,射頻2 關閉接收,返回空閑模式。
為了驗證該升級方法的可靠性和有效性,通過模擬實際情況來進行升級測試。將無線升級終端設備懸掛于走廊一邊的墻面上,走廊寬度2.4 m,懸掛高度1.5 m,升級程序bin 文件大小33 kB,測試用定位標識卡20 個,同時攜帶20 個標識卡以正常的行走速度多次通過升級終端位置,重復測試5 次,從上位機上觀察升級情況,無線升級測試情況統計見表4。
表4 無線升級測試情況統計Table 4 Wireless upgrade test statistics
從測試試驗數據可以看出,1 次通過的升級完成率在63%,2 次通過的升級完成率在98%,3 次通過的升級完成率在100%,多次通過顯著提高了升級完成率,符合斷點續傳的技術特點,100%的通過率驗證了該無線升級方法的可靠性。
由于項目需要對山東某煤礦UWB 精確定位系統下的1 206 盞KLX5LM(C)·信息礦燈進行程序升級,無線升級終端設備安裝位置下井口安檢門入口外20 m 左右,啟動無線升級2 d 后,根據上位機的統計完成了986 盞礦燈的程序升級,未發現升級導致的故障礦燈。
提出了一種適合礦用人員便攜設備的無線升級程序方法。該無線程序升級方法應用靈活又可靠的升級機制,同時充分利用了待升級對象自主移動的特點。現場試驗結果表明,該方法有效解決了礦用人員便攜設備數量多,位置分散不固定而難以集中的程序升級問題。該升級方法需要1 個與應用程序區一樣大小的備份區,對flash 的容量要求較高,下一步考慮研究一種不需要備份區,在Boot 區增加對用戶程序有效性校驗的措施,同時在該區增加獨立的無線升級的方法,防止升級異常發生故障。