首页 / 专利库 / 电脑零配件 / 计算机系统 / 硬件 / 存储器 / 集成运动控制和电机控制的控制器和控制系统

集成运动控制和电机控制的控制器和控制系统

阅读:714发布:2021-09-19

专利汇可以提供集成运动控制和电机控制的控制器和控制系统专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种集成运动控制和 电机 控制的 控制器 ,包括第一处理器、第二处理器和高速缓存。第一处理器配置为运行 操作系统 和运动控制。第二处理器配置为执行电机控制且常态地不运行所述操作系统。高速缓存耦接到所述第一处理器和所述第二处理器。其中所述第一处理器和所述第二处理器配置为在运动控制和电机控制期间,通过所述高速缓存进行数据交互,其中所述第一处理器、第二处理器和所述高速缓存是集成在同一芯片中的。,下面是集成运动控制和电机控制的控制器和控制系统专利的具体信息内容。

1.一种集成运动控制和电机控制的控制器,包括:
第一处理器,配置为运行操作系统和运动控制;
第二处理器,配置为执行电机控制且常态地不运行所述操作系统;
耦接到所述第一处理器和所述第二处理器的高速缓存,其中所述第一处理器和所述第二处理器配置为在运动控制和电机控制期间,通过所述高速缓存进行数据交互;
其中所述第一处理器、第二处理器和所述高速缓存集成在同一芯片中。
2.根据权利要求1所述的控制器,其特征在于,所述第一处理器包括第一处理核心组合,所述第二处理器包括第二处理核心组合,所述第一处理核心组合和所述第二处理核心组合分别包括一个或多个处理核心。
3.根据权利要求1或2所述的控制器,其特征在于,还包括可编程逻辑器件,耦接所述第二处理器,与所述第二处理器协同进行电机控制。
4.根据权利要求3所述的控制器,其特征在于,所述可编程逻辑器件与所述第一处理器和所述第二处理器集成在同一芯片中。
5.根据权利要求1所述的控制器,其特征在于,所述第二处理器配置为运行另一操作系统。
6.根据权利要求1所述的控制器,其特征在于,所述电机控制包括电流环计算,或者包括电流环计算和速度环计算的组合,或者包括电流环计算、速度环计算和位置环计算的组合。
7.根据权利要求3所述的控制器,其特征在于,所述可编程逻辑器件进行电流环计算、速度环计算和位置环计算中的至少一部分。
8.根据权利要求1所述的控制器,其特征在于,所述第二处理器不屏蔽中断。
9.根据权利要求1所述的控制器,其特征在于,所述第二处理器使用无队列。
10.根据权利要求1所述的控制器,其特征在于,所述高速缓存被映射到共享内存区域,所述共享内存区域被所述操作系统预先保留,供所述第一处理器和所述第二处理器进行数据交换。
11.根据权利要求10所述的控制器,其特征在于,还包括可编程逻辑器件,耦接所述第二处理器,与所述第二处理器协同进行电机控制。
12.根据权利要求11所述的控制器,其特征在于,所述可编程逻辑器件与所述第一处理器和所述第二处理器之间共享所述共享内存区域。
13.根据权利要求3所述的控制器,其特征在于,所述可编程逻辑器件和所述第二处理器具有相同时钟源,且当所述第二处理器从所述可编程逻辑器件读取数据时,所述可编程逻辑器件锁存正在被读取的数据。
14.根据权利要求10所述的控制器,其特征在于,还包括存储器,用于存储计算机可执行的指令,当所述第一处理器和第二处理器执行所述指令时实现如下步骤:
按照对称多路处理方式启动所述第一处理器和第二处理器;
在所述第一处理器和第二处理器上运行所述操作系统;
关闭所述第二处理器,在所述第一处理器上单独运行所述操作系统;
重新配置所述第二处理器并重启所述第二处理器,使所述第二处理器常态地不运行所述操作系统;
在所述第一处理器和第二处理器之间共享所述共享内存区域,且所述高速缓存被映射到所述共享内存区域。
15.根据权利要求1所述的控制器,其特征在于,所述第一处理器配置为将运动控制数据写入所述高速缓存中,所述第二处理器配置为从所述高速缓存读取所述运动控制数据,所述运动控制数据包括位置数据、速度数据、矩数据和/或电流数据。
16.根据权利要求1所述的控制器,其特征在于,所述第二处理器配置为将反馈数据写入所述高速缓存中,所述第一处理器配置为从所述高速缓存读取所述反馈数据,所述反馈数据包括位置数据、速度数据、力矩数据和/或电流数据。
17.一种集成的控制器上运行运动控制和电机控制的方法,所述控制器包括第一处理器、第二处理器和耦接到所述第一处理器和所述第二处理器的高速缓存,所述方法包括以下步骤:
按照对称多路处理方式启动所述第一处理器和第二处理器;
在所述第一处理器和第二处理器上运行操作系统;
关闭所述第二处理器,在所述第一处理器上单独运行所述操作系统;
重新配置所述第二处理器并重启所述第二处理器,使所述第二处理器常态地不运行所述操作系统;
在所述第一处理器和第二处理器之间共享一共享内存区域,且所述高速缓存被映射到所述共享内存区域;
在所述第一处理器执行运动控制,在所述第二处理器执行电机控制,且在运动控制和电机控制期间,在所述第一处理器和所述第二处理器之间通过所述高速缓存进行数据交互。
18.一种控制系统,包括如权利要求1-16任一项所述的控制器。

