基于FPGA的生物芯片掃描儀位置檢測
引言
本文引用地址:http://www.ex-cimer.com/article/201808/387388.htm生物芯片是20世紀末隨“人類基因組計劃”的研究和發(fā)展而產(chǎn)生的一項高新技術,是人們高效地大規(guī)模獲取生物信息的有效手段。目前大部分生物芯片采用熒光染料標記待測樣品分子。生物芯片掃描儀用激光激發(fā)熒光染料,通過對激發(fā)點的成像,檢測一個點;結合生物芯片X-Y二維精密掃描臺上移動,實現(xiàn)對整片的掃描。X-Y二維掃描臺的位置檢測精度直接影響著掃描分辨率——生物芯片掃描儀性能的關鍵參數(shù)?;趥鹘y(tǒng)的數(shù)字電路的生物芯片掃描儀中X-Y二維掃描臺的位置檢測電路存在計數(shù)誤差和誤清零問題,本文以基于FPGA設計的位置檢測電路來解決。以FPGA芯片代替?zhèn)鹘y(tǒng)的數(shù)字電路,不僅可提高系統(tǒng)的集成度和可靠性,而且FPGA最高工作頻率已超過200MHz,通過硬件描述語言對FPGA編程,電路設計更加靈活,為生物芯片掃描儀進一步提高掃描速度和掃描分辨率留了更大的裕量。
1、X-Y二維掃描臺位置檢測原理
X-Y二維掃描臺X向、Y向位置檢測元件采用開式光柵,50線/mm,由專用細分尺10細分后,測量分辨為2μm。開式光柵直接利用光電轉(zhuǎn)換原理輸出三相方波A、B、Z相。A、B相方波相位差90°(如圖1、2所示),Z相用于基準點定位,其邏輯電平都為5V。當A相方波超前B相方波90°時,表示位移方向為正方向,如圖1所示;當A相方波滯后B相方波90°時,表示位移方向為反方向,如圖2所示。掃描臺X向、Y向每位移2μm,光柵發(fā)出一個周期的方波。
因此,X-Y二維掃描臺的位置檢測首先要解決對光柵信號的辨向問題,辨別出X、Y向的位移方向;其次,為保證生物芯片掃描在最高掃描分辨率為5μm時仍有較高掃描質(zhì)量,X、Y方向位置檢測精度應高于2μm,以減少掃描臺的定位誤差,因此要對光柵信號進一步細分;此外,還要完成將光柵信號轉(zhuǎn)換成控制器能讀取的位置數(shù)據(jù),當X向、Y向位移方向為正時,此位置數(shù)據(jù)遞增;當X向、Y向位移方向為負時,此位置數(shù)遞減,并要保證實時的準確可靠的提供X、Y向的位置數(shù)據(jù),作為控制器(如單片機、DSP)精確定位X-Y二維掃描臺位置的依據(jù)。
原有的生物芯片掃描儀中X-Y二維掃描臺的一個方向的位置檢測采用4倍頻專用集成電路QA740210對光柵信號進行辨向、細分,用4片4位二進制74LS193計數(shù)器級聯(lián)實現(xiàn)對細分后的光柵信號16位計數(shù),計數(shù)值(即位置數(shù)據(jù))通過2片8位74LS245緩沖器輸出至控制器。這樣,X、Y兩個方向的位置檢測電路多達14片芯片,占用大量的PCB空間,布線復雜,板上信號間的串擾易引起計數(shù)誤差和誤清零現(xiàn)象,影響掃描臺的精確定位。若只用一片F(xiàn)PGA實現(xiàn)位置檢測電路,輸入為光柵信號,輸出即為位置數(shù)據(jù),直接送入控制器,避免PCB板間信號串擾,就能有效消除計數(shù)誤差和誤清零現(xiàn)象。
2、X-Y二維掃描臺位置檢測的FPGA設計方案
選用Spartan-II系列FPGA(XC2S15-5VQ100)作為X-Y二維掃描臺的位置檢測電路,并行的對X、Y兩路光柵信號的進行辨向、細分、計數(shù),并提供與控制器的接口,實時可靠的將X、Y向位置數(shù)據(jù)傳送給控制器。
FPGA內(nèi)部模塊劃分如圖3所示:從X向光柵來的A、B兩相方波信號XA,XB由X向辨向細分電路辨向細分后,輸出兩路脈沖信號XCU、XCD,16位計數(shù)模塊分別對這兩路脈沖信號進行計數(shù),并將兩計數(shù)值XUPCNT、XDOWNCNT相減,其差作為X向的16位位置數(shù)據(jù)XCNT。接口電路對3位地址信號ADDR譯碼,通過XCLR、YCLR對X、Y計數(shù)器分別清零,并選通X向或Y向位置數(shù)據(jù)輸出到控制器。
對Y向同樣如此。本論文只以X向說明之。
2.1、辨向細分設計
由圖1和圖2可知,當光柵正向移動時,A相、B相的電平邏輯表現(xiàn)為“00”→“10”→“11”→“01”→“00”序列;當光柵反向移動時,A相、B相的電平邏輯表現(xiàn)為“00”→“01”→“11”→“10”→“00”序列。因此,只要能辨別出這兩種序列,就能實現(xiàn)辨向。
引入外部頻率為10MHz的時鐘源,利用這個時鐘的上升沿同時對A相、B相信號采樣,作為當前XA、XB值,以二維向量AB_new記之,AB_new通過一級觸發(fā)器后,記為AB_old,AB_new和AB_old都跟隨A相、B相方波信號變化而變化,只是AB_old要滯后AB_new一個采樣時鐘周期。這樣,就可以將AB_old和AB_new進行比較:當AB_old為“00”時,若AB_new為“10”,即A相超B相前90°,XCU輸出一個負脈沖,XCD保持為高電平不變;若AB_new為“01”,即A相滯后B相90°,XCD輸出一個負脈沖,XCU保持為高電平不變。X向光柵信號變化一個周期,如果A相超B相90°(位移方向為正),XCU就會輸出四個負脈沖,如果A相滯后B相90°(位移方向為負),XCD就會輸出四個負脈沖,同時實現(xiàn)了辨向與細分功能。
2.2、可逆計數(shù)器設計
用兩個16位二進制計數(shù)器對兩路脈沖信號XCU、XCD分別計數(shù),然后用一個16位減法器對此兩個計數(shù)器的計數(shù)值作差,被減數(shù)為XCU的計數(shù)值XUPCNT,減數(shù)為對XCD的計數(shù)值XDOWNCNT,其差作為X向的位置數(shù)據(jù)XCNT。這樣,XCU有計數(shù)脈沖時,XCNT就會增加,而XCD有計數(shù)脈沖時,XCNT就會減小,實現(xiàn)了可逆計數(shù)。結合前面的辨向細分電路,使X向的位置數(shù)據(jù)在正向位移時增加,反向位移時減少。位置數(shù)據(jù)的變化真實反映了位移情況。
2.3、接口電路設計
接口電路是控制器實時可靠讀取X向、Y向的位置數(shù)據(jù)或清零的接口。接口電路由譯碼電路、輸出三態(tài)緩沖器組成。接口電路與控制器的16位數(shù)據(jù)線CNT用于FPGA向控制器傳送位置數(shù)據(jù),控制器的3位地址線ADDR作為譯碼電路的輸入:能分別輸出X、Y向位置數(shù)據(jù),以及分別對X、Y向計數(shù)器清零。譯碼電路可使X向、Y向位置數(shù)據(jù)復用16位數(shù)據(jù)線,高效的利用控制器的端口資源;對3位地址信號譯碼產(chǎn)生清零信號,能有效地防止在只使用一根信號線時受干擾等原因而引起的誤清零現(xiàn)象。
3、設計仿真和實現(xiàn)
在ISE6.1i開發(fā)平臺上,用VHDL語言對辨向細分、計數(shù)、接口電路進行編程實現(xiàn)。圖4是仿真波形。
由圖4可看出,X、Y向可并行的對光柵信號辨向、細分、計數(shù),下面只以X向說明:辨向細分電路根據(jù)兩路正交的方波信號XA、XB的相位差分別在XCU,XCD上輸出頻率為XA、XB4倍的計數(shù)脈沖,實現(xiàn)了辨向細分;可逆計數(shù)器分別對XA、XB計數(shù),計數(shù)值的差XCNT隨X向的位移方向的變化增加或減少;當控制器的地址譯碼信號ADDR為“101”時,X向的位置數(shù)據(jù)XCNT輸出到16位數(shù)據(jù)線CNT;當ADDR為“110”時,F(xiàn)PGA將Y向的位置數(shù)據(jù)YCNT輸出到CNT;當?shù)刂肪€ADDR為“001”時,X向位置數(shù)據(jù)XCNT清零,CNT表現(xiàn)為高阻態(tài);當ADDR為“010”時,Y向位置數(shù)據(jù)YCNT清零,CNT表現(xiàn)為高阻態(tài);當ADDR為其他任意值時,CNT都表現(xiàn)為高阻態(tài),使控制器能向其他外設交換數(shù)據(jù)。將代碼下載到XC2S15-5VQ100后,用于生物芯片掃描儀中,準確可靠的實現(xiàn)了位置檢測功能。
4、結論
用FPGA實現(xiàn)X-Y二維掃描臺的位置檢測電路,提高了系統(tǒng)的集成度,位置檢測快速可靠。并且,F(xiàn)PGA工作頻率高、設計靈活,可減少生物芯片掃描儀進一步提升掃描速度和掃描分辨率的開發(fā)時間和成本。
評論