基于FPGA的光栅尺信号智能接口模块
当光栅尺正向运动时,从CLKADD信号端输出四倍频脉冲,而CLKSUBB端无信号输出。当光栅尺反向运动时,从CLKSUBB信号端输出四倍频脉冲,而CLKADD端无信号输出。CLKADD和CLKSUBB相与后作为可逆计数器的计数脉冲CLK,读出该计数器的值便可得出光栅移动的位置。CLKADD和CLKSUBB信号组成的RS触发器电路可产生ENADD,ENSUBB。ENADD可作为可逆计数器的方向信号。其仿真波形如图4所示。
3.2 计数电路
本系统中的24位计数器采用VHDL语言进行设计。输入信号定义为时钟CLK、方向信号fx =ENADD ,清零信号CLR(后面有介绍)。输出信号定义为24位的计数结果COUNT(23:0)。用VHDL语言来编写实现24位可逆计数器功能。其仿真信号如图5所示。
3.3 接口电路
接口电路用原理图法设计,电路包括以下部分:
(1)地址译码电路:输入信号为外部(微处理器、单片机等)的地址线A0~ A4、片选信号线CS、读写控制信号,通过逻辑门电路的连接构成组合逻辑,给每一个内部单元提供使能信号。
(2)锁存接口电路:由于内部各计数单元工作属于动态过程,因此外部微处理器(或单片机等)在读取数据时,应该先给其发出锁存信号然后再读取数据,以保证读出稳定的数据。锁存器输出设计为三态门输出,与外部数据线连接,三态门的使能信号由译码电路提供。
(3)清零电路:电路中设计了清零电路。清零脉冲是通过外部写命令(8位)内部进行译码的方式进行的,而不是使用一根信号线进行清零,这样可以有效地防止在只使用一根信号线时受干扰等原因而引起的误清零现象。
4 结束语
本设计经过仿真、编译实现后,将代码下载到EPC1441可编程配置芯片,属于主动配置模式。在接口模块上电后由EPC1441自动对EPF10K10芯片进行配置。该接口模块已成功应用于于笔者设计的运动控制系统中,成功地完成了对光栅尺(运动控制系统中的位置反馈部件)信号的四细分处理功能,性能稳定可靠。如果在此设计的基础上再加上译码驱动和显示电路,就可作为位移测量和显示电路独立使用。