首頁 新聞 > 科技 > 正文

需求側管理型能效監(jiān)測終端的設計

引言

本文引用地址:http://www.eepw.com.cn/article/233866.htm

在能效監(jiān)測現(xiàn)場,能效監(jiān)測終端是主要實現(xiàn)采集物理量(溫度、流量、電量等)的設備,且是用戶交互的唯一硬件設備,傳統(tǒng)的能效監(jiān)測終端等同于能效采集終端,與用戶的交互很少。在能效需求側管理體系中,作為需求側的主要設備,能效監(jiān)測終端需要承擔與監(jiān)控主站的雙向交互,以及與用戶的雙向交互任務。本文研究并實現(xiàn)了一種基于多媒體顯示、具備雙向交互功能的能效監(jiān)測終端,為能效的需求側管理提供了可靠的實現(xiàn)手段。

1 硬件設計

首先本文從硬件組成上來分析實現(xiàn)能效監(jiān)測終端的細節(jié)。終端由以下幾大核心硬件單元組成:具備多媒體協(xié)處理器的中央處理器Freescale i.mx51、LVDS液晶顯示接口、以太網(wǎng)RJ45、433MHz微功率無線、GPRS接口、基于RS485的數(shù)字通信接口。硬件組成原理如圖1所示。

如圖1所示,硬件設計總體包含三部分,即數(shù)據(jù)通信接口部分、核心處理部分、人機交互部分。其中:

1)數(shù)據(jù)通信接口包含2個RS485串口,用于連接數(shù)字型傳感器;1個R232用于本地維護;1個RJ45以太網(wǎng)接口,用于與后臺主站的遠程連接;1路433MHz的微功率無線通信接口,用于無線數(shù)據(jù)采集;1路GPRS通信接口,用于遠程連接后臺主站。可以看出,為了增強通信適應性,終端在前端采集上預置了多路獨立串口,后端遠程通信預置了以太網(wǎng)和GPRS接口,而這些接口的基礎均為獨立串口。

2)核心處理部分由i.mx51、NAND FLASH、SDRAM構成最小系統(tǒng),NAND FLASH存儲系統(tǒng)映像和文件系統(tǒng),SDRAM為系統(tǒng)程序執(zhí)行提供內存,在系統(tǒng)啟動階段為程序重定向提供運行空間。

3)人機交互部分由LVDS液晶接口和觸摸控制接口組成,LVDS液晶接口具備很強的抗電磁干擾特性,數(shù)據(jù)防干擾能力強;觸摸屏接口采用在工業(yè)領域應用廣泛的電阻式觸摸屏接口,以適應復雜苛刻的現(xiàn)場環(huán)境。

除以上幾部分,終端電源采用線性電源方案設計,如圖2所示。

2 嵌入式軟件設計

能效監(jiān)測終端的軟件由啟動程序、嵌入式Linux操作系統(tǒng)層、中間件層、應用程序層組成。

2.1 啟動程序bootloader設計

啟動程序bootloader是板級嵌入式軟件系統(tǒng)的基礎,終端上電執(zhí)行的第一部分程序便是bootloader。實現(xiàn)終端主要硬件接口的驅動、系統(tǒng)啟動代碼等。系統(tǒng)啟動代碼完成處理器初始化、內存初始化、堆??臻g準備、程序代碼重定向等系統(tǒng)啟動的準備工作[1]。啟動程序流程如圖3所示:

以上流程較為特殊的地方在于程序重定向的過程:i.mx51冷啟動后,NAND FLASH控制器中有2K 的SRAM會被用作boot RAM,根據(jù)硬件設計如果支持從NAND FLASH啟動的話,i.mx51會將NAND FLASH中的前2K的數(shù)據(jù)自動拷貝到NAND FLASH 控制器中的 RAM中,并且自動跳轉到該2K RAM的開始地址 0xD0000000開始執(zhí)行。bootloader固件被燒寫到NAND FLASH的0地址處,所以bootloader的前2K代碼被拷貝到0xD0000000。

2.2 特殊的驅動程序設計

