賈仕達,黃 斐,薛 萌,郭漢明
(上海理工大學光電信息與計算機工程學院,上海 200093)
激光共聚焦顯微鏡(Confocal Laser Scanning Micro?scope)是一種應用廣泛的高精密光學儀器,集光、機、電、計算機為一體,在生物醫(yī)學、軍事科技,甚至是日常生活中都有非常廣泛的應用[1-2]。共聚焦顯微鏡發(fā)展歷程最早可以追溯到20 世紀50 年代,但受當時技術(shù)條件限制,沒有合適的光源,計算機處理能力不夠,導致研究止步不前[3-5]。但是近幾十年來國外公司在該方向發(fā)展迅速,包括萊卡(Leica)、蔡司(Zeiss)、尼康(Nikon)等公司都有了較成熟的產(chǎn)品[6-7]。相比之下,國內(nèi)對共聚焦顯微鏡的研究起步較晚,目前處在高速發(fā)展階段,有些較成熟的產(chǎn)品出于商業(yè)保密原因也鮮有發(fā)表相關(guān)文章供人參考[8-10]。
振鏡的掃描控制系統(tǒng)是控制振鏡運動的關(guān)鍵模塊,高校在實驗時使用的控制板卡大多為國外進口產(chǎn)品,價格昂貴[11-12],極大提高了實驗成本,其控制界面也較復雜,對剛接觸的使用者有一定難度。由此,本文提出了功能完善的硬件電路設計和以FPGA(Field Programmable Gate Array)為控制核心的軟件程序設計,相比現(xiàn)有的控制板卡和控制軟件,F(xiàn)PGA 可無限重新編程,時序控制也更加高速、精準,可以在結(jié)束一次掃描后修改程序即時調(diào)整掃描行數(shù),使控制更加方便。通過實驗證明,這套系統(tǒng)可以穩(wěn)定運行,系統(tǒng)信號的建立時間低至4μs,具有操作便捷、響應速度快、信號匹配精準、成本低的特點。
掃描振鏡是一種高精度、高速矢量掃描器件,它由平面反射鏡、驅(qū)動電機、控制板卡組成[13]。工作時通過計算機向控制板卡發(fā)出振鏡掃描所需的工作電壓信號,控制板卡經(jīng)過處理將信號發(fā)送給驅(qū)動電機,并驅(qū)動電機開始工作,使振鏡完成預定掃描。單一振鏡只能實現(xiàn)一個維度上的直線掃描,為實現(xiàn)二維平面掃描,就需要將兩個正交放置的振鏡組合在一起,讓它們相互配合運動[14-15]。二維振鏡掃描是指在X 軸和Y 軸方向上旋轉(zhuǎn)的兩個振鏡電機配合轉(zhuǎn)動以驅(qū)動反射鏡轉(zhuǎn)動,然后兩個反射鏡帶動激光束偏轉(zhuǎn)實現(xiàn)平面掃描[16-17]。實驗所用二維振鏡結(jié)構(gòu)如圖1 所示。
Fig.1 Two dimensional galvanometer structure圖1 二維振鏡結(jié)構(gòu)
二維振鏡主要由兩片轉(zhuǎn)動軸互相垂直的反射鏡組成。在初始位置時,入射光線垂直于反射鏡的轉(zhuǎn)動軸,入射光線與反射鏡1(X 振鏡)的平面夾角為45°,相對偏轉(zhuǎn)角度為ωx,反射鏡1 反射給反射鏡2(Y 振鏡),此時反射光線與反射鏡2 的轉(zhuǎn)動軸垂直,與反射鏡面2 的夾角是45°,相對偏轉(zhuǎn)角度為ωy,此時光點位置認為是坐標系的原點。兩個振鏡轉(zhuǎn)動軸之間的距離為e,振鏡2 與接收面之間的距離為d,假設X 振鏡不動,僅僅改變Y 振鏡的偏轉(zhuǎn)角度,則對應的掃描點坐標公式如式(1)所示。
上式表達中,認為光點向上移動角度為正方向取+號,向下移動角度為負方向取-號。假設Y 振鏡不動,僅僅改變X 振鏡的偏轉(zhuǎn)角度,對應的掃描點坐標公式如式(2)所示。
當X 振鏡與Y 振鏡都有偏轉(zhuǎn)角度時,掃描點坐標公式如式(3)所示。
從式(3)看,掃描點的位置與X 振鏡和Y 振鏡的偏轉(zhuǎn)角度有關(guān),而偏轉(zhuǎn)角度則取決于驅(qū)動電壓大小。X 振鏡為快速振鏡(共振式振鏡),振動頻率為7.931KHz,啟動條件為恒定電壓信號,電壓可調(diào)范圍為0~5V。Y 振鏡為慢速振鏡(檢流計式振鏡),每增加或減少一個單位的電壓表示掃描變換了一行,要將X 振鏡的位置反饋時鐘用作Y 振鏡的工作時鐘。Y 振鏡驅(qū)動電壓是階梯型三角波電壓信號,電壓信號為-1V~1V 范圍內(nèi)峰值可調(diào)。
本系統(tǒng)采用往復式掃描,可以提高掃描速度。X 振鏡為橫向掃描,Y 振鏡為縱向掃描,X 振鏡每往復掃描一次為兩行,計一個周期,并給出反饋信號,實驗檢測頻率為7.931KHz 的方波信號。方波的每個上升沿和下降沿代表X 振鏡掃描換了一行,Y 振鏡需要在邊沿變換時改變驅(qū)動電壓,同時需要匹配X 振鏡反饋的方波信號,只有信號匹配正確才能驅(qū)動振鏡運動。二者關(guān)系如圖2 所示。
Fig.2 X,Y galvanometer signal relation圖2 X、Y 振鏡信號關(guān)系
振鏡控制系統(tǒng)硬件主要由電源模塊、X 振鏡信號模塊、Y 振鏡信號模塊、信號調(diào)理模塊這4 個主要模塊和其它幾個輔助模塊組成。系統(tǒng)結(jié)構(gòu)如圖3 所示。
Fig.3 System structure圖3 系統(tǒng)結(jié)構(gòu)
電源模塊是整個硬件電路的供電模塊,為電路中的其它模塊輸出所需電壓。因此需要一個性能穩(wěn)定的芯片和設計合理的電路。TPS5430 是TI 公司推出的一款性能優(yōu)越的DC/DC 開關(guān)電源轉(zhuǎn)換芯片,具有良好的電氣特性[18]。它有著峰值高達4A 的高電流輸出,5.5~36V 的寬電壓輸入范圍,最高95% 的轉(zhuǎn)換效率,最低1.22V 的寬電壓輸出范圍,500KHz 的轉(zhuǎn)換速率。此外,TPS5430 還有過流保護、熱關(guān)斷、內(nèi)部軟啟動等輔助功能[19]?;谠O計需要最終選擇TPS5430 作為電源模塊中的開關(guān)電源轉(zhuǎn)換芯片,電源模塊硬件電路原理如圖4 所示。
Fig.4 Schematic diagram of power supply module圖4 電源模塊原理
當GND 接6 號腳一端時,經(jīng)1 號腳出來輸出5V 電壓,當GND 接1 號腳一端時,經(jīng)6 號腳出來輸出-5V 電壓。該電源模塊紋波較小,可以穩(wěn)定輸出±5V 電壓。
X 振鏡信號模塊為X 振鏡輸出驅(qū)動電壓。其驅(qū)動信號為固定電壓,要求在0~5V 內(nèi)可調(diào)。本系統(tǒng)選用ADI 公司的16 位D/A 芯片AD5693R,它具有較高的相對精度,內(nèi)置了2.5V 基準電壓,同時支持SPI 和I2C 協(xié)議,是可編程電壓源,價格便宜,滿足系統(tǒng)設計需求。其硬件電路原理如圖5 所示。
Fig.5 Principle of X-galvanometer signal module圖5 X 振鏡信號模塊原理
Y 振鏡信號模塊為Y 振鏡輸出驅(qū)動信號。Y 振鏡響應完成時間是250μs,即給定一個電壓,Y 從原位置移動到目標位置時間是250μs,Y 振鏡要求驅(qū)動的響應延遲在2%以內(nèi),這樣才能有更好的掃描效果。最終確定選用響應時間為1μs 的16 位高精度D/A 芯片AD5541,基準電壓為2.5V,其中CS、DIN、SCLK 3 條信號線分別為邏輯輸入信號、串行數(shù)據(jù)輸入,時鐘輸入,決定數(shù)據(jù)傳輸。Y 振鏡信號模塊原理如圖6 所示。
由于AD5541 輸出信號是固定的0~2.5V 波形,而Y 振鏡需要-1~1V 范圍內(nèi)峰值可調(diào)的波形,這就需要信號調(diào)理模塊將AD5541 輸出的信號轉(zhuǎn)變?yōu)閅 振鏡所需信號。信號調(diào)理模塊共使用3 個ADA4897 芯片,該芯片是一種軌到軌輸出放大器,具有低功耗、低失真、低噪聲的優(yōu)點,其輸出電壓計算公式如式(4)所示。
式(1)中,VOUT為輸出信號,VIP為同相輸入信號,VIN為反相輸入信號,RF為輸出端與反相輸入端相連電阻,RG為反相輸入端電阻。
Fig.6 Principle of Y-galvanometer signal module圖6 Y 振鏡信號模塊原理
對于同相增益,VIN=0,其表達式如式(5)所示。
對于反相增益,VIP=0,其表達式如式(6)所示。
根據(jù)式(1)、式(2)、式(3)匹配合適的電阻,分別進行反向、放大、跟隨電路[20],最終得到所需的三角波信號。信號調(diào)理模塊原理如圖7 所示。
Fig.7 Principle of signal conditioning module圖7 信號調(diào)理模塊原理
根據(jù)以上設計,完成整體硬件原理圖設計與PCB 設計,并打板焊接。振鏡控制硬件電路實物照片如圖8 所示。
Fig.8 Hardware circuit photos圖8 硬件電路實物照片
本系統(tǒng)使用的是黑金ALTERA 系列FPGA 開發(fā)平臺5系列的產(chǎn)品AX515,是CYCLONE IV 系列FPGA,芯片型號為EP4CE15F23C8。X 振鏡和Y 振鏡的控制程序在Quartμs II 軟件上完成,使用verilog HDL 語言編寫控制程序,并進行模擬仿真,最后將程序燒錄到FPGA 的主芯片內(nèi)對兩個振鏡分別進行控制。
X 振鏡控制信號為電壓范圍在0~5V 內(nèi)的固定電壓信號??刂菩酒褂肁D5693R,使用IIC 協(xié)議進行通信。SCL 為串行時鐘線,SDA 為串行數(shù)據(jù)輸入/輸出,當SDA 線上發(fā)生高低轉(zhuǎn)換而SCL 處于高電平時,主機建立起始條件并啟動數(shù)據(jù)傳輸。數(shù)據(jù)按9 個時鐘脈沖的順序通過串行總線發(fā)送,包括8 個數(shù)據(jù)位和一個應答位,SDA 線上的數(shù)據(jù)轉(zhuǎn)換必須發(fā)生在SCL 的低電平期間,并且在SCL 高電平期間保持穩(wěn)定。寫入所有數(shù)據(jù)位后,主器件在第10 個時鐘脈沖器件拉高SDA 線,建立停止條件。X 振鏡控制主程序流程如圖9 所示。
上位機通過串口發(fā)送指令,器件接收到指令后先后進行地址判斷和寫數(shù)據(jù)命令判斷,AD5693R 器件地址為1001_1000,寄存器地址為0011_0000,當器件地址和寫數(shù)據(jù)命令都正確后,開始發(fā)送16 位數(shù)據(jù),先發(fā)送高八位數(shù)據(jù)再發(fā)送低八位數(shù)據(jù),數(shù)據(jù)傳輸正確后將數(shù)字信號轉(zhuǎn)換成模擬信號并輸出給X 振鏡。傳輸嚴格遵守IIC 協(xié)議工作方式和時序要求。
Y 振鏡所需的階梯狀三角波需要與X 振鏡反饋的方波進行匹配,根據(jù)圖2 可知,方波每個周期的上升沿和下降沿即為X 振鏡往復掃描一次(兩行),Y 振鏡的驅(qū)動電壓則需要在X 振鏡掃描的每一行去設定,掃描次數(shù),也即設定掃描行數(shù)決定每個方波周期所給Y 振鏡驅(qū)動電壓的大小。
Y 振鏡驅(qū)動控制芯片采用16 位D/A 芯片AD5541,輸出電壓為0~2.5V,對應數(shù)據(jù)量為0~65 535,假設X 振鏡掃描2N 行,即為往復掃描N 次,則掃描一次的數(shù)據(jù)量變化為65 536/N。掃描開始后,每掃描一次增加65 536/N,到達滿數(shù)據(jù)量65 536 后每掃描一次減少65 536/N,直至0,之后不斷重復,并與方波周期相匹配,形成控制Y 振鏡運動的三角波。Y 振鏡控制程序流程如圖10 所示。
Fig.9 X-galvanometer control program flow圖9 X 振鏡控制程序流程
Fig.10 Y-galvanometer control program flow圖10 Y 振鏡控制程序流程
AD5541 芯片的時鐘信號最大不能超過25M,而FPGA芯片時鐘信號為50M,因此在給芯片寫數(shù)據(jù)之前要為芯片時鐘分頻,時鐘信號匹配后,程序首先檢測X 振鏡運動后反饋回來的方波信號的上升沿與下降沿,每一次臨近的上升沿與下降沿為一個周期。AD5541 芯片在數(shù)據(jù)傳輸過程中要嚴格遵守時序邏輯,時序圖如圖11 所示。
Fig.11 Sequence diagram圖11 時序圖
時鐘信號SCLK 在上下沿檢測時以25M 頻率運行,CS在數(shù)據(jù)傳輸之前處于高位,并持續(xù)一到兩個時鐘周期,檢測到上下沿信號后,在下一個時鐘信號的下降沿拉低芯片片選信號CS,準備向芯片傳輸數(shù)據(jù),DIN 為數(shù)據(jù)寄存器,在CS 拉低15ns 后開始接受數(shù)據(jù),每一位數(shù)據(jù)的傳輸持續(xù)30ns,且在時鐘信號SCLK 上升沿時完成,每次傳輸16 位數(shù)據(jù),由高位向低位傳輸,最后一位數(shù)據(jù)傳輸結(jié)束后在下一個時鐘信號SCLK 的下降沿將CS 信號拉高,即說明本次數(shù)據(jù)傳輸完成。
仿真正確后進行上機測試,將振鏡控制電路板上的X振鏡信號輸出端和Y 振鏡信號輸出端分別與轉(zhuǎn)接板上的X 振鏡信號輸入端和Y 振鏡信號輸入端相連接,并將FP?GA 與振鏡控制電路板連接。設定X 振鏡驅(qū)動電壓為1V,Y 振鏡為-1~1V,掃描64 行,每次數(shù)據(jù)量增加或減少2 048個。將示波器橫向設置為500μs 每格,縱向設置為2V 每格,測試掃描一幀的波形圖,測得信號如圖12 所示。
Fig.12 Signal圖12 信號
由振鏡運動原理可知Y 振鏡驅(qū)動電壓三角波每一次增加或減少電壓的過程為掃描一幀圖像的過程,根據(jù)圖13示波器測得波形可得Y 振鏡掃描一幀圖像經(jīng)歷了方波的32 個周期,也即64 行,方波頻率126μs,與設定掃描條件一致。將示波器橫向數(shù)值放大為100μs 每格,Y 振鏡信號縱向數(shù)值設為500mv 每格,測出方波信號與三角波信號匹配情況如圖13 所示。
Fig.13 Signal matching圖13 信號匹配
從圖14 顯示的波形圖看,Y 振鏡的電壓變化隨著X振鏡反饋方波的周期而改變,X 振鏡每掃描一行,Y 振鏡驅(qū)動電壓就變換一次,未發(fā)生匹配錯位情況,振鏡可以正常工作。將示波器橫向數(shù)值放大為1μs 每格,測試Y 振鏡信號響應時間,觀察到本設計Y 振鏡驅(qū)動信號響應時間是4μs,低于所要求的2%,說明本驅(qū)動系統(tǒng)可以使振鏡運動更加穩(wěn)定、精確。測試結(jié)果如圖14 所示。
Fig.14 Response time圖14 響應時間
本文設計了一套基于FPGA 的共聚焦顯微鏡的振鏡掃描控制系統(tǒng),通過實驗證明,系統(tǒng)中X 振鏡反饋信號與Y振鏡驅(qū)動信號匹配正確未錯位,可以驅(qū)動振鏡穩(wěn)定、準確工作。振鏡的驅(qū)動信號具有較快的響應時間,可以最大限度地降低因為信號響應時間較長造成的圖像質(zhì)量下降問題。同時,本方案可以應用到同類型共聚焦顯微鏡上,降低實驗成本。但本方案也存在一些不足,由于串口傳輸速度較慢,當進行多幀采集時傳輸時間會大幅增加,影響采集效率。后續(xù)研究中可使用USB2.0 代替串口通信,最大理論傳輸速度可達60MB/s,提高采集效率。