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

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

2015-06-22 15:09:17吳向臣吳茂林
關(guān)鍵詞:嵌入式界面程序

吳向臣,吳茂林

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

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

吳向臣,吳茂林

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

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

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

0 引言

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

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

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

圖1 軟件整體框架

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

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

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

2.1 數(shù)據(jù)類型

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

Hamming編碼矩陣如下:

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

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

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

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

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

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

設(shè)備驅(qū)動是關(guān)聯(lián)操作系統(tǒng)和人機(jī)交互程序的橋梁。操作系統(tǒng)將輸入的數(shù)據(jù)以文件的形式寫入系統(tǒng)的特定文件中,人機(jī)交互程序通過調(diào)用驅(qū)動程序來讀取這些設(shè)備文件即可得到想要的數(shù)據(jù)。人機(jī)交互程序使用統(tǒng)一的接口函數(shù)調(diào)用相應(yīng)的硬件驅(qū)動程序,這些函數(shù)都是在設(shè)備驅(qū)動中定義好的。這組接口被稱為系統(tǒng)調(diào)用。對于每一個系統(tǒng)調(diào)用,驅(qū)動程序中都有一個與之對應(yīng)的函數(shù),這些函數(shù)集合在一個file_operations類型的數(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è)計如下:

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

驅(qū)動程序通過操作設(shè)備文件來向硬件設(shè)備下發(fā)數(shù)據(jù),為了解決設(shè)備文件的讀取和寫入問題,在軟件設(shè)計中借助Linux操作系統(tǒng)中提供的兩個重要函數(shù):copy_to_user和copy_form_user。這是兩個很重要也是經(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ù)用于將用戶給定的參數(shù)從用戶空間到內(nèi)核空間的復(fù)制。copy_to_user()函數(shù)完成數(shù)據(jù)從內(nèi)核空間到用戶空間的復(fù)制。在設(shè)備驅(qū)動中使用這兩個函數(shù),F(xiàn)PGA設(shè)備文件的數(shù)據(jù)和人機(jī)交互程序的數(shù)據(jù)之間就能進(jìn)行相互復(fù)制,也就實現(xiàn)了兩者的數(shù)據(jù)交換。

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

圖4 部分控件圖

3 實驗及數(shù)據(jù)分析

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

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

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

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

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

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

圖7 十位上的波形圖

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

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

4 結(jié)束語

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

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

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

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

[4]韋東山.嵌入式Linux應(yīng)用開發(fā)完全手冊[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-),男,在讀碩士研究生,主要研究方向:武器對抗技術(shù)。

猜你喜歡
嵌入式界面程序
國企黨委前置研究的“四個界面”
試論我國未決羈押程序的立法完善
搭建基于Qt的嵌入式開發(fā)平臺
基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
人機(jī)交互界面發(fā)展趨勢研究
創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
手機(jī)界面中圖形符號的發(fā)展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
主站蜘蛛池模板: 国产综合网站| 国产欧美日韩一区二区视频在线| 制服丝袜国产精品| 国产精品福利一区二区久久| 亚洲天堂网2014| 婷婷色中文网| 成人在线亚洲| 亚洲日本韩在线观看| 中文字幕欧美成人免费| 日韩在线成年视频人网站观看| 亚洲伊人电影| 91年精品国产福利线观看久久| 久久伊人色| 亚洲成人免费看| 99色亚洲国产精品11p| 国产视频入口| 国产精品亚欧美一区二区三区| 欧美视频在线观看第一页| 成人午夜视频免费看欧美| 91精品国产91久无码网站| 欧美日韩精品在线播放| 久久综合伊人 六十路| 国产精品久线在线观看| 亚洲狼网站狼狼鲁亚洲下载| 精品国产成人av免费| 国产熟女一级毛片| 国产成人亚洲欧美激情| 久久国产乱子伦视频无卡顿| 狠狠色综合久久狠狠色综合| 天天综合天天综合| 欧美日韩在线观看一区二区三区| 亚洲国产欧美目韩成人综合| 亚洲精品无码AⅤ片青青在线观看| 一本大道AV人久久综合| 国产精品观看视频免费完整版| 亚洲美女操| 亚洲精品第1页| 国产亚洲欧美在线人成aaaa| 日韩高清欧美| 婷婷成人综合| 亚洲综合精品香蕉久久网| 狠狠色噜噜狠狠狠狠色综合久 | 中文字幕 日韩 欧美| 欧美日韩成人在线观看| 亚洲天堂免费观看| 中文字幕2区| 成人福利在线视频免费观看| 丝袜亚洲综合| 成人免费黄色小视频| 国产Av无码精品色午夜| 欧美综合区自拍亚洲综合绿色| 欧美在线伊人| 欧美午夜理伦三级在线观看| 在线中文字幕日韩| 国产成人成人一区二区| 天天综合色网| 亚洲国产综合精品中文第一| 成年人视频一区二区| 97精品国产高清久久久久蜜芽 | 婷婷综合亚洲| 国产乱人伦AV在线A| 午夜少妇精品视频小电影| 亚洲人成高清| 久久黄色毛片| 亚洲欧美不卡视频| 一区二区三区国产精品视频| 老司国产精品视频| 亚洲综合网在线观看| 色综合天天综合| 国产区在线看| 色综合天天综合中文网| 国产成人精品一区二区免费看京| 99久久婷婷国产综合精| 国产日韩欧美精品区性色| 亚洲AV人人澡人人双人| 亚洲综合片| 91精品免费高清在线| 丁香婷婷在线视频| 性色生活片在线观看| 欧美日韩在线成人| 国产欧美视频综合二区| 中文国产成人久久精品小说|