能效監(jiān)測終端的軟件基于Linux系統(tǒng)設計完成,而典型的Linux系統(tǒng)框架具備常用的串口UART驅動、FLASH驅動等。但是對于較為特殊的以太網(wǎng)驅動、433MHz驅動,需要做特殊的驅動程序設計,特征如下:

a)本文所研究的能效監(jiān)測終端在以太網(wǎng)通信上有較特殊的要求,因此需做特殊的移植和修改,使得以太網(wǎng)的驅動支持直接收發(fā)以太網(wǎng)數(shù)據(jù)包?;舅悸窞楸3衷序寗涌蚣懿蛔?,(1)加入以太網(wǎng)讀寫接口;(2)修改以太網(wǎng)數(shù)據(jù)發(fā)送接口,截斷原來的發(fā)送數(shù)據(jù)接口;(3)修改以太網(wǎng)數(shù)據(jù)接收接口,使得數(shù)據(jù)接收后不直接向上層遞交而是送入自定義內存中。

b)433MHz的驅動實現(xiàn)為字符型驅動,驅動的工作流程為:初始化設備即初始化對應管腳并使能中斷;按照433MHz的通信協(xié)議構建數(shù)據(jù)包并發(fā)送給無線基帶芯片Si4432;當Si4432接收到數(shù)據(jù)與協(xié)議包格式不符時,產生中斷,重發(fā)數(shù)據(jù)。

2.3 GUI中間件

為了實現(xiàn)需求側管理,顯示交互是終端必備的功能。本文研究實現(xiàn)了基于framebuffer的輕量型GUI中間件,是下一步編寫圖形應用程序的基礎。本文實現(xiàn)的輕量型GUI中間件,具有如下的幾個組成部分:

1)用戶交互模塊,為應用程序提供API接口函數(shù),屏蔽了GUI的實現(xiàn)細節(jié)。

2)對象管理,實現(xiàn)對窗口環(huán)境中的邏輯對象的組織管理。包括對象的添加和刪除,GUI窗口顯示的維護,如窗口切換、焦點切換、對象的隱藏和恢復等操作引發(fā)的對象屬性的更新,還有對不同控件的各種事件的響應。

3)基本圖形組件,實現(xiàn)了對顯示輸出設備的操作。一般獨立于具體的設備驅動程序,與物理設備之間形成“設備抽象層”。

4)消息驅動機制,負責GUI的消息接收和與其它任務的通訊以及消息隊列的維護。

5)定時器及顯存管理,定時器用于向服務器發(fā)送定時器消息,主要用于消息隊列的管理和定時等。顯存管理主要用于消除顯示過程中出現(xiàn)的屏幕閃爍現(xiàn)象。

消息驅動機制是輕量型GUI中間件最大化利用有限資源實現(xiàn)GUI操作的重要手段[3],硬件設備(比如按鍵)產生動作事件,系統(tǒng)生成消息,消息分發(fā)至對應的消息處理任務。在未收到消息時,消息處理任務維持消息隊列循環(huán)等待,如圖4所示。

GUI中間件采用了客戶/服務器的工作模式,為了減輕服務器端的負荷,本文的GUI只是把輸入設備事件處理和顯示輸出任務交給服務器,以此提高執(zhí)行速度[4]。

應用程序調用GUI中間件的圖形庫、組件庫等,調用機制與windows的消息響應機制類似。如調用圖表繪制組件,應用程序前端顯示刷新組件,應用程序后端進入消息循環(huán),等待數(shù)據(jù)處理任務的消息,實現(xiàn)數(shù)據(jù)的響應刷新。

2.4 應用程序及數(shù)據(jù)傳輸協(xié)議

終端具備三大主體功能:數(shù)據(jù)采集、數(shù)據(jù)處理和存儲、數(shù)據(jù)顯示與通信。借助硬件和底層軟件的支持,應用程序實現(xiàn)流程如下圖4。

應用程序由圖形顯示模塊、服務器交互通信模塊、數(shù)據(jù)采集模塊、數(shù)據(jù)分析和存儲模塊、異步數(shù)據(jù)通信模塊等組成。其中,與服務器采用優(yōu)化的JSON協(xié)議作為基礎協(xié)議,實現(xiàn)數(shù)據(jù)的實時同步更新。

