999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

用Linux實(shí)時(shí)系統(tǒng)設(shè)計(jì)飛機(jī)電子水平狀態(tài)指示儀軟件

2010-06-05 09:15:00吳吉祥夏靖波杜華樺
電光與控制 2010年3期
關(guān)鍵詞:進(jìn)程

吳吉祥,夏靖波,杜華樺

(空軍工程大學(xué)電訊工程學(xué)院,西安 710077)

0 引言

由于液晶顯示器具有對(duì)比度高、在陽光下清晰可見、以及重量輕等特點(diǎn),液晶式電子水平狀態(tài)指示儀(EHSI)在飛機(jī)座艙中得到普遍應(yīng)用。但是,液晶式電子水平狀態(tài)指示儀的應(yīng)用會(huì)遇到以下問題[1]。1)圖形處理速度。光柵式圖形顯示系統(tǒng)在顯示一個(gè)圖形前,需要進(jìn)行圖形掃描變換、反走樣和圖形旋轉(zhuǎn)等大量運(yùn)算,隨著顯示分辨率的提高,要處理的像素越來越多,而所允許的處理時(shí)間卻受屏幕的刷新率所限制。所以實(shí)時(shí)圖形生成系統(tǒng)對(duì)處理器處理速度提出了非常高的要求。2)顯示幀存的設(shè)計(jì)。隨著圖形顯示分辨率的提高,要顯示的像素越來越多,將待顯示的像素寫入幀存是一個(gè)頗耗時(shí)間的操作,這將影響圖形的實(shí)時(shí)生成。3)EHSI所顯示的全羅盤畫面,是需要根據(jù)飛機(jī)的參數(shù)實(shí)時(shí)變化的動(dòng)畫,動(dòng)畫的顯示是先把它在舊的位置擦除,再在相近的新位置生成,而要正確地擦除舊畫面,需要對(duì)圖形顯示的狀態(tài)作一串精確的記錄,保持這一串存儲(chǔ)記錄需要非常大的數(shù)據(jù)結(jié)構(gòu),這影響圖形實(shí)時(shí)生成。因此,如何加快圖形的處理和顯示速度,提高圖形的顯示質(zhì)量是電子水平狀態(tài)指示儀設(shè)計(jì)的關(guān)鍵所在。基于DSP和各種輔助設(shè)備的硬件平臺(tái)來實(shí)現(xiàn)電子飛行儀表顯示系統(tǒng)是當(dāng)前比較主流的方法[2-3],DSP 主要是完成圖形的實(shí)時(shí)生成和處理,輔助設(shè)備主要用來完成圖形顯示的控制和加速[4]。本文打破了傳統(tǒng)的通過圖形實(shí)時(shí)生成來進(jìn)行顯示的思路,提出了一種新的設(shè)計(jì)思路,即基于嵌入式Linux實(shí)時(shí)系統(tǒng)的電子水平狀態(tài)指示儀設(shè)計(jì)方案。

1 總體設(shè)計(jì)

本軟件基于由ARM處理器、LCD顯示器、存儲(chǔ)器和各種外圍接口組成的最小硬件平臺(tái)。如圖1所示,信息處理機(jī)處理后的飛參信息通過CAN總線傳輸?shù)紸RM主控芯片,ARM主控芯片將各種飛參信息顯示到LCD上。

圖1 EHSI硬件結(jié)構(gòu)Fig.1 The structure of EHSI hardware

1.1 軟件設(shè)計(jì)原則

為了使飛行員能準(zhǔn)確、直觀地獲取當(dāng)前的飛參信息,本軟件遵循以下設(shè)計(jì)原則。

1)信息分級(jí)顯示原則。根據(jù)信息的重要性程度確定優(yōu)先級(jí),優(yōu)先級(jí)高的信息為自動(dòng)顯示,而優(yōu)先級(jí)較低的信息為選擇性顯示[5]。這樣可以減小信息密度,降低飛行員的壓力。

2)視覺最佳原則。優(yōu)先級(jí)高的信息采用醒目的顏色,相關(guān)信息采用相同顏色。例如,告警信息采用紅色,刻度及相關(guān)信息采用白色,羅盤指針及與之對(duì)應(yīng)的導(dǎo)航信息采用綠色。盡量綜合顯示信息,減少顏色種類,減輕飛行員視覺負(fù)擔(dān)[6]。

3)控制面板最簡(jiǎn)原則。控制面板的設(shè)計(jì)既要具有易操作性,又要盡可能的簡(jiǎn)化,尋求易操作性和最簡(jiǎn)化的最佳結(jié)合。