说明书全文

集成运动控制和电机控制的控制器和控制系统

技术领域

[0001] 本发明主要涉及控制器,尤其涉及一种集成运动控制和电机控制的控制器和控制系统。

背景技术

[0002] 运动控制和电机控制是工业自动化领域的核心技术。实现运动控制的运动控制器和实现电机控制的电机控制器,是目前自动化领域中常见的自动执行复杂工作的装置上的两个关键控制部件。在其他领域,例如无人机中,也会使用包括运动控制和电机控制的控制器。
[0003] 传统上,大多数的工业自动化系统(比如机器人、大型机床)采用的是分布式控制方式。分布式控制方式具体地说是一个运动控制器与多个电机控制器配合。运动控制器和电机控制器之间、电机控制器与电机控制器之间使用总线(例如现场总线)进行通信。
[0004] 这种分布式的控制方式具有很多已知的缺点。例如硬件器件多会导致硬件成本高、占用空间大。又如,总线通信方式容易受到干扰,且在数据传输量和传输速度方面存在瓶颈
[0005] 为此,业界提出了“驱控一体”的设想,期望实现集成了运动控制器、电机控制器等功能为一体的工业控制器。但是已知的“驱控一体”的工业控制器通常只是简单地将运动控制器和电机控制器在实体上集合在一起,在二者的配合方式上改善有限。

发明内容

[0006] 本发明要解决的技术问题是提供一种集成运动控制和电机控制的控制器,可以可靠稳定地提高运动控制部分和电机控制部分的交互速率。
[0007] 为解决上述技术问题,本发明提供了一种集成运动控制和电机控制的控制器,包括第一处理器、第二处理器和高速缓存。第一处理器配置为运行操作系统和运动控制。第二处理器配置为执行电机控制且常态地不运行所述操作系统。高速缓存耦接到所述第一处理器和所述第二处理器。其中所述第一处理器和所述第二处理器配置为在运动控制和电机控制期间,通过所述高速缓存进行数据交互,其中所述第一处理器、第二处理器和所述高速缓存集成在同一芯片中。
[0008] 在本发明的一实施例中,所述第一处理器包括第一处理核心组合,所述第二处理器包括第二处理核心组合,所述第一处理核心组合和所述第二处理核心组合分别包括一个或多个处理核心。
[0009] 在本发明的一实施例中,所述控制器还包括可编程逻辑器件,耦接所述第二处理器,与所述第二处理器协同进行电机控制。
[0010] 在本发明的一实施例中,所述可编程逻辑器件与所述第一处理器和所述第二处理器集成在同一芯片中。
[0011] 在本发明的一实施例中,所述第二处理器配置为运行另一操作系统。
[0012] 在本发明的一实施例中,所述电机控制包括电流环计算,或者包括电流环计算和速度环计算的组合,或者包括电流环计算、速度环计算和位置环计算的组合。
[0013] 在本发明的一实施例中,所述可编程逻辑器件进行电流环计算、速度环计算和位置环计算中的至少一部分。
[0014] 在本发明的一实施例中,所述第二处理器不屏蔽中断。
[0015] 在本发明的一实施例中,所述第二处理器使用无队列。
[0016] 在本发明的一实施例中,所述高速缓存被映射到共享内存区域,所述共享内存区域被所述操作系统预先保留,供所述第一处理器和所述第二处理器进行数据交换。
[0017] 在本发明的一实施例中,所述控制器还包括可编程逻辑器件,耦接所述第二处理器,与所述第二处理器协同进行电机控制。
[0018] 在本发明的一实施例中,所述可编程逻辑器件与所述第一处理器和所述第二处理器之间共享所述共享内存区域。
[0019] 在本发明的一实施例中,所述可编程逻辑器件和所述第二处理器具有相同时钟源,且当所述第二处理器从所述可编程逻辑器件读取数据时,所述可编程逻辑器件锁存正在被读取的数据。
[0020] 在本发明的一实施例中,所述控制器还包括存储器,用于存储计算机可执行的指令,当所述第一处理器和第二处理器执行所述指令时实现如下步骤:按照对称多路处理方式启动所述第一处理器和第二处理器;在所述第一处理器和第二处理器上运行所述操作系统;关闭所述第二处理器,在所述第一处理器上单独运行所述操作系统;重新配置所述第二处理器并重启所述第二处理器,使所述第二处理器常态地不运行所述操作系统;以及在所述第一处理器和第二处理器之间共享所述共享内存区域,且所述高速缓存被映射到所述共享内存区域。
[0021] 在本发明的一实施例中,所述第一处理器配置为将运动控制数据写入所述高速缓存中,所述第二处理器配置为从所述高速缓存读取所述运动控制数据,所述运动控制数据包括位置数据、速度数据、矩数据和/或电流数据。
[0022] 在本发明的一实施例中,所述第二处理器配置为将反馈数据写入所述高速缓存中,所述第一处理器配置为从所述高速缓存读取所述反馈数据,所述反馈数据包括位置数据、速度数据、力矩数据和/或电流数据。
[0023] 本发明还提出一种集成的控制器上运行运动控制和电机控制的方法,所述控制器包括第一处理器、第二处理器和耦接到所述第一处理器和所述第二处理器的高速缓存,所述方法包括以下步骤:按照对称多路处理方式启动所述第一处理器和第二处理器;在所述第一处理器和第二处理器上运行操作系统;关闭所述第二处理器,在所述第一处理器上单独运行所述操作系统;重新配置所述第二处理器并重启所述第二处理器,使所述第二处理器常态地不运行所述操作系统;在所述第一处理器和第二处理器之间共享所述共享内存区域,且所述高速缓存被映射到所述共享内存区域;在所述第一处理器执行运动控制,在所述第二处理器执行电机控制,且在运动控制和电机控制期间,在所述第一处理器和所述第二处理器之间通过所述高速缓存进行数据交互。
[0024] 本发明还提出一种控制系统,包括如上所述的控制器。
[0025] 与现有技术相比,本发明的控制器通过共享高速缓存和特殊的系统配置,能够保证很高的实时性能。进一步,使用单芯片驱控一体系统,数据的传输都在芯片内部进行,不易受外部干扰,保证了数据能正确地可靠地传输。再者,由于使用了驱控一体系统,减少了硬件冗余。进一步,驱控一体系统可以使用单晶体SoC芯片加必要的外围电路实现,硬件体积小。附图说明
[0026] 图1是根据本发明一实施例的控制器的逻辑结构。
[0027] 图2是根据本发明第一实施例的控制器的电路框图
[0028] 图3是根据本发明第一实施例的控制器的示例运行过程。
[0029] 图4是根据本发明第二实施例的控制器的电路框图。
[0030] 图5是根据本发明第二实施例的控制器的示例运行过程。
[0031] 图6是根据本发明第三实施例的控制器的电路框图。
[0032] 图7是根据本发明一实施例的集成的控制器上运行运动控制和电机控制的方法流程图
[0033] 图8是根据本发明一实施例的第一处理器和第二处理器加载计算机代码的示意图。
[0034] 图9是根据本发明一实施例的处理器和可编程逻辑器件的时钟和刷新周期配置。
[0035] 图10是根据本发明一实施例的可编程逻辑器件的寄存器配置。

