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

基于Linux和MiniGUI的某型指控終端人機接口設計

2010-04-12 00:00:00陳喜春,
現代電子技術 2010年14期

摘 要:在此詳細介紹了某型車載指揮控制終端人機接口部分軟、硬件的選型、設計與實現過程,并對開發過程中出現的其他問題提出了解決方案。該終端采用ARM作為處理器,Linux作為操作系統,通過MiniGUI實現圖形界面。試驗表明,該終端性價比高,實現簡單,對同類終端的設計有借鑒意義。

關鍵詞:指揮控制終端; Linux; MiniGUI;ARM

中圖分類號:TN21; TP368.1 文獻標識碼:A 文章編號:1004-373X(2010)14-0025-03

Design of Man-machine Interface Based on Linux and MiniGUI for Command and Control Terminal

CHEN Xi-chun, HUANG Bo

(Shijiazhuang Mechanized Infantry Academy, Shijiazhuang 050083, China)

Abstract: With the innovation of information technology, the information terminal with the function of command and control will play a more and more important role in the future battle field. The selection of software and hardware, the design of the system, and the function realization fora certain vehicle-mounted command and control terminal system are described in detail. The solution to some problems that emerge in the development of the system is proposed. In the terminal, ARM is adopted as processor, the embedded Linux as operating system and GUI is realized with MiniGUI. The expriment result shows that this terminal is of high efficiency, low cost, easy to develop, and great significance for reference in the design of other terminals of its kind.

Keywords: command and control terminal; Linux; MiniGUI; ARM

0 引 言

隨著武器裝備信息化程度的提高,各種嵌入式信息裝備得到了廣泛應用。作為未來戰場主要作戰平臺的各種戰斗車輛,其車載指揮控制平臺的設計得到了廣泛重視。

一個車載指控平臺的功能主要體現在以下幾個方面:監控、顯示車輛的技術狀態;車際間的指控、通信;車輛的定位、導航;各種文電處理等。本文將介紹一個基于ARM和MiniGUI的車載指控系統人機接口部分的設計,這個系統初步實現了上述車載指控平臺的主要功能。

1 軟硬件的選型

受車輛內部空間的限制,指揮控制終端必須做到小型化,嵌入式。ARM作為一種已經在多個領域得到非常廣泛應用的架構,這里采用它是一個很好的選擇[1] 。該課題選擇在國內有著較廣泛市場的SAMSUNG公司的S3C2410芯片作為CPU。S3C2410芯片主要應用于手持設備或者其他對功耗、成本、性能有較高要求的場合。為了降低整機成本,該芯片內置了各16 KB的指令和數據緩存、MMU、UART、ADC、LCD控制器,I2C總線接口、IIS總線接口、USB主從設備支持、觸摸屏接口等[2] ,這種設計提高了系統的集成度,也給系統開發提供了極大的便利。

系統軟件可以有很多選擇,因為該芯片內置MMU,因此可以支持Windows CE,Linux,Palm OS和VxWorks等多種主流嵌入式操作系統。車載指控平臺對實時性要求不高,因此這里選擇嵌入式Linux作為操作系統。嵌入式Linux具有源碼開放、成本低、應用軟件豐富等特點[3] ,因此Linux和ARM是許多低成本的應用中首選的組合。

作為指控終端,必然對用戶圖形界面有特殊的要求,該項目選擇飛漫公司的MiniGUI作為圖形引擎。MiniGUI是一個專門面向嵌入式系統的圖形用戶界面支持系統,它為應用程序定義了一組輕量級的窗口和圖形設備接口。利用這些接口,每個應用程序可以建立多個窗口并在這些窗口中創建各種控件[4] 。在軟件體系中,它介于內核和應用程序之間,在此將利用MiniGUI來完成用戶圖形界面的編程。

2 硬件設計

ARM S3C2410芯片的應用電路有許多成熟的設計范例;在設計階段,市面上也有很多的開發板可供選用。該項目選用杭州立宇泰公司的ARM SYS2410開發板作為開發的硬件平臺。

