張晨飛,王 錦,王嘉浩,董 馳
(1.西安工程大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院西安 710048;2.西安工程大學(xué)機(jī)電工程學(xué)院西安 710048)
由于泛在電力物聯(lián)網(wǎng)技術(shù)的迅猛進(jìn)步以及配電網(wǎng)物聯(lián)網(wǎng)自動(dòng)化技術(shù)的逐步完善,配電網(wǎng)自動(dòng)化監(jiān)控的覆蓋范圍也在日益增大[1-2]。配電饋線終端(Feeder Terminal Unit,FTU)是配電網(wǎng)自動(dòng)化系統(tǒng)(Distribution Automatic System,DAS)的重要組成部件,主要用于實(shí)現(xiàn)配電網(wǎng)分段開關(guān)的在線狀態(tài)監(jiān)視、故障隔離和供電恢復(fù)等功能[2-4]。但是,F(xiàn)TU 架設(shè)在塔(柱)上,現(xiàn)場(chǎng)維護(hù)十分不便,采用有線和紅外光頭連接都需要登高打開配電箱門進(jìn)行通信連接[5]。文獻(xiàn)[5-6]提出了FTU 無(wú)接觸維護(hù)的思想,設(shè)計(jì)專門的PDA(Portable Data Assistant)終端作為FTU 的人機(jī)交互界面,能夠極大地便捷FTU 巡檢維護(hù)。隨著物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,智能手機(jī)App 已成為一種大眾喜愛的手持移動(dòng)終端應(yīng)用[7]。但是,F(xiàn)TU 的監(jiān)控對(duì)象為配電網(wǎng)柱上的分段開關(guān),嚴(yán)禁非指定專業(yè)人員操控,否則將導(dǎo)致停電事故的發(fā)生[5-8]。因此,若要利用手機(jī)App 作為FTU 的PDA 終端維護(hù)應(yīng)用,則必須具有穩(wěn)妥可靠的安全管控措施。隨著移動(dòng)電子商務(wù)技術(shù)的發(fā)展,智能手機(jī)已經(jīng)成為一種廣泛使用的在線購(gòu)物、支付、銀行轉(zhuǎn)賬的工具,對(duì)手機(jī)App 的安全管控技術(shù)已經(jīng)日益成熟[9-10]。采用移動(dòng)電子商務(wù)中手機(jī)身份認(rèn)證技術(shù)確定手機(jī)App 操作員的身份,再授權(quán)其對(duì)FTU 進(jìn)行維護(hù)操作,可以確保手機(jī)App 操作的安全性。為了實(shí)現(xiàn)手機(jī)App 的身份認(rèn)證,采用動(dòng)態(tài)雙因子身份認(rèn)證技術(shù)對(duì)操作員身份進(jìn)行異步驗(yàn)證,驗(yàn)證通過(guò)后才授權(quán)進(jìn)行人機(jī)交互操作[11-12]。為了建立智能手機(jī)與FTU 的無(wú)線連接,利用手機(jī)自帶的藍(lán)牙通信端口,在FTU 上擴(kuò)展藍(lán)牙通信接口,實(shí)現(xiàn)數(shù)據(jù)無(wú)線傳輸通道的建立[13-14]?;谝陨系难芯糠治?,完成了一種專門應(yīng)用于FTU 無(wú)接觸維護(hù)的手機(jī)App設(shè)計(jì),下面就設(shè)計(jì)的實(shí)現(xiàn)技術(shù)進(jìn)行具體介紹。
FTU 通常架設(shè)在塔(柱)上運(yùn)行,為了方便開展巡檢維護(hù)工作,理想的方法就是使用PDA 終端進(jìn)行無(wú)接觸式維護(hù),既便于操作,又可以保證巡檢人員的人身安全。智能手機(jī)具有攜帶方便、界面美觀、操作簡(jiǎn)單等優(yōu)點(diǎn),作為FTU 的維護(hù)終端是一種理想的選擇??紤]到電力設(shè)備操作的嚴(yán)謹(jǐn)性,利用智能手機(jī)App 作為PDA 實(shí)現(xiàn)與FTU 的人機(jī)交互時(shí),必須嚴(yán)格管控操作員身份,避免非指定人員對(duì)電力設(shè)備進(jìn)行控制操作,造成停電事故。安全管控智能手機(jī)應(yīng)用的最理想和有效的方法是操作人身份認(rèn)證,只有滿足身份認(rèn)證條件的操作人員方能被授權(quán)進(jìn)行維護(hù)操作。智能手機(jī)作為FTU維護(hù)PDA的構(gòu)思如圖1所示。
圖1 手機(jī)作為FTU無(wú)接觸維護(hù)PDA的構(gòu)想
FTU 主要實(shí)現(xiàn)柱上分段開關(guān)的在線監(jiān)視和控制,需要采集8 路開關(guān)量(遙信)、10 個(gè)交流模擬量(遙測(cè))、1 個(gè)分段開關(guān)的分合操作和保護(hù)動(dòng)作(遙控);需要與DAS 主站采用移動(dòng)4G 網(wǎng)絡(luò)實(shí)現(xiàn)IEC104協(xié)議數(shù)據(jù)交互,采用GPRS 實(shí)現(xiàn)IEC101 協(xié)議數(shù)據(jù)交互;采用互感器竊電方式獲取工作電源,供電子系統(tǒng)根據(jù)開關(guān)所在區(qū)段采用蓄電池或超級(jí)電容器作為后備儲(chǔ)電元件,需要對(duì)其進(jìn)行充放電管理,為此FTU 選用ARM Cortex M4F 作為總控CPU,實(shí)現(xiàn)各項(xiàng)功能的管理控制。
從人機(jī)交互的角度,有兩種不同的需求,其一是設(shè)備制造商的生產(chǎn)調(diào)試與檢修,對(duì)嵌入式系統(tǒng)的自檢和工作狀態(tài)進(jìn)行調(diào)試檢測(cè),需要觀測(cè)各個(gè)組件的狀態(tài)以及報(bào)文通信流程;其二是電力用戶,需要觀測(cè)一次電力設(shè)備的工作狀態(tài)和電氣運(yùn)行參數(shù),進(jìn)行傳動(dòng)試驗(yàn)和系統(tǒng)聯(lián)調(diào)。電力用戶在安裝調(diào)試的過(guò)程中,希望直接操作FTU 的按鍵,以便從液晶屏進(jìn)行觀測(cè);在對(duì)設(shè)備巡檢維護(hù)時(shí),希望在地面使用PDA 直接與FTU 進(jìn)行人機(jī)交互。FTU 是商業(yè)化產(chǎn)品,需設(shè)計(jì)友好的人機(jī)交互方式,以滿足各自需求,方便產(chǎn)品的使用。
為此,F(xiàn)TU 設(shè)計(jì)了3 種人機(jī)交互方式,其中,為模板生產(chǎn)調(diào)試設(shè)計(jì)了超級(jí)終端接口,F(xiàn)TU 機(jī)殼面板配置了按鍵液晶顯示界面,并擴(kuò)展了藍(lán)牙通信模塊以支持PDA 無(wú)接觸式運(yùn)維操作。為了簡(jiǎn)化FTU 人機(jī)交互子系統(tǒng)的設(shè)計(jì),3 種方式共用1 個(gè)異步串口,操作面板以ARM7 做成智能MMI 卡,采用擴(kuò)展的類Modbus 協(xié)議實(shí)現(xiàn)主板與MMI 卡和手機(jī)PDA 的數(shù)據(jù)交互,實(shí)現(xiàn)人機(jī)交互功能。FTU 人機(jī)交互子系統(tǒng)的框圖如圖2 所示。
圖2 FTU人機(jī)交互子系統(tǒng)的工作原理
圖2 中,只要與3 種人機(jī)交互分時(shí)進(jìn)行,就可避免發(fā)生訪問沖突。VT100 和Modbus 兩種訪問方式需要通過(guò)命令切換,正常運(yùn)行時(shí),為用戶模式,在使用超級(jí)終端進(jìn)行操作前,連續(xù)點(diǎn)擊3 次ESC 鍵,切換至VT100 模式。利用超級(jí)終端發(fā)送命令和FTU 復(fù)位即可恢復(fù)到用戶模式。
為了在FTU 和手機(jī)藍(lán)牙端口之間搭建通信信道,需要在FTU 主板上擴(kuò)展藍(lán)牙通信的接口,在硬件設(shè)計(jì)上予以支持。為了簡(jiǎn)化硬件電路設(shè)計(jì),直接采購(gòu)了藍(lán)牙DCE 模板進(jìn)行集成設(shè)計(jì)。所選用的藍(lán)牙模塊支持藍(lán)牙4.0 規(guī)范,工作溫度范圍為-40~80 ℃,滿足應(yīng)用需求。藍(lán)牙DCE 板與MCU 連接的電路原理如圖3 所示。
圖3 藍(lán)牙模塊與MCU連接的電路原理
為了實(shí)現(xiàn)兩個(gè)藍(lán)牙設(shè)備之間的通信,需要在二者之間建立通信連接。根據(jù)應(yīng)用需求,在FTU 和手機(jī)之間建立點(diǎn)對(duì)點(diǎn)的連接即可,無(wú)需建立復(fù)雜的微微AS 網(wǎng)。具體實(shí)現(xiàn)時(shí),設(shè)置FTU 上的藍(lán)牙模塊處于主方式,設(shè)置規(guī)定的藍(lán)牙設(shè)備名稱,手機(jī)藍(lán)牙端口處于從方式,由手機(jī)搜索FTU 的藍(lán)牙設(shè)備,并建立連接。藍(lán)牙連接建立之后,調(diào)用底層驅(qū)動(dòng)服務(wù),即可實(shí)現(xiàn)二者之間字節(jié)流的交互。
為了實(shí)現(xiàn)FTU 主板與MMI 卡、手機(jī)MMI App 之間的數(shù)據(jù)交互,在遵循Modbus RTU 協(xié)議規(guī)范的基礎(chǔ)上,擴(kuò)展了私有功能碼0x61~0x66,分別實(shí)現(xiàn)召喚監(jiān)控信息、召喚配置參數(shù)、下達(dá)控制命令等6 條命令,實(shí)現(xiàn)相應(yīng)的人機(jī)交互操作。例如,召喚時(shí)間和FTU的運(yùn)行狀態(tài)命令的幀為ID、0x61、0x01、0x00、0x00、0x00、CRCH、CRCL,對(duì)應(yīng)的響應(yīng)幀為ID、0x61、0x08、msL、msH、hour、sec、year、mon、day、status、CRCH、CRCL,由此實(shí)現(xiàn)一個(gè)界面的信息刷新[8]。擴(kuò)展的協(xié)議幀為企業(yè)標(biāo)準(zhǔn),在一定程度上避免了其他PDA 與本FTU 的信息交互。
計(jì)算機(jī)設(shè)備之間進(jìn)行身份認(rèn)證的方法很多,目前廣泛使用的方法為動(dòng)態(tài)雙因子驗(yàn)證技術(shù),即靜態(tài)用戶名、口令和動(dòng)態(tài)驗(yàn)證碼,身份認(rèn)證服務(wù)器還實(shí)現(xiàn)了手機(jī)號(hào)碼和靜態(tài)用戶名和口令的綁定。由于手機(jī)號(hào)碼和持有者緊密關(guān)聯(lián),靜態(tài)口令作為一級(jí)安全防護(hù),驗(yàn)證碼是服務(wù)器動(dòng)態(tài)生成的隨機(jī)數(shù)且一次有效,因此作為第二級(jí)安全防護(hù)使得身份認(rèn)證的可靠性更高。動(dòng)態(tài)雙因子認(rèn)證技術(shù)是一種異步驗(yàn)證方式,實(shí)現(xiàn)技術(shù)相對(duì)容易,其認(rèn)證過(guò)程如圖4 所示。
圖4 動(dòng)態(tài)雙因子認(rèn)證技術(shù)的身份認(rèn)證
圖4 中,請(qǐng)求的User、IP 和Umpn 分別為用戶名、IP 地址和手機(jī)號(hào)碼,手機(jī)界面在輸入用戶名之后,即可發(fā)出獲取驗(yàn)證碼的請(qǐng)求;服務(wù)器檢查用戶名和手機(jī)號(hào)綁定相符之后,發(fā)送驗(yàn)證碼挑戰(zhàn)信息給手機(jī)用戶,R 為驗(yàn)證碼,T 為加密算法標(biāo)記;手機(jī)用戶將用戶名、驗(yàn)證碼和用戶名、靜態(tài)口令(Code)兩個(gè)身份因子發(fā)送給服務(wù)器,服務(wù)器認(rèn)證后將結(jié)果反饋給手機(jī)用戶,其App 軟件根據(jù)反饋結(jié)果決定是否進(jìn)入人機(jī)交互界面。
隨機(jī)驗(yàn)證碼只在一次規(guī)定時(shí)間范圍內(nèi)有效,由于安全管控的需要,該信息在傳送過(guò)程中需要加密傳輸,此外其他信息的傳送也采用密文傳送,以確保身份認(rèn)證過(guò)程的安全性。
現(xiàn)有的加密算法很多[15],由于加密算法需要在手機(jī)應(yīng)用程序中使用,因此從時(shí)間復(fù)雜度和實(shí)現(xiàn)的難易程度角度來(lái)看,算法不宜過(guò)于復(fù)雜,且驗(yàn)證碼是一種隨機(jī)生成、短時(shí)有效的身份驗(yàn)證因子,應(yīng)對(duì)密碼的破解具有很強(qiáng)的魯棒性。借鑒互聯(lián)網(wǎng)企業(yè)項(xiàng)目中常用的加密算法,選用了TEA(Tiny Encryption Algorithm)算法用于身份認(rèn)證過(guò)程中交互信息的加密[16]。
TEA 加密算法是一種分組加密方法,使用64 位的明文分組和128 位的公共密鑰,其中分組的明文和密文字長(zhǎng)均為64 位,具備超高的抗差分分析能力,并具有較強(qiáng)的安全性。TEA 算法采用黃金分割率δ對(duì)每個(gè)迭代輪的加密計(jì)算進(jìn)行調(diào)節(jié),使得每輪的加密互不相同,可選16 和32 輪迭代;每輪迭代只需要進(jìn)行幾次移位、異或和加法運(yùn)行,算法復(fù)雜度低。TEA 是一種對(duì)稱加密方法,解密過(guò)程與加密過(guò)程是互逆的,計(jì)算過(guò)程簡(jiǎn)單明了。由于該算法具有這些優(yōu)勢(shì),所以使用范圍非常廣泛。假設(shè)64 位分組明文為P0和P1,a、b、c、d為128 位公共密鑰,δ為常數(shù)0x9e3779b9,ε為每輪的調(diào)節(jié)參數(shù),初值為0,則加密迭代過(guò)程的運(yùn)算用類C 語(yǔ)言表述如下:
設(shè)64 位分組密文為E0和E1,則解密迭代過(guò)程的運(yùn)算為:
根據(jù)式(1)和式(2)可以編制64 位分組的加解密函數(shù)。考慮到需要加密的信息碼不一定為64 位的整數(shù)倍,因此采用Zeros 填充方式將不足部分補(bǔ)0,并采用TEA 的交織算法實(shí)現(xiàn)多組信息的加解密運(yùn)算,從而實(shí)現(xiàn)整條信息的加解密處理[17]。
為實(shí)現(xiàn)挑戰(zhàn)/請(qǐng)求的異步動(dòng)態(tài)雙因子身份認(rèn)證,采用手機(jī)短信(SMS)實(shí)現(xiàn)認(rèn)證信息傳輸。在調(diào)控中心,DAS 主站部署身份認(rèn)證服務(wù)器,智能手機(jī)MMI App 啟動(dòng)運(yùn)行之前,先進(jìn)行身份認(rèn)證,認(rèn)證成功后進(jìn)入人機(jī)交互界面。出于安全性考慮,若手機(jī)MMI App 上用戶十分鐘內(nèi)無(wú)任何操作,并且沒有任何反應(yīng),則強(qiáng)行退出,從而防止手機(jī)意外丟失造成損失。
手機(jī)App 軟件的架構(gòu)是一種層次化的結(jié)構(gòu),主要有功能層、界面層、中間件層和操作系統(tǒng)層,該App 主要涉及前兩層的編程實(shí)現(xiàn)。其中用戶界面的實(shí)現(xiàn)通過(guò)xml語(yǔ)言編寫,需設(shè)計(jì)多個(gè).xml文件來(lái)完成所需的用戶界面元素。對(duì)應(yīng)界面元素編制相應(yīng)的Java程序,實(shí)現(xiàn)所需功能。MMI App 以Main Activity.java主函數(shù)作為入口,通過(guò)消息驅(qū)動(dòng)的機(jī)制,選用對(duì)應(yīng)的功能模塊,進(jìn)而再調(diào)用中間件和操作系統(tǒng)的API 來(lái)完成功能需求。MMI App設(shè)計(jì)的部分用戶界面如圖5所示。
圖5 手機(jī)MMT App的用戶界面
手機(jī)作為FTU 的PDA 維護(hù)終端時(shí),需要通過(guò)藍(lán)牙通道與FTU 進(jìn)行數(shù)據(jù)交互。MMI App 采用擴(kuò)展的Modbus 報(bào)文進(jìn)行底層數(shù)據(jù)通信。為了在藍(lán)牙通道上實(shí)現(xiàn)Modbus 報(bào)文交互,采用了藍(lán)牙Socket 通信編程技術(shù),并使用子線程專門管理底層輸入/輸出流(InputStream/OutputStream),根據(jù)Modbus 幀格式中的ID、FC、FL、BODY、CRC 等來(lái)構(gòu)造報(bào)文接收的狀態(tài)機(jī),在數(shù)據(jù)流中提取報(bào)文幀。由于ID 與協(xié)議其他字節(jié)一致會(huì)導(dǎo)致幀失步,可通過(guò)FC 和FL 的取值范圍自動(dòng)修正,順移字節(jié)流中的報(bào)文頭位置解決這一問題。通信子線程自動(dòng)檢測(cè)Modbus 請(qǐng)求幀和響應(yīng)幀之間的時(shí)間跨度,判斷報(bào)文通信是否超時(shí),一旦超時(shí),則采用自愈方式修復(fù),修復(fù)失敗則向用戶警示通信故障。通信子線程一旦接收到完整無(wú)誤的報(bào)文幀,便交給主線程進(jìn)行解幀操作。報(bào)文幀發(fā)送則通過(guò)write 和flush 函數(shù)將字節(jié)流交給底層中間件,以便將信息發(fā)送給FTU。主線程根據(jù)功能碼和對(duì)應(yīng)的幀格式解幀,從而提取所需的數(shù)據(jù)參數(shù)。
完成MMI App程序設(shè)計(jì)之后,在實(shí)驗(yàn)室的一臺(tái)PC機(jī)上搭建了身份認(rèn)證服務(wù)器環(huán)境和FTU 的測(cè)試運(yùn)行環(huán)境,使用手機(jī)作為PDA 對(duì)FTU 進(jìn)行人機(jī)交互操作,開展驗(yàn)證測(cè)試,主要測(cè)試的項(xiàng)目和結(jié)果如表1 所示。根據(jù)軟件測(cè)試的結(jié)果,所設(shè)計(jì)的MMI App 的各項(xiàng)功能正常,符合技術(shù)規(guī)范書的要求。
針對(duì)采用智能手機(jī)作為FTU 手持維護(hù)終端的設(shè)計(jì)需求,分析研究有關(guān)文獻(xiàn),在利用動(dòng)態(tài)雙因子身份認(rèn)證技術(shù)的基礎(chǔ)上,通過(guò)藍(lán)牙通信鏈路,建立手機(jī)與FTU 的數(shù)據(jù)交互通道,進(jìn)而在智能手機(jī)上設(shè)計(jì)一款A(yù)pp,用于FTU 人機(jī)交互工具的構(gòu)想;再根據(jù)FTU 人機(jī)交互的需求,在FTU 主板上構(gòu)建藍(lán)牙通信接口,擴(kuò)展Modbus 協(xié)議,使得通過(guò)手機(jī)App 作為FTU 的人機(jī)交互界面成為可行;考慮到FTU 人機(jī)交互操作的嚴(yán)謹(jǐn)性,要求操作者嚴(yán)格把控,確保訪問安全,借鑒移動(dòng)電子商務(wù)中手機(jī)使用者身份認(rèn)證的技術(shù),將基于短信通信的動(dòng)態(tài)口令雙因子異步身份認(rèn)證技術(shù)引入到項(xiàng)目的設(shè)計(jì)之中,實(shí)現(xiàn)了保密身份認(rèn)證的功能,使得手機(jī)MMI App 作為FTU 的人機(jī)交互界面具有較強(qiáng)的安全把控性。從手機(jī)MMI App 實(shí)現(xiàn)和測(cè)試的結(jié)果來(lái)看,所設(shè)計(jì)的人交互界面美觀大方、使用方便,滿足工程應(yīng)用的需求。
表1 電磁干擾抗擾度主要檢測(cè)項(xiàng)目的檢測(cè)結(jié)果