《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于Linux和MiniGUI的某型指控終端人機(jī)接口設(shè)計(jì)
基于Linux和MiniGUI的某型指控終端人機(jī)接口設(shè)計(jì)
現(xiàn)代電子技術(shù)
陳喜春 黃 波
摘要: 基于Linux和MiniGUI的某型指控終端人機(jī)接口設(shè)計(jì),在此詳細(xì)介紹了某型車載指揮控制終端人機(jī)接口部分軟、硬件的選型、設(shè)計(jì)與實(shí)現(xiàn)過(guò)程,并對(duì)開(kāi)發(fā)過(guò)程中出現(xiàn)的其他問(wèn)題提出了解決方案。該終端采用ARM作為處理器,Linux作為操作系統(tǒng),通過(guò)MiniGUI實(shí)現(xiàn)圖形界面。試驗(yàn)表明,該終端性價(jià)比高,實(shí)現(xiàn)簡(jiǎn)單,對(duì)同類終端的設(shè)計(jì)有借鑒意義。
Abstract:
Key words :

    隨著武器裝備信息化程度的提高,各種嵌入式信息裝備得到了廣泛應(yīng)用。作為未來(lái)戰(zhàn)場(chǎng)主要作戰(zhàn)平臺(tái)的各種戰(zhàn)斗車輛,其車載指揮控制平臺(tái)的設(shè)計(jì)得到了廣泛重視。
    一個(gè)車載指控平臺(tái)的功能主要體現(xiàn)在以下幾個(gè)方面:監(jiān)控、顯示車輛的技術(shù)狀態(tài);車際間的指控、通信;車輛的定位、導(dǎo)航;各種文電處理等。本文將介紹一個(gè)基于ARMMiniGUI的車載指控系統(tǒng)人機(jī)接口部分的設(shè)計(jì),這個(gè)系統(tǒng)初步實(shí)現(xiàn)了上述車載指控平臺(tái)的主要功能。

l 軟硬件的選型
    受車輛內(nèi)部空間的限制,指揮控制終端必須做到小型化,嵌入式。ARM作為一種已經(jīng)在多個(gè)領(lǐng)域得到非常廣泛應(yīng)用的架構(gòu),這里采用它是一個(gè)很好的選擇。該課題選擇在國(guó)內(nèi)有著較廣泛市場(chǎng)的SAMSUNG公司的S3C2410芯片作為CPU。S3C2410芯片主要應(yīng)用于手持設(shè)備或者其他對(duì)功耗、成本、性能有較高要求的場(chǎng)合。為了降低整機(jī)成本,該芯片內(nèi)置了各16 KB的指令和數(shù)據(jù)緩存、MMU、UART、ADC、LCD控制器,I2C總線接口、IIS總線接口、USB主從設(shè)備支持、觸摸屏接口等,這種設(shè)計(jì)提高了系統(tǒng)的集成度,也給系統(tǒng)開(kāi)發(fā)提供了極大的便利。
    系統(tǒng)軟件可以有很多選擇,因?yàn)樵撔酒瑑?nèi)置MMU,因此可以支持Windows CE,Linux,Palm OS和VxWorks等多種主流嵌入式操作系統(tǒng)。車載指控平臺(tái)對(duì)實(shí)時(shí)性要求不高,因此這里選擇嵌入式Linux作為操作系統(tǒng)。嵌入式Linux具有源碼開(kāi)放、成本低、應(yīng)用軟件豐富等特點(diǎn),因此Linux和ARM是許多低成本的應(yīng)用中首選的組合。
    作為指控終端,必然對(duì)用戶圖形界面有特殊的要求,該項(xiàng)目選擇飛漫公司的MiniGUI作為圖形引擎。MiniGUI是一個(gè)專門面向嵌入式系統(tǒng)的圖形用戶界面支持系統(tǒng),它為應(yīng)用程序定義了一組輕量級(jí)的窗口和圖形設(shè)備接口。利用這些接口,每個(gè)應(yīng)用程序可以建立多個(gè)窗口并在這些窗口中創(chuàng)建各種控件。在軟件體系中,它介于內(nèi)核和應(yīng)用程序之間,在此將利用MiniGUI來(lái)完成用戶圖形界面的編程。