該開發板采取核心板和擴展板分離的結構,提供了大部分的外設接口電路,并且有200個引出腳,引出了CPU上的大部分I/O端口[5] ,這樣做為后續的開發工作提供了便利。

2.1 鍵盤矩陣電路

該項目的指揮控制終端功能可以分為6項。每項選中后,為便于輸入或選擇子條目,增加10個數字鍵,另外還需要確定鍵、取消鍵,再加上6個功能鍵,一共是24個鍵。因為鍵的數目較多,將這些鍵設計成一個行列式鍵盤矩陣(見圖1)。

圖1 鍵盤矩陣電路

結合開發板的電路結構,鍵盤矩陣的列輸入端口使用GPE5~GPE10六個通用I/O口線,行輸出端口采用GPE11~GPE14四個通用I/O口線,在行線和列線的交點接入按鍵開關。

鍵盤掃描的原理是,按照有規律的時間間隔察看鍵盤矩陣,以確定是否有鍵按下。鍵盤掃描可以采取專用芯片,也可以采用軟件方法實現[6] ,該項目采用軟件方法。

2.2 顯示驅動電路

指揮控制終端輸入/輸出設備的第二個重點就是顯示設備。ARM芯片內置有LCD控制器,可以方便地實現顯示功能。但是ARM LCD控制器支持的是TTL電平的RGB分量顯示,而目前市場上較大尺寸的工控液晶屏大多是LVDS電平接口,因此需要接口電路。

另一種解決方案是將ARM開發板TTL電平的RGB信號轉換成VGA信號,這樣顯示器的選擇更加隨意,而且降低了成本。RGB信號轉換成VGA信號可采用專用的AD芯片,如ADV7120,ADV7123等[7] 。

3 軟件設計

軟件設計需要完成兩個方面的工作:一是驅動程序編寫;二是GUI編程。

3.1 鍵盤矩陣驅動程序的編寫

開發板對自己所提供的硬件一般都提供相應的驅動程序,自行開發的外設電路一般需要自己編寫驅動程序。設備驅動程序是Linux內核的重要部分,操作系統只有通過驅動程序才能夠控制外設的硬件行為。

在系統內部,I/O設備的存取是通過一系列的入口點來進行的,字符型設備提供以下入口點:open,close,read,write,ioctl;它們分別對應打開設備、關閉設備、讀設備、寫設備以及其他操作。這些入口點的定義是通過一個重要的數據結構file_operations來完成的[8] 。

鍵盤驅動程序編制的要點有:

(1) 定義一個6×4的健值矩陣,作為輸出,按下一個按鍵,得到對應的鍵值;

(2) 初始化時設置所用到的I/O端口的讀/寫模式,行線為寫,列線為讀;

(3) 定義鍵盤掃描函數scan_kbd()。它的算法是:初始化時所有的行線置低電平,如果沒有鍵按下,列線都將讀到高電平。否則,任何鍵的閉合將造成該列成為低電平。

(4) 在read入口點,也就是file_operations結構定義的read方法中,調用scan_kbd()。這樣,驅動程序就可以定時掃描幾個I/O端口,獲取鍵值,然后通過put_user發送到用戶地址空間。

設置I/O模式,讀/寫I/O端口的位,可以通過頭文件S3C2410.h中專門定義的宏set_gpio_ctrl,write_gpio_bit,read_gpio_bit來進行。

鍵盤驅動程序經過編譯后,可以作為一個設備文件編譯入內核,也可以采取模塊動態加載的方式。

3.2 MiniGUI IAL引擎的實現

通常,MiniGUI在使用前應針對目標系統的特點進行配置和編譯,例如指定目標操作系統、運行模式、圖形引擎和輸入引擎、字體類型、字符集、所支持的控件類等。該課題中,因為采取了自行設計的鍵盤作為輸入設備,因此最重要的配置是輸入引擎(input abstract layer,IAL)。

抽象層是一組不依賴于硬件的抽象接口,其作用類似于操作系統的驅動程序,將底層的硬件操作與操作系統隔離,這樣做簡化了在不同平臺上移植的難度[9-10] 。開發特定的鍵盤輸入,主要是完成兩部分工作:鍵盤驅動程序設計和鍵盤輸入引擎開發。前者負責從鍵盤接收原始輸入事件和數據,后者負責將原始的輸入事件和數據轉換成MiniGUI抽象的鍵盤事件和數據。

