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

        ?

        基于LabVIEW平臺的信號實時采集與處理系統(tǒng)

        2014-05-11 09:51:07郭天宇代中華張志濤范新剛
        聲學(xué)技術(shù) 2014年6期
        關(guān)鍵詞:板卡信號處理線程

        郭天宇,代中華,張志濤,范新剛

        ?

        基于LabVIEW平臺的信號實時采集與處理系統(tǒng)

        郭天宇,代中華,張志濤,范新剛

        (上海船舶電子設(shè)備研究所,上海 201108)

        基于LabVIEW平臺的信號實時采集與處理系統(tǒng),相對于傳統(tǒng)的基于Visual C++或VxWorks的系統(tǒng),具有軟件開發(fā)和修改快捷、可快速實現(xiàn)數(shù)據(jù)可視化、與通用平臺或設(shè)備接口方便等優(yōu)點,使科研人員能夠?qū)⒅饕杏趯嶒灦蔷幊獭=榻B了一種基于LabVIEW平臺的信號實時采集與處理系統(tǒng)。首先介紹了該系統(tǒng)的硬件組成和軟件設(shè)計方法,之后詳細(xì)介紹了將不同廠商的硬件板卡集成到LabVIEW平臺上,并由LabVIEW統(tǒng)一控制的方法——生成動態(tài)鏈接庫。該系統(tǒng)已成功應(yīng)用于某型水聲裝備的效能評估試驗中。

        LabVIEW平臺;實時采集與處理;動態(tài)鏈接庫

        0 引言

        實時信號采集與處理系統(tǒng)是進(jìn)行水聲試驗所必需的設(shè)備。它一般由主控、信號調(diào)理、模擬輸入、信號處理、模擬輸出、網(wǎng)絡(luò)通信等設(shè)備組成。國內(nèi)外現(xiàn)有的實時信號采集與處理系統(tǒng)大多采用Windows&Visual C++或VxWorks作為軟件平臺,此類平臺的缺點是:編寫顯示和控制程序復(fù)雜,無法快速實現(xiàn)不同階段的數(shù)據(jù)可視化,無法快速修改程序以滿足不斷變化的試驗需求。

        本文所介紹的系統(tǒng),將主控、模擬輸入、信號處理、模擬輸出、網(wǎng)絡(luò)通信等不同類型、不同廠商的設(shè)備集成到LabVIEW平臺上。該平臺具有如下優(yōu)點:開發(fā)顯示和控制程序快捷,能快速實現(xiàn)各個階段的數(shù)據(jù)可視化,可根據(jù)試驗需求快速完成程序的修改,提供大量的常用信號處理函數(shù),能直接與大多數(shù)平臺或設(shè)備接口,如串口、網(wǎng)絡(luò)通信接口、Matlab等。該系統(tǒng)的信號處理部分,除了采用傳統(tǒng)的基于多片DSP的并行處理技術(shù)外,還增加了基于Matlab的集群并行處理技術(shù),該處理方法是直接將Matlab信號處理程序分成若干程序片段,分配給多臺計算機(jī)的多個CPU核,使這些程序片段并行執(zhí)行,從而省去了把Matlab程序轉(zhuǎn)換為C語言的中間環(huán)節(jié),提高了信號處理程序的開發(fā)效率。

        NI公司自己生產(chǎn)的硬件板卡,都會提供現(xiàn)成的可在LabVIEW下直接調(diào)用的驅(qū)動函數(shù)。但是對于非NI公司的硬件板卡,一般并不提供這種驅(qū)動函數(shù),但是可以把硬件制造商提供的C語言驅(qū)動函數(shù)打包成動態(tài)鏈接庫(Dynamic Link Library, DLL),從而實現(xiàn)在LabVIEW下對這些驅(qū)動函數(shù)的調(diào)用。本系統(tǒng)所使用的硬件板卡均不是NI公司的,正是運用了上述方法使所有硬件設(shè)備能夠整合在LabVIEW平臺上,由LabVIEW統(tǒng)一控制。

        本系統(tǒng)能夠使試驗研究人員從繁重的軟件編程工作中解脫出來,快速組建和修改軟件,把主要精力集中在對試驗結(jié)果的分析和信號處理算法的改進(jìn)上。

        1 系統(tǒng)硬件平臺

        本系統(tǒng)的硬件平臺基于CPCI總線,主要由6U CPCI總線機(jī)箱、CPCI總線主控板、PMC總線數(shù)據(jù)采集卡、CPCI總線多DSP信號處理板、PMC總線反射內(nèi)存網(wǎng)卡等設(shè)備組成。

        系統(tǒng)原理框圖如圖1所示,粗虛線框括起的部分為本系統(tǒng)的硬件組成,其中,細(xì)虛線框括起的部分為系統(tǒng)的擴(kuò)展設(shè)備。

        使用的硬件:

        CPCI總線主控板:GE公司,Intel Core 2多處理器1.66 GHz and 2.0 GHz;

        PMC總線數(shù)據(jù)采集卡:General Standards公司,18 bit,32通道,差分,1.0 MSPS;

        CPCI總線多DSP信號處理板:BittWare公司,8片ADSP-TS201 TigerSHARC DSPs;

        PMC總線反射內(nèi)存網(wǎng)卡:GE公司,174 MB/s 采樣率。

        圖1 系統(tǒng)原理圖

        系統(tǒng)實物圖如圖2所示:

        圖2 系統(tǒng)照片

        2 系統(tǒng)軟件平臺

        本系統(tǒng)以NI公司的LabVIEW作為軟件平臺,所有硬件設(shè)備包括主控板、數(shù)據(jù)采集卡、數(shù)字信號處理板、反射內(nèi)存網(wǎng)卡,都統(tǒng)一由LabVIEW控制,完成信號采集、信號處理、板卡間的通信、結(jié)果顯示、數(shù)據(jù)保存、網(wǎng)絡(luò)通信等功能。

        2.1 LabVIEW簡介

        LabVIEW是美國國家儀器公司開發(fā)的圖形化開發(fā)環(huán)境,同時它也是一種編程語言——G語言。它采用了比傳統(tǒng)的文本編程語言更高效的圖形化編程方式,主要特點如下:

        (1) 提供了大量的用于顯示和控制的圖形控件,只須簡單編程即可快速實現(xiàn)數(shù)據(jù)可視化和數(shù)據(jù)分析;

        (2) 提供了大量常用的信號處理函數(shù);

        (3) 提供了與動態(tài)鏈接庫(DLL)的接口。這樣就可以用LabVIEW控制那些僅提供C語言驅(qū)動函數(shù)的非NI公司定制的硬件設(shè)備;

        (4) 能直接與大多數(shù)平臺或設(shè)備接口,如串口、網(wǎng)絡(luò)通信接口、Matlab等。

        基于上述特點,使用LabVIEW作為系統(tǒng)軟件平臺,將會顯著提高系統(tǒng)開發(fā)效率和試驗效率。

        2.2 動態(tài)鏈接庫(DLL)的生成方法[1,2]

        在LabVIEW下控制硬件,對于NI公司自己生產(chǎn)的板卡,可以在LabVIEW下直接調(diào)用該公司提供的驅(qū)動函數(shù);而對于非NI公司的板卡,廠商通常不提供這種函數(shù),需要將其提供的C語言驅(qū)動函數(shù)轉(zhuǎn)化為動態(tài)鏈接庫(DLL),再由LabVIEW調(diào)用。以下以一個C語言的加法函數(shù)為例,介紹如何在Visual C++中生成動態(tài)鏈接庫文件,及如何在LabVIEW中調(diào)用動態(tài)鏈接庫中的函數(shù)。

        2.2.1 生成動態(tài)鏈接庫

        假設(shè)已經(jīng)有了一個實現(xiàn)兩個浮點數(shù)相加的C語言函數(shù),文件名add.c,程序如圖3所示:

        圖3 C語言表達(dá)的add函數(shù)

        打開VC,新建一個“Win32 Dynamic-Link Library”工程,命名為“add”,把a(bǔ)dd.c添加到工程中。

        在函數(shù)體第一行添加關(guān)鍵字:

        “_declspec(dllexport)”:

        編譯生成動態(tài)鏈接庫“add.dll”,如圖4所示。

        圖4 添加關(guān)鍵字后的add函數(shù)

        2.2.2 調(diào)用動態(tài)鏈接庫

        以LabVIEW8.2為例,在函數(shù)模板中選擇“Connectivity”中的“Libraries&Executables”,再選擇“Call Library Function Node”,將其放在框圖窗口中,見圖5、6。

        圖5 框圖窗口中的“Call Library Function Node”界面

        圖6 “Call Library Function Node”的顯示框

        雙擊“Call Library Function Node”,在“Function”中的“Library name and path”中把動態(tài)鏈接庫文件添加進(jìn)來,詳見圖7、8。

        圖7 “Call Library Function Node”配置窗口

        圖8 添加動態(tài)鏈接庫文件

        在“Function name”中選擇要調(diào)用的函數(shù),這里的動態(tài)鏈接庫文件中只有“add”一個函數(shù),實際中可能不止一個,見圖9。

        圖9 添加“add”函數(shù)

        選擇“Parameters”,為“Call Library Function Node”添加函數(shù)參數(shù),見圖10。

        首先添加“add”函數(shù)的輸入?yún)?shù)a。單擊“+”號,在右邊的“Current parameter”區(qū)域做如下設(shè)置:

        圖10 函數(shù)參數(shù)配置窗口

        “Name”:添加參數(shù)名稱,這里是“a”;

        “Type”:選擇“Numeric”,表示數(shù)值型;

        “Data Type”:選擇“4-byte Single”,表示單精度浮點數(shù);

        “Pass”:這里參數(shù)不是指針,選擇“Value”,如果是指針,比如參數(shù)c,則選擇“Pointer to value”,見圖11。

        圖11 配置函數(shù)參數(shù)“a”

        參數(shù)b和c的添加與上面類似,所有參數(shù)添加完后,單擊“OK”。

        在LabVIEW的框圖窗口中為“Call Library Function Node”添加輸入輸出控件,如圖12所示。

        圖12 添加輸入輸出控件

        在前面板的輸入控件a和b中分別輸入1和2,運行程序,輸出控件c會顯示3,如圖13所示。說明動態(tài)鏈接庫文件添加成功了。

        圖13 前面板窗口

        實際的C語言驅(qū)動函數(shù)的參數(shù)可能會有數(shù)組或結(jié)構(gòu)體等不同的數(shù)據(jù)類型,相應(yīng)的C語言函數(shù)體中函數(shù)參數(shù)的數(shù)據(jù)類型及在LabVIEW中對“Call Library Function Node”的參數(shù)配置方法會有所不同,具體可參考LabVIEW安裝目錄下的examples dlldata passing文件夾下的“Call Native Code.llb”和“CLF_Example.dsw”,里面涉及所有數(shù)據(jù)類型。

        2.3 軟件設(shè)計介紹

        本系統(tǒng)的軟件采用多線程編程技術(shù),創(chuàng)建了3個獨立的線程:數(shù)據(jù)采集線程、數(shù)據(jù)接收與顯示線程、DSP處理線程(雖然它屬于DSP內(nèi)部運行的程序,但由于它與另外兩個線程獨立并行執(zhí)行,這里也把它稱為“線程”)。在程序運行過程中,他們并行執(zhí)行,保證了系統(tǒng)的實時性。線程的流程圖如圖14所示。

        圖14 程序流程圖

        LabVIEW的部分框圖程序如圖15、16所示。軟件主界面如圖17、18所示。

        圖15 LabVIEW框圖程序1

        圖16 LabVIEW框圖程序2

        3 系統(tǒng)擴(kuò)展功能介紹

        本系統(tǒng)有兩個擴(kuò)展功能:DA輸出和Matlab并行處理,見圖1中的細(xì)虛線部分。

        3.1 DA輸出

        如果實驗需要把信號處理后的結(jié)果通過DA卡轉(zhuǎn)換為模擬信號發(fā)射出去,可以在系統(tǒng)中添加一塊DA卡,見圖1細(xì)虛線框“1”。然后按照前面介紹的添加動態(tài)鏈接庫的方法對DA卡進(jìn)行控制。

        3.2 Matlab并行信號處理

        目前,較為復(fù)雜的并行信號處理程序大多數(shù)是在多片DSP上運行,程序的開發(fā)步驟分為:設(shè)計信號處理算法、編寫Matlab程序、將Matlab程序轉(zhuǎn)換成DSP C語言并行程序。本系統(tǒng)的信號處理部分就是采用上述方法。該方法的缺點是需要把Matlab程序轉(zhuǎn)化為C程序移植到多片DSP中。如果程序較復(fù)雜,工作量很大。

        圖17 軟件主界面1

        圖18 軟件主界面2

        下面介紹一種新的并行信號處理的實現(xiàn)方法,該方法的硬件平臺不是基于DSP,而是多核計算機(jī)。較新版本的Matlab如Matlab2009b,支持安裝Parallel Computing Toolbox,即并行計算工具箱。使用該工具箱,可以在多核計算機(jī)上直接開發(fā)基于Matlab的并行程序,其原理是將順序執(zhí)行的程序拆分并分配到不同的CPU核上,使這些拆分后的程序片段在各個CPU核上并行運行,如果CPU核足夠多,就可以滿足程序的實時性要求。該方法的優(yōu)點是用Matlab直接編寫并行程序,省去了向C語言移植的中間環(huán)節(jié),可以極大地提高程序開發(fā)效率,缺點是需要單獨配置若干多核計算機(jī),攜帶不夠方便。該方法可以作為本系統(tǒng)實現(xiàn)并行信號處理的另一種選擇,見圖1中細(xì)虛線框“2”。

        4 結(jié)論

        本文提出了一種新的針對實時信號采集與處理系統(tǒng)的系統(tǒng)集成方法,即基于LabVIEW平臺,把不同廠商(非NI公司)的硬件板卡整合到LabVIEW平臺上、在LabVIEW統(tǒng)一控制下生成動態(tài)鏈接庫。此外,還介紹了一種實現(xiàn)并行處理程序的新方法:在多核計算機(jī)上開發(fā)基于Matlab的并行程序,該方法可以極大提高并行處理程序的開發(fā)效率。

        在某型水聲裝備的湖上靜態(tài)半實物仿真試驗中,本文所介紹的系統(tǒng)作為核心分系統(tǒng),與其他分系統(tǒng)配合,成功實現(xiàn)了對該裝備各項性能指標(biāo)的測試和效果的評估。

        [1] 阮奇幀. 一個NI工程師的十年編程經(jīng)驗[M]. 北京: 北京航空航天大學(xué)出版社, 2009: 115-165.

        RUAN Qizhen. Ten-year coding experience of a NI engineer[M]. Beijing: Beijing Aviation and Aerospace University Press, 2009: 115-165.

        [2] 江建軍, 劉繼光. LabVIEW 程序設(shè)計教程[M]. 北京: 電子工業(yè)出版社, 2008: 207-212.

        JIANG Jianjun, LIU Jiguang. The course of LabVIEW programming design[M]. Beijing: Electronic Industry Press, 2008: 207-212.

        A real-time signal acquisition and processing system based on the platform of LabVIEW

        GUO Tian-yu, DAI Zhong-hua, ZHANG Zhi-tao, FAN Xin-gang

        (Shanghai Marine Electronic Equipment Research Institute, Shanghai 201108, China)

        Compared with traditional systems which are based on Visual C++ or VxWorks, the real-time signal acquisition and processing system based on the platform of LabVIEW has many advantages in easy developing and modifying software, quick realizing data visualization and easy connecting with general-purpose platforms or equipments. This system can make the scientific researchers focus their energies on experiments rather than programming. A practical real-time signal acquisition and processing system based on the platform of LabVIEW is introduced in this paper. The hardware constitution and the software designing method about this system are firstly described, and then the method to generate a dynamic link library(DLL) is explained, which is used to integrate hardware cards from different manufacturers onto LabVIEW. This system has been successfully used in the experiment to evaluate the effectiveness of a certain kind of underwater acoustic equipment.

        LabVIEW platform; real-time acquisition and processing; Dynamic Link Library(DLL)

        TB556

        A

        1000-3630(2014)-06-0548-06

        10.3969/j.issn1000-3630.2014.06.014

        2013-08-13;

        2013-11-04

        郭天宇(1979-), 男, 黑龍江人, 碩士研究生, 研究方向為水聲對抗仿真。

        郭天宇, E-mail: 493984463@qq.com

        猜你喜歡
        板卡信號處理線程
        基于PCI9054的多總線通信板卡的研制
        基于FPGA的多通道模擬量采集/輸出PCI板卡的研制
        《信號處理》征稿簡則
        信號處理(2018年5期)2018-08-20 06:16:02
        《信號處理》第九屆編委會
        信號處理(2018年5期)2018-08-20 06:16:00
        《信號處理》征稿簡則
        信號處理(2018年8期)2018-07-25 12:25:42
        《信號處理》第九屆編委會
        信號處理(2018年8期)2018-07-25 12:24:56
        淺談linux多線程協(xié)作
        一種基于光纖數(shù)據(jù)傳輸?shù)亩喟蹇ㄜ浖绦驘龑懠夹g(shù)
        一種通用模擬量及開關(guān)量信號采集板卡的設(shè)計
        Linux線程實現(xiàn)技術(shù)研究
        久久99久久久无码国产精品色戒| 手机在线免费av资源网| 中国一级特黄真人片久久| 亚洲一区自拍高清亚洲精品| 四川少妇大战4黑人| 91情侣视频| 另类人妖在线观看一区二区| 亚洲一区二区三区在线视频| 人妻少妇看a偷人无码| 久久久久人妻精品一区蜜桃| 亚洲产在线精品亚洲第一站一| 五月激情狠狠开心五月| 毛片在线视频成人亚洲| 久久久亚洲欧洲日产国码二区| 看av免费毛片手机播放| 少妇无码av无码去区钱| 精品人妻一区二区三区蜜臀在线 | 亚洲第一区无码专区| 色综合久久人妻精品日韩| 亚洲桃色视频在线观看一区| 国产日产精品一区二区三区四区的特点 | 亚洲片一区二区三区| 亚洲天堂av社区久久| 日本久久精品福利视频| 97人妻人人做人碰人人爽| 国产精品成人免费视频网站京东| 精品无码一区二区三区小说| 亚洲熟妇av一区二区三区hd| 强开小婷嫩苞又嫩又紧视频韩国| 99久久人妻精品免费二区| 浪荡少妇一区二区三区| 日本顶级片一区二区三区| 精品亚洲一区二区三区四区五区| 国产精品一区二区无线| 国产熟女精品一区二区三区| 日韩视频午夜在线观看| 色综合天天综合网国产成人网 | 99久久精品在线视频| 久久综合狠狠色综合伊人| 亚洲成a人片在线播放观看国产 | 国产一区二区三区四色av|