2 硬件設(shè)計(jì)
    ARM S3C2410芯片的應(yīng)用電路有許多成熟的設(shè)計(jì)范例;在設(shè)計(jì)階段,市面上也有很多的開(kāi)發(fā)板可供選用。該項(xiàng)目選用杭州立宇泰公司的ARM SYS2410開(kāi)發(fā)板作為開(kāi)發(fā)的硬件平臺(tái)。
    該開(kāi)發(fā)板采取核心板和擴(kuò)展板分離的結(jié)構(gòu),提供了大部分的外設(shè)接口電路,并且有200個(gè)引出腳,引出了CPU上的大部分I/0端口,這樣做為后續(xù)的開(kāi)發(fā)工作提供了便利。
2.1 鍵盤矩陣電路
    該項(xiàng)目的指揮控制終端功能可以分為6項(xiàng)。每項(xiàng)選中后,為便于輸入或選擇子條目,增加10個(gè)數(shù)字鍵,另外還需要確定鍵、取消鍵,再加上6個(gè)功能鍵,一共是24個(gè)鍵。因?yàn)殒I的數(shù)目較多,將這些鍵設(shè)計(jì)成一個(gè)行列式鍵盤矩陣(見(jiàn)圖1)。


    結(jié)合開(kāi)發(fā)板的電路結(jié)構(gòu),鍵盤矩陣的列輸入端口使用GPE5~GPElO六個(gè)通用I/0口線,行輸出端口采用GPEll~GPEl4四個(gè)通用I/0口線,在行線和列線的交點(diǎn)接入按鍵開(kāi)關(guān)。
    鍵盤掃描的原理是,按照有規(guī)律的時(shí)間間隔察看鍵盤矩陣,以確定是否有鍵按下。鍵盤掃描可以采取專用芯片,也可以采用軟件方法實(shí)現(xiàn),該項(xiàng)目采用軟件方法。
2.2 顯示驅(qū)動(dòng)電路
    指揮控制終端輸入/輸出設(shè)備的第二個(gè)重點(diǎn)就是顯示設(shè)備。ARM芯片內(nèi)置有LCD控制器,可以方便地實(shí)現(xiàn)顯示功能。但是ARM LCD控制器支持的是TTL電平的RGB分量顯示,而目前市場(chǎng)上較大尺寸的工控液晶屏大多是LVDS電平接口,因此需要接口電路。
    另一種解決方案是將ARM開(kāi)發(fā)板TTL電平的RGB信號(hào)轉(zhuǎn)換成VGA信號(hào),這樣顯示器的選擇更加隨意,而且降低了成本。RGB信號(hào)轉(zhuǎn)換成VGA信號(hào)可采用專用的AD芯片,如ADV7120,ADV7123等。

3 軟件設(shè)計(jì)
    軟件設(shè)計(jì)需要完成兩個(gè)方面的工作:一是驅(qū)動(dòng)程序編寫;二是GUI編程。
3.1 鍵盤矩陣驅(qū)動(dòng)程序的編寫
    開(kāi)發(fā)板對(duì)自己所提供的硬件一般都提供相應(yīng)的驅(qū)動(dòng)程序,自行開(kāi)發(fā)的外設(shè)電路一般需要自己編寫驅(qū)動(dòng)程序。設(shè)備驅(qū)動(dòng)程序是Linux內(nèi)核的重要部分,操作系統(tǒng)只有通過(guò)驅(qū)動(dòng)程序才能夠控制外設(shè)的硬件行為。
    在系統(tǒng)內(nèi)部,I/0設(shè)備的存取是通過(guò)一系列的入口點(diǎn)來(lái)進(jìn)行的,字符型設(shè)備提供以下入口點(diǎn):open,close,read,write,ioctl;它們分別對(duì)應(yīng)打開(kāi)設(shè)備、關(guān)閉設(shè)備、讀設(shè)備、寫設(shè)備以及其他操作。這些入口點(diǎn)的定義是通過(guò)一個(gè)重要的數(shù)據(jù)結(jié)構(gòu)file_operations來(lái)完成的。
    鍵盤驅(qū)動(dòng)程序編制的要點(diǎn)有:
    (1)定義一個(gè)6×4的健值矩陣,作為輸出,按下一個(gè)按鍵,得到對(duì)應(yīng)的鍵值;
    (2)初始化時(shí)設(shè)置所用到的I/O端口的讀/寫模式,行線為寫,列線為讀;
    (3)定義鍵盤掃描函數(shù)scan_kbd()。它的算法是:初始化時(shí)所有的行線置低電平,如果沒(méi)有鍵按下,列線都將讀到高電平。否則,任何鍵的閉合將造成該列成為低電平。
    (4)在read入口點(diǎn),也就是file_operations結(jié)構(gòu)定義的read方法中,調(diào)用scan_kbd()。這樣,驅(qū)動(dòng)程序就可以定時(shí)掃描幾個(gè)I/O端口,獲取鍵值,然后通過(guò)putuser發(fā)送到用戶地址空間。
    設(shè)置I/O模式,讀/寫I/0端口的位,可以通過(guò)頭文件S3C2410.h中專門定義的宏set_gpio_ctrl,write_gpio_bit,read_gpio_bit來(lái)進(jìn)行。
    鍵盤驅(qū)動(dòng)程序經(jīng)過(guò)編譯后,可以作為一個(gè)設(shè)備文件編譯入內(nèi)核,也可以采取模塊動(dòng)態(tài)加載的方式。
