国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

嵌入式系統(tǒng)中輕量級GUI的設計與實現(xiàn)

2014-12-31 12:23:47姚晶張志明許維勝
電腦知識與技術 2014年35期
關鍵詞:圖形用戶界面嵌入式系統(tǒng)

姚晶 張志明 許維勝

摘要:圖形用戶界面(GUI)提供了一種良好的用戶與機器之間的交互機制,該文基于STM32和μC/OS-Ⅱ實現(xiàn)輕量級GUI,并且應用到中小型光伏逆變器的人機交互界面中,實踐表明此方案是切實可行的。

關鍵詞:嵌入式系統(tǒng);圖形用戶界面;LCD

中圖分類號:TP319 文獻標識碼:A 文章編號:1009-3044(2014)35-8580-02

Design and Implementation of a Light GUI on Embedded System

YAO Jin, ZHANG Zhi-ming, XU Wei-sheng

(College of Electronics and Information Engineering, Tongji University, Shanghai 200092, China)

Abstract: Graphical User Interface (GUI) provides the interactive mechanism between user and machine. A light GUI is designed and realized based on STM32 and μC/OS-Ⅱ.It has been applied in a low-power photovoltaic grid inverter and works well.

Key words: Embedded system; GUI; LCD

1 概述

圖形用戶界面GUI通過為用戶提供窗口、菜單、按鍵等圖形化要素的方式,成為人與機器溝通的橋梁。常規(guī)的嵌入式系統(tǒng)的資源不夠豐富[1],處理器運算能力有限(如8/16位單片機),不能在GUI上花費過多資源,所以GUI不僅要考慮直觀簡潔性和方便靈活的可操作性,輕量、占用資源少也是重要的考慮因素。

在工業(yè)控制場合中,項目的需求特定, 加上MCU資源配置有限,還要處理其他任務,而GUI庫大都比較龐大,對于占用的FLASH資源、RAM資源和執(zhí)行速度等均有一定的需求,不適合于簡單輕量級GUI模塊的設計。該文即以中小型光伏逆變器顯示功能模塊設計為例,說明基于STM32和μC/OS-Ⅱ軟硬件平臺下的輕量級GUI功能設計與實現(xiàn)。

2 輕量級GUI系統(tǒng)配置

本系統(tǒng)使用的主控芯片是基于Cortex-M3內核的STM32F103RBT6,內部128KB FLASH和20KB SRAM。Cortex-M3內核是為低功耗和價格敏感的應用而專門設計的,具有突出的能效比和處理速度,通過采用Thumb-2高密度指令集,Cortex-M3降低了系統(tǒng)存儲要求,同時快速的中斷處理能夠滿足控制領域的高實時性要求,使基于該內核設計的STM32系列微控制器能夠以更優(yōu)越的性價比面向更廣泛的應用領域[2]。

顯示設備采用點陣液晶顯示模塊HF12864M,具有文字圖形混合顯示、畫面清除、顯示開/關、顯示字體閃爍和反白顯示等功能。其顯示原理是通過點的組合形成線,進而顯示成字符和圖形。按照規(guī)定的時序、指令可以在屏幕上指定的地方畫點、畫線及寫字,具體的時序和指令以及和MCU之間的電氣連接可以參照LCD的數(shù)據(jù)手冊。

GUI軟件平臺選用基于優(yōu)先級的可搶占的硬實時內核的μC/OS-Ⅱ系統(tǒng)[1][3],公開源代碼,具有很強的移植性。μC/OS-Ⅱ最多支持64個任務,系統(tǒng)保留最高4個優(yōu)先級的任務和4個最低優(yōu)先級的任務,用戶可以使用的任務數(shù)有56個。

以上軟硬件資源配置成本低、結構簡單,可以滿足一個輕量級GUI的需求,本系統(tǒng)設計的輕量級GUI以字符顯示為主,輔之以圖形,從而減少內存開支。通常一個完整的GUI庫(如uC/GUI、miniGUI、QT等)都會提供諸如窗口(界面)管理、事件生成、派發(fā)功能等。除此之外,其還有其固定的一個編程框架。輕量級GUI摒棄了這種框架,從底層出發(fā),只保留了人機交互界面中最核心必要的部分,為用戶提供較好地窗口界面顯示。

3 輕量級GUI實例設計

3.1 GUI模塊主要任務

