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
主站蜘蛛池模板: 国产夜色视频| 亚洲欧洲自拍拍偷午夜色| 国产一级视频久久| 国产剧情伊人| 毛片大全免费观看| 精品国产欧美精品v| 怡春院欧美一区二区三区免费| 亚洲欧洲日韩综合色天使| 亚洲无码电影| 91欧美亚洲国产五月天| 國產尤物AV尤物在線觀看| 亚洲精品麻豆| 动漫精品啪啪一区二区三区| 国产精品无码久久久久久| 精品人妻无码区在线视频| 国内精品久久久久久久久久影视 | 91网红精品在线观看| 国产精品lululu在线观看| 色哟哟国产精品一区二区| 精品三级在线| 一边摸一边做爽的视频17国产| 亚洲乱码精品久久久久..| 免费一级毛片在线观看| 日韩无码黄色网站| 青青青草国产| 国产在线观看精品| av午夜福利一片免费看| 国产美女人喷水在线观看| av午夜福利一片免费看| 九一九色国产| 国产精品成人观看视频国产| 亚洲国产欧洲精品路线久久| 草草线在成年免费视频2| 国产在线自乱拍播放| 制服丝袜无码每日更新| 免费三A级毛片视频| 亚洲精品手机在线| 久热re国产手机在线观看| 国产欧美日韩18| 久久人人妻人人爽人人卡片av| 原味小视频在线www国产| 国产精品蜜臀| 国产91视频观看| 国产人人干| 欧美国产精品拍自| 精品国产免费观看| 国产免费a级片| 久久精品人妻中文系列| 久久成人免费| AⅤ色综合久久天堂AV色综合| 亚洲成综合人影院在院播放| 日韩色图在线观看| 色网站免费在线观看| 日韩东京热无码人妻| 亚洲av片在线免费观看| 日韩黄色在线| 综合色在线| 免费国产黄线在线观看| 国产女人喷水视频| 色综合久久88色综合天天提莫| 手机在线看片不卡中文字幕| 第一页亚洲| 国产你懂得| 久久精品国产999大香线焦| 亚洲av无码专区久久蜜芽| 一区二区三区成人| 免费国产不卡午夜福在线观看| 欧美福利在线观看| 国产精品午夜福利麻豆| 亚洲第一色视频| av一区二区无码在线| 国产日韩欧美黄色片免费观看| 国产三级韩国三级理| 欧美亚洲中文精品三区| 全裸无码专区| 美女无遮挡免费网站| 国产乱子精品一区二区在线观看| 波多野结衣无码中文字幕在线观看一区二区| 99精品视频在线观看免费播放| 国产精品免费p区| 国产在线自揄拍揄视频网站| 国产精品内射视频|