3.2 MiniGUl IAL引擎的實(shí)現(xiàn)
    通常,MiniGUI在使用前應(yīng)針對(duì)目標(biāo)系統(tǒng)的特點(diǎn)進(jìn)行配置和編譯,例如指定目標(biāo)操作系統(tǒng)、運(yùn)行模式、圖形引擎和輸入引擎、字體類型、字符集、所支持的控件類等。該課題中,因?yàn)椴扇×俗孕性O(shè)計(jì)的鍵盤作為輸入設(shè)備,因此最重要的配置是輸入引擎(input abstract lay-er,IAL)。
    抽象層是一組不依賴于硬件的抽象接口,其作用類似于操作系統(tǒng)的驅(qū)動(dòng)程序,將底層的硬件操作與操作系統(tǒng)隔離,這樣做簡(jiǎn)化了在不同平臺(tái)上移植的難度。開(kāi)發(fā)特定的鍵盤輸入,主要是完成兩部分工作:鍵盤驅(qū)動(dòng)程序設(shè)計(jì)和鍵盤輸入引擎開(kāi)發(fā)。前者負(fù)責(zé)從鍵盤接收原始輸入事件和數(shù)據(jù),后者負(fù)責(zé)將原始的輸入事件和數(shù)據(jù)轉(zhuǎn)換成MiniGUl抽象的鍵盤事件和數(shù)據(jù)。
    在代碼實(shí)現(xiàn)上,MiniGUI通過(guò)INPUT數(shù)據(jù)結(jié)構(gòu)來(lái)表示輸入引擎。該結(jié)構(gòu)中指定了若干函數(shù)指針,編寫特定的輸入引擎,主要就是編碼實(shí)現(xiàn)INPUT結(jié)構(gòu)中的各個(gè)函數(shù)。新的IAL引擎編寫完成后,應(yīng)加入MiniGUI進(jìn)行配置,然后對(duì)MiniGUI進(jìn)行編譯。在工程實(shí)踐中,一種比較簡(jiǎn)便的方法是對(duì)MiniGUI已經(jīng)實(shí)現(xiàn)的引擎進(jìn)行修改。
3.3 圖形界面設(shè)計(jì)
    MiniGUI是一個(gè)圖形用戶界面支持系統(tǒng),通常的GUI編程概念均適用于MiniGUI編程,如窗口和事件驅(qū)動(dòng)編程等。嵌入式系統(tǒng)完成的功能一般比較單一,對(duì)于該系統(tǒng)而言,重點(diǎn)在于實(shí)現(xiàn)人機(jī)接口部分,因此只需要輪詢用戶的按鍵輸入即可。如圖2所示。


    MiniGUI中有三種窗口類型:主窗口、對(duì)話框和控件窗口。每一個(gè)MiniGUI應(yīng)用程序一般都要?jiǎng)?chuàng)建一個(gè)主窗口,作為應(yīng)用程序的主界面或開(kāi)始界面。MiniGUI包含有許多控件類,如靜態(tài)框、按鈕、列表框、編輯框、進(jìn)度條等,這些控件類可以實(shí)現(xiàn)和Windows標(biāo)準(zhǔn)控件類似的效果。
    最重要的幾個(gè)函數(shù)是:

其中,WndProc是這個(gè)窗口的消息處理函數(shù)。在此,對(duì)消息循環(huán)進(jìn)行初立即可。例如:


    添加了鍵盤驅(qū)動(dòng),修改了MiniGUI的輸入引擎后,應(yīng)用程序就可以響應(yīng)鍵盤消息,處理各種事件。除了對(duì)標(biāo)準(zhǔn)控制的支持外,MiniGUI還提供了圖形設(shè)備接口(GDI)的支持。通過(guò)GDI,程序可以在計(jì)算機(jī)屏幕上進(jìn)行圖形輸出,包括基本繪圖和文本輸出。利用這種手段,可以繪制指控終端需要的儀表、各種表格。
