0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FPGA的嵌入式运动控制器设计方案

电子设计 来源:电子设计工程 作者:吴辉,罗富文,杜 2021-03-24 14:50 次阅读

作者:吴 辉,罗富文,杜文广

运用低功耗Cortex—M3微控制器STM32F103VBT6和FPGA芯片设计一种基于CAN总线的运动控制器。介绍系统的体系结构、主要硬件设计和软件结构。利用FPGA高速处理能力实现控制算法,与外界通信采用STM32和CAN总线技术,系统稳定可靠,另外,将设计好的FPGA程序或是C程序进行封装,系统的可移植性强。

如今,运动控制正朝着高速度、高精度、开放式的方向发展,从而对执行部件提出了更高的要求。过去的运动控制器主要是基于单片机或者PLC加上分立数字电路设计,受制于器件本身的性能,导致电路执行速度慢、体积庞大、集成程度低,升级难度大。而采用微处理器DSP、FPGA等现代手段构成的只能控制系统是新一代运动控制发展的方向。本文对基于FPGA的嵌入式运动控制器进行了研究,并应用了CAN总线,使硬件接口简单、实时性强、灵活度高,有很强的实用价值。

1总体方案设计

策略本系统以意法半导体公司生产的基于Cortex—M3处理器STM32F103VBT6芯片核心进行通信、数据的存储以及键盘扫描和LCD显示,它集成了CAN、SPI、USB、USART控制器,满足系统的设计要求,简化的系统的实现过程,丰富的函数库大大缩短了用户的开发周期。而FPGA作为系统主要的执行机构,利用其高速性进行算法实现、速度控制和位置控制,系统的整体构造如图1所示。

o4YBAGBa4AaAPJJYAAEriFkN9gM649.png

2 运动控制器的功能模块设计

为了满足整个系统的运转,运动控制主要由通信和数据处理两部分构成,通信和数据存储由STM32负责进行,出于数据运算的复杂性和实时性,FPGA处理算法的实现。本设计相对庞大,模块不一一介绍。

2.1 CAN通信模块的设计

2.1.1硬件设计

bxCAN是STM32内置的CAN控制器,支持2.0A和2.0B CAN协议,波特率最高可达可达到1 Mbit/s,包含3个发送邮箱,3级深度的2个接收FIFO,14个可变位宽的过滤器组,支持时间触发通信模式,它的设计目标是以最小的CPU负荷来高效处理大量收到的报文,它也支持报文发送的优先级要求(优先级特性可软件配置)。CAN硬件设计如图2所示。

o4YBAGBa4BSAYH5UAAHdYsLzBh4677.png

以CTM8251作为收发芯片,它不仅能完成收发功能,还具有DC2500V的隔离功能,使系统与外界隔离开来,简化了CAN外围的硬件设计,提高了系统的性价比,图中120Ω的电阻为可选用的终端匹配电阻,假如网络中已经存在一对匹配电阻,则该电阻可以不使用,其中B82790是个共模扼流线圈,作用是抑制共模干扰平衡差分信号的传输;本设计中采用比较常用的拨码开关电路设置CAN网络的ID地址和波特率;LED作为通信状态指示。

2.1.2软件设计

针对STM32对外设的设置,我们只需要对相应的参数进行适当的配置就能满足设计的要求,软件部分主要任务只要进行CAN初始化和数据发送即可。本设计初始化模块中只需要对CAN工作方式进行配置,而不需要对过滤器进行特殊的配置,部分初始化程序如下:

o4YBAGBa4CGAb5fyAAGo7-dpXJ0952.png

工作方式配置中最主要的是波特率的配置,本设计中采用AHB1作为CAN时钟为36 MHz,所以要得到1 Mbit/s的波特率进行了以上的设置,即SJW=tq,BS1=3tq,BS2=5tq,CAN_Prescaler=4,所以波特率的计算如下:

o4YBAGBa4DeADsRZAAGp9tW6UyI654.png

2.2 FPGA电路的设计

