历史上的今天
返回首页

历史上的今天

今天是:2024年10月09日(星期三)

正在发生

2020年10月09日 | 基于ARM和FPGA的多路电机控制方案

2020-10-09 来源:elecfans

介绍了一种基于fpga的多轴控制器,控制器主要由arm7(LPC2214)和fpga(EP2C5T144C8)及其外围电路组成,用于同时控制多路电机的运动。利用Verilog HDL硬件描述语言在fpga中实现了电机控制逻辑,主要包括脉冲控制信号产生、加减速控制、编码器反馈信号的辨向和细分、绝对位移记录、限位信号保护逻辑等。论文中给出了fpga内部一些核心逻辑单元的实现,并利用QuartusⅡ、Modelsim SE软件对关键逻辑及时序进行了仿真。实际使用表明该控制器可以很好控制多轴电机的运动,并且能够实现高精度地位置控制。


随着电机广泛地应用于数字控制系统中,对电机控制的实时性和精度上的要求越来越高。如何灵活、有效地控制电机的运行成为研究的主要方向。文中采用现场可编程逻辑门阵列(Field Programmable Gate Array,fpga),通过Verilog语言编程来实现电机的控制。利用fpga设计具有硬件设计软件化、高度集成化、高工作频率等优点。fpga最大的特点就是灵活,实现你想实现的任何数字电路,可以定制各种电路,减少受制于专用芯片的束缚,真正为自己的产品量身定做。在设计的过程中可以灵活的更改设计,而且它强大的逻辑资源和寄存器资源可以让你轻松的去发挥设计理念。其并行执行,硬件实现的方式可以应对设计中大量的高速电子线路设计需求。


1 多轴控制器主要功能

多轴控制器与上位机、电机驱动器等配合使用,图1为采用多轴控制器组成的控制系统总体示意图。控制器接收上位机发送的控制指令,分析处理并产生相应的方向信号、脉冲信号给驱动器,从而达到控制电机运行的目的。为了提高系统的控制精度,将电机的编码器信号作为反馈信号输入给控制器(内部实现自动辨向及四细分)。在各轴运动过程中,专用控制器对电机运行的绝对位移进行记录,并且可以实时地将各轴的绝对位置信息上传给上位机。另外在电机运行的过程中,为了保证电机运行的安全性,控制器还采用了限位信号反馈实现全硬件保护措施。

arm,fpga,电机控制

 

2 多轴控制器组成

专用控制器由arm(LPC2214)、fpga(EP2C5T144C8)、驱动器接口电路、编码器接口电路、限位检测电路和电源电路等组成,如图2为一个八轴电机控制器的硬件组成图。arm通过串口实现与上位机之间的通信,解析从上位机获得的控制指令,并通过fpga产生相应输出信号给驱动器接口,驱动器接口外接驱动器。编码器信号作为位置反馈信号同编码器接口相连,形成位置环反馈。限位信号作为安全检测信号同限位检测接口相连,为整个系统添加一道安全保障。

arm,fpga,电机控制

3 fpga控制逻辑

专用控制器在完成整个控制的过程中,arm只负责指令解析、控制指令发送、实时数据上传等任务,fpga才是多轴专用控制器的核心。通过Verilog HDL语言在fpga内部实现了加减速曲线、编码器信号辩向及四细分、绝对位移记录等功能。图3为电机控制的整体输入、输出信号图,通过片选信号CS、读有效信号rd_enable、写有效图信号wr_enable进行电机通道选择。图4给出了1#通道控制的fpga内部逻辑示意图,下面将逐一对各主要模块进行详细介绍。

arm,fpga,电机控制

arm,fpga,电机控制

 

1)加减速曲线模块

为了更有效、更理想地控制电机的运行,在fpga内部设计了加减速曲线模块。文中采用了一种近似指数加减速曲线的方法,如图5为近似指数加速曲线,减速曲线与之对称。速度等距分布,那么在该速度级上保持的时间不一样场。为了简化,用速度级数N与一个常数C的乘积去模拟并且保持的时间用不熟来代替。因此,速度每升一级,电机都要在该速度级上走NC步(其中N为该速度级数)。

arm,fpga,电机控制

建立两个名为rom_pos、rom_div的ROM模块,如图6所示,rom_pos为脉冲个数存储器,rom_div为分频值存储器。通过相同的地址线将两个存储器连接起来,使一个地址对应一组脉冲个数和分频值。


fpga获得方向信号、脉冲(距离)信号、目标分频值之后.如果电机运行过程中不需要加减速,直接以目标分频值控制脉冲信号的发送即可。如果需要执行加减速,则fpga内部要调用加减速模块。根据地址线获取一组数据,即脉冲个数pul_cnt和分频值div_num,以div_num大小的分频值发送pul_cnt个脉冲,然后再按照下一组数据值发送脉冲,直到分频值达到目标分频值为止,减速过程与加速过程对称。当电机按照脉冲(距离)信号运行到一半行程的时候,如果分频值还未达到目标分频值,此时就要进行强制减速。


编写仿真程序,使两个存储器地址线相同,对存储器地址address做加1运算,从而可一次性读取两个存储器所对应存储单元的数据。利用Modulesim仿真工具对加减速模块进行功能仿真,仿真结果如图7所示,访问一个存储器地址就对应着一组脉冲个数和分频值的输出。

arm,fpga,电机控制

2)编码器反馈辨向及四细分

编码器反馈信号由A、B、Z三相信号组成。A、B两相信号相位相差90度,一个周期内A、B相信号会出现4种不同的组合状态,根据这一特征可以对编码器信号进行辩相和四细分处理。Z相信号为编码器零位信号,当编码器旋转一圈,Z相就会有信号输出。