3.4 其他問(wèn)題
    在該課題的開(kāi)發(fā)過(guò)程中,還遇到了一些其他的問(wèn)題,概述如下:
    (1)顯示的色彩深度問(wèn)題。作為指控終端,該課題設(shè)計(jì)的顯示分辨率為640×480,如果是16位以上的色深,對(duì)ARM處理器將是一個(gè)比較大的負(fù)擔(dān),會(huì)出現(xiàn)畫面的抖動(dòng),不連貫。處理的方法是將色深設(shè)置為8位,這需要通過(guò)修改Linux的顯示驅(qū)動(dòng)來(lái)解決。
    (2)鍵盤的防抖問(wèn)題。按鍵的抖動(dòng)問(wèn)題是一類常見(jiàn)問(wèn)題,可以通過(guò)軟件延時(shí)或者其他的手段進(jìn)行處理。
    (3)終端功能的進(jìn)一步豐富。該課題只實(shí)現(xiàn)了終端的人機(jī)界面,但是作為一個(gè)完整意義的終端,還應(yīng)該考慮終端之間的聯(lián)網(wǎng)、數(shù)據(jù)傳輸,終端和工況采集裝置之間的硬件接口、數(shù)據(jù)交換等問(wèn)題。這些需要進(jìn)一步開(kāi)發(fā)利用ARM芯片上的其他外設(shè),這是該課題下一步的目標(biāo)。