本系統(tǒng)應用在光伏逆變器中,GUI需要解決的問題是根據(jù)用戶輸入操作、串行數(shù)據(jù)通信、內部工作狀態(tài)監(jiān)控等,在LCD上顯示相應的數(shù)據(jù)。圖1是主要的三個任務,它們獨立處理各自的任務要求,同時監(jiān)控用戶按鍵動作,接收來自系統(tǒng)主控MCU的逆變器工作狀況信息,并按照設計要求將相關數(shù)據(jù)顯示到LCD屏幕上。

用戶輸入通過按鍵來完成,由于機箱機械空間的限制,只設置了兩個按鍵,本系統(tǒng)選擇用狀態(tài)機做按鍵的掃描,擴展按鍵的功能,實現(xiàn)長按、短按和組合按等功能,每種輸入功能設定一個鍵碼,當按鍵處理程序返回相應鍵碼,顯示程序就會根據(jù)鍵碼執(zhí)行相關顯示操作。 MCU通過RS485串行通信接口接收來自主控DSP的數(shù)據(jù),根據(jù)通信協(xié)議判斷接收到的數(shù)據(jù)是否有效,有效數(shù)據(jù)進一步處理后傳送給顯示任務。

顯示任務的基礎是要點亮屏幕,顯示字符和圖形元素,系統(tǒng)使用的是LCD12864屏幕,由128*64個點構成,顯示的原理就是通過像素點的亮滅形成字符、圖形等。本系統(tǒng)選擇直接在LCD上畫點實現(xiàn)圖形化界面,以屏幕的方式來設計整個界面系統(tǒng),因為本界面的設計是針對一個具體的項目,實際設計整個界面的框架過程中,在現(xiàn)有資源基礎上適當使用點、線、圖標等基本圖形元素,以及反白顯示等顯示功能,實現(xiàn)人機交互界面。

3.2 GUI設計方案

顯示模塊屏幕采用的LCD12864,橫向128個像素點,縱向64個像素點,按照8*8大小的字符顯示格式,一個屏幕最多只能顯示16*8個英文字符,而光伏逆變器實際需要顯示的參數(shù)多達幾十個,比如多路電壓、多路電流、功率、發(fā)電時間、溫度、歷史記錄等,再考慮到用戶操作的便捷性,GUI選擇分為多個界面顯示。在將系統(tǒng)需求整理出來后,規(guī)劃好每個需要顯示的界面以及每個界面之間的連接關系,采用多級菜單的方式將這些界面銜接起來。具體實現(xiàn)時將每個界面都畫出來,標注出屏幕之間的跳轉條件,在主界面上顯示系統(tǒng)主要的運行參數(shù)及運行狀態(tài),它們實時更新,以便用戶直觀了解系統(tǒng)運行情況。當系統(tǒng)停留在主界面時,按下設定按鍵屏幕就會切換到特定界面,主界面到此特定界面的跳轉關系就是設定按鍵按下,如此確定好所有界面之間的跳轉關系,完成后的整個界面系統(tǒng)流程圖就近似于一張鏈表。圖2給出總體界面設計框圖的一部分。

3.3 輕量級GUI實現(xiàn)

為了更清楚地闡述輕量級GUI的實現(xiàn),本系統(tǒng)構建了一個三層模型。

第一層是底層驅動,LCD控制器是LCD模塊的核心,驅動一個LCD模塊本質就是按照規(guī)定時序對LCD控制器讀寫一系列指令的過程。點是一切光柵顯示設備的基本要素,在一個LCD上繪制任何圖形或文字的基礎是繪制像素點,因此首先需要實現(xiàn)的功能是操作像素點。操作一個像素點的接口是:X坐標、Y坐標和動作(點亮或擦除),算法如下:

1) 根據(jù)X坐標和Y坐標組合成LCD光標值并寫入LCD控制器;

2) 從LCD控制器中讀取當前光標下RAM數(shù)值;

3) 根據(jù)動作(點亮或擦除)修改RAM數(shù)值對應像素BIT值;

4) 再次將光標值寫入LCD控制器(讀RAM導致光標已移動);

5) 將修改后數(shù)值寫入LCD控制器的RAM區(qū)。

一旦完成像素操作就可以施展一些高級繪制動作:文字、圖片、幾何圖形等。類似于LCD12864的二值屏幕,一般是用一個字節(jié)表示連續(xù)的八個點,1表示對應位被點亮,0表示不亮,在顯示字符時,一個08*08字符用八個字節(jié)的編碼表示,將所有常用字符存成一張編碼表,需要某個字符時直接從表中調用。

