基于FPGA的光栅尺信号智能接口模块
3.1 细分辨向电路
光栅尺信号的细分与辨向是提高光栅尺测量精度的关键性一步。在笔者所参考的关于光栅辨向和细分电路的资料中,很多设计者都没有综合考虑辨向和细分的复杂性,而是把辨向和细分电路分开,辨向电路只对光栅尺的输出信号进行辨向,而不是对细分后的脉冲信号进行辨向,这样实现测量误差仍是光栅尺的栅距。在考虑辨向功能时,应对细分后的信号进行辨向设计,否则不能提高测量精度。
细分辨向电路的原理图如图3所示,光栅尺输出的相差为90 o的方波信号INA、INB经RC滤波和施密特整形后(芯片外处理)输出信号A、B,然
后经第一级D触发器后变为A’、B’信号,再经过第二级D触发器变为A”、B”信号。通过D触发器可以对信号进行整形,从而消除了输入信号中尖脉冲带来的影响,这样在后续倍频电路中不再使用权原始信号A、B,因此提高了系统的抗干扰性能。D触发器的时钟由外部有源晶振提供,其频率为1MHz,远高于A、B波形变化的频率,因而可以认为,D触发器的输出端Q能跟踪输入端D的变化。在四倍频辨向电路中,采用组合、时序逻辑实现A’、A”、B’、B”信号进行的逻辑组合。
当光栅尺正向运动时,从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芯片进行配置。该接口模块已成功应用于于笔者设计的运动控制系统中,成功地完成了对光栅尺(运动控制系统中的位置反馈部件)信号的四细分处理功能,性能稳定可靠。如果在此设计的基础上再加上译码驱动和显示电路,就可作为位移测量和显示电路独立使用。
《基于FPGA的光栅尺信号智能接口模块(第2页)》