在代碼實現上,MiniGUI通過INPUT數據結構來表示輸入引擎。該結構中指定了若干函數指針,編寫特定的輸入引擎,主要就是編碼實現INPUT結構中的各個函數。新的IAL引擎編寫完成后,應加入MiniGUI進行配置,然后對MiniGUI進行編譯[11] 。在工程實踐中,一種比較簡便的方法是對MiniGUI已經實現的引擎進行修改。

3.3 圖形界面設計

MiniGUI是一個圖形用戶界面支持系統,通常的GUI編程概念均適用于MiniGUI編程,如窗口和事件驅動編程等。嵌入式系統完成的功能一般比較單一,對于該系統而言,重點在于實現人機接口部分,因此只需要輪詢用戶的按鍵輸入即可。如圖2所示。

圖2 程序流程圖

MiniGUI中有三種窗口類型:主窗口、對話框和控件窗口。每一個MiniGUI應用程序一般都要創建一個主窗口,作為應用程序的主界面或開始界面。MiniGUI包含有許多控件類,如靜態框、按鈕、列表框、編輯框、進度條等,這些控件類可以實現和Windows標準控件類似的效果。

最重要的幾個函數是:

HWND GUIAPI CreateMainWindowIndirect (PDLGTEMPLATE pDlgTemplate, HWND hOwner, WNDPROC WndProc);

其中,WndProc是這個窗口的消息處理函數。在此,對消息循環進行初立即可。例如:

static int WndProc (HWND hDlg, int message, WPARAM wParam, LPARAM lParam)

{

switch (message) {

case MSG_CREATE:

case MSG_PAINT:

case MSG_KEYUP:

switch (wParam) {

case SCANCODE_X:

case SCANCODE_F:

} }

return DefaultMainWinProc(hDlg, message, wParam, lParam); }

添加了鍵盤驅動,修改了MiniGUI的輸入引擎后,應用程序就可以響應鍵盤消息,處理各種事件。

除了對標準控制的支持外,MiniGUI還提供了圖形設備接口(GDI)的支持。通過GDI,程序可以在計算機屏幕上進行圖形輸出,包括基本繪圖和文本輸出。利用這種手段,可以繪制指控終端需要的儀表、各種表格。

3.4 其他問題

在該課題的開發過程中,還遇到了一些其他的問題,概述如下:

(1) 顯示的色彩深度問題。作為指控終端,該課題設計的顯示分辨率為640×480,如果是16位以上的色深,對ARM處理器將是一個比較大的負擔,會出現畫面的抖動,不連貫。處理的方法是將色深設置為8位,這需要通過修改Linux 的顯示驅動來解決。

(2) 鍵盤的防抖問題。按鍵的抖動問題是一類常見問題,可以通過軟件延時或者其他的手段進行處理。可參考文獻[ 6] 。

(3) 終端功能的進一步豐富。該課題只實現了終端的人機界面,但是作為一個完整意義的終端,還應該考慮終端之間的聯網、數據傳輸,終端和工況采集裝置之間的硬件接口、數據交換等問題。這些需要進一步開發利用ARM芯片上的其他外設,這是該課題下一步的目標。

4 結 語

ARM作為一款性價比突出的嵌入式芯片,與圖形系統MiniGUI相結合,是嵌入式圖形界面編程的優選。實驗證明,本文所介紹的軟、硬件系統較好地實現了在本文引言中提及的車載指控平臺的幾項功能。作為一類典型的車載嵌入式系統,車載指控系統的設計原理與方法同樣適用于其他嵌入式系統。

參考文獻

[1]杜春雷.ARM體系結構與編程[M].北京:清華大學出版社,2003.

[2]Samsung Electronics. S3C2410A User′s Manual[M]. South Korea: Samsung Electronics, 2003.