1.2 軟件設(shè)計(jì)思路

軟件的設(shè)計(jì)思路是根據(jù)信息處理機(jī)傳輸來的飛參信息,從圖形庫中讀取并顯示相應(yīng)的圖片,這樣避免了因圖形的實(shí)時(shí)生成和處理所帶來的各種問題。具體思路為:運(yùn)用“貼圖”技術(shù),即通過寫Linux實(shí)時(shí)操作系統(tǒng)[7]下的FB設(shè)備實(shí)現(xiàn)寫內(nèi)存的技術(shù),來實(shí)現(xiàn)圖片的顯示;采用Linux下進(jìn)程間通信技術(shù)來實(shí)現(xiàn)人機(jī)交互進(jìn)程、數(shù)據(jù)讀取進(jìn)程和屏幕刷新進(jìn)程三者之間的通信;采用多級(jí)緩沖技術(shù)克服圖片顯示過程中遇到的閃爍及走樣問題,提高圖片顯示質(zhì)量。

1.3 軟件消息機(jī)制

軟件運(yùn)行是基于消息處理機(jī)制的。操作系統(tǒng)負(fù)責(zé)接受消息,并且對(duì)消息進(jìn)行排隊(duì)處理,消息處理由系統(tǒng)回調(diào)函數(shù)中的循環(huán)體實(shí)現(xiàn)。如圖2所示,軟件主要處理3類消息:一種是系統(tǒng)初始化信息,用于各種設(shè)備的初始化;其二是定時(shí)消息,用于驅(qū)動(dòng)數(shù)據(jù)接收進(jìn)程和屏幕刷新進(jìn)程;其三是人機(jī)交互消息,用于處理飛行員的各種操作。

圖2 EHSI消息機(jī)制Fig.2 The message mechanism of EHSI software

2 關(guān)鍵技術(shù)分析

2.1 “貼圖”技術(shù)

“貼圖”技術(shù)是指通過讀寫Linux系統(tǒng)下的FB設(shè)備來讀寫顯存把圖片直接顯示在屏上的技術(shù)。圖片不需要進(jìn)行實(shí)時(shí)的生成處理,系統(tǒng)只需要從圖形庫中直接讀取就可以實(shí)現(xiàn)儀表的各種顯示。FrameBuffer即FB設(shè)備是出現(xiàn)在2.2.xx內(nèi)核當(dāng)中的一種驅(qū)動(dòng)程序接口。這種接口將顯示設(shè)備抽象為幀緩沖區(qū)。該驅(qū)動(dòng)程序的設(shè)備文件一般是/dev/fb0、/dev/fb1等。

FrameBuffer中內(nèi)存塊分布如圖3所示。Frame-Buffer的顯示緩沖區(qū)位于Linux核心態(tài)地址空間,在Linux中每個(gè)應(yīng)用程序都有自己的虛擬地址空間,在應(yīng)用程序中是不能直接訪問物理緩沖區(qū)地址的,為此在Linux的文件操作結(jié)構(gòu)中提供mmap函數(shù)可將文件的內(nèi)存映射到用戶空間,對(duì)于幀緩沖設(shè)備則可通過映射操作將屏幕緩沖區(qū)的物理地址映射到用戶空間的一段虛擬地址中,之后用戶可以通過讀寫這段虛擬地址訪問屏幕緩沖區(qū),在屏幕上畫圖[3]。

圖3 內(nèi)存塊分布Fig.3 Memory block distribution

用戶可以將它看成是顯示內(nèi)存的一個(gè)映像,將其映射到進(jìn)程地址空間之后,就可以直接進(jìn)行讀寫操作,而寫操作可以立即顯示在屏幕上。圖形庫中的圖片是使用Adobe Illustrator CS3繪制的BMP格式的圖片。

2.2 Linux下進(jìn)程間通信技術(shù)

進(jìn)程間通信是內(nèi)核用于協(xié)調(diào)進(jìn)程間相互通信的活動(dòng)。Linux支持一部分進(jìn)程間的通信(Inter-Process Communication,IPC)機(jī)制[4]。信號(hào)和管道是兩種 IPC機(jī)制。

