一种单处理芯片的控驱一体***架构
【技术领域】
本发明涉及控制***领域,尤其涉及一种单处理芯片的控驱一体***架构。
【背景技术】
过去二十年来,由于通用机床、专机设备等工业需求旺盛,工业控制***零部件供应商所开发的控制器、驱动器、用户界面、应用软件等,均以一个独立的、多功能的、多场合兼容性的设计,这种可自由组合的柔性的设计,在一定程度上可以满足用户为机器快速实现一个相对可靠的控制***的需求。
直到工业机器人时代的到来,不同于传统机床设备,虽然“控制器+驱动器”的方式能为机器人提供实时的多轴联动控制,但这个联动因控制器、驱动器是通过串行总线进行数据交换,使该***只能实现毫秒级的运动控制,在一些高速高精度场合会遇上瓶颈。另外,机器人是一个非线性时变***,其运动过程时刻承受着包括重力、摩檫力在内的外力作用,不同姿态时的作用力始终在变化,按照传统的“控制器+驱动器”的形式,驱动器各轴将独立工作在位置伺服模式,外部力的变化会影响其插补点的响应速度,导致机器人整体轨迹精度及响应速度受限,进而不能完成轨迹精度要求高、速度要求高的场景。因此面对机器人越来越普及的时代,需要一个针对机器人应用而高度整合和优化的控制***。
【发明内容】
本发明旨在解决上述问题而提供一种***架构,该架构解决了分散的“控制器+驱动器”结构所带来的数据延迟高、数据带宽低的问题。该***架构突破了毫秒级的运动控制界限,打破了高速高精度场合遇到的瓶颈。突破了原有控制***中控制由一个芯片完成、驱动由另一芯片完成的架构限制,将任务拆分成实时任务和非实时任务、由单个芯片处理完成,实现了控制和驱动的一体化,提高控驱一体的整体***性能。
为实现上述目的,本发明的***架构通过以下架构设计实现:
单处理芯片处理CPU的实时任务和CPU的非实时任务,所述CPU的实时任务和CPU的非实时任务之间通过共享内存进行数据交换,单处理芯片还包括FPGA阵列,CPU的实时任务、CPU的非实时任务和FPGA之间,通过单处理芯片内部的高速并行总线进行数据交换。所述CPU的非实时任务运行在Linux内核环境下,CPU的非实时任务包含应用软件和路径规划。所述CPU的实时任务运行在实时操作***环境下,运行机器人闭环控制算法,包括动力学算法、运动学算法及插补、位置闭环控制和速度闭环控制。所述的FPGA设置轴的定周期驱动算法逻辑,轴的逻辑包括轴电流闭环驱动模型、轴驱动信号输出、轴电流信号输入、轴编码器信号输入。所述的轴驱动信号输出连接功率放大电路,用于驱动电机运动,所述的功率放大电路为驱动桥电路。所述的轴电流信号输入连接电流采样电路,通过连接电流采样电路进行电机电流信号采集,所述的电流采样电路为精密ADC电路。所述的轴编码器信号输入连接编码器采样电路,通过编码器采样电路进行电机编码器信号采集,所述的编码器采样电路为高速差分接口电路
实现机器人轴的控制通过以下步骤可完成:
1)FPGA以62.5us为周期运行轴电流信号输入逻辑,通过电流采样电路进行轴电流信号采集,并保存为实际电流数据;以62.5us为周期运行轴编码器信号输入逻辑,通过编码器采样电路进行轴编码器信号的采集和解码,并保存为实际编码器位置和实际编码器速度。
2)CPU的实时任务以125us为周期运行机器人的闭环控制算法,通过高速并行总线获取由步骤1中生成的实际编码器位置和实际编码器速度,计算机器人末端实际位置和末端实际速度,并更新到共享内存中。
3)CPU的非实时任务运行应用软件生成机器人末端目标位置序列,同时,从共享内存获取机器人末端实际位置和末端实际速度,并运行机器人路径规划任务,计算机器人轨迹方程,并把轨迹方程更新到共享内存中。
4)CPU的实时任务以125us为周期运行机器人闭环控制算法,通过共享内存获取由步骤3生成的轨迹方程,以125us的间隔,从该轨迹方程提取下一周期的点数据,该点数据包括但不限于:位置、速度、加速度。提取出来的点数据,结合由步骤2中获取的实际编码器位置和实际编码器速度,作为位置闭环控制和速度闭环控制的输入进行运算,并生成轴电流和力矩数据,并通过高速并行总线下发到FPGA中。
5)FPGA以62.5us为周期运行轴电流环驱动模型逻辑,通过由步骤4下发的轴电流和力矩数据,结合由步骤1生成的实际电流数据,运算轴电流闭环驱动模型,并把运算结果通过轴驱动信号输出,输出到功率放大电路上,从而控制机器人的轴按照规则运行。
本发明的贡献在于提供了一种单处理芯片的控驱一体***架构,该架构的CPU的非实时任务和CPU的实时任务之间通过共享内存进行数据交换、CPU的非实时任务、CPU的实时任务与FPGA之间,通过单处理芯片内部的高速总线进行数据交换,突破了毫秒级的运动控制界限,打破了高速高精度场合遇到的瓶颈。突破了原有控制***中控制由一个芯片完成、驱动由另一芯片完成的架构限制,将任务拆分成实时任务和非实时任务、由单个芯片处理完成,实现了控制和驱动的一体化,提高控驱一体的整体***性能。
【附图说明】
图1是本发明***架构的结构框图。
图2是本发明具体实施例的结构框图。
【具体实施方式】
下列实施例是对本发明的进一步解释和补充,对本发明不构成任何限制。
实施例1
如图1、2所示,本实施例的一种单处理芯片的控驱一体***架构,所述的单处理芯片CPU的非实时任务和CPU的实时任务,所述CPU的非实时任务和CPU的实时任务之间通过共享内存进行数据交换,单处理芯片还包括FPGA阵列,CPU的非实时任务、CPU的实时任务和FPGA之间,通过单处理芯片内部的高速并行总线进行数据交换。
本实施例中的单处理芯片为XC7020芯片,控制4轴控驱一体***,CPU的非实时任务由A9Core0处理器进行处理,CPU的实时任务由A9Core1处理器进行处理,A9Core0处理器和A9Core1处理器之间通过共享内存进行数据交换,A9Core0处理器、A9Core1处理器和PFGA之间,通过XC7020芯片内部的AXI总线进行数据交换,该种架构突破了毫秒级的运动控制界限,打破了高速高精度场合遇到的瓶颈。
实施例2
如图1、2所示,所述的A9Core0处理器运行在Linux内核环境下,运行非实时任务,包括应用软件、路径规划。所述的A9Core1处理器运行在实时操作***环境下,运行机器人闭环控制算法,包括动力学算法、运动学算法及插补、位置闭环控制和速度闭环控制。所述的FPGA设置轴的定周期驱动算法逻辑,轴的逻辑包括轴电流闭环驱动模型、轴驱动信号输出、轴电流信号输入、轴编码器信号输入。
除了所述XC7020芯片外,还包括***辅助电路,所述的轴驱动信号输出连接4轴功率放大电路,用于驱动电机运动,具体的4轴功率放大电路为IGBT驱动桥电路。所述的轴电流信号输入连接4轴电流采样电路,通过4轴连接电流采样电路进行电机电流信号采集,所述的电流采样电路为精密ADC电路。所述的轴编码器信号输入连接4轴编码器采样电路,通过4轴编码器采样电路进行电机编码器信号采集,所述的4轴编码器采样电路为高速差分接口电路。
具体实施步骤如下:
S1:FPGA以62.5us为周期运行4轴电流信号输入逻辑,通过精密ADC电路进行4个轴电流信号采集,并保存为实际电流数据;以62.5us为周期运行4个轴编码器信号输入逻辑,通过高速差分接口电路进行4个轴编码器信号的采集和解码,并保存为实际编码器位置和实际编码器速度。
S2:A9Core1处理器以125us为周期运行机器人的闭环控制算法,通过XC7020单处理芯片内置的AXI总线获取由步骤1中生成的实际编码器位置和实际编码器速度,计算机器人末端实际位置,并更新到共享内存中。
S3:A9Core0处理器运行应用软件生成机器人末端目标位置序列,同时,从共享内存获取由步骤2生成的机器人末端实际位置和实际速度,并运行机器人路径规划任务,计算机器人轨迹方程,并把轨迹方程更新到共享内存中。
S4:A9Core1处理器以125us为周期运行机器人闭环控制算法,通过共享内存获取由步骤3生成的轨迹方程,以125us的间隔,从该轨迹方程提取下一周期的点数据,该点数据包括但不限于:位置、速度、加速度。提取出来的点数据,结合由步骤2中获取的实际编码器位置和实际编码器,作为位置闭环控制和速度闭环控制的输入进行运算,并生成轴电流和力矩数据,并通过AXI总线下发到FPGA中。
S5:FPGA以62.5us为周期运行轴电流环驱动模型逻辑,通过由步骤4下发的轴电流和力矩数据,结合由步骤1生成的实际电流数据,运算轴电流闭环驱动模型,并把运算结果通过轴驱动信号输出,输出到IGBT驱动桥电路上,从而控制机器人的轴按照规则运行。
本实施例突破了原有控制***中控制由一个芯片完成、驱动由另一芯片完成的架构限制,将任务拆分成实时任务和非实时任务、由单个芯片处理完成,实现了控制和驱动的一体化,提高控驱一体的整体***性能。
尽管通过以上实施例对本发明进行了揭示,但本发明的保护范围并不局限于此,在不偏离本发明构思的条件下,对以上各构件所做的变形、替换等均将落入本发明的权利要求范围内。