- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FPGA 的运动控制卡的设计和实现
基于FPGA 的运动控制卡的设计和实现
摘??要:基于FPGA?的运动控制卡采用脉冲加方向的闭环控制方式,具有结构简单,集成度高、实时性好等优点。从硬件的构成、设计和算法实现等方面入手,阐述了运动控制卡的设计和开发。用硬件描述语言VHDL?(very?high?speed?integrated?circuitHDL)和原理图结合的方式对FPGA?编程实现系统的主要硬件逻辑和算法,从而提高了系统的灵活性和移植性。在硬件算法上,采用乒乓操作处理高速的分频倍数数据流,提高了系统的实时性和控制精度;并且提出了一种基于加二计数器的分频算法,实现任意分频倍数的分频。利用嵌入式调试工具SignalTap?对运动控制卡进行硬件调试和仿真,给出了相应的误差分析。
关键词:运动控制卡;?伺服电机;?分频;?现场可编程门阵列;?外设部件互连标准总线;?实时;?乒乓操作
Design?and?realization?of?motion-controlling-card?based?on?FPGALI?Mu-guo,?PENG?Ping-liang
0?引言
??????传统的运动控制卡多采用单片机作为微处理器,?通过一些大规模集成电路实现对伺服电机的控制。由于其结构较为复杂,因此在工作时,存在高频响应慢、控制精度低等缺点。本文提出一种以FPGA?(field-programmable?gate?array)?和PCI9054?接口芯片为核心硬件的运动控制卡,内部硬件接口和算法通过对FPGA?的编程实现。这样,既能很好地克服传统运动控制存在的缺点,又在灵活性和移植性等方面得到了很大的提高。
1?硬件构成与设计
1.1?构成
??????本文所述的运动控制卡是PCI(peripheral?component?interconnect)接口卡[1],用Altera?公司生产的型号为EP1C6Q240C8的FPGA?作为编程逻辑器件,实现所有的硬件算法和反馈信号的检测。采用脉冲加方向[2]的闭环控制方式对电机进行控制。整个运动控制卡系统可用图1?描述。
1.2?设计
??????运动控制卡硬件电路描述和设计时,严格按照同步时序设计原则[3],而且核心电路用D?触发器实现,电路的主要信号由时钟的上升沿触发器产生。这样可以很好地避免毛刺,并且在布局后仿真和用高速逻辑分析仪采样实际工作信号皆无毛刺。在高速变化的分频倍数数据流控制时,为了保证整个系统的分频输出的实时性,采用如图2?所示的“乒乓操作[3]”技巧。在奇数(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?闭环控制算法
??????整个运动控制卡采用脉冲加方向的控制方式,实现电机的转速和方向的控制。为了保证电机的控制精度,在运动控制卡输出脉冲至电机的驱动器的同时
原创力文档


文档评论(0)