信號(hào)機(jī)制是Unix系統(tǒng)使用最早的進(jìn)程間通信機(jī)制之一,主要用于向一個(gè)或多個(gè)進(jìn)程發(fā)異步事件信號(hào),信號(hào)可以通過鍵盤中斷觸發(fā),也可以由進(jìn)程訪問虛擬內(nèi)存中不存在的地址這樣的錯(cuò)誤來產(chǎn)生。信號(hào)機(jī)制還可以用于shell向它們的子進(jìn)程發(fā)送作業(yè)控制命令。Linux使用存貯在每個(gè)進(jìn)程task_struct結(jié)構(gòu)中的信息實(shí)現(xiàn)信號(hào)機(jī)制,它支持的信號(hào)數(shù)受限于處理器的字長(zhǎng)。當(dāng)前未處理的信號(hào)記錄在signal域中,并把阻塞信號(hào)掩碼對(duì)應(yīng)位設(shè)置為阻塞狀態(tài)。但對(duì)SIGSTOP和SIGKILL信號(hào)來說,所有的信號(hào)都被設(shè)置為阻塞狀態(tài)。如果一個(gè)被阻塞的信號(hào)產(chǎn)生了,將一直保持未處理狀態(tài),直到阻塞被取消。

管道是單向的字節(jié)流,它可以把一個(gè)進(jìn)程的標(biāo)準(zhǔn)輸出與另一個(gè)進(jìn)程的標(biāo)準(zhǔn)輸入連接起來。在Linux系統(tǒng)中,管道用兩個(gè)指向同一個(gè)臨時(shí)性VFS索引節(jié)點(diǎn)的文件數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn)。這個(gè)臨時(shí)性的VFS索引節(jié)點(diǎn)指向內(nèi)存中的一個(gè)物理頁面。表明每個(gè)文件數(shù)據(jù)結(jié)構(gòu)包含指向不同文件操作例程向量的指針。一個(gè)例程用于寫管道,另一個(gè)用于從管道中讀數(shù)據(jù)。Linux必須同步對(duì)管道的訪問,使讀進(jìn)程和寫進(jìn)程步調(diào)一致。Linux使用鎖、等待隊(duì)列和信號(hào)量這3種方式來實(shí)現(xiàn)同步。

在該系統(tǒng)的設(shè)計(jì)中,通過信號(hào)機(jī)制實(shí)現(xiàn)人機(jī)交互進(jìn)程與數(shù)據(jù)讀取進(jìn)程和屏幕刷新進(jìn)程之間的通信,通過管道機(jī)制實(shí)現(xiàn)數(shù)據(jù)讀取進(jìn)程與屏幕刷新進(jìn)程之間的通信。

2.3 多級(jí)緩沖技術(shù)

多級(jí)緩沖技術(shù),利用在計(jì)算機(jī)內(nèi)存中開辟多個(gè)圖形緩沖區(qū),實(shí)現(xiàn)圖形的分層,后臺(tái)處理,避免了前臺(tái)圖形刷新顯示時(shí)出現(xiàn)的圖像閃爍問題,并提高了圖形的顯示速度[8-10]。

本設(shè)計(jì)方案中,在內(nèi)存中開辟3級(jí)圖形緩沖區(qū),實(shí)現(xiàn)圖形顯示與繪制的分離。實(shí)時(shí)顯示圖形時(shí),觀察到的是圖形操作的結(jié)果,而不是圖形的繪制過程。這3級(jí)圖形緩沖區(qū)分別為當(dāng)前顯示內(nèi)存區(qū)、將要顯示內(nèi)存區(qū)和圖片庫內(nèi)存區(qū)。當(dāng)前顯示內(nèi)存區(qū)的圖片為當(dāng)前屏幕正在顯示的圖片,即屏幕顯示內(nèi)存區(qū)。將要顯示內(nèi)存區(qū)內(nèi)正在繪制的圖片是屏幕將要顯示的圖片,而圖片庫內(nèi)存區(qū)存儲(chǔ)的是所有的圖片,在軟件啟動(dòng)時(shí),所有的圖片便被讀取到該內(nèi)存區(qū),完成初始化的工作,操作系統(tǒng)根據(jù)顯示需求把將要顯示的圖片從該內(nèi)存區(qū)直接拷貝到將要顯示圖片內(nèi)存區(qū)。當(dāng)前顯示內(nèi)存區(qū)和將要顯示內(nèi)存區(qū)的切換是通過一個(gè)OFFSET偏離量來完成的。如圖4a所示,在軟件啟動(dòng)時(shí),先將所有的圖片初始化到第三級(jí)緩沖區(qū)中,此時(shí)OFFSET的偏移地址為第一級(jí)緩沖區(qū)地址,第一級(jí)緩沖區(qū)為當(dāng)前顯示圖片內(nèi)存區(qū)。第二級(jí)緩沖區(qū)為將要顯示圖片內(nèi)存區(qū),如圖4b所示,當(dāng)要顯示下一幅圖片時(shí),OFFSET的偏移地址為第二級(jí)內(nèi)存地址。通過OFFSET值的不斷切換,使得顯示內(nèi)存在第一級(jí)內(nèi)存和第二級(jí)內(nèi)存之間切換。

