張晨飛,王 錦,王嘉浩,董 馳
(1.西安工程大學 計算機科學學院西安 710048;2.西安工程大學機電工程學院西安 710048)
由于泛在電力物聯網技術的迅猛進步以及配電網物聯網自動化技術的逐步完善,配電網自動化監控的覆蓋范圍也在日益增大[1-2]。配電饋線終端(Feeder Terminal Unit,FTU)是配電網自動化系統(Distribution Automatic System,DAS)的重要組成部件,主要用于實現配電網分段開關的在線狀態監視、故障隔離和供電恢復等功能[2-4]。但是,FTU 架設在塔(柱)上,現場維護十分不便,采用有線和紅外光頭連接都需要登高打開配電箱門進行通信連接[5]。文獻[5-6]提出了FTU 無接觸維護的思想,設計專門的PDA(Portable Data Assistant)終端作為FTU 的人機交互界面,能夠極大地便捷FTU 巡檢維護。隨著物聯網技術的快速發展,智能手機App 已成為一種大眾喜愛的手持移動終端應用[7]。但是,FTU 的監控對象為配電網柱上的分段開關,嚴禁非指定專業人員操控,否則將導致停電事故的發生[5-8]。因此,若要利用手機App 作為FTU 的PDA 終端維護應用,則必須具有穩妥可靠的安全管控措施。隨著移動電子商務技術的發展,智能手機已經成為一種廣泛使用的在線購物、支付、銀行轉賬的工具,對手機App 的安全管控技術已經日益成熟[9-10]。采用移動電子商務中手機身份認證技術確定手機App 操作員的身份,再授權其對FTU 進行維護操作,可以確保手機App 操作的安全性。為了實現手機App 的身份認證,采用動態雙因子身份認證技術對操作員身份進行異步驗證,驗證通過后才授權進行人機交互操作[11-12]。為了建立智能手機與FTU 的無線連接,利用手機自帶的藍牙通信端口,在FTU 上擴展藍牙通信接口,實現數據無線傳輸通道的建立[13-14]。基于以上的研究分析,完成了一種專門應用于FTU 無接觸維護的手機App設計,下面就設計的實現技術進行具體介紹。
FTU 通常架設在塔(柱)上運行,為了方便開展巡檢維護工作,理想的方法就是使用PDA 終端進行無接觸式維護,既便于操作,又可以保證巡檢人員的人身安全。智能手機具有攜帶方便、界面美觀、操作簡單等優點,作為FTU 的維護終端是一種理想的選擇。考慮到電力設備操作的嚴謹性,利用智能手機App 作為PDA 實現與FTU 的人機交互時,必須嚴格管控操作員身份,避免非指定人員對電力設備進行控制操作,造成停電事故。安全管控智能手機應用的最理想和有效的方法是操作人身份認證,只有滿足身份認證條件的操作人員方能被授權進行維護操作。智能手機作為FTU維護PDA的構思如圖1所示。

圖1 手機作為FTU無接觸維護PDA的構想
FTU 主要實現柱上分段開關的在線監視和控制,需要采集8 路開關量(遙信)、10 個交流模擬量(遙測)、1 個分段開關的分合操作和保護動作(遙控);需要與DAS 主站采用移動4G 網絡實現IEC104協議數據交互,采用GPRS 實現IEC101 協議數據交互;采用互感器竊電方式獲取工作電源,供電子系統根據開關所在區段采用蓄電池或超級電容器作為后備儲電元件,需要對其進行充放電管理,為此FTU 選用ARM Cortex M4F 作為總控CPU,實現各項功能的管理控制。
從人機交互的角度,有兩種不同的需求,其一是設備制造商的生產調試與檢修,對嵌入式系統的自檢和工作狀態進行調試檢測,需要觀測各個組件的狀態以及報文通信流程;其二是電力用戶,需要觀測一次電力設備的工作狀態和電氣運行參數,進行傳動試驗和系統聯調。電力用戶在安裝調試的過程中,希望直接操作FTU 的按鍵,以便從液晶屏進行觀測;在對設備巡檢維護時,希望在地面使用PDA 直接與FTU 進行人機交互。FTU 是商業化產品,需設計友好的人機交互方式,以滿足各自需求,方便產品的使用。
為此,FTU 設計了3 種人機交互方式,其中,為模板生產調試設計了超級終端接口,FTU 機殼面板配置了按鍵液晶顯示界面,并擴展了藍牙通信模塊以支持PDA 無接觸式運維操作。為了簡化FTU 人機交互子系統的設計,3 種方式共用1 個異步串口,操作面板以ARM7 做成智能MMI 卡,采用擴展的類Modbus 協議實現主板與MMI 卡和手機PDA 的數據交互,實現人機交互功能。FTU 人機交互子系統的框圖如圖2 所示。