4 結(jié)語(yǔ)
    ARM作為一款性價(jià)比突出的嵌入式芯片,與圖形系統(tǒng)MiniGUI相結(jié)合,是嵌入式圖形界面編程的優(yōu)選。實(shí)驗(yàn)證明,本文所介紹的軟、硬件系統(tǒng)較好地實(shí)現(xiàn)了在本文引言中提及的車載指控平臺(tái)的幾項(xiàng)功能。作為一類典型的車載嵌入式系統(tǒng),車載指控系統(tǒng)的設(shè)計(jì)原理與方法同樣適用于其他嵌入式系統(tǒng)。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美激情免费观看| 国产精品私房写真福利视频| 午夜亚洲伦理| 亚洲视频网在线直播| 亚洲人成网站777色婷婷| 欧美在线视频一区| 亚洲国产日韩一级| 久久精品亚洲| 性欧美精品高清| 亚洲第一福利社区| 国产精品午夜在线| 欧美日韩在线免费观看| 欧美日韩日本网| 欧美三日本三级少妇三2023| 欧美日韩国产三级| 欧美日韩在线视频一区| 欧美日韩亚洲不卡| 欧美日韩一区视频| 国产精品白丝jk黑袜喷水| 欧美亚州在线观看| 国产精品一香蕉国产线看观看| 国产精品五区| 国产一区导航| 精品99一区二区| 小嫩嫩精品导航| 亚洲影音一区| 午夜欧美大尺度福利影院在线看| 亚洲在线成人精品| 欧美一区二区三区四区视频| 久久av一区二区| 亚洲精品精选| 日韩午夜av电影| 亚洲一区欧美二区| 久久成人国产| 久久亚洲精选| 欧美成人资源网| 欧美日韩一区二区视频在线观看| 国产精品精品视频| 国产日韩在线一区| 影院欧美亚洲| 99精品国产一区二区青青牛奶| 一区二区三区日韩欧美| 先锋影音国产一区| 亚洲黄色精品| 一区二区三区 在线观看视频| 午夜精品久久久久久99热| 久久精品一区四区| 欧美电影电视剧在线观看| 欧美日韩一区在线| 国产日产欧美精品| 亚洲大片一区二区三区| 日韩视频一区| 欧美一区二区三区四区在线| 亚洲剧情一区二区| 欧美一级视频一区二区| 麻豆亚洲精品| 国产精品久久久久免费a∨ | 国产精品丝袜xxxxxxx| 激情久久综合| 一区二区三区|亚洲午夜| 久久爱www.| 中文精品一区二区三区| 久久久91精品国产一区二区三区| 欧美成人精品在线播放| 国产精品极品美女粉嫩高清在线 | 亚洲一区二区三区四区五区午夜 | 国语自产精品视频在线看8查询8 | 国产精品地址| 在线观看一区视频| 亚洲与欧洲av电影| 亚洲精品永久免费| 欧美影院午夜播放| 欧美日韩精品欧美日韩精品| 国产综合精品| 亚洲一级片在线观看| 亚洲精品视频一区| 久久久一区二区| 国产精品a级| 亚洲激情中文1区| 欧美一区二区三区免费观看视频| 一区二区三区视频观看| 免费欧美网站| 国产日韩精品一区二区浪潮av| 日韩小视频在线观看专区| 亚洲国产日韩欧美在线动漫| 性欧美大战久久久久久久久| 欧美日韩免费看| 永久免费精品影视网站| 香蕉成人久久| 午夜精品久久99蜜桃的功能介绍| 欧美极品aⅴ影院| 精品白丝av| 欧美一区二区啪啪| 香蕉乱码成人久久天堂爱免费| 欧美日韩国产在线看| 亚洲电影免费| 亚洲第一视频网站| 久久成人av少妇免费| 国产精品毛片在线| 99riav1国产精品视频| 亚洲精品色婷婷福利天堂| 久久青草欧美一区二区三区| 国产欧美精品在线观看| 亚洲一区二区三区免费观看| 亚洲国产专区| 欧美在线视屏| 久久久久.com| 韩国成人精品a∨在线观看| 亚洲一区免费视频| 亚洲免费一在线| 国产精品成av人在线视午夜片| 亚洲精选在线观看| 夜夜爽av福利精品导航| 欧美国产欧美亚州国产日韩mv天天看完整 | 国产一二精品视频| 亚洲欧美日韩一区二区三区在线观看| 制服诱惑一区二区| 欧美日韩日日夜夜| 99在线|亚洲一区二区| 一本色道久久88综合亚洲精品ⅰ| 欧美激情视频在线免费观看 欧美视频免费一| 精品av久久久久电影| 亚洲国产欧美在线人成| 免费短视频成人日韩| 亚洲国产日韩在线| 99视频日韩| 欧美色欧美亚洲另类七区| 一本色道久久综合狠狠躁篇怎么玩 | 亚洲视频高清| 欧美视频在线观看视频极品| av成人免费在线| 亚洲免费中文字幕| 国产欧美日韩精品a在线观看| 午夜精品久久久久久久久久久 | 久久久久久久久久看片| 国产一区二区精品久久| 久久精品五月| 欧美精品www| 日韩一区二区久久| 亚洲欧美日韩国产综合| 国产欧美精品在线| 亚洲国产美女精品久久久久∴| 欧美电影免费观看网站| 亚洲麻豆国产自偷在线| 亚洲欧美日本日韩| 国产一区在线视频| 亚洲人成7777| 欧美视频日韩视频在线观看| 亚洲一区二区三区欧美| 久久久人人人| 亚洲欧洲一二三| 亚洲欧美日韩成人高清在线一区| 国产情人节一区| 亚洲韩国一区二区三区| 欧美日韩性视频在线| 亚洲欧洲av一区二区三区久久| 久久在线免费观看| 日韩一区二区精品在线观看| 欧美一区二区视频97| 亚洲大胆在线| 亚洲男人第一网站| 精品电影一区| 亚洲一区二区四区| 激情国产一区二区| 一区二区三区四区五区精品视频 | 欧美一区日韩一区| 欧美国产免费| 亚洲一区三区电影在线观看| 看片网站欧美日韩| 亚洲午夜av在线| 久久综合伊人77777麻豆| 99视频+国产日韩欧美| 久久九九国产精品| 99亚洲视频| 久久这里有精品15一区二区三区| 亚洲精品美女久久7777777| 欧美一级大片在线观看| 亚洲国产美女| 西西人体一区二区| 亚洲国产欧美一区二区三区丁香婷| 午夜日韩福利| 亚洲精品美女久久久久| 久久青青草综合| 亚洲一区二区三区免费在线观看| 欧美大成色www永久网站婷| 亚洲欧美美女| 欧美日韩国产天堂| 亚洲成人在线视频网站| 国产精品久久久一区二区三区| 亚洲国产欧美不卡在线观看| 国产精品久久久久免费a∨| 日韩一级精品视频在线观看| 韩国三级在线一区| 香蕉尹人综合在线观看| 亚洲伦理自拍| 欧美搞黄网站| 亚洲国产精品高清久久久| 国产精品永久免费观看| 亚洲午夜未删减在线观看| 亚洲黑丝在线|