圖4 多級(jí)緩沖機(jī)制Fig.4 The mechanism of multi-level buffers

與每次顯示時(shí)從硬盤中讀取圖片相比,先將所有圖片初始化到內(nèi)存中的方法有很大優(yōu)勢(shì),因?yàn)閳D片在內(nèi)存之間拷貝比在硬盤和內(nèi)存之間拷貝要快得多。當(dāng)前顯示內(nèi)存區(qū)和將要顯示內(nèi)存區(qū)的開辟很好地解決了圖片在顯示過程中的閃爍問題。多級(jí)緩沖技術(shù)的使用提高了圖片的顯示速度和顯示質(zhì)量。

3 軟件運(yùn)行結(jié)果及分析

本軟件屏幕顯示部分已經(jīng)成功實(shí)現(xiàn),運(yùn)行界面如圖5所示。

圖5 EHSI顯示界面Fig.5 The display interface of EHSI

下面對(duì)其進(jìn)行了性能測(cè)試。

1)通過在軟件中設(shè)置計(jì)時(shí)函數(shù),記錄顯示界面每刷新一次所用的時(shí)間,從而得出每秒顯示界面的刷新次數(shù),即幀速率。如圖6所示,當(dāng)復(fù)雜度(所貼圖層數(shù))為1層時(shí),本軟件的幀速率為317.2幀/s,而沒有采用多級(jí)緩存方法的幀速率為110.5幀/s。隨著復(fù)雜度的不斷增加,幀速率不斷下降。當(dāng)復(fù)雜度為6時(shí),本軟件的幀速率為61幀/s,而沒有采用多級(jí)緩存方法的幀速率為21.2幀/s。電子水平狀態(tài)指示儀的幀速率要求為30幀/s,在復(fù)雜度為6的情況下,本軟件都能很好地滿足設(shè)計(jì)需求。

圖6 幀速率分析Fig.6 The analysis of frame rate

2)在幀速率設(shè)定為30幀/s的情況下,對(duì)CPU的使用率進(jìn)行了測(cè)試。如圖7所示,當(dāng)復(fù)雜度為1時(shí),本軟件CPU的使用率為21%,而沒有采用多級(jí)緩沖技術(shù)方法的CPU的使用率為31%。隨著復(fù)雜度的不斷增加,CPU的使用率不斷升高。當(dāng)復(fù)雜度為6時(shí),本軟件的CPU使用率為58%,而沒有采用多級(jí)緩沖技術(shù)方法的CPU的使用率為100%。因而,在復(fù)雜度比較高的情況下,本系統(tǒng)在功能上還有很大的可擴(kuò)展性。

圖7 CPU使用率分析Fig.7 The analysis of CPU utilization rate

另外,本軟件在程序上還有很多地方需要進(jìn)一步優(yōu)化。優(yōu)化之后,軟件的性能會(huì)得到進(jìn)一步提高。

4 結(jié)語

該方案通過采用“貼圖”技術(shù)和多級(jí)緩沖技術(shù)設(shè)計(jì)電子水平狀態(tài)指示儀,在思路上是一種突破。從對(duì)已經(jīng)完成的屏幕顯示部分的測(cè)試來看,軟件在幀速率和CPU使用率方面均能達(dá)到較好效果,該方案能夠有效提高電子水平狀態(tài)指示儀界面的顯示速度和質(zhì)量,此外,開源Linux操作系統(tǒng)的引入大大增強(qiáng)了電子水平狀態(tài)指示儀的系統(tǒng)可擴(kuò)展性。

[1]朱耀東,張煥春,經(jīng)亞枝.一種新型飛機(jī)座艙電子水平狀態(tài)儀的研制[J].航空學(xué)報(bào),2003,24(4):360-364.

[2]THOMSEN S V,HANCOCK W R.Extending AMLCD technology into the space shuttle cockpit[C]//SPIE Proceedings,1994,2219:118-129.

[3]RUNYON K R.Application of an advanced graphics processor[C]//SPIE Cockpit Displays,1994,2219:383-387.