圖2 FTU人機交互子系統的工作原理
圖2 中,只要與3 種人機交互分時進行,就可避免發生訪問沖突。VT100 和Modbus 兩種訪問方式需要通過命令切換,正常運行時,為用戶模式,在使用超級終端進行操作前,連續點擊3 次ESC 鍵,切換至VT100 模式。利用超級終端發送命令和FTU 復位即可恢復到用戶模式。
為了在FTU 和手機藍牙端口之間搭建通信信道,需要在FTU 主板上擴展藍牙通信的接口,在硬件設計上予以支持。為了簡化硬件電路設計,直接采購了藍牙DCE 模板進行集成設計。所選用的藍牙模塊支持藍牙4.0 規范,工作溫度范圍為-40~80 ℃,滿足應用需求。藍牙DCE 板與MCU 連接的電路原理如圖3 所示。

圖3 藍牙模塊與MCU連接的電路原理
為了實現兩個藍牙設備之間的通信,需要在二者之間建立通信連接。根據應用需求,在FTU 和手機之間建立點對點的連接即可,無需建立復雜的微微AS 網。具體實現時,設置FTU 上的藍牙模塊處于主方式,設置規定的藍牙設備名稱,手機藍牙端口處于從方式,由手機搜索FTU 的藍牙設備,并建立連接。藍牙連接建立之后,調用底層驅動服務,即可實現二者之間字節流的交互。
為了實現FTU 主板與MMI 卡、手機MMI App 之間的數據交互,在遵循Modbus RTU 協議規范的基礎上,擴展了私有功能碼0x61~0x66,分別實現召喚監控信息、召喚配置參數、下達控制命令等6 條命令,實現相應的人機交互操作。例如,召喚時間和FTU的運行狀態命令的幀為ID、0x61、0x01、0x00、0x00、0x00、CRCH、CRCL,對應的響應幀為ID、0x61、0x08、msL、msH、hour、sec、year、mon、day、status、CRCH、CRCL,由此實現一個界面的信息刷新[8]。擴展的協議幀為企業標準,在一定程度上避免了其他PDA 與本FTU 的信息交互。
計算機設備之間進行身份認證的方法很多,目前廣泛使用的方法為動態雙因子驗證技術,即靜態用戶名、口令和動態驗證碼,身份認證服務器還實現了手機號碼和靜態用戶名和口令的綁定。由于手機號碼和持有者緊密關聯,靜態口令作為一級安全防護,驗證碼是服務器動態生成的隨機數且一次有效,因此作為第二級安全防護使得身份認證的可靠性更高。動態雙因子認證技術是一種異步驗證方式,實現技術相對容易,其認證過程如圖4 所示。

圖4 動態雙因子認證技術的身份認證
圖4 中,請求的User、IP 和Umpn 分別為用戶名、IP 地址和手機號碼,手機界面在輸入用戶名之后,即可發出獲取驗證碼的請求;服務器檢查用戶名和手機號綁定相符之后,發送驗證碼挑戰信息給手機用戶,R 為驗證碼,T 為加密算法標記;手機用戶將用戶名、驗證碼和用戶名、靜態口令(Code)兩個身份因子發送給服務器,服務器認證后將結果反饋給手機用戶,其App 軟件根據反饋結果決定是否進入人機交互界面。
隨機驗證碼只在一次規定時間范圍內有效,由于安全管控的需要,該信息在傳送過程中需要加密傳輸,此外其他信息的傳送也采用密文傳送,以確保身份認證過程的安全性。
現有的加密算法很多[15],由于加密算法需要在手機應用程序中使用,因此從時間復雜度和實現的難易程度角度來看,算法不宜過于復雜,且驗證碼是一種隨機生成、短時有效的身份驗證因子,應對密碼的破解具有很強的魯棒性。借鑒互聯網企業項目中常用的加密算法,選用了TEA(Tiny Encryption Algorithm)算法用于身份認證過程中交互信息的加密[16]。
TEA 加密算法是一種分組加密方法,使用64 位的明文分組和128 位的公共密鑰,其中分組的明文和密文字長均為64 位,具備超高的抗差分分析能力,并具有較強的安全性。TEA 算法采用黃金分割率δ對每個迭代輪的加密計算進行調節,使得每輪的加密互不相同,可選16 和32 輪迭代;每輪迭代只需要進行幾次移位、異或和加法運行,算法復雜度低。TEA 是一種對稱加密方法,解密過程與加密過程是互逆的,計算過程簡單明了。由于該算法具有這些優勢,所以使用范圍非常廣泛。假設64 位分組明文為P0和P1,a、b、c、d為128 位公共密鑰,δ為常數0x9e3779b9,ε為每輪的調節參數,初值為0,則加密迭代過程的運算用類C 語言表述如下:

