新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 基于多功能DAQ卡的虛擬數字示波器的設計

        基于多功能DAQ卡的虛擬數字示波器的設計

        ——
        作者:西安市第二炮兵工程學院控制系 惠俊軍 王志賢 時間:2007-01-26 來源:《今日電子》 收藏

        虛擬數字示波器的結構與組成

        虛擬數字示波器由一塊pxi總線的多功能數據采集卡和相應的軟件組成。將它們安裝在一臺運行windows的pc上,即構成一個功能強大的可存儲數字示波器。數字示波器的前面板如圖1所示。

        本文引用地址:http://www.104case.com/article/20852.htm

        ● 數據采集卡

        設計中所采用的是ni公司生產的多功能數據采集卡pxi-6670e,其主要功能如下:

        64路單端/32路差分模擬輸入;12位精度;1.25msps采樣速度;1.25msps磁盤寫入速度;±0.05~±10v輸入范圍;兩路12位模擬輸出;8條數字i/o線;兩路24位計數器/定時器。

        ● 儀器功能。

        本例虛擬數字示波器具有實時數據采集、頻譜分析、加窗處理和濾波等功能。在虛擬數字示波器主面板上有數據采集、頻譜分析、加窗處理、濾波功能等功能鍵,按相應的功能鍵就可進入相應的子面板。

        軟件的設計與實現

        ● 軟件開發環境。

        虛擬數字示波器軟件設計采用了基于c語言的編程環境labwindows/cvi。labwindows/cvi支持數值型、布爾型、文本型和串等數據類型,而且最大優點是能夠通過對話框形式的交互式操作生成標準c程序代碼。另外labwindows/cvi提供了非常豐富的調試工具,包括單步執行、斷點、變量查看、監視窗口等,這些功能使程序的調試變 得更為容易。

        ● 主要功能模塊。

        虛擬數字示波器主要由軟件控制完成信號的采集和顯示處理,功能結構框圖如圖2所示。

        在數據采集面板中主要完成以下功能:設置通道、設置采樣頻率、設置產生方式、顯示波形等,其軟面板如圖3所示。

        在數據采集面板中主要完成以下功能:對實時采集的信號和自行產生的信號進行頻譜分析,查看譜線等功能,其軟面板如圖4所示。
        加窗處理面板對實時采集的信號和自行產生的信號加窗處理(包括海明窗、漢明窗、平滑窗和布拉克曼窗等),其軟面板如圖5所示。

        在濾波處理面板中包括以下功能:對實時采集的信號和自行產生的信號進行濾波處理(包括單步濾波法、多步濾波法和傳統方法等),其軟面板如圖6所示。
        ● 源程序文件的生成。

        當完成面板各個控件的設置后,就可以產生程序的代碼函數了。具體方法為:把已完成的面板定為當前響應狀態,在[code]菜單中,選中[generate]中的[all code],在彈出的對話框中選定函數主面板和退出函數,就能產生與用戶接口文件相對應的框架代碼函數。

        ● 添加程序代碼。

        上一步自動生成的是控件對應的函數的框架,要使控件完成一定的功能,必須添加程序代碼來控制控件。其中main()函數是程序的入口,它的功能是初始化程序,裝載用戶面板并顯示,如要完成其他功能須添加代碼。以下這段代碼實現數據采集功能,程序通過調用數據采集按鈕的回調函數shou進行外部采集。

        int cvicallback show(int panel,int control,int event,void *callbackdata,int eventdata1,int eventdata2)
        {
        int numchan;/*定義所用通道*/
        double actscanrate;/*定義采樣速率*/
        switch (event)
        {
        case event_commit:
        nidaqaicreatetask(“daq::1!(0)”, knidaqwaveformcapture, &numchan,&aitask);/*創建采樣任務*/
        nidaqaiconfigscanclockrate(aitask,400000,&actscanrate); /*設置采樣速率*/
        nidaqaiconfigbuffer(aitask,1000,knidaqfinite);/*設置采樣數據緩沖區*/
        nidaqaistart(aitask);/*啟動采樣*/
        nidaqairead(aitask,“daq::1!(0)”,1000,-1.0,wave);/*讀取采樣數據*/
        nidaqaistop(aitask);/*結束采樣*/
        deletegraphplot(eepanel,eepanel_wavegraph, -1,val_immediate_dra);/*刪除顯示的波形*/
        ploty(eepanel, eepanel_wavegraph, wave, 1000, val_double, val_thin_line, val_empty_square, val_solid, 1, val_yellow); /*顯示波形*/
        break;
        }
        return 0;
        }
        ---限于篇幅,其他功能模塊的實現這里就不一一介紹了。

        ● 保存項目文件,然后編譯運行。

        結論

        本文設計的虛擬數字示波器不僅具有一般臺式數字存儲器的功能,而且充分發揮了微機強大的功能和軟件設計的靈活性,而且此虛擬數字示波器的設計包含了基于多功能daq卡的虛擬儀器設計的基本思路和方法,用戶可以參照這種方法來設計其他虛擬儀器。




        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 平江县| 年辖:市辖区| 东海县| 莎车县| 星子县| 农安县| 湟源县| 诸城市| 洪湖市| 米易县| 大埔县| 新沂市| 喀喇沁旗| 松阳县| 历史| 永仁县| 迭部县| 蒙阴县| 库尔勒市| 望谟县| 宝应县| 桂东县| 镇宁| 义马市| 韩城市| 兴隆县| 弋阳县| 怀化市| 化隆| 体育| 翼城县| 鄂伦春自治旗| 萨迦县| 镇安县| 荣昌县| 灵山县| 莒南县| 东海县| 维西| 雷波县| 梁山县|