[4]胡小龍,周俊明,夏顯忠,等.飛機(jī)座艙圖形顯示加速系統(tǒng)設(shè)計(jì)及FPGA實(shí)現(xiàn)[J].中南大學(xué)學(xué)報(bào):自然科學(xué)版,2008,39(5):1042-1048.

[5]張德斌,郭定,馬利東,等.戰(zhàn)斗機(jī)座艙顯示的發(fā)展需求[J].電光與控制,2004,11(1):54-55.

[6]楊昕欣,張曉林,徐廣毅.嵌入式電子飛行儀表系統(tǒng)軟件設(shè)計(jì)[J].航空學(xué)報(bào),2005,26(1):74-78.

[7]冼進(jìn),許振山,劉崢嶸,等.嵌入式Linux應(yīng)用開發(fā)詳解[M].北京:電子工業(yè)出版社,2007.

[8]夏寶亮,張宗澄.基于 Framebuffer的應(yīng)用開發(fā)[J].大眾科技,2007(10):79-80.

[9]陳莉君.Linux操作系統(tǒng)內(nèi)核分析[M].北京:人民郵電出版社,2000.

[10]胡還剛,龔暉.多緩沖技術(shù)的一種實(shí)現(xiàn)方法及其應(yīng)用[J].計(jì)算機(jī)應(yīng)用研究,2003(4):20-21.

猜你喜歡
進(jìn)程
債券市場(chǎng)對(duì)外開放的進(jìn)程與展望
改革開放進(jìn)程中的國(guó)際收支統(tǒng)計(jì)
快速殺掉頑固進(jìn)程
社會(huì)進(jìn)程中的新聞學(xué)探尋
我國(guó)高等教育改革進(jìn)程與反思
Linux僵死進(jìn)程的產(chǎn)生與避免
講效率 結(jié)束進(jìn)程要批量
電腦迷(2012年24期)2012-04-29 00:44:03
男女平等進(jìn)程中出現(xiàn)的新矛盾和新問題
俄羅斯現(xiàn)代化進(jìn)程的阻礙
論文萊的民族獨(dú)立進(jìn)程
主站蜘蛛池模板: 中文字幕亚洲精品2页| 亚洲人成网站日本片| 亚洲AV免费一区二区三区| 伊人久久久久久久久久| 国产视频一区二区在线观看| 国产一级α片| 久久这里只有精品66| 国模私拍一区二区| 婷婷六月在线| 97综合久久| 99在线观看免费视频| 99免费视频观看| 久久96热在精品国产高清| 免费无码又爽又刺激高| 成人免费网站久久久| 中文字幕无码中文字幕有码在线| 人妻丰满熟妇AV无码区| 久久综合婷婷| 欧美精品影院| 91国内视频在线观看| 亚洲人成影院午夜网站| 欧美精品二区| 日韩资源站| 国产高清国内精品福利| 久久精品国产精品青草app| 国产精女同一区二区三区久| 久久99国产综合精品1| 国产精品视频999| 色亚洲成人| 久久福利片| 成人国产精品网站在线看| 亚洲av无码人妻| 国产欧美日韩资源在线观看| 亚洲国产亚洲综合在线尤物| 伊人欧美在线| 精品视频一区二区三区在线播| 91 九色视频丝袜| 亚洲不卡网| 久热这里只有精品6| 亚洲精品无码人妻无码| 国产亚洲男人的天堂在线观看| 欧美有码在线| 色九九视频| 国产精品综合久久久| 国产精品分类视频分类一区| 99精品国产自在现线观看| 亚洲国产系列| 亚洲无码高清视频在线观看| a级高清毛片| 国产偷倩视频| 九月婷婷亚洲综合在线| 在线国产毛片| 亚洲最大福利网站| 日韩高清欧美| 国产aⅴ无码专区亚洲av综合网 | 中国国产一级毛片| 直接黄91麻豆网站| 亚洲最新在线| 四虎影视国产精品| 欧美精品亚洲二区| 久久伊人久久亚洲综合| 日韩精品免费一线在线观看| 国产亚洲欧美在线专区| 久久精品视频亚洲| 亚洲综合经典在线一区二区| 亚洲无线视频| 国产迷奸在线看| 久久国产亚洲欧美日韩精品| 91丝袜乱伦| 成年看免费观看视频拍拍| 亚洲国产成人久久精品软件| 久久国产乱子| 大香伊人久久| 天天综合网色中文字幕| 网友自拍视频精品区| 黄色网页在线播放| 国产在线自在拍91精品黑人| 不卡国产视频第一页| 天天综合网色| 青青草原国产av福利网站| 嫩草影院在线观看精品视频| 91黄视频在线观看|