設64 位分組密文為E0和E1,則解密迭代過程的運算為:

根據式(1)和式(2)可以編制64 位分組的加解密函數。考慮到需要加密的信息碼不一定為64 位的整數倍,因此采用Zeros 填充方式將不足部分補0,并采用TEA 的交織算法實現多組信息的加解密運算,從而實現整條信息的加解密處理[17]。
為實現挑戰/請求的異步動態雙因子身份認證,采用手機短信(SMS)實現認證信息傳輸。在調控中心,DAS 主站部署身份認證服務器,智能手機MMI App 啟動運行之前,先進行身份認證,認證成功后進入人機交互界面。出于安全性考慮,若手機MMI App 上用戶十分鐘內無任何操作,并且沒有任何反應,則強行退出,從而防止手機意外丟失造成損失。
手機App 軟件的架構是一種層次化的結構,主要有功能層、界面層、中間件層和操作系統層,該App 主要涉及前兩層的編程實現。其中用戶界面的實現通過xml語言編寫,需設計多個.xml文件來完成所需的用戶界面元素。對應界面元素編制相應的Java程序,實現所需功能。MMI App 以Main Activity.java主函數作為入口,通過消息驅動的機制,選用對應的功能模塊,進而再調用中間件和操作系統的API 來完成功能需求。MMI App設計的部分用戶界面如圖5所示。

圖5 手機MMT App的用戶界面
手機作為FTU 的PDA 維護終端時,需要通過藍牙通道與FTU 進行數據交互。MMI App 采用擴展的Modbus 報文進行底層數據通信。為了在藍牙通道上實現Modbus 報文交互,采用了藍牙Socket 通信編程技術,并使用子線程專門管理底層輸入/輸出流(InputStream/OutputStream),根據Modbus 幀格式中的ID、FC、FL、BODY、CRC 等來構造報文接收的狀態機,在數據流中提取報文幀。由于ID 與協議其他字節一致會導致幀失步,可通過FC 和FL 的取值范圍自動修正,順移字節流中的報文頭位置解決這一問題。通信子線程自動檢測Modbus 請求幀和響應幀之間的時間跨度,判斷報文通信是否超時,一旦超時,則采用自愈方式修復,修復失敗則向用戶警示通信故障。通信子線程一旦接收到完整無誤的報文幀,便交給主線程進行解幀操作。報文幀發送則通過write 和flush 函數將字節流交給底層中間件,以便將信息發送給FTU。主線程根據功能碼和對應的幀格式解幀,從而提取所需的數據參數。
完成MMI App程序設計之后,在實驗室的一臺PC機上搭建了身份認證服務器環境和FTU 的測試運行環境,使用手機作為PDA 對FTU 進行人機交互操作,開展驗證測試,主要測試的項目和結果如表1 所示。根據軟件測試的結果,所設計的MMI App 的各項功能正常,符合技術規范書的要求。
針對采用智能手機作為FTU 手持維護終端的設計需求,分析研究有關文獻,在利用動態雙因子身份認證技術的基礎上,通過藍牙通信鏈路,建立手機與FTU 的數據交互通道,進而在智能手機上設計一款App,用于FTU 人機交互工具的構想;再根據FTU 人機交互的需求,在FTU 主板上構建藍牙通信接口,擴展Modbus 協議,使得通過手機App 作為FTU 的人機交互界面成為可行;考慮到FTU 人機交互操作的嚴謹性,要求操作者嚴格把控,確保訪問安全,借鑒移動電子商務中手機使用者身份認證的技術,將基于短信通信的動態口令雙因子異步身份認證技術引入到項目的設計之中,實現了保密身份認證的功能,使得手機MMI App 作為FTU 的人機交互界面具有較強的安全把控性。從手機MMI App 實現和測試的結果來看,所設計的人交互界面美觀大方、使用方便,滿足工程應用的需求。

表1 電磁干擾抗擾度主要檢測項目的檢測結果