基于LabVIEW的JFUVR2011光譜儀信號(hào)采集系統(tǒng)設(shè)計(jì)
武力1,趙飛1,趙暉2,曾憲東2,張冰洋3,*
(1 中南民族大學(xué) 生物醫(yī)學(xué)工程學(xué)院,武漢 430074;2 湖北出入境檢驗(yàn)檢疫局 檢驗(yàn)檢疫技術(shù)中心,武漢 430050;3 中南民族大學(xué) 創(chuàng)新創(chuàng)業(yè)中心,武漢 430074)
摘要針對(duì)JFUVR2011 UV-VIS-NIR光譜儀光譜分析軟件擴(kuò)展性差的缺點(diǎn),設(shè)計(jì)了光譜儀信號(hào)采集軟件.軟件采用虛擬儀器語言LabVIEW編寫,利用LabVIEW提供的調(diào)用庫函數(shù)節(jié)點(diǎn)CLF調(diào)用JFUVR2011光譜儀動(dòng)態(tài)鏈接庫,與光譜儀的USB接口連接,對(duì)所測(cè)得的光譜信號(hào)進(jìn)行采集和數(shù)據(jù)處理.結(jié)果表明:所設(shè)計(jì)的光譜分析軟件,實(shí)現(xiàn)了參數(shù)設(shè)定、光譜測(cè)量、數(shù)據(jù)保存等功能,可準(zhǔn)確實(shí)現(xiàn)對(duì)可見光和近紅外光譜數(shù)據(jù)的測(cè)量分析.
關(guān)鍵詞光譜儀;LabVIEW語言;動(dòng)態(tài)鏈接庫;數(shù)據(jù)采集
收稿日期2014-06-02*
作者簡(jiǎn)介武力(1978-),男,副教授,博士,研究方向:醫(yī)療儀器設(shè)備的研發(fā)與設(shè)計(jì)、醫(yī)學(xué)影像處理、三維建模及可視化,Email:Wulixmy2002@yahoo.com.cn
基金項(xiàng)目國(guó)家自然科學(xué)基金資助項(xiàng)目(81101080);國(guó)家質(zhì)檢總局科技計(jì)劃項(xiàng)目資助項(xiàng)目(2011IK203);武漢市科技晨光計(jì)劃資助項(xiàng)目(201050231021)
中圖分類號(hào)TH744.1;TP274.2文獻(xiàn)標(biāo)識(shí)碼A
Design of Signal Acquisition Software for JFUVR2011
Spectrometer Based on LabVIEW
WuLi1,ZhaoFei1,Zhaohui2,Zengxiandong2,ZhangBingyang3
(1 College of Biomedical Engineering, South-Central University for Nationalities, Wuhan 430074, China;
2 Technology Center of Hubei Entry-Exit Inspection and Quarantine Bureau, Wuhan 430050,China;
3 Students’ Innovation and Entrepreneurship Center, South-Central University for Nationalities, Wuhan 430074, China)
AbstractConsidering the poor extensibility of spectral analysis software of JFUVR2011 JV-VIS-NIR spectormeter, this paper designs a spectrometer signal acquisition software, which acquire and processes the spectral data of spectrometer. The software is written by virtual instrument language LabVIEW which calls the JFUVR2011 spectormeter dynamic link library by LabVIEW CLF library function node and connects the USB interface of spectrometer. The functions of parameters setting, spectral measurement and data saving are achieved and the spectral analysis software can measure and analysis the visible and near-infrared spectrum accurately.
Keywordsspectrometer; LabVIEW; DLL; data acquisition
近年來,人們對(duì)光譜分析系統(tǒng)的光譜測(cè)量范圍、分辨率、精度都提出了越來越高的要求,光譜儀向微型化、自動(dòng)化和高精度化的方向發(fā)展.JFUVR2011光譜儀作為一種微型光譜儀,在有機(jī)化學(xué)、生物化學(xué)、藥品分析、食品檢驗(yàn)、醫(yī)藥衛(wèi)生、環(huán)境保護(hù)、生命科學(xué)等多個(gè)領(lǐng)域的科研、生產(chǎn)中都得到了極其廣泛地應(yīng)用.但由于其自身所配備的軟件能夠進(jìn)行的功能具有局限性,不能進(jìn)行光譜數(shù)據(jù)的后期處理,需要通過第三方軟件對(duì)其界面和功能進(jìn)行擴(kuò)展.隨著計(jì)算機(jī)軟件技術(shù)的發(fā)展,越來越多的儀器功能可以借助于計(jì)算機(jī)及相關(guān)軟件來實(shí)現(xiàn),形成了“虛擬儀器”技術(shù)[1].目前已有不少學(xué)者利用這一技術(shù)進(jìn)行研究,如生物醫(yī)學(xué)[2,3]、檢驗(yàn)測(cè)試[4-8]等.用軟件代替?zhèn)鹘y(tǒng)儀器,用軟件代替硬件,充分利用了資源并且節(jié)約了成本.本文采用LabVIEW虛擬儀器語言,通過LabVIEW調(diào)用光譜儀自身的動(dòng)態(tài)鏈接庫,設(shè)計(jì)了一個(gè)基于LabVIEW的光譜儀信號(hào)采集系統(tǒng),比傳統(tǒng)開發(fā)語言開發(fā)周期短、時(shí)效性高,所開發(fā)的軟件在光學(xué)檢測(cè)與分析領(lǐng)域已得到應(yīng)用.
1LabVIEW和動(dòng)態(tài)鏈接庫
LabVIEW是美國(guó)NI公司開發(fā)的一種高性能的圖形化虛擬儀器編程軟件,其代碼不采用傳統(tǒng)的文本語言,而是使用圖形化的G語言編寫.開發(fā)人員可以利用所熟悉的術(shù)語、圖形來組成功能模塊.LabVIEW廣泛應(yīng)用于數(shù)據(jù)監(jiān)測(cè)、數(shù)據(jù)采集測(cè)量和數(shù)據(jù)分析領(lǐng)域.動(dòng)態(tài)鏈接庫提供了一種模塊化應(yīng)用方式,動(dòng)態(tài)鏈接庫在應(yīng)用程序運(yùn)行期間被鏈接,是包含函數(shù)采集和數(shù)據(jù)的一些模塊.它提供了一群函數(shù)供Windows應(yīng)用程序或其他動(dòng)態(tài)鏈接庫函數(shù)調(diào)用,既不接受任何消息,也不能直接運(yùn)行,由調(diào)用它的模塊在實(shí)時(shí)運(yùn)行的同時(shí)進(jìn)行加載.本文利用LabVIEW提供的CLF(Call Library Function)節(jié)點(diǎn)對(duì)DLL調(diào)用,完成了對(duì)光譜儀的數(shù)據(jù)采集,實(shí)現(xiàn)了代碼和資源的共享,達(dá)到了良好的移植、兼容效果.
2光譜儀信號(hào)采集系統(tǒng)結(jié)構(gòu)
光譜儀信號(hào)采集系統(tǒng)結(jié)構(gòu)如圖1所示.系統(tǒng)中所采用光譜儀為天津津飛光譜分析儀器公司的JFUVR2011 UV-VIS-NIR微型光纖光譜儀.JFUVR2011微型紫外-可見-近紅外波段光纖光譜儀采用微型平面光柵、高像素的CCD探測(cè)器,利用Czerny-Turner對(duì)稱交叉光路的原理,結(jié)合CCD成像探測(cè)器,通過各種光的衍射特性條件來獲得不同的特征曲線.被測(cè)信號(hào)通過入射光纖被采集到微型光譜儀中進(jìn)行初步處理,并通過A/D轉(zhuǎn)換為數(shù)字信號(hào),然后通過光譜儀的USB接口傳輸?shù)奖銛y式計(jì)算機(jī).便攜式計(jì)算機(jī)上基于LabVIEW開發(fā)的數(shù)據(jù)采集軟件對(duì)光譜儀的數(shù)據(jù)進(jìn)行采集,選擇合適的濾波算法進(jìn)行光譜信號(hào)處理并顯示光譜信號(hào)波形.
圖1 光譜儀信號(hào)采集系統(tǒng)結(jié)構(gòu) Fig.1 The structure of spectrometer signal acquisition system
3光譜儀信號(hào)采集軟件設(shè)計(jì)
基于LabVIEW開發(fā)的信號(hào)采集程序由前面板和程序框圖組成.前面板用來設(shè)置控制部件和顯示部件,程序框圖用于編寫和顯示程序源代碼.由于NI沒有提供DAQ對(duì)JFUVR2011的數(shù)據(jù)直接進(jìn)行采集,這里通過調(diào)用JFUVR2011提供的動(dòng)態(tài)鏈接庫對(duì)光譜儀進(jìn)行二次開發(fā).
3.1動(dòng)態(tài)鏈接庫的調(diào)用
系統(tǒng)采用LabVIEW提供的調(diào)用庫函數(shù)節(jié)點(diǎn)CLF對(duì)JFUVR2011的動(dòng)態(tài)鏈接庫進(jìn)行調(diào)用.LabVIEW調(diào)用的動(dòng)態(tài)鏈接庫為Sdll.dll,通過調(diào)用函數(shù)節(jié)點(diǎn)CLF對(duì)其調(diào)用,LabVIEW的調(diào)用庫函數(shù)節(jié)點(diǎn)函數(shù)如圖2所示.
圖2 調(diào)用庫函數(shù)節(jié)點(diǎn)函數(shù) Fig.2 Call library function node function
其中,path in確定要調(diào)用的共享庫的名稱或路徑.error in(no error)表明節(jié)點(diǎn)運(yùn)行前發(fā)生的錯(cuò)誤.param1…n是庫函數(shù)的范例輸入函數(shù),路徑輸出返回調(diào)用DLL或共享庫的路徑.error out包含錯(cuò)誤信息,return value是庫函數(shù)的范例返回值,param1…n output時(shí)庫函數(shù)的范例輸出函數(shù).
這里以“ccd_init_board”函數(shù)的調(diào)用為例說明如何在LabVIEW2013環(huán)境下調(diào)用動(dòng)態(tài)鏈接庫.該函數(shù)初始化CCD 板,在程序運(yùn)行初始必須調(diào)用,進(jìn)行USB端口初始化.函數(shù)原型為int32_t ccd_init_board(void ),返回值位0時(shí)候表示初始化正常,1表示驅(qū)動(dòng)程序打開錯(cuò)誤,2表示USB端口配置錯(cuò)誤.步驟如下.
1) 在程序框圖中,選擇“Functions”模板中的“Connectivity”選項(xiàng),在“Library & Executable”中選擇“Call Library Function Node”,鼠標(biāo)右擊該圖標(biāo),在彈出的對(duì)話框中選擇“配置”選項(xiàng),會(huì)彈出“調(diào)用庫函數(shù)”對(duì)話框,共有“Function”、“Parameters”、“Callbacks”、“Error checking”4個(gè)對(duì)話框.
2) 在“Function”窗口中,首先選擇DLL所在的路徑,在“Function name”選項(xiàng)選擇“ccd_init_board”.在“Thread”一欄中選擇“Run in UI thread”,這樣該動(dòng)態(tài)鏈接庫只用戶界面下運(yùn)行,“Calling convention”選擇為C語言.
3) 由于該函數(shù)輸入?yún)?shù)為空,“Parameters”窗口,只包含“返回類型”,這里選擇“Numeric”,數(shù)據(jù)類型為“Signed 32-bit Integer”.
4) “Callbacks”窗口用于設(shè)置回調(diào)函數(shù),這里不需要設(shè)置;“Error Checking”用來反饋在調(diào)用庫函數(shù)過程中出現(xiàn)的異常狀況,這里選擇“Default”.
通過上面的步驟完成了“Call Library Function”的設(shè)定,在使用ccd_init_board函數(shù)時(shí),只需連線該節(jié)點(diǎn)的端口就可以實(shí)現(xiàn)CCD Board的初始化.
3.2信號(hào)采集
Sdll.dll 文件是控制光譜儀工作的二次開發(fā)函數(shù)庫,內(nèi)部共有6個(gè)函數(shù).函數(shù)名和函數(shù)原型如表1所示.
表1 動(dòng)態(tài)鏈接庫內(nèi)部函數(shù)名和函數(shù)原型
光譜信號(hào)采集流程圖如圖3所示.
圖3 光譜信號(hào)采集流程圖 Fig.3 Flow chart of spectrum signal acquisition
首先調(diào)用ccd_init_board 函數(shù)初始化CCD Board,進(jìn)行USB端口初始化,完成信號(hào)采集初始配置.接著調(diào)用ccd_setting_integration_time 函數(shù)設(shè)定CCD積分時(shí)間,然后調(diào)用ccd_read_data函數(shù)讀取CCD數(shù)據(jù),獲取CCD像元,這里一共有3694個(gè)像元,即為CCD所采集的數(shù)據(jù).為了輸出像元與波長(zhǎng)的對(duì)應(yīng)關(guān)系,可以調(diào)用ccd_wavelength_cal 函數(shù),此函數(shù)根據(jù)像元的位置計(jì)算出此像元對(duì)應(yīng)的波長(zhǎng),程序退出時(shí)候,調(diào)用ccd_close_board 退出系統(tǒng),釋放相關(guān)資源.在LabVIEW中采用層疊式順序結(jié)構(gòu)作為主框架對(duì)光譜信號(hào)進(jìn)行采集,信號(hào)采集程序如圖4所示.
圖4 信號(hào)采集程序 Fig.4 Signal acquisition program
3.3信號(hào)處理
程序通過CLF獲得CCD采集到的原始數(shù)據(jù).由于數(shù)據(jù)采集過程中存在內(nèi)在噪聲、光路噪聲,會(huì)影響系統(tǒng)的信噪比,所以要對(duì)得到的光譜信息進(jìn)行濾噪處理.系統(tǒng)采用多次測(cè)量對(duì)測(cè)量結(jié)果累加取平均的方法對(duì)原始數(shù)據(jù)濾波.在LabVIEW中通過For循環(huán)結(jié)構(gòu)對(duì)CCD的3694個(gè)像元數(shù)據(jù)分別讀取100次,然后取平均值,將平均值存放在數(shù)組中,這個(gè)數(shù)組中的值為經(jīng)過濾波處理的CCD數(shù)據(jù).濾波程序如圖5所示.
圖5 濾波程序 Fig.5 Filter program
3.4圖像顯示
光譜圖的顯示采用波形圖控件,將最終獲得的光譜數(shù)據(jù)的一維數(shù)組接入顯示控件即可.
4光譜測(cè)量結(jié)果
采用白光LED作為光源,分別用JFUVR2011自身光譜采集軟件和所設(shè)計(jì)的采集系統(tǒng)對(duì)其光譜曲線進(jìn)行測(cè)量,測(cè)量結(jié)果如圖6、圖7所示.從測(cè)量結(jié)果可以看出,所設(shè)計(jì)的采集系統(tǒng)測(cè)量的波長(zhǎng)范圍和峰值與光譜儀自身采集軟件一致.
圖6 JFUVR2011光譜采集軟件測(cè)量結(jié)果 Fig.6 Measurement result of JFUVR2011spectrum acquisition software
圖7 采集系統(tǒng)測(cè)量結(jié)果 Fig.7 Measurement result of signal acquisition system
5結(jié)束語
本文基于LabVIEW設(shè)計(jì)了JFUVR2011光譜儀的信號(hào)采集系統(tǒng),詳細(xì)介紹了利用LabVIEW調(diào)用動(dòng)態(tài)鏈接庫的方法實(shí)現(xiàn)光譜信號(hào)采集.可采用微型光譜儀和便攜式計(jì)算機(jī)作為硬件設(shè)備,在采集系統(tǒng)基礎(chǔ)上開發(fā)應(yīng)用軟件,和其他功能模塊結(jié)合來構(gòu)建醫(yī)療、衛(wèi)生、環(huán)境、檢驗(yàn)檢疫領(lǐng)域的光電測(cè)量分析系統(tǒng),具有一定的實(shí)用價(jià)值.
參考文獻(xiàn)
[1]楊樂平,李海濤,肖相聲,等. LabVIEW程序設(shè)計(jì)與應(yīng)用[M].北京:電子工業(yè)出版社,2001.
[2]胡志強(qiáng),歐陽黎,張永林. 基于虛擬儀器的人體皮膚組織吸收光譜檢測(cè)平臺(tái)[J]. 光子學(xué)報(bào),2002,31(11):1330-1333.
[3]蔡聲鎮(zhèn),李步洪,蔡堅(jiān)勇,等. 鼻咽癌光譜診斷系統(tǒng)中的熒光光譜信號(hào)處理[J]. 光子學(xué)報(bào),2003,32(11):1375-1377.
[4]桂小琰,仲順安,陳越洋. 穩(wěn)像平臺(tái)準(zhǔn)確測(cè)試系統(tǒng)的研究和設(shè)計(jì)[J]. 光子學(xué)報(bào),2004,33(12):1497-1499.
[5]趙永,胡濤.傳感器與探測(cè)技術(shù)[M].北京:機(jī)械工業(yè)出版社,2010.
[6]葉昀,林君,周志恒,等.USB設(shè)備在光譜儀中的應(yīng)用研究[J].儀器儀表學(xué)報(bào),2003,24(3):157-159.
[7]楊春勇,徐杰.基于光纖傳感器的投影圖像梯形失真校正系統(tǒng)[J].中南民族大學(xué)學(xué)報(bào):自然科學(xué)版,2011,30(4):77-81.
[8]楊春勇,牛磊.基于ZigBee的設(shè)施農(nóng)業(yè)環(huán)境監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].中南民族大學(xué)學(xué)報(bào):自然科學(xué)版,2012,31(1):88-92.