文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2017.06.023
中文引用格式: 趙碩峰,張娟. 基于LabVIEW平臺的嵌入式光譜強度檢測系統(tǒng)設計[J].電子技術應用,,2017,,43(6):90-93.
英文引用格式: Zhao Shuofeng,Zhang Juan. Design of embedded spectral density measurement system based on LabVIEW[J].Application of Electronic Technique,,2017,,43(6):90-93.
0 引言
光譜分析作為一種鑒別物質以及確定其化學組成的有效手段,已經被廣泛應用在食品、醫(yī)藥,、環(huán)境檢測,、石油等領域,。其原理就在于,,每一種物質在一定條件下都存在物質本身的特征光譜,通過對這些光譜的研究,,就可以獲得物質的結構和成分,,以及內部的能級結構和相互作用等信息。正因如此,,國內外工作者投入了大量的研究和實驗工作,。
近年來以CCD(Charge Coupled Devices,,電荷耦合器件)芯片和光纖為基礎的光譜儀與拉曼光譜,、LIBS(Laser-Induced Breakdown Spectroscopy)光譜,、熒光光譜等技術結合,,日益成為成分快速分析和生產過程實際測量手段。究其原因在于CCD靈敏度高,,價格便宜,且基于CCD芯片的光譜儀不需要任何運動部件,,可直接獲得完整的光譜譜圖,,使得光譜儀器更為簡單,。
但使用CCD作為光探測元件,,有一個關鍵的問題需要解決,即CCD器件包含眾多像素,,其工作需要嚴格的外部驅動,。目前傳統(tǒng)的驅動方式是以微控制器為核心,、通過軟件編寫的方式產生驅動時序,。此種驅動方式的局限為微控制器是基于順序執(zhí)行代碼的工作方式,如果設計復雜,,中斷等模塊較多,,應用容易被速度和抖動所限制。FPGA最大的優(yōu)點是使用非常靈活,在不改變外圍電路的情況下,,設計不同的片內邏輯就能實現(xiàn)不同的電路功能,從而縮短了系統(tǒng)的開發(fā)周期,,節(jié)約成本,。不僅如此,,F(xiàn)PGA可以通過設計專用硬件邏輯,并發(fā)執(zhí)行,,速度快,,時序準確。這種架構特別適合于大容量數(shù)據(jù)的實時傳輸,、處理,,可以很好地解決上述問題。
本文系統(tǒng)采用FPGA為CCD提供驅動時序脈沖和A/D采樣電路的時序控制電路,,同時采用ARM芯片為數(shù)據(jù)采集系統(tǒng)和上位機建立數(shù)據(jù)傳輸通道,,并通過LabVIEW構建的圖形化接口實時地顯示測量數(shù)據(jù),。實驗表明,,系統(tǒng)可應用于光譜的快速實時精確測量。
1 光譜強度檢測系統(tǒng)整體設計
整個系統(tǒng)結構框圖如圖1所示,。采用FPGA作為控制核心,,包括線陣CCD時序驅動電路,、A/D采樣電路的時序控制電路,、Delay-M電路,。外部硬件電路包括A/D采樣電路,、精密延時電路,、微處理器、電源,、邏輯轉換及相關電路,。通過FPGA控制外部電路,啟動并采集光信號,,然后存儲到FPGA內部的RAM中,。采集結束后,通過串口模塊自動尋址把數(shù)據(jù)傳送到電腦中,。FPGA模塊通過SPI(Serial Peripheral Interface)與STM32微處理器實現(xiàn)數(shù)據(jù)交換,。LabVIEW上位機可以通過USB接口實現(xiàn)數(shù)據(jù)同步通信,還可以通過FPGA串口或STM32串口接收數(shù)據(jù)并顯示,。
2 系統(tǒng)各模塊設計介紹
2.1 CCD模塊電路
系統(tǒng)采用TSL1401作為感光元件,,它是一款高靈敏度、低噪聲和寬動態(tài)范圍的線陣CCD器件,。根據(jù)TSL1401的數(shù)據(jù)手冊,,CCD工作的電壓為3~5 V,驅動頻率為5~8 000 kHz,,系統(tǒng)設計為4 V供電模式和250 kHz的時鐘主頻,。
TSL1401共有128個像素點,在采集過程中,,CCD采集的值與采集階段的光強度和曝光時間是成正比的,,當前第19個時鐘到下一個SI開始的這段時間,就是下次信號采集需要的曝光時間,,前18個時鐘周期為積分器復位時間,,第19個時鐘開始,像素點開始隨著時鐘輸出,,數(shù)據(jù)率就是時鐘的頻率,。值得注意的是,本周期采集的像素值是上個周期曝光時間產生的像素值,。所以在設計中,第一個周期采集的像素值要舍棄,,從第二個周期開始可以采集并保留值,。在連續(xù)采集時,如果時鐘速度比較快,,曝光時間可以近似地認為是兩個信號之間的時間,,而忽略前19個時鐘的影響。根據(jù)手冊,,TSL1401的最大曝光時間是100 ms,,所以曝光時間不宜超過100 ms,,因為即使超過100 ms,曝光效果和100 ms是一樣的,,而且在強光下長時間曝光可能造成CCD的永久損壞,。所以系統(tǒng)測試時采用的曝光時間為25 ms,曝光時間要根據(jù)外界光強度來調節(jié),,避免曝光不足和過曝光的情況,。
時序設計的設計方式為:對主時鐘進行計數(shù),以計數(shù)器的值作為參考,,通過對計數(shù)器值的判定來決定信號脈沖的時刻與寬度,,因為時鐘參考是同步時鐘,而且是并行的硬件電路,,所以信號的時序很準確,。同時利用計數(shù)器對主時鐘進行計數(shù),系統(tǒng)外接晶振為50 MHz,,所以每200個周期翻轉一次信號的值就是250 kHz的主時鐘,。通過調節(jié)兩個信號間的時間間隔來調整第一次的曝光時間。
2.2 A/D采樣電路
本模塊為整個系統(tǒng)核心部分之一,。采樣的真實穩(wěn)定決定系統(tǒng)的精度,,CCD的時鐘如果是250 kHz,系統(tǒng)設計數(shù)據(jù)率就應該是250 kS/s,。故本設計中選取的AD7988-5就是最大500 kS/s的16位AD芯片,。
外部A/D與微控制器內部集成的A/D相比,外部A/D芯片位數(shù)可以很多,,速度可選,,精度很高,而微控制器內部集成的A/D模塊主要針對通用目的,,位數(shù)很少有超過16位的,,速度依系統(tǒng)時鐘而定,但是數(shù)據(jù)率能到500 kHz的也不多見,,且通用目的設計A/D在積分和微分非線性誤差上表現(xiàn)不如專用的外部A/D芯片,。
參考電壓穩(wěn)定度直接影響A/D轉換精度,故為了避免電源波動給轉換精度帶來的影響,,系統(tǒng)選取ADRA4540作為基準電壓源,。
對于A/D采集芯片AD7988-5,外部的時序驅動決定了數(shù)據(jù)采樣的質量,,在設計時應該注意在時序圖的基礎上保留一定的設計余量來應對實際問題的考驗,,包括傳輸延時、輸入等效電容等實際分布參數(shù),。所以在500 kHz采樣率的芯片,,可以保證500 kHz以下的應用,。但是如果到達最高使用速度,就需要外部時序和誤差盡量小,,故如果選擇250 kHz的采樣率,,就為設計留下了很大的空間。
由AD7988-5數(shù)據(jù)手冊可知最小采樣時間和最大轉換時間,,這兩個參數(shù)決定了采樣的周期和CNV信號(轉換使能信號)的高電平時間,,而其他參數(shù)主要是為了讓選取的時鐘和CNV的時序滿足傳輸延時和分布參數(shù)給系統(tǒng)帶來的不確定性,本系統(tǒng)選取250 kHz的采樣率,,CNV采樣時間設為2 μs,,這樣就滿足了最大轉換時間為1.6 μs的要求,而后采用10 MHz的時鐘進行移位輸出數(shù)據(jù),。
系統(tǒng)外接時鐘為50 MHz,,對于時鐘的奇分頻不能像偶分頻一樣,記數(shù)后翻轉就行,。對于奇分頻的實質就是對一個要分頻的周期時間進行平分,。
AD7988-5三線制工作模式,決定了當前周期采集的數(shù)據(jù)是上一個周期的實際數(shù)據(jù),,因為在CNV為高電平時,,先進行的是轉換階段,而后就自動進入采集模式,,所以當前周期采集的就是下個周期需要的數(shù)據(jù),。這點需要注意,特別在精準數(shù)據(jù)操作的系統(tǒng)中需要格外注意,。
2.3 存儲時序與RAM模塊
前端CCD工作頻率和ADC的工作頻率很高,,每個像素點為16 bit,數(shù)據(jù)率為250 kHz,,這樣的數(shù)據(jù)量和速度,,電腦串口根本沒有辦法滿足要求。此時如果再采用FIFO(First Input First Output)更是不可取,,因為數(shù)據(jù)寫的速度非??欤鴶?shù)據(jù)讀的速度很慢,,很容易就飽和,,造成數(shù)據(jù)丟失。
系統(tǒng)選取了雙端口的RAM,,引用IP核中的RAM(16 bit,256 B),,對于128個像素點的數(shù)據(jù)完全夠用,。雙口RAM主要的優(yōu)勢就在于可以同時讀寫,,系統(tǒng)設計為直接引用IP核的方式,這樣的設計方式保證了設計準確性,,同時也加快了設計的進程,。但要注意寫進RAM的時序要和ADC采樣移位輸出的數(shù)據(jù)時序相匹配,否則會造成數(shù)據(jù)大量丟失,。
當進行RAM存儲操作時需要注意:當存儲上升沿到來之時,,寫使能、寫地址和數(shù)據(jù)必須準備好,,只有這樣在寫時鐘的上升沿到來之時才能保證數(shù)據(jù)被寫入相應地址的RAM當中,。所以系統(tǒng)采用A/D采樣信號同步產生的RAM讀寫的時序,有CNV信號下降沿的累積形成地址,,設置16位移位寄存器,,保存ADC輸出的數(shù)據(jù),然后CNV上升沿到來時,,上個信號的數(shù)據(jù)存入RAM,。
2.4 數(shù)據(jù)傳輸模塊設計
串口是一種常見的接口方式,常用于低速,、小數(shù)據(jù)量的傳送方案中,。
為了數(shù)據(jù)傳輸?shù)姆€(wěn)定可靠,故選擇波特率為9 600 b/s(即:接收一個比特的時間為1 s/9 600=104 μs,,每隔104 μs發(fā)送一個數(shù)據(jù)),,系統(tǒng)主時鐘為50 MHz,則一個系統(tǒng)時鐘周期時間為20 ns,,遠小于104 μs,,所以可以通過計數(shù)器對主時鐘進行計數(shù),然后根據(jù)計數(shù)器的值來打拍發(fā)送數(shù)據(jù),。
串口模塊只會被動地發(fā)送數(shù)據(jù),,并不能對RAM中存儲的數(shù)據(jù)自動尋址發(fā)送和做相應的控制。由于串口通常只有8個數(shù)據(jù)位,,需要傳輸兩次,,所以兩個傳輸周期的地址是一樣的,用同步時鐘計數(shù)器產生兩倍的串口周期用于自動累加形成地址,。
這種設計在理論上沒有問題,,但結合實際應用電路就會出現(xiàn)問題。在應用的IP核RAM中,,輸入端口會有一個寄存器,,這在開始就會造成一個時鐘周期的延時,才能使地址和數(shù)據(jù)存進RAM,。雖然存放數(shù)據(jù)只是延時一個時鐘周期,,但用串口模塊自動讀取數(shù)據(jù)時就會產生時序的錯亂,。
所以在具體設計時,輸出口的寄存器可以選擇去掉,,但輸入口的寄存器必須存在,。在讀取時鐘上升沿到來之時,讀使能,、讀地址必須提前就位,。只有這樣,當讀時鐘的上升沿到來時才會讀出相應地址存儲的值,,因為數(shù)據(jù)和地址的輸入必須要維持一個穩(wěn)定的時間,,這個時間就是時鐘周期。所以一個讀取周期應該是3個串口周期,,這樣第一個串口周期什么都不做,,只是把使能信號和地址送進RAM,后兩個周期的上升沿到來時把數(shù)據(jù)分2個8位輸出,。
2.5 LabVIEW上位機模塊
主要用到的節(jié)點是串口配置節(jié)點,,即VISA功能塊中提供的相關節(jié)點。由于LabVIEW串口接收的都是字符串的格式,,而且串口一般接收8位數(shù),,所以接收時需要數(shù)據(jù)的重組,選取了字符串平化的數(shù)據(jù)節(jié)點,,可以選取字符串平化至相關數(shù)據(jù)類型,,在輸出類型中選擇16 bit無符號數(shù),這樣就可以直接輸出到數(shù)據(jù)圖中直觀地看到接收到的數(shù)據(jù),。
LabVIEW上位機程序設計流程為:先建立串口模塊即引用VISA模塊,,之后設立緩存區(qū)的大小,設立等待時間,,等待時間為前面板可輸入的控件,,設置的串口等待時間必須大于串口發(fā)送的時間,否則會造成數(shù)據(jù)傳輸不完全,,造成數(shù)據(jù)丟失,,最后就是數(shù)據(jù)的拼接和轉化部分,利用平化節(jié)點,,使得每兩位數(shù)據(jù)組成一個16 bit的無符號類型的十進制數(shù)并在波形圖中顯示,。
3 實驗結果
在QUARTUS軟件中編程結束后,可以進行語法編譯,,檢驗語法是否有錯誤,。此時的編譯不能確定設計是否滿足需求,只有運用可綜合的Verilog HDL語句才能進行RTL級設計,全編譯后生成的就是綜合后的電路,,也是系統(tǒng)設計的目標,。接下來,可以進行RTL級的仿真以及門級仿真來驗證設計在時序上是否滿足要求,。門級仿真已經很接近實際情況,如果門級仿真滿足要求,,就可以將編譯過后的程序下載到FPGA中,,進行最后的實際系統(tǒng)的調試。
圖2所示為掃描物體和掃描數(shù)據(jù)上下對比圖,,當掃描視野中全為白色時,,CCD的值在2 000~35 000之間,呈現(xiàn)的是中間高兩頭低的情況,。這與理論有出入的原因在于:CCD的鏡頭是通過透鏡成像,,透鏡本身就決定了越是靠近中軸部分光發(fā)生的折射越少,中軸線的光為直射,,中間部分的光比兩邊強,,所以CCD成像的值反應出來就是中間值比較大,很好的對稱性也證明了這一點,。
當掃描視野全部是黑的時,,CCD掃描的一行圖像的值基本都一樣,在0~5 000之間,,這很好地驗證了在全白光時的結論,,同時有光和無光有明顯的區(qū)別。
當掃描視野中有一條黑線時,,掃描的值很明顯地出現(xiàn)一塊凹陷的值,,并且是連續(xù)變化的。通過這3組對比的結論可知,,系統(tǒng)實驗結果滿足實驗預期,。
在初步的全白掃描和全黑實驗后,為了進一步驗證系統(tǒng)的穩(wěn)定性和可靠性,,做了如圖3所示的3組實驗,,分別為1條黑線、2條黑線,、3條黑線,,掃描對應的值以上下對照的形式給出。從實驗結果可以看到,,對于不同的掃描物體,,CCD同樣可以明顯區(qū)分不同條紋物體,實驗值符合理論的預期。
4 結束語
本文提出了一種低成本易集成的光譜強度測量系統(tǒng),,設計并制作了A/D采樣電路,。根據(jù)TSL1401采集時序編寫相應的A/D采樣時序和存儲時序,對轉化后的數(shù)字信號按地址存儲到FPGA內部RAM中,。采集結束后,,串口模塊自動尋址發(fā)送RAM中存儲的數(shù)據(jù),LabVIEW上位機可通過串口接收數(shù)據(jù)并顯示,。實驗結果表明,,實驗數(shù)據(jù)符合理論的預期,可廣泛應用于光譜強度的實時快速精確測量,。
參考文獻
[1] 劉勝,,張?zhí)m勇,章佳榮,,等.LabVIEW 2009程序設計[M].北京:電子工業(yè)出版社,,2010.
[2] 米本和也.CCD/CMOS圖像傳感器基礎與應用[M].北京:科學出版社,2006.
[3] 陳樹學,,劉萱.LabVIEW寶典[M].北京:電子工業(yè)出版社,,2011.
[4] 姚遠,李辰.FPGA應用開發(fā)入門與典型實例[M].北京:人民郵電出版社,,2010.
[5] 湯琦.Xilinx FPGA高級設計及應用[M].北京:電子工業(yè)出版社,,2012.
[6] 翟晶晶.基于電子快門自動增益的CCD驅動電路研究[J].現(xiàn)代電子技術,2010,,33(19):188-190.
[7] 王慶有.光電傳感器應用技術[M].北京:機械工業(yè)出版社,,2014.
[8] 馬克斯菲爾德.FPGA設計指南:器件、工具和流程[M].北京:人民郵電出版社,,2007.
[9] 朱仁盛,,曲波.光電傳感器及其應用[M].北京:化學工業(yè)出版社,2004.
作者信息:
趙碩峰1,,張 娟2
(1.溫州醫(yī)科大學 仁濟學院,,浙江 溫州325035;2.溫州醫(yī)科大學 生物醫(yī)學工程學院,,浙江 溫州325035)