第二層是界面模塊,本系統(tǒng)GUI是由多個界面組成,每個界面都有一些固定不變的內容,以此為基準將每個界面都作為一個獨立的界面模塊,模塊內部調用底層驅動函數(shù)寫入內容,將這些模塊都封裝好,顯示時直接調用獨立界面模塊刷新顯示內存,從而避免刷新速度慢及顯示混亂的問題。系統(tǒng)根據(jù)不同功能有效規(guī)劃各個界面,大致分為主界面,設置參數(shù)界面,顯示參數(shù)界面和菜單界面。主界面是在系統(tǒng)運行期間顯示時間最長的界面,上面顯示用戶最關心的運行參數(shù)和運行狀態(tài)。設置參數(shù)界面是讓用戶對一些參數(shù)進行修改和設置,顯示參數(shù)界面是用來顯示一些只能查看不能修改的參數(shù)。菜單界面是整個系統(tǒng)界面的向導,是連接各界面的紐帶。

第三層是界面交互驅動,要進入到一個界面要么從它的上層進入,稱之為父界面,要么從它的下層界面返回而來,稱為子界面,這里的父界面子界面是系統(tǒng)將界面分層次的結果。父界面,當前界面,子界面之間的關系是相對的,對于當前界面而言,從父界面進入和從子界面進入,當前界面的處理要依據(jù)實際情況來進行。從父界面進入,那么要重新繪制當前界面,而且當前界面的狀態(tài)應該為初始狀態(tài),比如選項圖標應該指向第一項,而如果從子界面進入,不僅要重新繪制當前界面,且要恢復進入子界面之前的狀態(tài),比如說之前選項圖標指向第二項,那么恢復后的當前界面就需要使選項圖標繼續(xù)指向第二項。

如下圖3 、圖4分別是光伏逆變器人機交互界面部分效果展示。

4 總結

本文所提出的實時嵌入式系統(tǒng)中輕量級GUI解決方案,已經(jīng)應用在光伏逆變器的人機交互模塊設計中,原型機運行實踐證明其是穩(wěn)定可靠、經(jīng)濟適用的方案,對處理器運算能力和存儲空間有限的低端嵌入式系統(tǒng)開發(fā)有一定的參考價值。

參考文獻:

[1] 劉波文,孫巖.嵌入式實時操作系統(tǒng)μC/OS-Ⅱ經(jīng)典實例-基于STM32處理器[M].北京:北京航空航天大學出版社,2012.

[2] 劉軍.例說STM32[M].北京:北京航空航天大學出版社,2011.

[3] Sheayun Lee,Insik Shin,Woonseok Kim.A design framework for real-time embedded systems with code size and energy constraints[J].ACM Transactions on Embedded Computing Systems,2008,7(2):26-32.

猜你喜歡
圖形用戶界面嵌入式系統(tǒng)
Java語言圖形用戶界面設計在工資信息查詢系統(tǒng)中的應用
卷宗(2021年11期)2021-05-25 01:59:36
圖形用戶界面外觀設計專利保護問題探析——以“奇虎訴江民案”為例
淺談圖形用戶界面(GUI)技術專利現(xiàn)狀
電子測試(2018年9期)2018-06-26 06:46:34
淺談圖形用戶界面的保護
專利代理(2017年1期)2017-07-21 03:19:24
圖形用戶界面法律保護問題與對策
辦公自動化系統(tǒng)的設計
嵌入式系統(tǒng)在醫(yī)療器械中的應用分析
基于物聯(lián)網(wǎng)項目驅動的嵌入式系統(tǒng)教學改革的研究與實踐
嵌入式系統(tǒng)課程“中斷、異常與事件”教學實踐及啟示
計算機教育(2016年7期)2016-11-10 08:31:34
面向實踐創(chuàng)新人才培養(yǎng)的嵌入式系統(tǒng)教學研究
計算機教育(2016年7期)2016-11-10 08:12:11
崇信县| 金堂县| 高州市| 彰武县| 湘潭市| 怀来县| 漳州市| 陇西县| 灵川县| 定结县| 阜城县| 杭州市| 德安县| 海南省| 宽城| 元阳县| 岗巴县| 文山县| 泌阳县| 连云港市| 滁州市| 高平市| 海晏县| 杭州市| 申扎县| 枣阳市| 黔南| 龙山县| 吉木乃县| 香格里拉县| 南川市| 盘山县| 云霄县| 彭州市| 长治市| 绥芬河市| 乐山市| 韶关市| 苍山县| 林甸县| 林口县|