导言
传统的运动操控卡多选用单片机作为微处理器, 经过一些大规模集成电路完结对伺服电机的操控。因为其结构较为杂乱,因而在作业时,存在高频呼应慢、操控精度低一级缺陷。本文提出一种以FPGA (field-programmable gate array) 和PCI9054 接口芯片为中心硬件的运动操控卡,内部硬件接口和算法经过对FPGA 的编程完结。这样,既能很好地战胜传统运动操控存在的缺陷,又在灵活性和移植性等方面得到了很大的进步。
1 硬件构成与规划
1.1 构成
本文所述的运动操控卡是PCI(peripheral component interconnect)接口卡,用Altera 公司出产的型号为EP1C6Q240C8的FPGA作为编程逻辑器材,完结一切的硬件算法和反应信号的检测。选用脉冲加方向的闭环操控方法对电机进行操控。整个运动操控卡体系可用图1 描绘。
1.2 规划
运动操控卡硬件电路描绘和设计时,严厉依照同步时序规划准则,而且中心电路用D 触发器完结,电路的首要信号由时钟的上升沿触发器发生。这样能够很好地防止毛刺,而且在布局后仿真和用高速逻辑剖析仪采样实际作业信号皆无毛刺。在高速改动的分频倍数数据流操控时,为了确保整个体系的分频输出的实时性,选用如图2 所示的“乒乓操作”技巧。在奇数(2n+1)个缓冲周期时,输入的数据流缓冲到RAMⅠ和从RAMⅡ取出数据到运算模块。在第偶数(2n)个缓冲周期,将数据流缓冲到RAMⅡ,将RAM1 里的数据经过“数据输出挑选单元”的挑选,送到最终的分频和计数的运算模块进行核算输出。如此循环,循环往复。这种流水线式算法,能够完结数据的无缝缓冲与处理。
本文所述的运动操控卡共触及总线操控器、分频器、守时器、反应操控等4 个模块,其原理图如图3 所示。总线操控器完结PCI9054 [4] 部分总线的裁定逻辑[5]、地址译码和数据流操控,使PCI 数据总线上的数据正确地被译码到各分操控模块进行运算输出。守时器完结硬件守时,核算机经过驱动程序给运动操控卡输入一时间值和一个表明计时开端的操控字,运动操控卡开端计时,在计时完结时,经过发生硬件中止方法[6],进入中止服务程序,然后完结电机的转角精确定位。咱们还能够把一些用户代码作为中止处理子程序,来完结守时切换或运算的功用。分频器完结作业频率(40MHz) 的分频作业,得到操控电机转速的脉冲频率。反应操控模块完结电机的输出补偿和状况监控功用,可经过读取差错然后完结批改,以此来进步体系操控精度。这些模块在FPGA 内部选用原理图(Schematic Diagrams)+VHDL 言语结合的方法进行描绘,使逻辑层次愈加清晰和可读性更强。
2 算法规划
2.1 实时分频算法
运动操控卡输出的不同脉冲频率来完结电机转速的操控,因而脉冲频率的呼应速度决议了整个电机的操控精度。这就必定要求咱们在规划算法时,要充分考虑分频算法的实时性。本文提出一种依据加二计数器的分频算法,能很好地处理此问题。其算法详细流程图如图4 所示。取锁相输出时钟作为规划的大局时钟,一起用两个单口RAM来穿插改写分频倍数。加二计数器对输入时钟进行上升沿计数,并对其计数值进行比较判别,假如计数值大于等于两倍的分频倍数,输出为‘1’,否则为‘0’。完结分频器功用。分频器输出即为运动操控卡操控电机转速的脉冲(clk_out)。
2.2 闭环操控算法
整个运动操控卡选用脉冲加方向的操控方法,完结电机的转速和方向的操控。为了确保电机的操控精度,在运动操控卡输出脉冲至电机的驱动器的一起,运动操控卡从编码器中读出反应脉冲和方向。这样,只需规划两个计数器一起对输出脉冲和反应脉冲进行计数,而且对两个计数器的计数值进行判别和求差,然后依据求出的差值进行循环插补,即可完结电机的闭环操控。
3 调试和成果仿真
3.1 体系调试
本卡选用Quartus Ⅱ软件自带的SignalTap Ⅱ进行仿真调试,它是一种依据逻辑剖析核的嵌入式逻辑剖析仪,在运用时,调试人员无需外接专用仪器,就能够经过对FPGA 器材内部一切信号和节点的捕获,来完结对体系故障的剖析和判别,整个调试进程十分直观、便利。SignalTap Ⅱ在收集时钟的上升沿处收集数据,收集时钟的设置不恰当,有时候会得到不能精确反映规划的不希望数据状况,Altera 主张最好运用大局时钟。文中给出以大局时钟gclk 作为收集时钟,1 级触发,而且以RESULT = ELD({HOLD,1})作为触发逻辑,其运转剖析成果如图5 所示。值得注意的是,在调试完结后,需将SignalTapⅡ文件移除规划目录,防止浪费资源。
3.2 调试成果及差错剖析
从图5 的调试成果来看,运动操控卡的整个操控服从于总线裁定逻辑。PCI 和FPGA 数据交流在READY=0 时进行,总线LD 上数据在READY=0 时有用。分频倍数寄存器值改动,分频输出频率即刻作相应改动,满意规划方针。对电机行程(journey1和journey2)、报警(alarm)、零位(zero)和伺服(servo)等外部信号的检测和判别。对反应回来的时钟进行检测计数。因为PCI 和FPGA 交流数据均发生在体系时钟的上升沿。所以在数据交流进程中,必定会存在一个小于1 个时钟周期的推迟差错。
4 结束语
本文所述的运动操控卡具有如下特色:①数据输入输出口选用光阻隔技能,来防止一些不必要的搅扰;②FPGA选用独立的40MHz 时钟和锁相环规划,确保了体系的时钟安稳;③选用加二分频算法,进步分频输出的实时性;④FPGA 作为中心处理芯片,减少了硬件本钱、简化了硬件规划、实时性得到进步;⑤经过状况检测和反应模块,完结电机的状况检测和差错批改;⑥规划中止守时模块,完结电机的转角操控。
责任编辑:gt