在QuartusⅡ编译环境下成功编译之后,调用Modulesim仿真软件,编写仿真程序,使之产生全局时钟、复位信号、相位差为90度的A、B相信号和Z相信号。如图8所示,给出了该多轴控制器中所采用的编码器信号辩相及四细分的功能仿真图。


3)绝对位移记录

多轴专用控制器可以将电机运行的绝对位移实时地上传给上位机,这一功能的实现就有赖于fpga中的绝对位移记录部分的逻辑功能。在fpga内部设置一个绝对位移寄存器,用来对编码器反馈信号(辨向四细分之后)进行计数运算。当编码器信号的一个脉冲到来时,根据辩向后的方向信号做不同的运算处理。方向为正则绝对位移寄存器的值就进行加1运算,否则进行减1运算,从而达到对绝对位移进行记录的目的。并且arm可以随时读取该绝对位移寄存器的值,然后将其值上传给上位机,从而完成实时上传电机运行位置信息的功能。编写仿真程序对绝对位移寄存器进行功能仿真,结果如图9所示。


4 结束语

该方案成功已应用于某6轴Stewart平台运动控制中,在实现了0.1μm的运动定位精度的同时,运动机构得到了很好的保护,多次实验及实际使用中,该专用控制器运行安全可靠。

推荐阅读

史海拾趣

Dawning Precision Co Ltd公司的发展小趣事

在国内市场取得一定成绩后,Dawning开始将目光投向国际市场。公司积极参加国际电子展会,与全球知名企业进行交流合作。同时,Dawning还根据不同国家和地区的市场需求,调整产品策略,推出符合当地消费者喜好的产品。经过几年的努力,Dawning的产品已经成功打入欧美、东南亚等多个国家和地区的市场,公司的国际化进程取得了显著进展。

DZUS公司的发展小趣事

进入XX年代,DZUS公司面临了来自国内外竞争对手的严峻挑战。为了保持市场领先地位,公司加大了对技术创新的投入。研发团队成功开发了一系列新型紧固件,不仅提高了产品的性能和可靠性,还降低了生产成本。这些创新产品帮助DZUS公司巩固了市场地位,并赢得了更多客户的信赖。

Genisco Electronics公司的发展小趣事
考虑当地的燃料供应情况和成本,选择适合的燃料类型(如柴油、燃气等)。
DAYLIGHT公司的发展小趣事

DAYLIGHT公司成立于XX年,由一群富有远见卓识的电子工程师和投资者共同创立。当时,电子行业正经历着快速的技术革新,市场对高效、可靠的电子产品需求日益增加。DAYLIGHT公司凭借其独特的技术优势和创新能力,成功开发出一系列高性能的电子产品,迅速在市场中立足。

FCT Electronics公司的发展小趣事

随着电子行业的快速发展,市场竞争日益激烈。为了应对挑战,FCT Electronics不断加大研发投入,推出了一系列具有自主知识产权的新产品。同时,公司还加强了与高校、研究机构的合作,引进了一批高素质的人才,为公司的持续发展注入了新的活力。

Digi International公司的发展小趣事

为了庆祝公司成立30周年,Digi International推出了全新的品牌标识。这一品牌升级不仅展现了公司的创新精神和市场地位,也为其未来的发展注入了新的活力。同时,品牌升级也反映了公司对市场趋势的敏锐洞察和对客户需求的深入理解。

问答坊 | AI 解惑

Maxplus使用指南

很简单 适用初学者…

查看全部问答>

适合 DIY显存8M的单片机显卡的开源操作系统RT-THREAD

网址:http://www.rt-thread.org 内核及组件 实时线程操作系统(RT-Thread) 是一款主要由中国开源社区主导开发的开源实时操作系统(许可证GPLv2)。实时线程操作系统不仅仅是一个单一的实时操作系统内核,它也是一个完整的应用 系统,包含了 ...…

查看全部问答>

protues中编译后,为什么找不到目标文件?

大家好,我是刚学protues。原理图连接好,程序也完成了,只是在编译后,找不到目标文件(.hex),不知是怎么回事? 对了,protues版本是7.5.…

查看全部问答>

nand Flash 问题

本人初学nand  flash,有几个问题不太明白, 1.nand flash中chip,die, bank ,zone,block,page等概念之间什么关系,以及它们的具体含义! 2.nand flash  spec资料一般那里找。      …

查看全部问答>

我想做开发一个虚拟打印驱动。找点这方面的资料和书籍?

我想做开发一个虚拟打印驱动。找点这方面的资料和书籍? 请大家给推荐一下!…

查看全部问答>

关于sql server ce 2.0的问题

1.在PC机上只能用代码来创建SQL CE 2.0数据库吗?    2.我用VS(C#)来开发的,我根据微软的一个例子来用代码创建数据库,运行没问题,但是却找不到创建的数据库的库文件是怎么回事?     3.在PC机到底需要安装 ...…

查看全部问答>

XDS510 USB2.0 , CCS2.2连接f2812出错

前一段时间用ccs连接该DSP开发板一直都没有什么问题, 但是最近怎么都连不上同一块开发板了, 报错为Can\'t Initialize target cpu: 1. Target initialization failed< -1294>; 2. Check target power, and JTAG connection 重装了系统, 重新 ...…

查看全部问答>

新手买什么开发板好好啊?

刚开始入门FPGA,不知道买什么开发板好?是论坛的EE板子还是DE0呢?…

查看全部问答>

申请样片+没有学校的邮箱、需要导师信息

曾经想在ADI的网上申请样片,遇到的问题有两个: 1.我们学校的校域名邮箱,学生不能申请,就没有校域名邮箱。能不能通过别的方式证明是学校的学生即可? 2.项目需要导师信息以及导师联系方式,有些时候做的项目不一定是跟着导师做的,而且自己做 ...…

查看全部问答>