FPGA电路主要实现运动控制的相关算法,包括加减速算法、检测装置算法、插补算法等算法的实现,是整个设计的关键部分,硬件设计主要包括FPGA的供电电路、时钟电路和配置电路,都是相对比较常规的电路,在这里不做介绍,文中主要介绍相关算法的实现。

2.2.1加减速模块

为了在电机启动时为了在电机启动时,避免电机在运行以及换速的过程中产生冲击、超程、失步和振荡等一些我们不想见到的现象。为了使执行机构能够平稳和准确的定位,这就要求电机在开机到电机的速度达到给定的进给速度的过程中有一个加减速的过程,使其能够平滑的过渡。避免速度的突变给电机带来损伤。

S型曲线加减速是比较理想的控制加减速方法,但如何保证构造的曲线平滑、精确成为很多算法工程师研究的重点。如图3所示,在加速的过程中,有3个不同的加速度区域。在开始阶段,加速度是按线性方式以一定的加速度率K从0增加到固定的加速度值A.也就是说,这时驱动速度在a区域是按抛物线的方式增长;接着在b区域中,驱动速度是以一个恒定的加速度增长;最后,在c区域中,加速度则按照加速度率K线性减少到0.这样,S曲线的加速度过程就可以看作是由a,b,c 3个区域构成的。在减速的过程中,同加速过程一样,d,e,f区域中也是按抛物线的方式减速。

pIYBAGBa4EeAcmfFAADX_uSqN54172.png

基于此本设计构造的速度、加速度、时间的对应函数如下:

o4YBAGBa4FeAF7CwAADHsYvdTW8240.png

S加减速在FPGA中的实现,如图4所示。在已知给定加速度A、加速度率K、初速度V0、以及进给速度V和总的pwm脉冲数的情况下,就可以得到S加减速曲线。

pIYBAGBa4HeAWY9lAAEdqIJlH7s854.png

图5为本设计在Quartus II中的仿真波形,为了加快仿真的速度,特意在仿真而前对某些参数进行了修改。

本系统的加减速模块的构造满足速度和加速度曲线的构造满足速度变化平稳,加速连续等条件,起始和终止速度与要求速度一致,加速度为0,加速度率K可以根据实际需要随时调整,通用性很好。

2.2.2光电编码器模块

本系统采用的闭环控制,反馈信号的精度直接影响定位、测速,在此采用增量是编码器进行定位控制,增量式编码器主要是利用两个相差90度的方波信号A和B,和零位脉冲信号Z进行角位移和方向判断(如图6所示),从而达到了检测位置的目的,此外,我们将A或B信号四倍频,则计数脉冲的周期将减小到T/4,从而使角位移测量精度提高4倍。四倍频后的编码器信号,需经计数器计数后,才能转化为相对位置。由两个与非门、一个非门逻辑、D触发器组成传统的波形转换电路,通过它来将A相、B相脉冲转换成正向计数信号dz、反向计数信号df和方向(dir)信号,通过正反方向的数字信号加减完成最终的计数,最终的仿真数据如图7所示。

3结束语

本课题研究是基于某品牌雕刻机控制系统设计进行的总结,旨在建立一种通用的运动控制器,通过该运动控制器以及系统其它部分的协同工作,整个控制系统实时性、可靠性好,满足了控制要求。通信非常稳定,相关算法还有待优化。
编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21729

    浏览量

    602986
  • 嵌入式
    +关注

    关注

    5082

    文章

    19104

    浏览量

    304802
  • CAN总线
    +关注

    关注

    145

    文章

    1946

    浏览量

    130726
  • 运动控制器
    +关注

    关注

    2

    文章

    401

    浏览量

    24703
