• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Qt的手持式炮長(zhǎng)終端界面設(shè)計(jì)與實(shí)現(xiàn)

      2015-09-16 22:09:29雷雨能等
      現(xiàn)代電子技術(shù) 2015年18期
      關(guān)鍵詞:CAN總線

      雷雨能等

      摘 要: 為了實(shí)現(xiàn)對(duì)火炮表尺、方向等參數(shù)的實(shí)時(shí)可視顯示和有效控制,設(shè)計(jì)一種基于嵌入式Linux系統(tǒng)Qt/Embedded的手持炮長(zhǎng)終端應(yīng)用界面軟件。首先在工作計(jì)算機(jī)平臺(tái)中塔建嵌入式Qt開(kāi)發(fā)環(huán)境,再針對(duì)鍵盤(pán)模塊、CAN總線通信模塊和圖形顯示模塊進(jìn)行軟件模塊設(shè)計(jì),最后將程序移植至Freescale i.MX53處理器平臺(tái)中運(yùn)行。該程序解決了對(duì)火炮的有效控制和可視顯示,大大提高了火炮的作戰(zhàn)效率。實(shí)驗(yàn)結(jié)果表明,基于Qt/Embedded的手持炮長(zhǎng)終端界面響應(yīng)速度快,運(yùn)行穩(wěn)定,滿(mǎn)足性能要求。

      關(guān)鍵詞: Qt; 嵌入式Linux; CAN總線; 炮長(zhǎng)終端

      中圖分類(lèi)號(hào): TN911?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2015)18?0036?03

      Abstract: In order to achieve the real?time visual display and effective control for artillery hindsight and orientation, a Qt/Embedded?based application interface software of handheld gunner terminal was designed. At first, embedded Qt exploitation environment was built in the computers, and then software module was designed on the basis of keyboard module, CAN?bus communication module and graphic module. In the end, this program was transplanted to Freescale i.MX53 processor platform to operate, with which the effective control and visual display for artillery were realized, and the fighting efficiency was improved greatly. The test results show that the handheld gunner terminal based on Qt/Embedded has the advantages of rapid response speed and stable operation so that it can satisfy performance requirements.

      Keywords: Qt; embedded Linux; CAN; gunner terminal

      0 引 言

      當(dāng)前,嵌入式系統(tǒng)是目前最流行的計(jì)算機(jī)應(yīng)用技術(shù)之一,而嵌入式Linux系統(tǒng)卻是其中發(fā)展最快的也是應(yīng)用最廣的嵌入式操作系統(tǒng)[1]。

      Qt是一種基于C++的包含了跨平臺(tái)開(kāi)發(fā)工具和國(guó)際化支持工具的GUI系統(tǒng)[2],由于其具有C++圖形類(lèi)庫(kù)強(qiáng)大、跨平臺(tái)移植方便、豐富的多線程支持和很高的響應(yīng)速度等優(yōu)點(diǎn),目前已經(jīng)越來(lái)越多地應(yīng)用于嵌入式系統(tǒng)界面設(shè)計(jì)中。

      現(xiàn)代火炮系統(tǒng)作為局部地面戰(zhàn)爭(zhēng)中陸軍裝備的主力軍,面臨著智能化和信息化的發(fā)展趨勢(shì)。炮長(zhǎng)手持終端作為一種PDA設(shè)備,主要用于有效顯示和控制火炮的各種參數(shù),便于火炮對(duì)目標(biāo)的精確打擊,大大提高了部隊(duì)的信息化作戰(zhàn)能力。

      本系統(tǒng)基于Freescale i.MX53處理器和Linux操作系統(tǒng),硬件接口包含串口總線、CAN總線、網(wǎng)口、LCD和觸摸屏;界面設(shè)計(jì)包括鍵盤(pán)模塊、CAN通信模塊、圖形顯示模塊。

      1 嵌入式Qt開(kāi)發(fā)流程

      Linux系統(tǒng)下Qt/Embedded開(kāi)發(fā)詳細(xì)流程如下:

      (1) 選定嵌入式Linux硬件平臺(tái);

      (2) 塔建Qt開(kāi)發(fā)環(huán)境。在工作計(jì)算機(jī)上安裝Linux操作系統(tǒng),安裝Qt/X11[3],Qt/Embedded(X86),Qt/Embedded(ARM)三個(gè)版本的Qt SDK,并安裝配置Qt Creator開(kāi)發(fā)工具。Qt/X11版本主要用于產(chǎn)生Qt開(kāi)發(fā)工具,最重要的是可以得到QVFB工具[4]。QVFB可以不需要實(shí)際的開(kāi)發(fā)板,在工作計(jì)算機(jī)上開(kāi)發(fā)Qt/Embedded應(yīng)用程序,然后進(jìn)行調(diào)試,再下載到目標(biāo)硬件平臺(tái)上。Qt/Embedded版本主要應(yīng)用于嵌入式Linux系統(tǒng)的版本;

      (3) 根據(jù)目標(biāo)硬件平臺(tái)的需要,交叉編譯Qt/Embedded庫(kù)文件;

      (4) 在工作計(jì)算機(jī)上使用Qt Creator開(kāi)發(fā)工具進(jìn)行應(yīng)用程序的編輯和調(diào)試。在設(shè)計(jì)調(diào)試階段,為方便調(diào)試,編輯編譯成Qt/Embedded(X86)版本的程序,使用QVFB工具,將調(diào)試輸出結(jié)果顯示在一個(gè)仿真嵌入式設(shè)備顯示終端的模擬器上。如果仿真測(cè)試正確無(wú)誤,再編譯成Qt/Embedded(ARM)版本應(yīng)用程序;

      (5) 移植Qt/Embedded(ARM)版本應(yīng)用程序到目標(biāo)硬件平臺(tái);

      (6) 在目標(biāo)硬件平臺(tái)運(yùn)行Qt/Embedded(ARM)版本應(yīng)用程序。

      2 嵌入式Qt環(huán)境塔建

      工作計(jì)算機(jī)操作系統(tǒng)為Fedora Core 14。

      2.1 準(zhǔn)備的開(kāi)發(fā)工具包

      Qt creator開(kāi)發(fā)工具包:

      qt?creator?linux?x86?opensource?2.5.1.bin

      Qt SDK包:

      qt?everywhere?opensource?src?4.8.2.tar.gz

      Qt庫(kù)包:

      tslib?qt.tar.bz2

      交叉編譯工具:

      gcc?4.4.4?glibc?2.11.1?multilib?1.0.tar.bz2

      2.2 安裝Qt/X11版

      執(zhí)行如下操作:

      #cd /usr/local/Trolltech/PC

      #tar –jxvf qt?everywhere?opensource?src?4.8.2.tar.gz

      # ./configure

      #gmake

      #gmake install

      2.3 安裝Qt/Embedded(X86)版

      執(zhí)行如下操作:

      #cd /usr/local/Trolltech/X86

      #tar –jxvf qt?everywhere?opensource?src?4.8.2.tar.gz

      #./configure ?embeddedx86?qt?gfx?qvfb ?qt?kbd?qvfb ?qt?mouse?qvfb

      #gmake

      #gmake install

      # cd /usr/local/Trolltech/PC/tools/ qvfb

      #make

      #cp?rf\

      /usr/local/Trolltech/PC/bin/qvfb\

      /usr/local/Trolltech/X86/bin

      2.4 安裝Qt/Embedded(ARM)版

      編譯Qt庫(kù)并修改環(huán)境變量,執(zhí)行以下命令:

      #cd /usr/local/arm/

      #tar –jxvf tslib?qt.tar.bz2

      #./autogen.sh

      #./configure\

      ??host=arm?none?linux?gnueabi\

      ??prefix=/qts/tslib ??enable?debug=no

      #make

      #make install

      #export PATH=\

      /usr/local/arm/gcc?4.4.4?glibc?2.11.1?multilib?1.0/arm?fsl?linux?gnueabi/bin:$PATH

      最后,配置和編譯Qt ,執(zhí)行如下命令:

      # ./configure ?prefix /usr/local/Trolltech/ARM \

      ?opensource ?confirm?license ?release ?shared \

      ?embedded arm ?xplatformqws/linux?arm?g++ \

      ?depths16,18,24 ?fast ?optimized?qmake ?pch \

      ?qt?sql?sqlite ?qt?libjpeg ?qt?zlib ?qt?libpng \

      ?qt?freetype ?little?endian ?host?little?endian \

      ?no?qt3support ?no?libtiff ?no?libmng ?no?opengl \

      ?no?mmx ?no?sse ?no?sse2 ?no?3dnow ?no?openssl \

      ?no?webkit ?no?qvfb ?no?phonon ?no?nis ?no?opengl \

      ?no?cups ?no?glib ?no?xcursor ?no?xfixes \

      ?no?xrandr ?no?xrender \ ?no?separate?debug?info \

      ?nomake examples ?nomake tools ?nomake docs \

      ?D__ARM_ARCH_5TEJ__ ?qt?mouse?tslib \

      ?I/ /qts/tslib/include ?L/ /qts/tslib/lib

      #make

      #make insatll

      2.5 安裝Qt creator開(kāi)發(fā)工具

      執(zhí)行如下命令 :

      #./chmod +x qt?creator?linux?x86?opensource?2.5.1.bin

      # ./qt?creator?linux?x86?opensource?2.5.1.bin

      3 炮長(zhǎng)終端界面設(shè)計(jì)與實(shí)現(xiàn)

      炮長(zhǎng)終端應(yīng)用軟件包含軟鍵盤(pán)、CAN通信、圖形顯示界面和各個(gè)模塊的整合,其主界面顯示如圖1所示。

      (1) 鍵盤(pán)模塊的實(shí)現(xiàn)

      軟鍵盤(pán)作為輸入設(shè)備,能夠?qū)鹋诟鲄?shù)進(jìn)行設(shè)定,類(lèi)似于電腦鍵盤(pán)的數(shù)字小鍵盤(pán),采取了將所有按鍵做成一個(gè)類(lèi),類(lèi)名為Keyboard,每個(gè)按鍵信號(hào)都和對(duì)應(yīng)槽函數(shù)進(jìn)行一一相連。軟鍵盤(pán)顯示如圖2所示。

      (2) CAN總線通信模塊的實(shí)現(xiàn)

      CAN是一種控制器局域網(wǎng),一個(gè)串行的、異步的、多主機(jī)的通信協(xié)議,屬于全數(shù)字化,雙向的現(xiàn)場(chǎng)總線[5]。本文通過(guò)開(kāi)辟2個(gè)線程分別用來(lái)接收和發(fā)送各參數(shù)數(shù)據(jù),并進(jìn)行數(shù)據(jù)顯示、存儲(chǔ)和處理。該模塊主要包括CAN參數(shù)設(shè)置初始化程序、數(shù)據(jù)接收處理程序和數(shù)據(jù)發(fā)送處理程序。在CAN初始化程序中,主要設(shè)置CAN波特率、端口號(hào)、濾波器、協(xié)議類(lèi)型、數(shù)據(jù)格式、ID等參數(shù)。在數(shù)據(jù)接收和數(shù)據(jù)發(fā)送處理程序中,主要針對(duì)火炮基準(zhǔn)射向、射擊修正、裝定表尺和當(dāng)前表尺等參數(shù)進(jìn)行處理和顯示。

      (3) 圖形界面的實(shí)現(xiàn)

      圖形以2個(gè)直方圖來(lái)表示(見(jiàn)圖3):左邊直方圖代表火炮的裝定表尺和當(dāng)前方表尺的差值;下邊直方圖代表火炮的裝定方向和當(dāng)前方向的差值。該圖形使炮長(zhǎng)能夠直觀而準(zhǔn)確地感知火炮的到位情況,以便能夠快速有效地控制火炮的到位。顯示圖形界面顯示如圖3所示。圖3中,裝定表尺為100,當(dāng)前表尺為200,差值為100,炮長(zhǎng)需要對(duì)表尺向左繼續(xù)搖動(dòng)火炮2圈才能到位。裝定方向?yàn)?,當(dāng)前方向?yàn)?00,差值為200,炮長(zhǎng)需要對(duì)方向向右繼續(xù)搖動(dòng)火炮才能到位。

      4 移植與運(yùn)行

      使用Qt Creator工具編輯程序并編譯成Qt/Embedded(ARM)版本可執(zhí)行文件,文件名為gunV0。通過(guò)安裝配置NFS服務(wù)器,掛載網(wǎng)絡(luò)文件系統(tǒng),移植可執(zhí)行文件,執(zhí)行操作:

      # mount ?t nfs 192.168.1.5:/nfsroot /mnt/nfs/ ?o nolock

      #cp /mnt/nfs/gunV0 /root/tmp

      由于Qt沒(méi)有自帶中文字體庫(kù),在此須添加文泉字庫(kù)的支持,把文泉字庫(kù)wenquanyi.ta解壓后放到目標(biāo)硬件平臺(tái)Qt安裝目錄下。最后運(yùn)行可執(zhí)行程序,執(zhí)行:

      #./gunV0 ?qws ?font unifont &

      5 結(jié) 語(yǔ)

      相對(duì)基于MiniGUI的界面開(kāi)發(fā),基于Qt的界面設(shè)計(jì),其C++開(kāi)發(fā)類(lèi)更加完整,功能更加全面,設(shè)置控件和屬性更加簡(jiǎn)單,而且提供了免費(fèi)的開(kāi)發(fā)工具,開(kāi)發(fā)成本較低[6],開(kāi)發(fā)起來(lái)更加方便。經(jīng)過(guò)現(xiàn)場(chǎng)調(diào)試和測(cè)試,炮長(zhǎng)終端界面友好,運(yùn)行穩(wěn)定,響應(yīng)速度快,可滿(mǎn)足實(shí)時(shí)性要求。

      參考文獻(xiàn)

      [1] 弓雷.ARM嵌入式Linux系統(tǒng)開(kāi)發(fā)詳解[M].北京:清華大學(xué)出版社,2010.

      [2] 黃超.基于Qt的嵌入式GUI的研究與實(shí)現(xiàn)[D].長(zhǎng)春:吉林大學(xué),2011.

      [3] 李艷民.基于Qt跨平臺(tái)的人機(jī)交互界面的研究與應(yīng)用[D].重慶:重慶大學(xué),2007.

      [4] 張冬,丁金華.基于Qt/E的A/D數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].大連工業(yè)大學(xué)學(xué)報(bào),2008,27(4):374?375.

      [5] 陳鯤,陳秋云,劉信新.基于Qt/Embedded的嵌入式Linux應(yīng)用程序的設(shè)計(jì)[J].計(jì)算機(jī)與數(shù)字工程,2009,37(1):156?157.

      [6] 孫建中.基于ARM嵌入式Linux平臺(tái)的 CAN總線儀表的研制[D].長(zhǎng)春:吉林大學(xué),2007.

      猜你喜歡
      CAN總線
      論網(wǎng)絡(luò)通信技術(shù)
      基于嵌入式的汽車(chē)輔助制動(dòng)系統(tǒng)研究
      CAN總線通信技術(shù)在電梯監(jiān)控系統(tǒng)中的應(yīng)用
      基于CANoe的J1939協(xié)議在ECU通信中的應(yīng)用
      科技視界(2016年18期)2016-11-03 22:53:48
      商用車(chē)基于CAN總線的組合儀表開(kāi)發(fā)與應(yīng)用
      CAN總線在鐵路設(shè)備通信中的應(yīng)用
      利用MC9S12(X)單片機(jī)構(gòu)建CAN總線網(wǎng)絡(luò)的研究
      基于CAN總線的智能微噴灌監(jiān)控系統(tǒng)中下位機(jī)的硬件電路組成與設(shè)計(jì)
      基于CAN總線的變電站通訊網(wǎng)絡(luò)設(shè)計(jì)
      CAN總線技術(shù)、系統(tǒng)實(shí)現(xiàn)及發(fā)展趨勢(shì)
      吉隆县| 昌都县| 盐边县| 陆良县| 敖汉旗| 乐亭县| 巴彦县| 晋城| 北京市| 十堰市| 乐昌市| 棋牌| 柞水县| 斗六市| 祥云县| 甘谷县| 临洮县| 黄大仙区| 屏东县| 许昌县| 定结县| 虹口区| 任丘市| 城步| 黄平县| 四川省| 社旗县| 宣恩县| 新邵县| 梅州市| 莱西市| 应用必备| 灵宝市| 奉新县| 都安| 合川市| 瓦房店市| 青神县| 调兵山市| 天台县| 五指山市|