李鵬飛,許金凱,韓文波,宋鴻飛
(1.長(zhǎng)春理工大學(xué) 光電工程學(xué)院,吉林 長(zhǎng)春 130022;2.長(zhǎng)春理工大學(xué) 機(jī)電工程學(xué)院,吉林 長(zhǎng)春 130022)
當(dāng)前,以觸控技術(shù)為核心的圖像人機(jī)交互界面(GUI)在各個(gè)領(lǐng)域都得到廣泛的應(yīng)用,這些GUI通常具有顯示直觀、功能明確、操作簡(jiǎn)便的優(yōu)點(diǎn),但是大多數(shù)GUI的設(shè)計(jì)都是GUI和主控程序同步設(shè)計(jì),這種設(shè)計(jì)方法在設(shè)計(jì)時(shí)難度很大,由于主控程序和界面是一一對(duì)應(yīng)的,修改主控程序,就要修改界面,同樣,修改界面就要同步修改主控程序,由于GUI系統(tǒng)設(shè)計(jì)比較復(fù)雜,既需要調(diào)配主控函數(shù),又要設(shè)定界面之間的切換關(guān)系,還需要設(shè)定命令和數(shù)據(jù)傳輸,同時(shí)還要調(diào)試匹配液晶屏和觸摸屏,因此結(jié)構(gòu)十分復(fù)雜,需要用大量時(shí)間。
基于以上原因,本文利用Samsung公司的S3C2440處理器搭配通用實(shí)時(shí)操作系統(tǒng)RTOS(本文選用μC/OS-II系統(tǒng))設(shè)計(jì)了一種通用GUI設(shè)計(jì)平臺(tái)[1-5]。該平臺(tái)適用于各種場(chǎng)合,專注于界面的設(shè)計(jì),可以根據(jù)開(kāi)發(fā)者的需要自行增減功能,在使用時(shí)把需要的GUI界面、窗口、數(shù)據(jù)框、狀態(tài)框編號(hào)后依次燒寫FLASH存儲(chǔ)器中,然后把各個(gè)按鍵與μC/OS-II操作系統(tǒng)的任務(wù)進(jìn)行關(guān)聯(lián),把曲線、數(shù)據(jù)、狀態(tài)與系統(tǒng)中斷進(jìn)行關(guān)聯(lián),只保留標(biāo)準(zhǔn)串口與主控設(shè)備通信。經(jīng)過(guò)實(shí)測(cè),該平臺(tái)可以根據(jù)需要自定義各種界面和功能,如果需要顯示數(shù)據(jù)和曲線,通過(guò)串口即可傳遞,達(dá)到了設(shè)計(jì)要求。
通用GUI平臺(tái)的硬件部分由微處理器S3C2440、分辨率480×272的TFT液晶顯示屏、4線電阻觸屏、NAND FLASH存儲(chǔ)器和標(biāo)準(zhǔn)串口組成[6-10]??傮w硬件設(shè)計(jì)如圖1所示。
圖1 總體硬件設(shè)計(jì)Fig.1 Design of overall hardware
圖1中S3C2440處理器內(nèi)部集成了TFT液晶屏驅(qū)動(dòng)模塊、觸屏驅(qū)動(dòng)模塊、串口通信模塊、JATG接口和NAND FLASH驅(qū)動(dòng)模塊,因此平臺(tái)的硬件部分十分簡(jiǎn)單。
平臺(tái)在使用前可根據(jù)需要自主設(shè)計(jì)界面,舉例如圖2所示,該系統(tǒng)包含了2個(gè)界面,圖2(a)是主界面,圖2(b)是工作界面,首先進(jìn)行編號(hào),分別編號(hào)為1和1.1,然后轉(zhuǎn)換成(.h)文件包含到μC/OS-II操作系統(tǒng)中,接著進(jìn)行系統(tǒng)任務(wù)和中斷的關(guān)聯(lián)設(shè)計(jì),最后編譯,把編譯好的可執(zhí)行文件利用JATG接口下載到平臺(tái)的NAND FLASH中。
(a)主界面(a)Main interface
(b)工作界面(b)Working interface
在程序中各個(gè)界面的以樹(shù)鏈表的方式相互關(guān)聯(lián),這里以1個(gè)1級(jí)界面,3個(gè)2級(jí)界面為例如圖3所示,并以按鍵發(fā)布命令的方式進(jìn)行相互切換銜接。
圖3 界面的樹(shù)鏈表式關(guān)聯(lián)Fig.3 Tree list of the interface
如果有更多的界面和層次,以此類推,對(duì)于圖2所示的例子,平臺(tái)就只包括初始界面(1)和工作界面(1.1),而沒(méi)有工作界面(1.2)和工作界面(1.3),也沒(méi)有更低層次的界面。
GUI平臺(tái)算法的設(shè)計(jì)主要包括數(shù)據(jù)輸入/顯示功能和按鍵命令輸出功能兩部分,無(wú)論輸入還是輸出都通過(guò)串口完成,也就是說(shuō),串口是該平臺(tái)與主控系統(tǒng)惟一的通信接口,其中數(shù)據(jù)輸入/顯示功能主要用于在窗口顯示數(shù)據(jù)曲線,在數(shù)據(jù)框顯示數(shù)據(jù),在狀態(tài)框顯示狀態(tài);按鍵命令輸出功能主要用于按鍵按下后進(jìn)行界面切換或向主控設(shè)備發(fā)送命令。
主控設(shè)備端的算法包括命令解析和數(shù)據(jù)打包功能,其中命令解析是對(duì)接受到的命令進(jìn)行解析,然后依照命令運(yùn)行;數(shù)據(jù)打包是把數(shù)據(jù)發(fā)給界面端,但要把界面上的各種信息包含其中,以知該數(shù)據(jù)是發(fā)給哪個(gè)界面的哪個(gè)窗口。
在該平臺(tái)下,按鍵是惟一能夠進(jìn)行命令發(fā)送的控件,按下按鍵就激活了系統(tǒng)中一個(gè)相應(yīng)的任務(wù),為了實(shí)現(xiàn)通用設(shè)計(jì),把每一個(gè)按鍵的任務(wù)設(shè)計(jì)為如圖4所示的形式。
圖4 任務(wù)的流程Fig.4 Flow of tasks
其中任務(wù)的關(guān)鍵字由3部分組成:命令I(lǐng)D、切換操作、附加數(shù)據(jù)。命令I(lǐng)D表示該命令的物理含義;切換操作表示該按鍵是否需要切換界面和切換到哪個(gè)界面;附加數(shù)據(jù)表示該按鍵是否需要傳送界面設(shè)置的數(shù)據(jù)。舉例如下:
圖2(a)的“啟動(dòng)”按鍵的關(guān)鍵字為:命令I(lǐng)D(0)、切換操作(切換到1.1界面,也就是圖2(b)界面)、附加數(shù)據(jù)(無(wú))。
圖2(b)中“采集溫度”按鍵的關(guān)鍵字為:命令I(lǐng)D(2)、切換操作(不切換)、附加數(shù)據(jù)(無(wú))。
圖2(b)中“采集信號(hào)”按鍵的關(guān)鍵字為:命令I(lǐng)D(3)、切換操作(不切換)、附加數(shù)據(jù)(無(wú))。
圖2(b)中“停止”按鍵的關(guān)鍵字為:命令I(lǐng)D(1)、切換操作(切換到1界面,也就是圖2(a)界面)、附加數(shù)據(jù)(無(wú))。
主控設(shè)備通過(guò)串口把需要顯示的數(shù)據(jù)和狀態(tài)傳給GUI平臺(tái)。窗口顯示曲線、數(shù)據(jù)框顯示數(shù)據(jù)、狀態(tài)框顯示狀態(tài)。當(dāng)GUI平臺(tái)通過(guò)串口接收到數(shù)據(jù)時(shí),引發(fā)接收中斷,中斷處理函數(shù)通過(guò)查詢關(guān)鍵字進(jìn)而完成數(shù)據(jù)的傳輸與顯示,其中斷處理函數(shù)處理流程如圖5所示。
圖5 中斷的流程Fig.5 Flow of interrupt
其中中斷的關(guān)鍵字由3部分組成:界面編號(hào)、載體編號(hào)、附加數(shù)據(jù)。界面編號(hào)表示該界面的ID,隱含著該界面的物理地址;載體編號(hào)表示該載體的ID,隱含著該載體的物理地址;附加數(shù)據(jù)表示需要傳送給該界面該載體的顯示數(shù)據(jù)。
主控設(shè)備端的算法包括命令解析和數(shù)據(jù)打包功能,這需要與GUI平臺(tái)端的命令輸出/數(shù)據(jù)輸入功能相對(duì)應(yīng),也就是收到按鍵的命令I(lǐng)D,就知道該命令要求主控設(shè)備干什么,并把數(shù)據(jù)傳給誰(shuí),舉例如下:
收到命令I(lǐng)D為0,主控設(shè)備端就會(huì)啟動(dòng)。
收到命令I(lǐng)D為1,主控設(shè)備端就會(huì)停止。
收到命令I(lǐng)D為2,主控設(shè)備端就會(huì)采集溫度傳感器傳來(lái)的數(shù)據(jù),并把該數(shù)據(jù)與界面編號(hào)和載體編號(hào)打包,通過(guò)串口發(fā)送給GUI平臺(tái)端。
收到命令I(lǐng)D為3,主控設(shè)備端就會(huì)采集電壓傳感器傳來(lái)的數(shù)據(jù),并把該數(shù)據(jù)與界面編號(hào)和載體編號(hào)打包,通過(guò)串口發(fā)送給GUI平臺(tái)端。
為了檢測(cè)設(shè)計(jì)是否有效,按圖2所示,GUI平臺(tái)端設(shè)計(jì)了一個(gè)2級(jí)觸控平臺(tái),包括初始界面和操作界面,首先對(duì)界面進(jìn)行編號(hào),圖2(a)編號(hào)是1,圖2(b)編號(hào)是1.1,轉(zhuǎn)換成頭文件包含到μC/OS-II操作系統(tǒng)中,然后進(jìn)行按鍵任務(wù)的設(shè)計(jì),把對(duì)應(yīng)的按鍵關(guān)鍵字按照3.1節(jié)的舉例進(jìn)行關(guān)聯(lián);接著進(jìn)行中斷函數(shù)的設(shè)計(jì),把中斷關(guān)鍵字按照?qǐng)D5進(jìn)行關(guān)聯(lián),通過(guò)編譯生成可執(zhí)行文件,并燒入到GUI平臺(tái)端的NAND FLASH中。
主控設(shè)備端加入了“命令解析”算法和“數(shù)據(jù)打包”算法,其中設(shè)定溫度超過(guò)70℃或電壓超過(guò)7 V,則自動(dòng)報(bào)警。進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)效果如圖6和圖7所示。
圖6(a)表示GUI平臺(tái)的初始界面,當(dāng)點(diǎn)擊“啟動(dòng)”按鍵后,GUI平臺(tái)進(jìn)入圖6(b)界面;當(dāng)點(diǎn)擊“采集溫度”按鍵和“采集信號(hào)”按鍵后,GUI平臺(tái)進(jìn)入圖7(a)界面;當(dāng)溫度超過(guò)70℃,GUI平臺(tái)顯示報(bào)警信息,并更新運(yùn)行狀態(tài),進(jìn)入到圖7(b)界面。
(a)啟動(dòng)界面(a)Interface of start
(b)數(shù)據(jù)顯示界面(b)Interface of display data
(a)顯示數(shù)據(jù)采集界面(a) Interface of display data acquisition
(b)顯示報(bào)警界面(b) Interface of Alarm
實(shí)驗(yàn)證明,本系統(tǒng)實(shí)現(xiàn)了通用GUI設(shè)計(jì)平臺(tái)解決方案,系統(tǒng)采用S3C2440處理器驅(qū)動(dòng)觸摸屏和TFT液晶屏,結(jié)合μC/OS-II實(shí)時(shí)操作系統(tǒng),開(kāi)發(fā)者可以把界面設(shè)計(jì)和主控設(shè)備端分開(kāi)進(jìn)行,并大大降低了界面設(shè)計(jì)的難度,開(kāi)發(fā)者可以根據(jù)需要任意修改功能,而不用花費(fèi)大量精力在界面的調(diào)試匹配上,與傳統(tǒng)的界面/主控一體化設(shè)計(jì)方法相比降低了90%以上的調(diào)試時(shí)間,隨著界面復(fù)雜度的增加,調(diào)試的時(shí)間可減少到傳統(tǒng)方法的5%以下,可以適用于多種場(chǎng)合,具有開(kāi)發(fā)難度低、可定制、可修改、成本低的優(yōu)點(diǎn)。
[1] 但永平, 彭紅濤, 王東云,等.EDMA在圖像數(shù)據(jù)快速傳輸中的應(yīng)用[J].液晶與顯示,2013,28(1):99-104.
Dan Y P,Peng H T,Wang D Y,etal.Application of EDMA in rapid transmission of image data [J].ChineseJournalofLiquidCrystalsandDisplays,2013, 28(1): 99-104. (in Chinese)
[2] 趙星, 王芳, 楊勇, 等.集成成像三維顯示系統(tǒng)顯示性能的研究進(jìn)展[J].中國(guó)光學(xué),2012,5(3): 209-221.
Zhao X,Wang F,Yang Y,etal.Research progress of display performance of integral imaging three-dimensional display system [J].ChineseOptics,2012,5(3): 209-221.(in Chinese)
[3] 姜漫, 吳志勇, 曹騰.基于SOPC技術(shù)的VGA字符和圖像顯示系統(tǒng)[J].液晶與顯示,2013,28(1):120-126.
Jiang M,Wu Z Y,Cao T.Characters and images VGA display system based on SOPC technology [J].ChineseJournalofLiquidCrystalsandDisplays,2013, 28(1): 120-126. (in Chinese)
[4] 鄧春健, 安源, 呂燚, 等.顯示信息高速串行傳輸?shù)牟铄e(cuò)控制[J].光學(xué)精密工程,2012,20(3): 632-642.
Deng C J,An Y, Lv Y,etal.Error control of high speed serial display data transmission [J].OpticsandPrecisionEngineering,2012,20(3): 632-642.(in Chinese)
[5] 劉希佳, 陳宇, 王文生, 等.小目標(biāo)識(shí)別的小波閾值去噪方法[J].中國(guó)光學(xué), 2012,5(3): 248-256.
Liu X J,Chen Y,Wang W S,etal. De-noising algorithm of wavelet threshold for small target detection [J].ChineseOptics,2012,5(3): 248-256.(in Chinese)
[6] 王健, 陳洪斌, 周國(guó)忠,等.改進(jìn)的Brenner圖像清晰度評(píng)價(jià)算法[J].光子學(xué)報(bào),2012,41(7):855-858.
Wang J,Chen H B,Zhou G Z,etal.An improved Brenner algorithm for image definition criterion [J].ActaPhotonicaSinica,2012,41(7): 855-858.(in Chinese)
[7] 張傳勝, 鄭寒雨, 鄧江東.基于SOPC的通用液晶觸摸屏控制器的設(shè)計(jì)[J].液晶與顯示,2013,27(5):638-641.
Zhang C S,Zheng H Y,Deng J D.Control unit design for TFT touching screen based on SOPC [J].ChineseJournalofLiquidCrystalsandDisplays,2013, 27(5):638-641. (in Chinese)
[8] 程少園, 胡立發(fā), 曹召良, 等.液晶自適應(yīng)光學(xué)在人眼眼底高分辨率成像中的應(yīng)用[J].中國(guó)激光,2009,36(10):2524-2527.
Cheng S Y, Hu L F,Cao Z L,etal.Application of liquid crystal adaptive optics system on human eye fundus imaging with high spatial resolution [J].ChineseJournalofLasers,2009,36(10):2524-2527.(in Chinese)
[9] 熊根良, 陳初海, 梁發(fā)云,等.物理性人-機(jī)器人交互研究與發(fā)展現(xiàn)狀[J].光學(xué)精密工程,2013,21(2): 356-370.
Xiong G L,Chen C H,Liang F Y,etal.Research and development statue of physical human-robot interaction [J].OpticsandPrecisionEngineering,2013,21(2): 356-370.(in Chinese)
[10] 韓瑞雨,王晉疆,聶凱,等.不同對(duì)比度下自適應(yīng)的自動(dòng)調(diào)焦新算法[J],光子學(xué)報(bào),2012,41(2):222-227.
Han R Y,Wang J K,Nie K,etal.Adaptive autofocus technique under different contrast [J].ActaPhotonicaSinica,2012,41(2): 222-227.(in Chinese)