收藏 人收藏

    评论

    相关推荐

    嵌入式系统中微控制器与微处理的区别

    嵌入式微控制器已成为我们日常接触的众多设备背后的无声指挥者。从用于烹饪食物的微波炉到监测健康的智能手表,微控制器确保这些设备能够精准、可靠地运作。本文的目的是揭示嵌入式微控制器的世界,帮助读者理解
    的头像 发表于 10-14 11:02 410次阅读
    <b class='flag-5'>嵌入式</b>系统中微<b class='flag-5'>控制器</b>与微处理<b class='flag-5'>器</b>的区别

    为何嵌入式控制器首选ARMxy?深度解析

    嵌入式ARM控制器是一种基于ARM架构的嵌入式系统控制器,广泛应用于各种嵌入式系统中,包括工业物联网关、边缘计算网关、智慧城市、智能设备、工
    的头像 发表于 09-21 10:09 297次阅读
    为何<b class='flag-5'>嵌入式</b><b class='flag-5'>控制器</b>首选ARMxy?深度解析

    嵌入式微控制器嵌入式微处理器的联系

    嵌入式微控制器嵌入式微处理器嵌入式系统领域中都扮演着至关重要的角色,它们之间存在着紧密的联系,同时也各具特色。以下是对两者联系及特点的详细探讨。
    的头像 发表于 08-22 10:50 680次阅读

    NS486SXF高度集成的嵌入式系统控制器数据表

    电子发烧友网站提供《NS486SXF高度集成的嵌入式系统控制器数据表.pdf》资料免费下载
    发表于 08-08 09:29 0次下载
    NS486SXF高度集成的<b class='flag-5'>嵌入式</b>系统<b class='flag-5'>控制器</b>数据表

    开放激光振镜运动控制器的激光清洗应用

    开放激光振镜运动控制器的激光清洗解决方案
    的头像 发表于 07-18 09:44 319次阅读
    开放<b class='flag-5'>式</b>激光振镜<b class='flag-5'>运动</b><b class='flag-5'>控制器</b>的激光清洗应用

    基于飞凌嵌入式RK3568J核心板的工业机器人控制器应用方案

    的主要作用是完成多轴运动的计算与控制,因此机器人控制器的主控就需要拥有高性能的CPU、内置实时操作系统、支持EtherCAT工业总线以及丰富的功能接口。 机器人控制器 基于以上需求,飞
    发表于 05-11 09:40

    嵌入式微处理器嵌入式微控制器的区别

    嵌入式微处理器嵌入式微控制器在多个方面存在显著的区别。
    的头像 发表于 03-29 11:44 1550次阅读

    fpga嵌入式应该学哪个

    FPGA嵌入式系统是两个不同的领域,各有其特点和优势,选择学习哪个取决于个人的兴趣、职业目标以及市场需求。
    的头像 发表于 03-27 14:43 771次阅读

    嵌入式fpga是什么意思

    嵌入式FPGA是指将FPGA技术集成到嵌入式系统中的一种解决方案嵌入式系统是一种为特定应用而设
    的头像 发表于 03-15 14:29 1242次阅读

    嵌入式fpga的关系

    FPGA(现场可编程门阵列)和嵌入式系统之间存在密切的关系,它们都是计算机硬件领域的重要组成部分,并在许多应用中发挥着关键作用。
    的头像 发表于 03-15 14:19 914次阅读

    fpga嵌入式

    FPGA(现场可编程门阵列)不是嵌入式系统,但FPGA嵌入式系统中有着重要的应用。
    的头像 发表于 03-14 17:19 2280次阅读

    fpga嵌入式的区别 嵌入式fpga开发有什么关系

    fpga嵌入式的区别 FPGA嵌入式系统在设计和应用上存在一些关键的区别,具体如下: 灵活性:FPGA具有高度的灵活性,可以根据需要重新
    的头像 发表于 03-14 17:04 6882次阅读

    fpga嵌入式哪个前景好

    FPGA嵌入式系统各有其独特的优势和应用领域,因此很难直接判断哪个的前景更好。它们在不同的领域都有广泛的应用和重要的价值。
    的头像 发表于 03-14 16:37 2293次阅读

    智能集成:整合模拟元件和ARM微控制器内核,解决棘手嵌入式系统问题

    智能集成:整合模拟元件和ARM微控制器内核,解决棘手嵌入式系统问题
    的头像 发表于 01-05 18:18 711次阅读
    智能集成:整合模拟元件和ARM微<b class='flag-5'>控制器</b>内核,解决棘手<b class='flag-5'>嵌入式</b>系统问题