世界今热点:一款基于STM32的运动控制卡怎么设计?
哈喽小伙伴们 ,今天给大家科普一个小知识。在日常生活中我们或多或少的都会接触到一款基于STM32的运动控制卡设计方面的一些说法,有的小伙伴还不是很了解,今天就给大家详细的介绍一下关于一款基于STM32的运动控制卡设计的相关内容。
摘要:在深入分析了意法半导体公司推出的STM32、高速PCI总线以及运动控制卡的功能和结构特点的基础上,设计了一款可直接插在PCI插槽中的伺服运动控制卡。不仅可大大降低了成本,更为开放式数控系统的研究提供了一个全新的思路。结果表明,本文所设计的伺服控制卡满足了目前控制系统的性能和要求。
(相关资料图)
关键词:PMSM;STM32;运动控制卡;PCI
伴随着计算机的普及,PC的性能、可靠性及应用环境也已经今非昔比,在工业领域方面PC拥有大量的支持软件用以改善用户界面、图形显示、动态仿真、故障诊断、网络通讯等诸多功能,此外,在总线的开发也因PC丰富的接口资源和模块化设计而变得简单。因此,基于PC的开放式数控系统绝对是未来控制系统主流主流方向,发展开放式和形成具有自主产权软件型数字控制系统,是我国数控发展迈出实质性突破和赶超世界先进水平的一次良机。因此,文中研究课题主要对数控系统实际要求出发,结合PC和高性价比的ARM系列芯片,利用模糊控制算法,设计一款性能稳定,高精度的伺服控制器,为推进伺服技术的发展具有重要意义。
1 系统结构
本系统采用的是“PC+运动控制卡”形式。其中,计算机机作为上位机,可以满足控制环节多、轨迹复杂、强柔性的设备的控制要求。
以ARM为核心的控制卡作为下位机,主要负责总线通信、步进和伺服电机的控制,这样就形成了以ARM的CPU和计算机CPU主从式双CPU控制模式。计算机的多任务调度和强大的处理能力,加上微处理芯片的现场适应能力及高性价比,使得系统开放性好,可靠性高,并基本满足现阶段绝大多数工业控制的要求。
2 运动控制卡硬件设计
2.1 双口RAM与STM和CH365的连接
本文基于PCI总线的运动控制卡硬件方面主要包括2个部分:1)STM32最小系统,2)PCI总线。选用双口RAM芯片IDT7025作为STM32与CH365双向通讯的缓冲芯片。
本设计中,双口RAM IDT7025作为STM32与PC都可以读写RAM中的数据,RAM右端与PCI通信芯片CH365连接,这样就可以映射到CH365的存储空间;左端口则与STM32相连,便于STM32的随时访问。其中IDT7025需要5 V电压供电,而ARM芯片的供电电压时3.3 V,所以需要电压转换,这里选择了SN74LVTH16245。这部分的连接如图2所示。本文将双口RAM分成两个独立的存储空间;高4 k空间用于计算机向STM32传送控制指令,低4 k空间用于STM32向PC传递反馈的数据。
2.2 CH365与PCI接口实现
CH365与PCI部分的连接如图3所示。图中,电容C1~C4完成电源的去耦,C2~C4是大小为0.1 μF的高频瓷片电容,PCB设计过程中就近并联在芯片CH365的三组电源输入输出引脚上。而地址线A15~A0作为偏移地址,数据总线D7~D0配置为读操作时的数据输入,以及写操作时的数据输出。IOP_RD为提供I/O读操作时片选脉冲信号,同样,IOP_WR用于提供I/O写操作时的片选信号,MEM_RD用于提供存储器读选通脉冲信号,MEM_WR用于提供存储器写选通脉冲信号,上述引脚的读写选通脉冲信号都是低电平有效。在I/O读写过程中,CH365的A7~A0输出I/O端口提供给其他设备的有效的位偏移地址,偏移地址也可以被译码产生二级片选信号去适应控制的要求。同样,在I/O读写过程当中,CH365的A15~A10的电平保持恒定,内部寄存器可以在输出之前决定要输出状态,A9~A8负责完整的输出PCI总线地址,通过对CH365的A9~A0的输出地址的译码就可以使用芯片拥有的本地硬件定址功能,通过MER_WR引脚向CH365芯片发送本地定址的请求,最终实现与ISA总线相兼容的地址范围内的I/O端口定址。因此,在读写操作发生的过程中,CH365的A14~A0输出提供的有效偏移地址;CH365的A15电平维持不变,由内部寄存器提前设定电平高低,用实现地址线扩展或者页面选择;而区分各个端口则通过CH365的A7~A0的地址译码来完成。
3 运动控制卡软件设计
3.1 参数自调整在线插值模糊控制算法
经典的在线模糊PID算法的实现实质上是一个查表输出的过程,因为误差与误差变化率均被不可避免的模糊量化相对取整,使控制器凋节出现死区,控制参数的分区会引起的调节不细。从理论上讲,只要不断增加控制模糊化量个数,进行等级细分,但它势必受计算机字长限制,使模糊控制没有了优势。
在线插值算法等同于将论域内的分档趋于无穷大,即通过线性插值的方式在控制规则表相邻分档之间增添无穷个新的、细分化的控制规则,对原有的控制规则加以完善,是一种快速精确的而且切实可行的控制算法。
参数自调整在线插值模糊控制器如图4所示。量化参数、比例系数Ku都会影响系统动、静态性能,调节比例因子的因果关系很直观,最终也会起到影响Ke和Kec的作用,选择在线自调整Ku值能够起到良好的效果,不至系统过于复杂而影响实时性。
文中利用在线差值控制算法的特点,设计了算法实现的软件流程,如图5所示。
3.2 操作系统下的功能实现
为满足多任务的调度和系统实时性的要求,软件的整体实现,本设计引入μC/OS-Ⅱ操作系统。
3.2.1 RTL8019AS底层驱动程序
通常情况下,用户根据硬件芯片型号找到RTL8019AS底层驱动程序库的编写所需要的文档资料即可编写相关的底层函数,其主要功能函数如下:
NicInit()一RTL8019AS的初始化;
NicClose()一关闭RTL8019AS芯片数据收发功能;
NicReset()一复位RTL8019AS芯片;
EtherOutput()一数据包输出;
Etherlnput()一数据包接收。
网络通信还需要底层RTL8019AS驱动程序支持,参考R,rL8019AS以及AT91FR40162,即可编写出针对此系统的RTL8019AS底层驱动程序。
3.2.2 基于μC/OS-Ⅱ实时操作系统主函数及相关任务的编写与嵌入
4 结束语
对上述的程序进行调试后,并结合硬件调试表明文中所设计的运动控制卡能够实现准确的位置及速度控制,受控电机运行平稳,基本能实现对电机的控制功能,通信稳定。对于长期的稳定性测试,现在浙江绍兴某袜机公司的试着运营阶段,初期表现良好。