基于FPGA的测角脉冲细分电路的设计
2 基于FPGA的脉冲细分电路的设计
2.1 总体设计
大部分的角度传感器输出信号都是由两路相位差90°的脉冲信号组成,设计电路时首先可以对两路信号进行鉴相解调与倍频,一方面完成转向的判断,另一方面将两路信号四倍频;接着设计整数脉冲计数器、小数脉冲计数器,对相应脉冲数进行计数;最后将计数值通过串口通信单元顺序发送至计算机,方便后期的数据处理。这里最为关键的问题是利用脉冲细分技术计出被测脉冲的小数部分,另外指示脉冲对计数器的控制精度关系到计数值的准确与否,因此要利用性能良好的硬件并巧妙地设计程序。这里硬件选择了FPGA,程序则是利用HDL语言进行编写,脉冲细分电路总体设计如图2所示。
2.2 整数脉冲计数器
为了更准确地对倍频后的脉冲进行计数,在设计时,电路采用了2个计数器轮流计数,指示脉冲控制2个计数器交替工作。具体方法是将两个计数器的使能信号分别设置为1和0,由指示脉冲控制使能信号,在每一个指示脉冲到来时使能信号取反。另外,由于计数值很大,为了保证数值不会溢出,使用32位计数器。
2.3 小数脉冲计数单元
由脉冲细分技术可知,小数脉冲计数单元是要对指示脉冲上升沿与在其之后的第一个测角脉冲上升沿之间的高频计数时钟脉冲计数。测角脉冲信号是周期性的,而设计时要用到的只是指示脉冲之后的第一个陀螺信号的上升沿,这给小数脉冲计数的设计带来了困难,在设计时使用了有限状态机。这里主要利用整数脉冲计数单元中设计的整数计数器使能信号CLR与测角脉冲信号CH的状态组合来设计状态机,利用状态机输出小数脉冲计数器的工作使能信号ENA,这里状态都是在时钟CLK上升沿转换。图3与图4分别为小数计数器工作时序图与使能信号状态机。
DIY机械键盘相关社区:机械键盘DIY
评论