JSON是一種輕量級的數(shù)據(jù)通信協(xié)議,一定程度上類似XML協(xié)議,但支持的數(shù)據(jù)格式更加廣泛,通信更加高效[2]。終端實現(xiàn)JSON協(xié)議解析,主要依靠兩個解析類實現(xiàn):JSONObject和JSONArray。其中,JSONObject用于把對象型的JSON數(shù)據(jù)轉化成JSONObject對象,然后使用get系列方法獲取對象屬性的數(shù)據(jù),最常用的方法是getString;JSONArray用于把數(shù)組型的JSON數(shù)據(jù)轉化成JSONArray對象,該類所提供方法和JSONObject類基本相同,只不過其中采用的get系列方法的參數(shù)都是整型,代表數(shù)組型數(shù)據(jù)的位置索引。

各功能模塊實現(xiàn)為輕量級線程,線程間采用管道、信號量等進行通信。借組MySQL數(shù)據(jù)庫實現(xiàn)對能耗數(shù)據(jù)的存儲。

終端做為需求側管理的終端設備,需要維持與后臺主站的穩(wěn)定網(wǎng)絡連接,此部分采用獨立的線程負責處理網(wǎng)絡連接,監(jiān)測連接狀態(tài),斷線重連;采用獨立的數(shù)據(jù)收發(fā)線程,避免數(shù)據(jù)的擁塞,提高響應的實時性。

數(shù)據(jù)的變化,均在界面定時器的統(tǒng)一調度下,進行顯示的同步以及按鍵操作的響應。

3 終端軟件優(yōu)化

對能效監(jiān)測終端而言,因為其數(shù)據(jù)集中度高,且頻繁進行數(shù)據(jù)通信,因此優(yōu)化軟件實現(xiàn),提高性能是十分重要的工作。結合實際研發(fā)過程,對所涉及到的軟件優(yōu)化技術進行介紹:

1)異步通信優(yōu)化[5]:在能效監(jiān)測終端的數(shù)據(jù)流向中,采集數(shù)據(jù)通過網(wǎng)絡傳輸至服務器,通常比較耗時,同時本地顯示的響應卻很快。正確的做法是在新的線程中準備好數(shù)據(jù),然后再通知主線程異步的獲取數(shù)據(jù)并顯示。

2)避免內存泄露[5]:內存泄露指的是由于某些原因導致系統(tǒng)內存過度消耗的問題。在內存資源有限的能效監(jiān)測終端中,內存泄露尤其重要。避免內存泄露的方法在本文所研究的能效監(jiān)測終端軟件中包括:程序邏輯的內存泄露,即注意新創(chuàng)建對象在使用完后一定要銷毀,即使設置為NULL,也不能保證系統(tǒng)垃圾回收器能夠回收這些對象的資源;在存儲數(shù)據(jù)時使用到了數(shù)據(jù)庫,在使用數(shù)據(jù)庫時如果沒有關閉游標,將會造成系統(tǒng)運行速度變慢;位圖資源在不使用時,應該先調用recycle方法釋放內存,然后再將其設置NULL。

4 結語

本文對需求側管理型能效監(jiān)測終端的設計進行了深入研究。通過對終端的軟硬件進行方案設計,并最終實現(xiàn)了的軟硬件設計。在實際應用中,需求側管理型能效監(jiān)測終端,不僅具備能效數(shù)據(jù)采集基礎功能,同時還具備能效數(shù)據(jù)圖形化顯示,遠程監(jiān)控,需求側響應功能,可用于實現(xiàn)依據(jù)能效情況安排生產調度,實現(xiàn)能效預警等功能[6]。

關鍵詞: 能效監(jiān)測終端 人機交互接口 需求側管理 201402

最近更新

關于本站 管理團隊 版權申明 網(wǎng)站地圖 聯(lián)系合作 招聘信息

Copyright © 2005-2018 創(chuàng)投網(wǎng) - 670818.com All rights reserved
聯(lián)系我們:33 92 950@qq.com
豫ICP備2020035879號-12