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