亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        ARM+FPGA設(shè)備的人機(jī)界面數(shù)據(jù)交互設(shè)計(jì)與實(shí)現(xiàn)

        2015-06-22 15:09:17吳向臣吳茂林
        關(guān)鍵詞:人機(jī)界面驅(qū)動(dòng)程序嵌入式

        吳向臣,吳茂林

        (海軍工程大學(xué)兵器工程系,湖北武漢430033)

        ARM+FPGA設(shè)備的人機(jī)界面數(shù)據(jù)交互設(shè)計(jì)與實(shí)現(xiàn)

        吳向臣,吳茂林

        (海軍工程大學(xué)兵器工程系,湖北武漢430033)

        目前對(duì)裝備檢測(cè)設(shè)備的實(shí)時(shí)性、可視化的要求越來(lái)越高。嵌入式技術(shù)的應(yīng)用,使檢測(cè)裝置變得可靠、實(shí)用和便攜。本文在OMAPL138嵌入式結(jié)構(gòu)和Linux系統(tǒng)下,應(yīng)用QTouch組態(tài)軟件進(jìn)行檢測(cè)設(shè)備人機(jī)交互界面的開(kāi)發(fā)。重點(diǎn)設(shè)計(jì)和分析Linux系統(tǒng)下與FPGA模塊的數(shù)據(jù)交互機(jī)制,從而滿(mǎn)足實(shí)時(shí)信息通信和檢測(cè)的人機(jī)交互需求。

        QTouch;人機(jī)交互;嵌入式Linux;ARM+FPGA;數(shù)據(jù)交換

        0 引言

        由于目前裝備日趨信息化、智能化,裝備運(yùn)行或使用過(guò)程中涉及到的信號(hào)也越來(lái)越多,對(duì)于這些信號(hào)的采集和分析,有助于裝備使用者了解裝備的狀態(tài),及時(shí)維修維護(hù),防患于未然。為了能更好更準(zhǔn)確地檢測(cè)出裝備的一些關(guān)鍵信號(hào),對(duì)檢測(cè)設(shè)備提出了更高要求,既需要有超高的精度也需要有便捷友好的操作界面。以便于操作人員迅速上手,簡(jiǎn)化操作訓(xùn)練。本文根據(jù)實(shí)際設(shè)備人機(jī)交互的設(shè)計(jì)需求,結(jié)合硬件設(shè)備和QTouch組態(tài)軟件設(shè)計(jì)了與FPGA硬件設(shè)備的數(shù)據(jù)交換機(jī)制,實(shí)現(xiàn)的人機(jī)交互界面直觀(guān)、信息量大、便于操作。

        1 人機(jī)界面設(shè)計(jì)原理

        QTouch軟件主要分為兩個(gè)重要的組成部分,一是PC端的軟件設(shè)計(jì)部分,二是嵌入式平臺(tái)的運(yùn)行部分。兩者通過(guò)協(xié)議進(jìn)行平臺(tái)間通信,在PC端設(shè)計(jì)完成的應(yīng)用程序通過(guò)ModbusTCP協(xié)議上傳到嵌入式平臺(tái)部分,上傳完成后脫離PC端,在嵌入式平臺(tái)上獨(dú)立運(yùn)行。其整體框架結(jié)構(gòu)如圖1所示。

        圖1 軟件整體框架

        軟件結(jié)構(gòu)分為三層,分別是人機(jī)交互界面、數(shù)據(jù)庫(kù)和底層設(shè)備驅(qū)動(dòng)數(shù)據(jù)。在對(duì)底層硬件進(jìn)行數(shù)據(jù)寫(xiě)入時(shí),人機(jī)交互界面數(shù)據(jù)由操作人員通過(guò)手動(dòng)輸入的方式給定,并通過(guò)應(yīng)用程序傳入程序的實(shí)時(shí)數(shù)據(jù)庫(kù),實(shí)時(shí)數(shù)據(jù)庫(kù)接收到數(shù)據(jù)后,驅(qū)動(dòng)程序就可以調(diào)用實(shí)時(shí)數(shù)據(jù)庫(kù)中的數(shù)據(jù),對(duì)底層硬件進(jìn)行數(shù)據(jù)寫(xiě)入。接收反饋數(shù)據(jù)時(shí),由底層硬件檢測(cè)到數(shù)據(jù),再由驅(qū)動(dòng)程序?qū)⑵浯嫒雽?shí)時(shí)數(shù)據(jù)庫(kù),應(yīng)用程序通過(guò)實(shí)時(shí)關(guān)聯(lián)某個(gè)數(shù)據(jù)存儲(chǔ)單元的數(shù)據(jù),就可以實(shí)時(shí)地接收到硬件反饋的數(shù)據(jù)信息并顯示在屏幕上。數(shù)據(jù)交互原理如圖2所示。

        圖2 數(shù)據(jù)結(jié)構(gòu)原理圖

        2 界面與FPGA的數(shù)據(jù)交換機(jī)制

        2.1 數(shù)據(jù)類(lèi)型

        研究數(shù)據(jù)交互的機(jī)制,首先需要確定數(shù)據(jù)的類(lèi)型。當(dāng)FPGA接收到設(shè)定時(shí)間參數(shù)后,并不能直接進(jìn)行時(shí)間設(shè)定,因?yàn)閿?shù)據(jù)接收端接收的數(shù)據(jù)類(lèi)型并不是十進(jìn)制的,所以不能將設(shè)定的時(shí)間信號(hào)直接傳遞到數(shù)據(jù)接收端,需要進(jìn)行一定的數(shù)據(jù)編碼。這里使用的是Hamming碼[1]進(jìn)行的數(shù)據(jù)編碼信號(hào)。

        Hamming編碼矩陣如下:

        FPGA設(shè)備在接收到時(shí)間參數(shù)后,根據(jù)Hamming編碼矩陣將原始的十進(jìn)制數(shù)編碼成二進(jìn)制數(shù)碼。重新編碼后的時(shí)間參數(shù)通過(guò)FPGA端口以電信號(hào)的形式發(fā)送到數(shù)據(jù)接收端口。數(shù)據(jù)接收端口接收到時(shí)間參數(shù)后再進(jìn)行解碼。

        2.2 數(shù)據(jù)交互機(jī)制

        2.2.1 硬件設(shè)備、操作系統(tǒng)和人機(jī)界面的關(guān)系[2-4]

        嵌入式設(shè)備的設(shè)計(jì)都分為硬件設(shè)計(jì)部分和軟件設(shè)計(jì)部分。硬件設(shè)計(jì)部分使用的是目前主流的FPGA+ARM結(jié)合的硬件結(jié)構(gòu),軟件設(shè)計(jì)部分使用Linux操作系統(tǒng),以及使用QTouch編寫(xiě)的人機(jī)交互界面,人機(jī)交互程序需要借助操作系統(tǒng)才能運(yùn)行。Linux操作系統(tǒng)是連接硬件和人機(jī)界面的橋梁。三者關(guān)系如圖3所示。

        2.2.2 設(shè)備驅(qū)動(dòng)[2]

        圖3 硬件設(shè)備、操作系統(tǒng)、人機(jī)界面關(guān)系

        設(shè)備驅(qū)動(dòng)是關(guān)聯(lián)操作系統(tǒng)和人機(jī)交互程序的橋梁。操作系統(tǒng)將輸入的數(shù)據(jù)以文件的形式寫(xiě)入系統(tǒng)的特定文件中,人機(jī)交互程序通過(guò)調(diào)用驅(qū)動(dòng)程序來(lái)讀取這些設(shè)備文件即可得到想要的數(shù)據(jù)。人機(jī)交互程序使用統(tǒng)一的接口函數(shù)調(diào)用相應(yīng)的硬件驅(qū)動(dòng)程序,這些函數(shù)都是在設(shè)備驅(qū)動(dòng)中定義好的。這組接口被稱(chēng)為系統(tǒng)調(diào)用。對(duì)于每一個(gè)系統(tǒng)調(diào)用,驅(qū)動(dòng)程序中都有一個(gè)與之對(duì)應(yīng)的函數(shù),這些函數(shù)集合在一個(gè)file_operations類(lèi)型的數(shù)據(jù)結(jié)構(gòu)體中,file_operations結(jié)構(gòu)體在Linux內(nèi)核的include/linux/fs. h中定義。

        使用file_operations結(jié)構(gòu)定義數(shù)據(jù)結(jié)構(gòu)的程序代碼如下:

        Staticstructfile_operationsarm_fpga_fops={

        .owner=THIS_MODULE,

        .open=arm_fpga_open,

        .write=arm_fpga_write,

        .read=arm_fpga_read,

        .ioctl=arm_fpga_ioctl,};

        將FPGA字符設(shè)備和arm_fpga_fops結(jié)構(gòu)體進(jìn)行關(guān)聯(lián)。關(guān)聯(lián)程序的代碼設(shè)計(jì)如下:

        ret=register_chrdev(FPGA_MAJOR,DEVICE_NAME,&arm_ fpga_fops);

        if(ret<0)

        {

        prink(DEVICE_NAME”can′t register major number ”);

        return ret;}

        程序頭文件中定義FPGA_MAJOR為FPGA設(shè)備的主設(shè)備號(hào),程序主函數(shù)中設(shè)置FPGA_MAJOR=0,由系統(tǒng)自動(dòng)分配主設(shè)備號(hào)。DEVICE_NAME定義為設(shè)備名稱(chēng)。經(jīng)過(guò)注冊(cè),主設(shè)備號(hào)就和具體的file_operations結(jié)構(gòu)聯(lián)系起來(lái)了,因此操作主設(shè)備號(hào)為FPGA_MAJOR的設(shè)備文件時(shí),就會(huì)調(diào)用arm_fpga_fops中的相關(guān)函數(shù)。

        驅(qū)動(dòng)程序通過(guò)操作設(shè)備文件來(lái)向硬件設(shè)備下發(fā)數(shù)據(jù),為了解決設(shè)備文件的讀取和寫(xiě)入問(wèn)題,在軟件設(shè)計(jì)中借助Linux操作系統(tǒng)中提供的兩個(gè)重要函數(shù):copy_to_user和copy_form_user。這是兩個(gè)很重要也是經(jīng)常被字符設(shè)備使用到的函數(shù)。它們定義在Linux系統(tǒng)內(nèi)核的~/arch/arm/lib/usercopy.c文件中。定義形式如下:

        unsigned long copy_to_user(void_user*to,const void*from,unsigned long n)

        {

        might_sleep();

        BUG_ON((long)n<0);

        If(access_ok(VERIFY_WRITE,to,n))

        n=_copy_to_user(to,from,n);

        return n;}

        unsigned long copy_from_user(void_user*to,const void*from,unsigned long n)

        {

        If(access_ok(VERIFY_WRITE,from,n))

        n=_copy_from_user(to,from,n);

        else

        memzero(to,n);

        return n;}

        copy_from_user()函數(shù)用于將用戶(hù)給定的參數(shù)從用戶(hù)空間到內(nèi)核空間的復(fù)制。copy_to_user()函數(shù)完成數(shù)據(jù)從內(nèi)核空間到用戶(hù)空間的復(fù)制。在設(shè)備驅(qū)動(dòng)中使用這兩個(gè)函數(shù),F(xiàn)PGA設(shè)備文件的數(shù)據(jù)和人機(jī)交互程序的數(shù)據(jù)之間就能進(jìn)行相互復(fù)制,也就實(shí)現(xiàn)了兩者的數(shù)據(jù)交換。

        這樣,使用QTouch組態(tài)軟件設(shè)計(jì)人機(jī)交互界面過(guò)程中,不需要編寫(xiě)復(fù)雜的實(shí)現(xiàn)代碼,只需要將功能控件用類(lèi)似于搭積木的方式構(gòu)建在一起,由軟件庫(kù)文件調(diào)用相關(guān)函數(shù)。在程序設(shè)計(jì)過(guò)程中,不需要直接使用file_operations結(jié)構(gòu)體中的操作函數(shù)編寫(xiě)代碼。部分控件如圖4所示。

        圖4 部分控件圖

        3 實(shí)驗(yàn)及數(shù)據(jù)分析

        將人機(jī)交互程序?qū)懭胗布O(shè)備中,使用設(shè)計(jì)的實(shí)際設(shè)備對(duì)數(shù)據(jù)交互進(jìn)行系統(tǒng)調(diào)試,驗(yàn)證程序的正確性。圖5為系統(tǒng)調(diào)試圖。

        圖5 系統(tǒng)調(diào)試圖

        由于時(shí)間參數(shù)的接收采用Hamming譯碼,數(shù)據(jù)進(jìn)入FPGA以后會(huì)對(duì)時(shí)間裝定參數(shù)進(jìn)行信號(hào)編碼。所以以下波形圖測(cè)得數(shù)據(jù)是以Hamming碼的形式顯示的。

        假設(shè)設(shè)定數(shù)據(jù)為33.3 s,即十位、個(gè)位、十分位都為3(二進(jìn)制0011)。時(shí)間設(shè)定界面如圖6所示。

        圖6 時(shí)間設(shè)定界面圖

        實(shí)驗(yàn)設(shè)定的時(shí)間數(shù)據(jù)通過(guò)人機(jī)交互程序下發(fā)到FPGA外設(shè)中,再由FPGA進(jìn)行編碼轉(zhuǎn)換。現(xiàn)在以十位數(shù)為例,對(duì)得到的波形圖進(jìn)行分析,如圖7所示。由實(shí)驗(yàn)波形圖得到十位上的Hamming碼為0011101。通過(guò)查詢(xún)Hamming碼編碼矩陣,得到Hamming碼0011101對(duì)應(yīng)數(shù)字3,可見(jiàn)實(shí)驗(yàn)測(cè)得的數(shù)據(jù)與編碼矩陣數(shù)據(jù)完全吻合。用同樣的方法對(duì)個(gè)位和十分位進(jìn)行分析,Hamming碼解碼得到的時(shí)間參數(shù)與人機(jī)交互程序設(shè)定的時(shí)間參數(shù)完全一致(都是33.3 s),因此可以判斷參數(shù)交互準(zhǔn)確,程序設(shè)計(jì)達(dá)到預(yù)期目標(biāo)。

        圖7 十位上的波形圖

        高電平載波信號(hào)實(shí)驗(yàn)誤差分析如圖8所示。顯示的都是高電平調(diào)制的載波信號(hào),該信號(hào)理論波形為正弦波,但是在本次實(shí)驗(yàn)中由于設(shè)備精度的限制,在測(cè)量顯示時(shí)將載波信號(hào)的方波顯示為正弦波形,但是這樣的誤差在實(shí)驗(yàn)的可允許范圍之內(nèi),因此不會(huì)對(duì)實(shí)驗(yàn)的最終結(jié)論產(chǎn)生影響。

        圖8 高電平調(diào)制載波信號(hào)

        4 結(jié)束語(yǔ)

        本文基于QTouch的組態(tài)軟件設(shè)計(jì)的應(yīng)用程序,實(shí)現(xiàn)了與ARM+FPGA嵌入式系統(tǒng)底層硬件平臺(tái)的數(shù)據(jù)交換,設(shè)計(jì)了友好的交互界面,并通過(guò)數(shù)據(jù)交換實(shí)驗(yàn),檢測(cè)驗(yàn)證了數(shù)據(jù)交換機(jī)制的有效性,滿(mǎn)足設(shè)備的功能要求。本設(shè)計(jì)為設(shè)計(jì)功能更強(qiáng)更復(fù)雜的嵌入式設(shè)備打下了良好的理論和實(shí)驗(yàn)基礎(chǔ)。

        [1]雷斌,王寧,仇平.FPGA的漢明碼數(shù)據(jù)傳輸系統(tǒng)的設(shè)計(jì)[J].西安工業(yè)大學(xué)學(xué)報(bào),2009,29(6):559-564.

        [2]宋寶華.Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解(第2版)[M].北京:人民郵電出版社,2010.

        [3]倪繼利.Qt及Linux操作系統(tǒng)窗口設(shè)計(jì)[M].北京:電子工業(yè)出版社,2006.

        [4]韋東山.嵌入式Linux應(yīng)用開(kāi)發(fā)完全手冊(cè)[M].北京:人民郵電出版社,2008.

        Design and imp lementation of the data communication to ARM+FPGA

        Wu Xiangchen,Wu Maolin
        (Department of Weaponry Engineering,Naval University of Engineering,Wuhan 430033,China)

        The requirement of the real-time and visualization for equipment testing device is higher and higher.The application of embedded technology makes the measuring equipment reliable,practical and portable.This paper is on the basis of OMAPL138 embedded structure and the Linux operating system,uses Qtouch to develop the human-computer interaction interface of testing device.Design and analysis data interaction mechanism under the Linux system with FPGA module,and meet the needs of real-time information communication and detection.

        qtouch;the human-computer interaction;embedded Linux;ARM+FPGA;data interchange

        TP301

        A

        1674-7720(2015)09-0089-03

        2015-01-04)

        吳向臣(1990-),男,在讀碩士研究生,主要研究方向:武器對(duì)抗技術(shù)。

        猜你喜歡
        人機(jī)界面驅(qū)動(dòng)程序嵌入式
        搭建基于Qt的嵌入式開(kāi)發(fā)平臺(tái)
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        CBTC系統(tǒng)車(chē)載人機(jī)界面的設(shè)計(jì)與實(shí)現(xiàn)
        基于PLC與人機(jī)界面的經(jīng)編機(jī)電子橫移控制系統(tǒng)研究
        CTCS-3級(jí)列控車(chē)載人機(jī)界面的系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
        Altera加入嵌入式視覺(jué)聯(lián)盟
        達(dá)人機(jī)界面DOP-B10VS511
        倍福 CX8091嵌入式控制器
        驅(qū)動(dòng)程序更新與推薦
        驅(qū)動(dòng)程序更新與推薦
        欧美老妇交乱视频在线观看| 在线观看国产精品自拍| 亚洲av中文字字幕乱码软件| 亚洲中文字幕国产视频| 另类老妇奶性生bbwbbw| 国产午夜亚洲精品不卡福利| 女优视频一区二区三区在线观看| 亚洲国产精品高清在线| 在线 | 一区二区三区四区| 国产黑丝在线| 午夜国产小视频在线观看黄| 亚洲悠悠色综合中文字幕| 国产女厕偷窥系列在线视频| 亚洲成a人片在线网站| 蜜桃av噜噜一区二区三区免费 | 久久综合久久美利坚合众国| 青草视频在线播放| 日韩亚洲中文图片小说| 白色月光免费观看完整版| 暖暖 免费 高清 日本 在线| 国产午夜福利小视频合集| 亚洲综合综合在线| 久久一区二区三区少妇人妻| 99久久精品午夜一区二区| 伊人精品在线观看| 国产一区二区三区乱码在线| 制服丝袜一区二区三区| 人妻少妇精品视频一区二区三区| 音影先锋色天堂av电影妓女久久| 人妻人妇av一区二区三区四区| 欧美丰满熟妇性xxxx| 亚洲成aⅴ人在线观看| 国产一区二区黑丝美女| 亚洲桃色视频在线观看一区| 亚洲日韩av无码中文字幕美国| 久久男人av资源网站无码| 宅男视频一区二区三区在线观看| 亚洲男同gay在线观看| 一区一级三级在线观看| 最新中文字幕乱码在线| 日韩欧美亚洲国产精品字幕久久久|