具体实施方式

[0036] 为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明。
[0037] 在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其它不同于在此描述的其它方式来实施,因此本发明不受下面公开的具体实施例的限制。
[0038] 如本申请权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。
[0039] 虽然本申请对根据本申请的实施例的系统中的某些模做出了各种引用,然而,任何数量的不同模块可以被使用并运行在计算设备和/或处理器上。所述模块仅是说明性的,并且所述系统和方法的不同方面可以使用不同模块。
[0040] 应当理解的是,当单元或模块被描述为“连接”、“耦接”(couple)其它单元、模块或块时,其可以指直接连接或耦接,或者与其它单元、模块或块通信,或者可以存在中间的单元、模块或块,除非上下文明确指明其它方式。本文所使用的术语“和/或”可包括一个或多个相关列出项目的任意与所有组合。
[0041] 本发明的实施例描述包含运动控制和电机控制功能的控制器。图1是根据本发明一实施例的控制器的逻辑结构。如本领域技术人员所理解的,运动控制功能指的是根据具体的应用任务,将设备所有电机轴随着时间的动作目标计算出来。根据具体应用的不同,计算步骤、计算对象和计算的参数变量可能也会不同,但其最终目的都是为了得到电机给定值和时间的关系,并产生对应的“各轴电机给定值——时间”数据流(数据信息)。电机给定值例如可以是电机的转位置、转速、转矩中的任意一种或几种。
[0042] 电机给定值会在对应的时间点上准时地被下发给电机控制功能执行。电机控制功能可以实时地接收并处理“各轴电机给定值”的数据信息并控制电机的转动,当所有轴在规定的时间点到达规定的给定值(可能是角度值、也可能是速度或力矩),则最终反应在终端执行上的合成运动就会是应用任务所需要的样子。期望电机控制功能可以高速地同时控制多个轴,保证多轴执行动作的同步性,使得合成动作不走样。并且期望电机控制功能具有较高的数据刷新和执行的频率,满足动作的分辨率和连续性。
[0043] 参考图1所示,根据本发明一实施例的控制器10可包括运动控制器11和电机控制器12。运动控制器11可执行前述的运动控制功能。电机控制器12可执行前述的电机控制功能。示教器(Teach Pendant,TP)是运动控制器11的上位机,用于给运动控制器11发送应用任务指令,或者进行计划控制的编辑。运动控制器11从示教器接收命令,据此进行运动规划,发送运动控制数据,如前述的各轴电机给定值给电机控制器12。电机控制器12可以据此产生驱动控制信号(如脉冲宽度调制PWM信号)给电机驱动器13,由后者驱动电机运转。
[0044] 在本发明的各实施例中,控制器10可以应用于电动机器人、数控机床、电动多旋翼飞行器、电动汽车、机械义肢、机械手掌、电动移动载具等场合,用于各类多轴的、轴之间须动作协调的、电机驱动的设备的运动任务计算控制和电机控制。
[0045] 在本发明的各实施例中,对电机的轴数不做限定,可以是6轴或8轴,也可以是更少的轴,或者更多的轴。
[0046] 目前,常规的多轴自动化系统中,运动控制器和电机控制器之间、电机控制器与电机控制器之间使用现场总线进行通信。本发明的实施例提出的控制器中,运动控制器和电机控制器之间的通信方式将得到改进。
[0047] 第一实施例
[0048] 图2是根据本发明第一实施例的控制器的电路框图。参考图2所示,本实施例的一种集成运动控制和电机控制的控制器20可包括第一处理核心21、第二处理核心22和高速缓存(cache)23。第一处理核心21配置为执行操作系统和运动控制。第二处理核心22配置为执行电机控制且常态地不运行操作系统。在此,常态是指大多数时间内的工作状态。高速缓存(高速缓冲存储器)如本领域技术人员所通常理解的,是存在于主存储器(memory)与处理器之间的存储器,其速度比主存储器高得多,接近于处理器的速度。高速缓存23例如可以是处理器中的二级缓存(L2 Cache)。可以理解,高速缓存23也可以是其他级别的缓存。高速缓存23耦接到第一处理核心21和第二处理核心22。第一处理核心21和第二处理核心22配置为在运动控制和电机控制期间,通过高速缓存23进行数据交互。
[0049] 在本发明的上下文中,处理核心为中央处理器(CPU)。中央处理器(CPU)中可包含高速缓存,如一级缓存(L1 Cache)。本发明中可使用和多个CPU耦接的二级缓存,实现CPU之间的通讯。
[0050] 在目前的处理器架构中,共享高速缓存的多个处理核心之间通常是集成在同一个处理芯片中。因此在一个实例中,第一处理核心21和第二处理核心22是集成在同一芯片,例如处理芯片中。
[0051] 在此实施例中,第一处理核心21运行了操作系统,并且执行运动控制任务。操作系统可以管理整个控制器的运作,操作系统上可以运行具体的应用任务,例如运动控制任务。运动控制任务可将控制器所在设备的所有电机轴随着时间的动作目标计算出来。运动控制任务的实现方式可以是多种多样的。例如根据应用需求不同,可以选择性嵌入不同的具体规划算法模块,开发任务解析软件,进行各种路径规划和关节空间转化。路径规划和关节空间转化的具体算法还可根据应用情况不同而有很大区别。例如工业机器人可使用运动学及其反解算法,无人机可通过调节各轴电机转速来实现悬浮、前进的路径规划变量和关节转化算法。本领域技术人员完全可以根据具体应用需求来设计运动控制功能。
[0052] 在本实施例中,操作系统例如是Linux系统。
[0053] 第一处理核心21通过运行运动控制任务,可以规划出控制器20所控制的设备的各个轴在不同时间的位置值、速度值、转矩值或其组合,作为电机给定值。也就是说,电机给定值可以是前述3个值中的任意一种或几种。第一处理核心21可在预定的时间点(或提前一个确定、明确的时间量)上将对应的电机给定值输出给第一处理核心22执行。
[0054] 在此实施例中,第二处理核心22常态地不运行与第一处理核心21相同的操作系统或者直接不运行操作系统,而可以执行电机控制任务。根据第一处理核心21和第二处理核心22的配置,二者常态地形成非对称多路处理结构(AMP)。第二处理核心22根据第一处理核心21计算出的电机给定值去控制电机驱动器,驱动电机又快又稳地达到电机给定值的要求。电机控制中会涉及到电流环计算、速度环计算和/或位置环计算。根据电机给定值不同所需要计算的控制环也不同。一般情况下,当电机给定值为位置值时,计算所有三个环;当电机给定值为速度值时,计算电流环和速度环;当电机给定值为力矩时,计算电流环。由此,第二处理核心22的电机控制任务可以选择性地进行电流环计算,或者进行电流环计算和速度环计算的组合,或者进行电流环计算、速度环计算和位置环计算的组合。另外,第一处理核心21和第二处理核心22之间的任务可以进行各种可能的分配,如位置环计算在第一处理核心21进行,其他环在第二处理核心22进行,或者位置环和速度环计算都在第一处理核心21进行,而电流环计算在第二处理核心22进行。这主要取决于控制环路计算速率的要求和硬件平台的性能限制。
[0055] 第二处理核心22计算驱动电机达到所需电机给定值要求位置、速度或力矩所需的电流,根据计算结果输出驱动控制信号(如PWM信号)给IGBT或IPM或其他类型的功率器件来驱动电机。
[0056] 在一个实施例中,第二处理核心22可以运行与第一处理核心21不相同的另一操作系统。例如第二处理核心22可以运行一个比起第一处理核心21的操作系统来说更为精简的操作系统。在一个实施例中,第二处理核心22也可以不运行任何操作系统。
[0057] 在一些实施例中,第一处理核心21和第二处理核心22可以是基于ARM的核心。示例的型号是CortexTM-A9MPCore,处理性能超过4,000MIPS。
[0058] 非对称多路处理结构(AMP)中,处理核心之间通常不会共享高速缓存。与常规做法不同的是,在本实施例中,第一处理核心21和第二处理核心22虽然使用AMP模式,但是可以共享高速缓存23。即第一处理核心21和第二处理核心22配置为在运动控制和电机控制期间,通过高速缓存23进行数据交互。具体地说,在运动控制期间,第一处理核心21可以将运动控制数据(如电机给定值)写入高速缓存23中,第二处理核心22则可以从高速缓存23读取运动控制数据。如前所述,在各实例中,运动控制数据包括位置数据、速度数据、力矩数据和/或电流数据,根据第一处理核心21和第二处理核心22之间的任务分配而定。相应地,第二处理核心22可将反馈数据写入高速缓存23中,第一处理核心21从高速缓存23读取反馈数据。相应于运动控制数据的类型,反馈数据可包括位置数据、速度数据、力矩数据和/或电流数据。例如当运动控制数据是位置数据时,反馈数据一般包括位置数据,也可包括速度数据、电流数据。当运动控制数据是速度数据时,反馈数据一般包括速度数据,也可包括位置数据、电流数据。当然可以理解,反馈数据可以与运动控制数据无关。例如反馈数据常态地包括位置数据、速度数据、力矩数据和电流数据中的任意一种或几种;甚至根据应用场合需要直接反馈终端执行器的位置或姿态数据给运动控制处理器也是可行的(例如无人机的姿态、速度,或者电动汽车的姿态、速度)。
[0059] 对于一个高轨迹准确度和高度平滑插补动作的多轴协调设备的控制系统来说,当运动控制任务计算出电机给定值,并要在规定的时间段内准确传输给电机控制任务时,期望二者间的通信方式能可靠地将电机给定值传递给电机控制任务,传输所用的时间越短越好、且时间长短越固定越好。而本实施例中,通过使用非对称多路处理结构(AMP)让执行电机控制的第二处理器运行有别于第一处理处理系统的简易操作系统,或者不运行系统,并在AMP模式下实施处理核心之间共享高速缓存,实现了实时性能的高速性和准确性(准确性=传输周期抖动的一致性)。
[0060] 图3是根据本发明第一实施例的控制器的示例运行过程。参考图3所示,第一处理核心21在运动控制过程中可产生运动控制数据给第二处理核心22。第二处理核心22可根据运动控制数据进行电机控制,产生驱动控制信号给电机驱动器31,由电机驱动器31输出电流控制电机32运转。从电机32处采集的第一反馈数据,可反馈到第二处理核心22。第二处理核心22可向第一处理核心21反馈第二反馈数据。第一反馈数据可包括位置数据、速度数据、力矩数据和电流数据中的一部分或全部。第二反馈数据可以是完全来自第一反馈数据。第二反馈数据也可以不是完全来自第一反馈数据。例如第二反馈数据可以包括第二处理核心22产生的数据。在图3的示例中,第一处理核心21和第二处理核心22间的数据通信,可通过图2所示的高速缓存23来实现。根据应用需求,也可以完全没有第一反馈数据或第二反馈数据,形成局部开环或全开环控制,这不会影响整个控制系统的基本功能的实现及其性能。
[0061] 由于处理核心访问高速缓存的速度远高于处理器访问外部器件的速度,因此本实施例可以大幅提高第一处理核心21和第二处理核心22间的处理速度。尤其是,当第一处理核心21和第二处理核心22集成在同一SoC(System on Chip,片上系统)芯片时,SoC芯片的速度非常快,数据能够在SoC芯片内部以较高的速率传输。在目前实施例的硬件条件下(暨ARM-Cortex A9 800MHz),控制器的平均延时为19微秒,最大延时也仅有59微秒。运动控制部分和电机控制部分的数据传输也在1微秒内传输10Kb数据(约8个轴的控制数据)。位置刷新周期可达200微秒,抖动在1微秒内,即抖动率0.5%。
[0062] 当处理核心21和22之间共享高速缓存23时,可以将高速缓存23映射到一个共享内存区域30。映射方式例如是地址映射,将共享内存区域映射到高速缓存。在此,共享内存区域可以由第一处理核心21上运行的操作系统预先分配给第一处理核心21和第二处理核心22。当映射了共享内存区域30时,真实的数据传输操作仍然是在高速缓存23中完成。这样相比直接在物理内存中交换数据可以提高8-10倍的传输速度。
[0063] 在一个实施例中,控制器20还可以包括主存储器,其具有共享内存区域30。
[0064] 本发明的实施例还提出非对称多路处理结构(AMP)中共享内存的方式。根据这一方式,在第一处理核心21和第二处理核心22所执行的代码中,先按对称多路处理结构(SMP)的方式启动第一处理核心21和第二处理核心22,二者同时运行操作系统。这一方式是非常态的,通常是在开机时出现。然后关闭一个处理核心,例如第二处理核心22。再使用一段代码按照设定的方式重新启动被关闭的第二处理核心22。此时第二处理核心22配置为不运行与第一处理核心21相同的操作系统或者不运行任何操作系统,操作系统不知道这个第二处理核心22的启动,依然使用SMP方式管理内存和高速缓存。这样,操作系统分配给第一处理核心21和第二处理核心22的内存和高速缓存,得以在AMP方式下,被第一处理核心21和第二处理核心22所共享。实现上述方式的代码可以保存在非易失性存储器中(本实施例中例如可以是SD卡、EMMC或各类Flash等),且随着控制器20的启动而被第一处理核心21和第二处理核心22执行。
[0065] 图7是根据本发明一实施例的集成的控制器上运行运动控制和电机控制的方法流程图。参考图7所示,此方法包括如下步骤:
[0066] 在步骤701,按照对称多路处理方式启动第一处理器和第二处理器。在此本实施例中第一处理器和第二处理器分别是第一处理核心21和第二处理核心22。
[0067] 在步骤702,在第一处理器和第二处理器上运行操作系统。在此,两个处理器是运行同一操作系统。
[0068] 在步骤703,关闭第二处理器,在第一处理器上单独运行操作系统。
[0069] 在步骤704,重新配置第二处理器并重启第二处理器,使所述第二处理器常态地不运行第一处理器所运行的操作系统。此时系统变成非对称多路处理方式。如此前所述,第二处理器此时可以运行另一操作系统,例如比第一处理器所运行的操作系统更为精简的操作系统。第二处理器此时也可以不运行任何操作系统。
[0070] 在步骤705,在第一处理器和第二处理器之间共享内存区域,且高速缓存被映射到此共享内存区域。
[0071] 在步骤706,在第一处理器执行运动控制,在第二处理器执行电机控制,且在运动控制和电机控制期间,在第一处理器和第二处理器之间通过高速缓存进行数据交互。
[0072] 图8是根据本发明一实施例的第一处理器和第二处理器加载计算机代码的示意图。参考图8所示,非易失性存储器800中存储有供第一处理器和第二处理器(在本实施例中为第一处理核心21和第二处理核心22)执行的计算机代码。在SMP模式下,例如第一处理核心21和第二处理核心22从地址A1加载计算机代码。地址A1-A5内存储操作系统和运动控制所对应的计算机代码。地址A1-A5内还可存储用于重新配置第二处理核心22和关闭第二处理核心22的代码。当第一处理核心21和第二处理核心22运行了操作系统后,第二处理核心22被代码被配置为重新启动且从地址A6加载计算机代码。据此,第二处理核心22重新启动后,从地址A6加载所需的计算机代码。地址A6-A8例如存储有第二处理核心22进行电机控制所需的代码。
[0073] 电机控制任务的的速度环计算和电流环计算都要求强实时性以保证电机运转的平滑连续。操作系统会自己时而对程序进行中断以处理不同的任务,但这一操作会影响驱控程序的实时性,在那一小段时间无法保证电机控制计算结果的及时、按时输出。因此在一个实施例中,速度环计算和电流环计算都在第二处理核心22中进行,并且第二处理核心22不运行操作系统,且不屏蔽中断,即不进行关/开中断操作,以保证程序的实时性。
[0074] 另外,第二处理核心22可以使用无锁队列(Lock-Free),从而保证数据的一致性。
[0075] 本实施例的控制器可以用于各种控制系统,例如电动机器人、数控机床、电动多旋翼飞行器、电动汽车、机械义肢、机械手掌、电动移动载具等中的控制系统。
[0076] 本实施例的控制器由于使用了驱控一体系统,减少了硬件冗余。进一步,驱控一体系统可以使用单晶体SoC芯片加必要的外围电路实现,硬件体积小。
[0077] 并且,单芯片驱控一体系统中,数据的传输都在芯片内部进行,不易受外部干扰,保证了数据能正确地可靠地传输。
[0078] 再者,单芯片驱控一体系统能够保证很高的实时性能。SoC芯片的速度非常快,而第一处理器和第二处理器之间利用高速缓存进行的核间通讯的速率也非常快。单芯片驱控一体系统的设计为实时性提供了保障,能满足更复杂、更快速的应用场景,例如无人汽车、无人机等动态移动设备。
[0079] 第二实施例
[0080] 图4是根据本发明第二实施例的控制器的电路框图。参考图4所示,本实施例的一种集成运动控制和电机控制的控制器40可包括第一处理核心41、第二处理核心42、高速缓存(cache)43和可编程逻辑器件(PLD)44。第一处理核心41,配置为执行操作系统和运动控制。第二处理核心42,配置为执行电机控制且常态地不运行操作系统。高速缓存(高速缓冲存储器)如本领域技术人员所通常理解的,是存在于主存储器(memory)与处理器之间的存储器,其速度比主存储器高得多,接近于处理器的速度。高速缓存43例如可以是处理器中的二级缓存(L2Cache)。可以理解,高速缓存43也可以是其他级别的缓存。高速缓存43耦接到第一处理核心41和第二处理核心42。第一处理核心41和第二处理核心42配置为在运动控制和电机控制期间,通过高速缓存43进行数据交互。可编程逻辑器件(PLD)44耦接第二处理核心42,与第二处理核心42协同进行电机控制。
[0081] 在目前的处理器架构中,共享高速缓存的多个处理核心之间通常是集成在同一个处理芯片中。因此在一个实例中,第一处理核心41和第二处理核心42是集成在同一芯片,例如处理芯片中。然而可以理解,这并非作为本发明的实施例的限制,当可能时,第一处理核心41和第二处理核心42可以位于不同芯片而共享高速缓存。
[0082] 在此实施例中,第一处理核心41运行了操作系统,并且执行运动控制任务。操作系统可以管理整个控制器的运作,操作系统上可以运行具体的应用任务,例如运动控制任务。运动控制任务可将控制器所在设备的所有电机轴随着时间的动作目标计算出来。运动控制任务的实现方式可以是多种多样的。例如根据应用需求不同,可以选择性嵌入不同的具体规划算法模块,开发任务解析软件,进行各种路径规划和关节空间转化。路径规划和关节空间转化的具体算法还可根据应用情况不同而有很大区别。例如工业机器人可使用运动学及其反解算法,无人机可通过调节各轴电机转速来实现悬浮、前进的路径规划变量和关节转化算法。本领域技术人员完全可以根据具体应用需求来设计运动控制功能。
[0083] 第一处理核心41通过运行运动控制任务,可以规划出控制器40所控制的设备的各个轴在不同时间的位置值、速度值、转矩值或其组合,作为电机给定值。也就是说,电机给定值可以是前述3个值中的任意一种或几种。第一处理核心41可在预定的时间点(或提前一个确定、明确的时间量)上将对应的电机给定值输出给第一处理核心42执行。
[0084] 与前一实施例不同的是,本实施例引入了PLD 44,PLD 44具有并行计算快速的特点,因此当电机轴数多时,这是一个明显的优势。PLD 44可以与处理核心41、42集成于同一芯片。PLD 44与第二处理核心42耦接以实现协调。在此,耦接的方式例如是通过处理器与PLD之间的接口45来实现。一些SoC芯片,如Altera公司的Cyclone V芯片提供了这样的接口。在各实施例中,PLD 44的类型可以是现场可编程阵列(Field Programmable Gate Array,FPGA)。
[0085] 在此实施例中,第二处理核心42常态地不运行与第一处理核心41相同的操作系统,而可以与PLD 44组成电机控制器,协同执行电机控制任务。根据第一处理核心41和第二处理核心42的配置,二者常态地形成非对称多路处理结构(AMP)。电机控制器根据第一处理核心41计算出的电机给定值去控制电机驱动器,驱动电机又快又稳地达到电机给定值的要求。电机控制中会涉及到电流环计算、速度环计算和/或位置环计算。根据电机给定值不同所需要计算的控制环也不同。一般情况下,当电机给定值为位置值时,计算所有三个环;当电机给定值为速度值时,计算电流环和速度环;当电机给定值为力矩时,计算电流环。由此,电机控制器的电机控制任务可以选择性地进行电流环计算,或者进行电流环计算和速度环计算的组合,或者进行电流环计算、速度环计算和位置环计算的组合。另外,第一处理核心41和电机控制器之间的任务可以进行各种可能的分配,如位置环计算在第一处理核心41进行,其他环在电机控制器进行,或者位置环和速度环计算都在第一处理核心41进行,而电流环计算在电机控制器进行。这主要取决于控制环路计算速率的要求和硬件平台的性能限制。
[0086] 电机控制器计算驱动电机达到所需电机给定值要求位置、速度或力矩所需的电流,根据计算结果输出驱动控制信号(如PWM信号)给IGBT或IPM或其他类型的功率器件来驱动电机。
[0087] 在一个实施例中,第二处理核心42可以运行与第一处理核心41不相同的另一操作系统。例如第二处理核心42可以运行一个比起第一处理核心41的操作系统来说更为精简的操作系统。第二处理器此时也可以不运行任何操作系统。
[0088] 在各实施例中,可在组合为电机控制器的第二处理核心42和PLD 44之间分配电机控制任务。当第二处理核心42和PLD 44的组合协同负责位置环计算、速度环计算和电流环计算时,分配电机控制任务的方式例如是:第二处理核心42负责位置环计算,PLD 44负责速度环计算和位置环计算;或者第二处理核心42负责位置环计算和速度环计算,PLD 44负责电流环计算。甚至,当硬件可行时,PLD 44负责位置环计算、速度环计算和电流环计算。当第二处理核心42和PLD 44的组合仅协同负责位置环计算、速度环计算和电流环计算中的一部分,例如速度环计算和电流环计算时,任务在第二处理核心42和PLD 44间的分配可相应地调整。例如第二处理核心42负责速度环计算、PLD 44负责电流环计算。
[0089] 对于一个需要各轴动作协调的设备或系统来说,最理想的是同时同步地计算和控制所有轴,使得各轴协调合成出来的终端执行器运动准确。为此,当运动控制任务计算出电机给定值,并要在规定的时间段内准确传输给电机控制任务时,期望二者间的通信方式能可靠地将电机给定值传递给电机控制任务,传输所用的时间越短越好、且时间长短越固定越好。
[0090] 非对称多路处理结构(AMP)中,处理核心之间通常不会共享高速缓存。与常规做法不同的是,在本实施例中,第一处理核心41和第二处理核心42虽然使用AMP模式,但是可以共享高速缓存43。即第一处理核心41和第二处理核心42配置为在运动控制和电机控制期间,通过高速缓存43进行数据交互。具体地说,在运动控制期间,第一处理核心41可以将运动控制数据(如电机给定值)写入高速缓存43中,第二处理核心42则可以从高速缓存43读取运动控制数据。如前所述,在各实例中,运动控制数据包括位置数据、速度数据、力矩数据和/或电流数据,根据第一处理核心41和第二处理核心42之间的任务分配而定。相应地,第二处理核心42可将反馈数据写入高速缓存43中,第一处理核心41从高速缓存43读取反馈数据。相应于运动控制数据的类型,反馈数据可包括位置数据、速度数据、力矩数据和/或电流数据。例如当运动控制数据是位置数据时,反馈数据一般包括位置数据,也可包括速度数据、电流数据。当运动控制数据是速度数据时,反馈数据一般包括速度数据,也可包括位置数据、电流数据。当然可以理解,反馈数据可以与运动控制数据无关。例如反馈数据常态地包括位置数据、速度数据、力矩数据和电流数据中的任意一种或几种;甚至根据应用场合需要直接反馈终端执行器的位置或姿态数据给运动控制处理器也是可行的(例如无人机的姿态、速度,或者电动汽车的姿态、速度)。
[0091] 图5是根据本发明第二实施例的控制器的示例运行过程。参考图5所示,第一处理核心41在运动控制过程中可产生运动控制数据给第二处理核心42。第二处理核心42和PLD 44可根据运动控制数据进行电机控制,产生驱动控制信号给电机驱动器51,由电机驱动器
51输出电流控制电机52运转。在此,假设第二处理核心42处理位置环和速度环计算,而PLD 
44处理电流环计算。从电机52处采集的第一反馈数据,可反馈到第二处理核心52。第二处理核心42可向第一处理核心41反馈第二反馈数据。第一反馈数据可包括位置数据、速度数据、力矩数据和电流数据中的一部分或全部。第二反馈数据可以是完全来自第一反馈数据。第二反馈数据也可以不是完全来自第一反馈数据。例如第二反馈数据可以包括第二处理核心
42产生的数据。在图3的示例中,第一处理核心41和第二处理核心42间的数据通信,可通过图4所示的高速缓存43来实现。根据应用需求,也可以完全没有第一反馈数据或第二反馈数据,形成局部开环或全开环控制,这不会影响整个控制系统的基本功能的实现及其性能。
[0092] 由于处理核心访问高速缓存的速度远高于处理器访问外部器件的速度,因此本实施例可以大幅提高第一处理核心41和第二处理核心42间的处理速度。尤其是,当第一处理核心41和第二处理核心42集成在同一SoC(System on Chip,片上系统)芯片时,就天然携带了一个PLD(例如常见的是FPGA)集成在同一块芯片中。对于一个需要各轴动作协调的设备或系统来说,最理想的是同时同步地计算和控制所有轴,使得各轴协调合成出来的终端执行器运动准确。为此,本实施例中电机控制系统采用了一个CPU(第二处理器)和FPGA(PLD)协作实现了8轴电机控制,充分发挥了FPGA(PLD)的并行快速计算等优势。
[0093] 当处理核心41和42之间共享高速缓存43时,可以将高速缓存43映射到一个共享内存区域50。映射方式例如是地址映射,将共享内存区域映射到高速缓存。。在此,共享内存区域可以由第一处理核心41上运行的操作系统预先分配给第一处理核心41和第二处理核心42。当映射了共享内存区域50时,真实的数据传输操作仍然是在高速缓存43中完成。这样相比直接在物理内存中交换数据可以提高8-10倍的传输速度。
[0094] 本发明的实施例还提出非对称多路处理结构(AMP)中共享内存的方式。这一方式可参考前一实施例的描述以及图7的示例,在此不再展开。
[0095] 在一些实施例中,PLD 44也可以与第一处理核心41和第二处理核心42之间共享内存区域50。在此不再展开。
[0096] 在本实施例中,PLD 44向第二处理核心42反馈的速度数据、位置数据跳动都会带来速度控制环路输出电流出现跳变情况,恶化电机控制性能。PLD 44和处理器系统(包括第一和第二处理核心41、42)属于两个独立的计算核心,如何处理好两个计算核心之间的数据同步以及PLD 44给定的反馈数据连续性、完整性是整个控制系统中的重要问题。
[0097] 在一个实施例中,如图9所示,两个计算核心,即处理器系统和PLD 44可采用同一外部时钟(晶振),确保两者属于同一时钟域,拥有相同的时间基准。这样处理后,由于处理器系统从PLD 44读取数据所需的时间是一个相对确定的时间,PLD 44的时间和处理器系统的时间之间有可以规定一个互相错开的刷新周期。FPGA实现在固定时间刷新数据,处理器系统侧实现固定时间周期后读取数据。
[0098] 在一个实施例中,PLD 44内部的所有时钟信号,也可以是通过同一时钟源经过分频(例如锁相环PLL分频)得到。通过这种方式处理,PLD 44内部数据都处于同一个时钟域内。进一步,处理器,如第二处理核心42侧时钟、总线时钟、PLD 44侧时钟处在同一时钟下。
[0099] 在一个实施例中,如图10所示,PLD 44采用双寄存器101和102(register)实现在第一处理核心41或第二处理核心42读取数据时锁存(latch)当前数据,避免数据由于异步设计中的亚稳态而受到破坏,暨“双锁存器法”。如图10所示,PLD 44内部进行数学计算,通过寄存器102的方式进行结果存储数据。在寄存器102存储的基础上,进一步通过另一个寄存器101存储。这样通过时钟节拍的方式,可使得处理器系统在读取PLD 44数据时,能够读到一个完整的、正确的数据(避免出现当处理器系统读数据时,PLD 44更新对应寄存器情况)。本实施例所使用的寄存器101、102例如可以是触发器。
[0100] 第三实施例
[0101] 图6是根据本发明第三实施例的控制器的电路框图。参考图2所示,本实施例的一种集成运动控制和电机控制的控制器60可包括第一处理核心组合61、第二处理核心组合62、PLD 63和高速缓存(图未示出)。第一处理核心组合61配置为执行操作系统和运动控制。
第二处理核心组合62配置为执行电机控制且常态地不运行操作系统。高速缓存耦接到第一处理核心组合61和第二处理核心组合62。第一处理核心组合61和第二处理核心组合62配置为在运动控制和电机控制期间,通过高速缓存进行数据交互。
[0102] 与前面的实施例不同的是,本实施例中,包括处理核心1至N(N为正整数)的第一处理核心组合61作为第一处理器,包括处理核心N+1至N+K(K为正整数)的第二处理核心组合62作为第二处理器。
[0103] PLD 63耦接第二处理核心组合62,与第二处理核心组合62协同进行电机控制。参考第一实施例可知,PLD 63可以省略,此时仅由第二处理核心组合62进行执行电机控制。
[0104] 对第一处理核心组合61来说,操作系统和运动控制任务可以在多个处理核心间分配。对第二处理核心组合62来说,电机控制任务可以在多个处理核心间分配。在此不再展开。
[0105] 本实施例的其他细节可以参考第一和第二实施例,在此不再展开。
[0106] 虽然本发明已参照当前的具体实施例来描述,但是本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本发明,在没有脱离本发明精神的情况下还可作出各种等效的变化或替换,因此,只要在本发明的实质精神范围内对上述实施例的变化、变型都将落在本申请的权利要求书的范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