1、滤波磁编码器设计简述 作者:吴正平 王璐 单位:三峡大学理学院 AD转换器及控制电路 AD转换器将传感器输出的两路模拟信号转变为数字信号,AD采样器的精度直接决定信号处理部分的解码精度,而AD采样器的采样速度则决定磁栅转一圈最大能输出的脉冲数经过选型最终确定的AD转换器是AD9226芯片AD9226芯片是具有12位精度、65Msps的高速模数转换器,实验证明该芯片完全可以满足编码器设计要求对AD9226的控制是通过FPGA芯片实现的,通过对40MHz时钟信号分频得到两路方波信号ADCLK1和ADCLK2,直接将这两路信号接入AD9226的时钟引脚ADCLK1和ADCLK2图3FPGA控制AD9
2、226 CORDIC算法及FPGA实现 首先介绍CORDIC算法的原理如下6设向量(Xk1,Yk1)是由(Xk,Yk)旋转k角度得到,那么有:Xk1Yk1cosksinksinkcoskXkYkcosk1tanktank1XkYk(1) 为便于计算机迭代求解,限制每次旋转的角度k满足条件tank2k(k0,1,2,),且在旋转过程中始终根据Yk的正负来调整旋转方向,调整方法如下:dk1(顺时针)Yk01(逆时针)Yk烄烆0(2) 那么式(1)可展开如下:Xk1Yk1A1dktankdktank1•1dk1tank1dk1tank111d0tan0d0tan01•X0Y0
3、A1dk2kdk2k11dk12(k1)dk12(k1)1•1d020d0201X0Y0(3)其中,Acoskcosk1cos0ki0122槡i,当k时,A164676那么可以证明,将向量X0Y0进行若干次这样的旋转,可以使它最终与X轴重合,而向量X0Y0与X轴的夹角,则刚好是所有旋转过的角度之和取反,即ki0dkk(4) 综合起来CORDIC迭代算法可表示为Xk1XkdkYk2kYk1YkdkXk2kZk1Zkdktan1(2k烅烄烆)(5) 磁电编码器对旋转角度的解算是实时的,那么器件解算角度的速度要足够快,例如当磁栅旋转速率为10000转min,用FPGA实现16倍频时,则F
4、PGA完成一次角度解算的延时不能大于117s因此本文采用流水线结构的FPGA来实现CORDIC算法,其算法结构如图4所示采用10级流水线结构的FPGA实现CORDIC算法,在QuartusII软件中仿真结果如图5所示图5CORDIC算法仿真结果从图中可以看到,经过10次迭代后输出结果就稳定为19308,与理论值19344误差在02以下 倍频信号滤波 在完成上述各模块的设计并进行功能验证的基础上,设计了磁电编码器原型机,8倍频的输出信号如图6所示图6磁电编码器8倍频输出从图中明显看出输出的方波信号存在脉冲干扰,需要进一步做滤波处理为此进一步利用FPGA芯片实现数字滤波,该滤波程序用状态机来实现,
5、状态转换图以及滤波后的结果如图78所示 实验测试结果 按照图1所示结构设计了一台磁电编码器原型机并测试在GMR传感器输出信号频率fIN分别为400Hz、1000Hz、1500Hz以及2500Hz共4种情况下的8倍频输出信号,如图9所示从测试结果看,本编码器的8倍频输出结果还是很理想的但在输入频率1000Hz时部分方波信号不规则,这与实验驱动电机轴向稳定性较差有关系 本文利用两轴正交全桥GMR传感器和FPGA芯片EP1C6PQ240成功设计了一台磁电编码器原型机在原型机上的实验测试结果表明,该磁电编码器8倍频输出结果稳定但是由于GMR传感器输出两路正交信号质量不高,导致不能实现更高倍频的输出信号,这是以后需要努力改进的地方第 3 页 共 3 页