[3]劉崢嶸,張智超,許振山,等.嵌入式Linux應用開發詳解[M].北京:機械工業出版社,2005.

[4]魏永明,鐘書毅,潘為國.Linux/μClinux + MiniGUI:嵌入式系統開發原理、工具及過程[M].北京:北京飛漫軟件技術有限公司,2005.

[5]杭州立宇泰電子有限公司.ARMSYS2410開發套件硬件用戶手冊[M].杭州:杭州立宇泰電子有限公司,2007.

[6]陳賾.ARM9嵌入式技術及Linux高級實踐教程[M].北京:北京航空航天大學出版社,2006.

[7]陳桂,田學隆,陳南西.ARM嵌入式平臺的VGA接口設計[J].單片機與嵌入式系統應用,2007(4):25-28.

[8][美]Corbot.Linux設備驅動程序[M].魏永明,耿月,鐘書毅,譯.北京:中國電力出版社,2006.

[9]北京飛漫軟件技術有限公司.MiniGUI用戶手冊[M].北京:北京飛漫軟件技術有限公司,2007.

[10]北京飛漫軟件技術有限公司.MiniGUI編程指南[M].北京:北京飛漫軟件技術有限公司,2007.

[11]鄒韻,田學隆.如何用MiniGUI設計小鍵盤輸入[J].單片機與嵌入式系統應用,2007(1):78-81.

主站蜘蛛池模板: 国产男人的天堂| 欧美精品亚洲日韩a| 免费看美女毛片| 性色生活片在线观看| 日韩免费无码人妻系列| av一区二区三区在线观看| 国产精品成人久久| 毛片大全免费观看| 97久久人人超碰国产精品| 人人91人人澡人人妻人人爽| 久久无码高潮喷水| www.日韩三级| 国产福利微拍精品一区二区| 亚欧成人无码AV在线播放| 精品少妇人妻av无码久久| 欧美不卡视频在线观看| 精品国产香蕉伊思人在线| 爱做久久久久久| 久久综合干| 亚国产欧美在线人成| 久操线在视频在线观看| 久久久久夜色精品波多野结衣| 亚洲男女在线| 国产在线麻豆波多野结衣| 国产欧美日韩专区发布| 人妻无码一区二区视频| 人妻21p大胆| 久久永久视频| 亚洲美女一区| 制服丝袜一区二区三区在线| 国产一级二级三级毛片| 精品视频在线观看你懂的一区| 欧美成人精品一区二区| 亚洲国产日韩在线观看| 亚洲欧洲日本在线| 国产日产欧美精品| 欧美日韩中文字幕在线| 91久久偷偷做嫩草影院| 另类欧美日韩| 日本人真淫视频一区二区三区| 国产在线视频自拍| 亚洲视频一区| 777午夜精品电影免费看| 国产中文一区a级毛片视频| 亚洲AV电影不卡在线观看| 99久久精品免费看国产免费软件| 精久久久久无码区中文字幕| 制服丝袜无码每日更新| 一级成人欧美一区在线观看 | 黄色成年视频| 国产日本视频91| 91精品福利自产拍在线观看| 精品五夜婷香蕉国产线看观看| 香蕉eeww99国产在线观看| 国产视频一区二区在线观看| 欧洲日本亚洲中文字幕| 国产福利小视频在线播放观看| 中文字幕日韩欧美| 影音先锋丝袜制服| 国产大片喷水在线在线视频| 亚洲熟女偷拍| 毛片基地视频| 高清久久精品亚洲日韩Av| 亚洲精品动漫在线观看| 国产91视频观看| 日韩精品无码不卡无码| 精品久久高清| 欧美人在线一区二区三区| 99国产精品免费观看视频| 亚洲 日韩 激情 无码 中出| 欧美日韩高清| 国产精品内射视频| 成人年鲁鲁在线观看视频| 国产女人综合久久精品视| 国产欧美日韩精品综合在线| 国产午夜无码专区喷水| 日韩视频精品在线| 亚洲人精品亚洲人成在线| 尤物午夜福利视频| 波多野结衣无码视频在线观看| 色偷偷一区二区三区| 欧美日韩精品综合在线一区|