艾巴生活网

您现在的位置是:主页>科技 >内容

科技

基于FPGA器件EP1C6Q240C8实现运动控制卡的应用方案

2024-08-08 09:19:52科技帅气的蚂蚁
介绍传统的运动控制卡采用单片机作为微处理器,通过一些大规模集成电路实现对伺服电机的控制。由于其结构复杂,存在高频响应慢、控制精度低

基于FPGA器件EP1C6Q240C8实现运动控制卡的应用方案

介绍

传统的运动控制卡采用单片机作为微处理器,通过一些大规模集成电路实现对伺服电机的控制。由于其结构复杂,存在高频响应慢、控制精度低等缺点。提出了一种基于FPGA(现场可编程门阵列)和PCI9054接口芯片的运动控制卡。内部硬件接口和算法通过FPGA编程实现。这样就可以很好的克服传统运动控制的缺点,灵活性和便携性都得到了很大的提高。

1硬件组成和设计

1.1构成

本文描述的运动控制卡是PCI(外设部件互连)接口卡,采用Altera公司生产的型号为EP1C6Q240C8的FPGA作为编程逻辑器件,实现所有硬件算法和反馈信号的检测。采用脉冲加方向的闭环控制方式控制电机。整个运动控制卡系统可以在图1中描述。

1.2设计

运动控制卡的硬件电路严格按照同步时序设计原理进行描述和设计,核心电路由D触发器实现,电路的主信号由时钟的上升沿触发器产生。这样可以很好的避免毛刺,用高速逻辑分析仪进行版图仿真和采样实际工作信号后没有毛刺。为了保证整个系统分频输出的实时性,在控制高速可变分频多路数据流时,采用了如图2所示的“乒乓操作”技术。当有奇数(2n-1)个缓冲周期时,输入数据流被缓冲到RAM I,数据从RAM II提取到操作模块。在偶数(2n)个缓冲周期内,数据流被缓冲到RAM II,RAM1中的数据被“数据输出选择单元”选择,送到最后的分频和计数运算模块进行计算输出。如此循环往复。这种流水线算法可以完成数据的无缝缓冲和处理。

本文介绍的运动控制卡涉及四个模块:总线控制器、分频器、定时器和反馈控制,其原理图如图3所示。总线控制器完成PCI 9054 [4]局部总线的仲裁逻辑[5]、地址解码和数据流控制,使PCI数据总线上的数据能够正确解码到各个控制模块进行运算和输出。定时器实现硬件计时,计算机通过驱动器向运动控制卡输入时间值和表示开始计时的控制字,运动控制卡开始计时。计时完成后,通过生成硬件中断模式[6]进入中断服务程序,从而实现电机旋转角度的精确定位。我们也可以使用一些用户代码作为中断处理子程序来实现定时切换或操作的功能。分频器实现工作频率(40MHz)的分频,获得控制电机速度的脉冲频率。反馈控制模块实现了电机的输出补偿和状态监测功能,通过读取可以修正误差,提高系统的控制精度。这些模块用FPGA结合原理图和VHDL语言描述,逻辑层次更清晰,可读性更强。

2算法设计

2.1实时分频算法

运动控制卡输出不同的脉冲频率来控制电机速度,所以脉冲频率的响应速度决定了整个电机的控制精度。这就必然要求我们在设计算法时充分考虑分频算法的实时性。本文提出了一种基于加二计数器的分频算法,可以很好地解决这个问题。该算法的详细流程图如图4所示。锁相输出时钟作为设计的全局时钟,两个单口RAM用于交叉刷新分频倍数。加二计数器对输入时钟的上升沿进行计数,并比较和判断其计数值。如果计数值大于或等于分频倍数的两倍,则输出‘1’,否则输出‘0’。实现分频器的功能。分频器的输出是运动控制卡控制电机速度的脉冲(clk_out)。

2.2闭环控制算法

整个运动控制卡采用脉冲加方向控制方式,实现对电机速度和方向的控制。为了保证电机的控制精度,运动控制卡从编码器读取反馈脉冲和方向,同时输出脉冲给电机的驱动器。这样,只要设计两个计数器同时对输出脉冲和反馈脉冲进行计数,并对两个计数器的计数值进行判断和微分,然后根据得到的差值就可以实现对电机的闭环控制。

3调试和结果模拟

3.1系统调试

此卡使用Quartus II软件自带的信号Tap II进行仿真调试。它是基于逻辑分析内核的嵌入式逻辑分析仪。使用时,调试器无需外部专用仪器,通过捕捉FPGA器件内部的所有信号和节点,即可分析判断系统故障。整个调试过程非常直观方便。SignalTap在采集时钟的上升沿采集数据。采集时钟的设置不合适,有时会得到无法准确反映设计的意外数据状态。Altera建议最好使用全局时钟。本文采用全局时钟gclk作为采集时钟,一级触发,结果=eld ({hold,1})作为触发逻辑。操作分析结果如图5所示。值得注意的是,调试后需要将SignalTap文件从设计目录中移除,以免浪费资源。

3.2调试结果及误差分析

从图5的调试结果来看,运动控制卡的整体控制服从总线仲裁逻辑。当READY=0时,PCI和FPGA交换数据,当READY=0时,总线LD上的数据有效。当分频多工寄存器的值改变时,分频输出频率将相应地改变以满足设计目标。电机行程(行程1和行程2)、报警、零位和伺服等外部信号的检测和判断。检测并计数反馈时钟。因为PCI和FPGA是在系统时钟的上升沿交换数据的。因此,在数据交换过程中,必然存在小于一个时钟周期的延迟误差。

4结束语

本文描述的运动控制卡具有以下特点:数据输入输出端口采用光隔离技术,避免了一些不必要的干扰;FPGA采用独立的40MHz时钟和PLL设计,保证系统时钟的稳定性;(3)采用二分频算法提高分频输出的实时性;FPGA作为核心处理芯片,降低了硬件成本,简化了硬件设计,提高了实时性;通过状态检测和反馈模块,实现电机的状态检测和误差修正;设计中断定时模块,实现电机的转角控制。