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