微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 基于FPGA的生物芯片扫描仪位置检测系统设计

基于FPGA的生物芯片扫描仪位置检测系统设计

时间:07-10 来源:互联网 点击:

引入外部频率为10MHz的时钟源,利用这个时钟的上升沿同时对A相、B相信号采样,作为当前XA、XB值,以二维向量AB_new记之,AB_new通过一级触发器后,记为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就会输出四个负脉冲,同时实现了辨向与细分功能。

  2.2、可逆计数器设计

  用两个16位二进制计数器对两路脉冲信号XCU、XCD分别计数,然后用一个16位减法器对此两个计数器的计数值作差,被减数为XCU的计数值 XUPCNT,减数为对XCD的计数值XDOWNCNT,其差作为X向的位置数据XCNT.这样,XCU有计数脉冲时,XCNT就会增加,而XCD有计数脉冲时,XCNT就会减小,实现了可逆计数。结合前面的辨向细分电路,使X向的位置数据在正向位移时增加,反向位移时减少。位置数据的变化真实反映了位移情况。

  2.3、接口电路设计

  接口电路是控制器实时可靠读取X向、Y向的位置数据或清零的接口。接口电路由译码电路、输出三态缓冲器组成。接口电路与控制器的16位数据线CNT用于 FPGA向控制器传送位置数据,控制器的3位地址线ADDR作为译码电路的输入:能分别输出X、Y向位置数据,以及分别对X、Y向计数器清零。译码电路可使X向、Y向位置数据复用16位数据线,高效的利用控制器的端口资源;对3位地址信号译码产生清零信号,能有效地防止在只使用一根信号线时受干扰等原因而引起的误清零现象。

  3、设计仿真和实现

  在ISE6.1i开发平台上,用VHDL语言对辨向细分、计数、接口电路进行编程实现。图4是仿真波形。

  

  由图4可看出,X、Y向可并行的对光栅信号辨向、细分、计数,下面只以X向说明:辨向细分电路根据两路正交的方波信号XA、XB的相位差分别在 XCU,XCD上输出频率为XA、XB4倍的计数脉冲,实现了辨向细分;可逆计数器分别对XA、XB计数,计数值的差XCNT随X向的位移方向的变化增加或减少;当控制器的地址译码信号ADDR为"101"时,X向的位置数据XCNT输出到16位数据线CNT;当ADDR为"110"时,FPGA将Y向的位置数据YCNT输出到CNT;当地址线ADDR为"001"时,X向位置数据XCNT清零,CNT表现为高阻态;当ADDR为"010"时,Y向位置数据YCNT清零,CNT表现为高阻态;当ADDR为其他任意值时,CNT都表现为高阻态,使控制器能向其他外设交换数据。将代码下载到 XC2S15-5VQ100后,用于生物芯片扫描仪中,准确可靠的实现了位置检测功能。

  4、结论

  用FPGA实现X-Y二维扫描台的位置检测电路,提高了系统的集成度,位置检测快速可靠。并且,FPGA工作频率高、设计灵活,可减少生物芯片扫描仪进一步提升扫描速度和扫描分辨率的开发时间和成本。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top