基于FPGA的生物芯片掃描儀的位置檢測
摘 要: 基于FPGA實(shí)現了生物芯片掃描儀中X-Y二維掃描臺的位置檢測電路,解決原有電路存在的計數誤差和誤清零問(wèn)題,提高系統的可靠性。詳細闡述了FPGA中辨向細分、可逆計數器,接口電路的設計實(shí)現,并給出了仿真波形。
關(guān)鍵詞: FPGA;位置檢測;辨向;細分;可逆計數
引言 1 X-Y二維掃描臺位置檢測原理 圖1 2 X-Y二維掃描臺X向、Y向位置檢測元件采用開(kāi)式光柵,50線(xiàn)/mm,由專(zhuān)用細分尺10細分后,測量分辨為2μm。開(kāi)式光柵直接利用光電轉換原理輸出三相方波A、B、Z相。A、B相方波相位差90(如圖1、2所示),Z相用于基準點(diǎn)定位,其邏輯電平都為5V。當A相方波超前B相方波90時(shí),表示位移方向為正方向,如圖1所示;當A相方波滯后B相方波90時(shí),表示位移方向為反方向,如圖2所示。掃描臺X向、Y向每位移2μm,光柵發(fā)出一個(gè)周期的方波。 因此,X-Y二維掃描臺的位置檢測首先要解決對光柵信號的辨向問(wèn)題,辨別出X、Y向的位移方向;其次,為保證生物芯片掃描在最高掃描分辨率為5μm時(shí)仍有較高掃描質(zhì)量,X、Y方向位置檢測精度應高于2μm,以減少掃描臺的定位誤差,因此要對光柵信號進(jìn)一步細分;此外,還要完成將光柵信號轉換成控制器能讀取的位置數據,當X向、Y向位移方向為正時(shí),此位置數據遞增;當X向、Y向位移方向為負時(shí),此位置數遞減,并要保證實(shí)時(shí)的準確可靠的提供X、Y向的位置數據,作為控制器(如單片機、DSP)精確定位X-Y二維掃描臺位置的依據。 原有的生物芯片掃描儀中X-Y二維掃描臺的一個(gè)方向的位置檢測采用4倍頻專(zhuān)用集成電路Q(chēng)A740210對光柵信號進(jìn)行辨向、細分,用4片4位二進(jìn)制74LS193計數器級聯(lián)實(shí)現對細分后的光柵信號16位計數,計數值(即位置數據)通過(guò)2片8位74LS245緩沖器輸出至控制器。這樣,X、Y兩個(gè)方向的位置檢測電路多達14片芯片,占用大量的PCB空間,布線(xiàn)復雜,板上信號間的串擾易引起計數誤差和誤清零現象,影響掃描臺的精確定位。若只用一片FPGA實(shí)現位置檢測電路,輸入為光柵信號,輸出即為位置數據,直接送入控制器,避免PCB板間信號串擾,就能有效消除計數誤差和誤清零現象。 圖3 選用Spartan-II系列FPGA(XC2S15-5VQ100)作為X-Y二維掃描臺的位置檢測電路,并行的對X、Y兩路光柵信號的進(jìn)行辨向、細分、計數,并提供與控制器的接口,實(shí)時(shí)可靠的將X、Y向位置數據傳送給控制器。 FPGA內部模塊劃分如圖3所示:從X向光柵來(lái)的A、B兩相方波信號XA,XB由X向辨向細分電路辨向細分后,輸出兩路脈沖信號XCU、XCD,16位計數模塊分別對這兩路脈沖信號進(jìn)行計數,并將兩計數值XUPCNT、XDOWNCNT相減,其差作為X向的16位位置數據XCNT。接口電路對3位地址信號ADDR譯碼,通過(guò)XCLR、YCLR對X、Y計數器分別清零,并選通X向或Y向位置數據輸出到控制器。 2.1 辨向細分設計 引入外部頻率為10MHz的時(shí)鐘源,利用這個(gè)時(shí)鐘的上升沿同時(shí)對A相、B相信號采樣,作為當前XA、XB值,以二維向量AB_new記之,AB_new通過(guò)一級觸發(fā)器后,記為AB_old, AB_new 和AB_old都跟隨A相、B相方波信號變化而變化,只是AB_old要滯后AB_new一個(gè)采樣時(shí)鐘周期。這樣,就可以將AB_old和AB_new進(jìn)行比較:當AB_old為“00”時(shí),若AB_new為“10”,即A相超B相前90,XCU輸出一個(gè)負脈沖,XCD保持為高電平不變;若AB_new為“01”,即A相滯后B相90,XCD輸出一個(gè)負脈沖,XCU保持為高電平不變。X向光柵信號變化一個(gè)周期,如果A相超B相90(位移方向為正),XCU就會(huì )輸出四個(gè)負脈沖,如果A相滯后B相90(位移方向為負),XCD就會(huì )輸出四個(gè)負脈沖,同時(shí)實(shí)現了辨向與細分功能。 用兩個(gè)16位二進(jìn)制計數器對兩路脈沖信號XCU、XCD分別計數,然后用一個(gè)16位減法器對此兩個(gè)計數器的計數值作差,被減數為XCU的計數值XUPCNT,減數為對XCD的計數值XDOWNCNT,其差作為X向的位置數據XCNT。這樣, XCU有計數脈沖時(shí),XCNT就會(huì )增加,而XCD有計數脈沖時(shí),XCNT就會(huì )減小,實(shí)現了可逆計數。結合前面的辨向細分電路,使X向的位置數據在正向位移時(shí)增加,反向位移時(shí)減少。位置數據的變化真實(shí)反映了位移情況。 3 設計仿真和實(shí)現 圖4 由圖4可看出,X、Y向可并行的對光柵信號辨向、細分、計數,下面只以X向說(shuō)明:辨向細分電路根據兩路正交的方波信號XA、XB的相位差分別在XCU, XCD上輸出頻率為XA、XB4倍的計數脈沖,實(shí)現了辨向細分;可逆計數器分別對XA、XB計數,計數值的差XCNT隨X向的位移方向的變化增加或減少;當控制器的地址譯碼信號ADDR為“101”時(shí), X向的位置數據XCNT輸出到16位數據線(xiàn)CNT;當ADDR為“110”時(shí),FPGA將Y向的位置數據YCNT輸出到CNT;當地址線(xiàn)ADDR為“001”時(shí),X向位置數據XCNT清零,CNT表現為高阻態(tài);當ADDR為“010”時(shí),Y向位置數據YCNT清零, CNT表現為高阻態(tài);當ADDR為其他任意值時(shí),CNT都表現為高阻態(tài),使控制器能向其他外設交換數據。將代碼下載到XC2S15-5VQ100后,用于生物芯片掃描儀中,準確可靠的實(shí)現了位置檢測功能。 4 結論 用FPGA實(shí)現X-Y二維掃描臺的位置檢測電路,提高了系統的集成度,位置檢測快速可靠。并且,FPGA工作頻率高、設計靈活,可減少生物芯片掃描儀進(jìn)一步提升掃描速度和掃描分辨率的開(kāi)發(fā)時(shí)間和成本。 參考文獻 |
評論