福建網能科技開發有限責任公司 柳玉鑾
隨著配電網規模的不斷增大和用電客戶數量的持續增加,傳統使用于用戶側智能終端管理系統存在的監測范圍不全面、監測結果不準確等問題也在不斷凸顯,已無法滿足供電企業管理用電客戶和檢測配電網運行狀況的需求,因此設計一種運行效率高、能耗小、成本低廉的用戶側終端管理系統,已成為供電企業增強自身服務能力的關鍵所在[1]。另一方面,隨著物聯網和工業物聯網的問世和持續使用,嵌入式微處理器和嵌入式系統的適用范圍和運行性能等都得到了有效地改善,已被廣泛運用于我國的通信、汽車、軍事以及電力等多個領域,在促進上述領域智能化水平方面起到了舉足輕重的作用。
在參考相關研究資料后,結合多年工作經驗設計了一種以嵌入式Web Server為核心技術的用戶側智能終端的系統。該系統采用的是用戶直管模式,有效地避免傳統用戶側終端過度依賴PC代理的弊端,可有效滿足廣大供電企業的管理需求和用電客戶的智能用電需求。
就目前而言,越來越多的企業都將業務的重心傾向于智能家居的設計和量產領域,但就目前市場上使用的各種信息交互智能終端而言,他們都存在著一個共同的特點,就是社區系統主站只能通過PC代理的模式進行登錄,其適用范圍和使用場景等受到了很大的限制。
此外,在傳統的供電模式中由于缺乏精準的用戶用電數據,供電企業只能根據用戶以往的用電量和用電習慣等向其輸送電力能源,常常出現供電量不足或過多的情況,不僅增加了供電企業的運營成本,同時也大大降低了電力能源的有效使用率。因此,構建用戶側智能終端是供電企業快速提升盈利能力的有效途徑之一。再有就是,研發與智能電網相適應的智能用電交互終端,可全面改善智能用電技術和供電企業的服務能力,與現階段國家大力推進的智能電網發展背景下的智能用電政策相一致。所以,研究用戶側智能終端管理系統,是我國供電領域持續生存與發展的必由之路[2]。
文章所設計的智能用電信息交互系統主要包含智能用電信息交互平臺、通信信道以及應用現場3個部分。其中智能用電信息交互平臺由數據庫服務器、Web服務器、通訊服務器、應用工作站、磁盤陣列、機構服務器以及GPS時鐘等7個設備組成,主要用于獲取、整理和管理用戶用電數據信息;通信信道主要包含了遠程通信信道和本地通信信道兩個部分。遠程通信信道指的是智能用電信息交互平臺與計量自動化系統、現場應用等模塊之間的通信信道。通信服務器主要采用Internet作為通信方式,它能有效確保信息交互過程始終處于一種高效、穩定、可靠的通信網絡中,且這種通信方式還具備了成本低、帶寬高、靈活快速、可拓展以及方便管理等優勢,可滿足系統通信需求。
此外,系統還采用了以太網方式為主的通信模式,該模式主要由路由器、防火墻等設備組成,其中防火墻主要應用于智能用電信息交互平臺與計量自動化等系統之間,有效確保了系統信息的安全。本地通信信道指的則是用戶側的本地網絡,主要采用了無線通信技術ZigBee、WiFi、低壓電力線載波等通信方式來實現其通信功能;應用現場由用戶側智能終端、智能電表、智能家電、智能安防、分布式電源、溫濕壓記錄儀等多種設備組成。
本方案的硬件平臺主要運用了ARM11系列的微處理器作為系統的硬件核心模塊,并在該模塊上運行Android操作系統、嵌入式數據庫(SQLite)、Web server(I-Jetty)及業務處理模塊。系統硬件主要由微處理器ARM11、電源系統、通信系統、外部設備接口、存儲系統以及用戶接口6個部分組成,同時在外圍設備和拓展模塊中添加設備接口、地址譯碼等功能。Data Flash的主要作用是負責對處理器結構、工作模式、系統自動化檢測等硬件設施進行配置和監測,SDRAM的作用是負責處理軟件系統的所有文件。系統在經歷過初始化、自檢等操作后,便可按照引導程序確定運行地址,并自動開始運行。
圖1 嵌入式Web server用戶側智能終端硬件框架圖
3.2.1 系統軟件框架
用戶側智能終端系統軟件包含了底層驅動、系統、協議棧以及應用層4個部分,其中底層驅動包括:WiFi接口、無線通信技術ZigBee接口、紅外通信接口、TTL、Data Flash、TFT液晶、觸摸屏、USB接口、SD卡座等外圍設備驅動;終端系統主要運用的是Android嵌入式系統;協議棧包含TCP/IP協議棧、上行通訊協議棧、下行通訊協議棧以及ZigBee協議棧;應用層由Web Server服務器,業務處理模塊以及GUI三個部分組成。業務應用層次所具備的功能有智能能源管理、智能安全管理、智能自動化管理以及智能環境質量檢測等幾個模塊。
3.2.2 Android平臺建立
Android是用戶側智能管理中相對獨立和相對完整的嵌入式子系統,主要涵蓋了底層內核(Linux)、中間件以及關鍵應用軟件。Android系統中有著一套生成Make file的程序和獨立的變量和宏。開發人員能夠運用系統中的使用變量編寫Android build系 統 的Make file—Android.mk。每個模塊(如一個應用、一個共享庫等),均擁有屬于自己的Android.mk。在編譯的過程中,Android.mk里面的宏會被展開為相應的make規則,變量也能夠被代入相應的規則。待整個Android源碼編譯結束后,系統中生成的二進制文件、image等就會被自動安裝在Out/目錄下。
3.2.3 嵌入式系統TCP/IP
協議簇主要包含了傳輸控制協議、網際協議、用戶數據報送協議以及信息報送控制協議四種,文章所介紹的系統采用的是傳輸控制協議TCP和網際協議IP協議簇,考慮TCP/IP協議簇都有著繁雜的協議種類,所以為確保TCP/IP協議能夠更好地適應嵌入式系統,我們在選擇協議簇之前根據具體應用的對協議內容進行適當的精簡[3]。例如,考慮到家庭用戶是嵌入式Web Server用戶側智能終端管理系統的主要應用對象,用戶連接數和應用數據量等都處于一個相對較小的范圍。所以,我們在設計該智能管理終端時,除了需要考慮全面滿足應用外,還需要綜合考慮系統的能源消耗問題。
本方案選用的TCP協議主要采用的是“停止等待算法”,它與常規應用的“滑動窗口算法”相比,具有能耗小、計算更加快速精準等優勢。同時,“停止等待算法”不僅降低了實現系統智能化的難度,還增強了系統處理用戶數據的能力和速度。此外,應用數據量小,還預示著嵌入式Web Server用戶側智能終端管理系統對網絡的要求不高,因此可以刪減掉TCP協議中的流量控制功能。再有就是可以通過取消TCP協議發送緩沖區和接收緩沖區的方式,降低協議對存儲環境的要求。如此一來,不但實現了降低系統耗能的目的,還能為戶數段安全、穩定、高效的傳輸提供可靠的渠道。
3.2.4 HTTP協議及實現
服務程序協議HTTP引擎是嵌入式Web Server技術的核心,而HTTP協議則是Web應用的標準協議,HTTP1.1標準協議的應用,能夠幫助系統實現在瀏覽器和服務器之間為多個HTTP事務提供同一個TCP連接,該功能的實現使智能管理系統的智能化水平和穩定性能等都得到了顯著的提升。所以,將HTTP1.1協議應用于Web服務器具有明顯的可行性和效益性。嵌入式Web Server主要通過小服務程序Servlet接口在HTML(超文本鏈接標示語言)文件中運行,供隨機存取存貯器RAM讀/寫數據。HTML頁面內容通過只讀存儲器中的壓縮文件和快速運行的代碼動態產生。
另一方面,系統應用代碼主要是通過Java和Java腳本等技術在客戶端生成,因此服務端的主要任務就只是發布網頁,該模式有效減少了服務端的代碼和容量,從根本上提升了服務器的運行質量和運行效率。為有效降低嵌入式系統的資源消耗量,本設計還將嵌入式Webl5-6制作成單任務模式,使系統只需要對正在進行的HTTP協議連接復用和為獨立用戶Servlet開辟進程即可,有效避免了傳統用戶側智能服務終端中存在的需要開辟每個進入服務端連接進程和處理多路復用進程的弊端。
3.2.5 I-Jetty服務器的移植與部署
Jetty服務器是一個可以在Android移動設備平臺上運行的Jetty。該服務器完全由Java實現,經常被作為一個福利的服務軟件被使用,它不僅是一個開源的HTTP服務器,還是javax和servlet等服務器的容器,有著高內聚、低耦合以及擴展性強等優勢,適合作為嵌入式Web Server用戶側智能終端的移植和部署服務器。I-Jetty服務器在智能終端系統中的應用始終遵循了簡單、易操作的指導原則,一進入市場就因部署速度快、發布信息及時等優勢被廣泛應用于各種智能化設備中。I-Jetty服務器還具有可插拔和可擴展的優勢,能被輕松地嵌入到各種類型的產品和系統中。
總而言之,I-Jetty服務器具備了適用范圍廣、速度快、體積小等優勢,是嵌入式環境下Web Server開發中移植和部署的首選服務器。操作流程大致如下:首先,對事先開發好的應用程序進行編譯,生成WAR包,并將其移動到I-Jetty服務器的Web apps目錄下;其次,創建一個Server對象,同時設置端口,為Server對象添加一個默認的Handler;再次,用配置文件Jetty.xml設置Server對象;最后,通過Java向Jetty服務器發出啟動指令,待服務器啟動后即可實現遠程訪問和遠程操作等功能。
3.2.6 基于Java Bean+Servlet模型的動態頁面實現
Java Bean是以Java語言為基礎構建的一種可重用組件,Java Bean的應用,可以將智能終端管理系統中由Java代碼創造的對象進行打包,并且為其他開發者通過內部頁面和Servlet提供了通道,使得其他Java Bean以及小型應用程序等可以自由地使用這些對象[4]。Servlet則是一種服務器端的Java應用小型服務程序,擁有獨立的平臺和協議,是生成動態Web頁面的核心技術。Servlet的主要任務是負責處理客戶的請求和相應服務器的中間層。它位于Web服務器內部的Java應用程序中,運行原理與傳統的從命令到運行再到啟動Java應用程序不同,Servlet主要是通過Web服務器進行加載。
Java Bean+Servlet模型是按照視圖控制器的原理進行設計的,主要由Model層、View層和Controller層三個部分組成。其中Model層的主要功能是實現業務邏輯,負責存儲與使用應用程序產生的數據資料;View層則主要被用于用戶界面的現實,它能夠自由訪問Model層的數據信息;Controller層是控制和聯系Model層與View層。Java Bean+Servlet模型在具體的使用過程中,各層級之間相互協作,有效實現了對客戶端數據的收集、轉化和應用。該模式所具備的功能如下:
第一,由Java Bean作為Model層實現具體的應用邏輯和功能;第二,由Servlet作為Controller層處理HTTP請求,包括對輸入數據的檢查和轉換、通過Java Bean訪問數據庫、初始化HTML頁面中需要使用的Java Bean和對象,以及根據處理的分支和結果判斷HTML位置等;第三,將HTML作為View層獲取Servlet生成的對象和Java Bean,待取出其中的數據后返回生成交互信息的頁面。