法律状态公告日
法律状态信息
法律状态
2018-04-17
授权
授权
2018-03-06
专利申请权的转移 IPC(主分类):G05B19/04 登记生效日:20180212 变更前: 变更后: 申请日:20150724
专利申请权、专利权的转移
2016-01-06
实质审查的生效 IPC(主分类):G05B19/04 申请日:20150724
实质审查的生效
2015-12-09
公开
公开
技术领域
本发明涉及面向控制技术的片上系统技术领域,特别涉及一种控制程序 处理器的片上系统及其控制程序执行方法。
背景技术
从应用于家用设备的小型控制器到应用于大型工厂的大规模PLC、DCS, 自动化领域已经发展出多样的自动化控制设备。这些控制设备虽然外形、规 模、应用方向各异,但是在功能结构上具有一定的共通性。控制系统的输入 输出、控制算法、通信协议、编程语言等都已经实现模块化、标准化。其中, 控制系统编程语言已完全标准化,如以IEC61131-3标准为代表的逻辑控制程序 和对以JB/T3208数控机床G代码为代表的运动控制程序。
但是,现有的控制设备中的控制程序一般普遍存在以下问题:
首先,对可编程逻辑控制器PLC而言,所有可编程控制器均需要支持 IEC61131-3定义的一种或多种语言,包括IL、ST、LD、FBD和SFC。其中IL 语言即指令表语句,最接近PLC机器语言的语言(类似汇编语言),其它四种 为高级语言。普遍的,组态编程软件在编译以该五种语言编成的程序时,会 将程序均转换成以IL语言为描述的中间代码。可以将这种中间代码下载到PLC 中按句进行解释并执行(解释型),也可以将中间代码直接编译成PLC的本地 代码下载运行(编译型)。对于现有技术中基于通用处理器MCU的技术实现, 无论是解释型还是编译型,都是将IL指令语句转换为本地机器语句。本地汇 编毕竟非面向PLC程序的指令集结构,不可避免会产生效率的损失。
其次,对于运动控制需求,有JB/T3208数控机床G代码为代表的运动控制 程序编程标准。普通PLC的设计并不能满足运动控制所需要的快速精密处理需 求,而大多方案是利用MCU、MCU+FPGA或MCU+DSP展开的运动控制器的 主要瓶颈在于需要CPU来完成实时性要求极高且算法相对复杂的插补计算。 目前普遍的基于运动控制芯片或DSP处理器进行的运动控制器的设计与PLC 系统并没有高度集成。
综上可知,在以MCU为处理核心的控制器结构中,无论逻辑控制程序处 理还是运动控制程序处理,都需要占用大量MCU的工作,而MCU通常还需要 完成其它重要任务(如通讯、显示),控制器的执行和响应速度也因此受MCU 其它工作的影响,难以保障其实时性和可靠性;并且,逻辑控制程序处理和 运动控制程序处理并没有实现高度有效的集成。
发明内容
本发明的目的在于提供一种控制程序处理器的片上系统,以解决现有的 控制设备中所存在的效率较低、对CPU要求较高、集成度较低以及实时性和 可靠性难以保障的问题。
为实现上述目的,本发明提供了一种控制程序处理器的片上系统,包括 逻辑控制处理器、运动控制处理器、控制管理单元、存储器及信号交互模块, 其中:
所述存储器用于存储用户编程组态及经过编译得到的控制程序和数据, 所述控制程序中包括逻辑控制程序、运动控制程序及控制程序任务信息;
所述逻辑控制处理器用于从所述存储器中自动读取、处理和执行逻辑控 制程序,以完成逻辑控制功能;
所述运动控制处理器用于从所述存储器中自动读取、处理和执行运动控 制程序,以完成运动控制功能;
所述控制管理单元用于根据固化的控制管理程序从所述存储器中获取控 制程序任务信息,以进行逻辑控制功能和运动控制功能的管理和调度;
信号交互模块,用于获取输入参数信号并提供给所述逻辑控制处理器、 运动控制处理器,以及输出来自所述逻辑控制处理器、运动控制处理器的输 出信号至待控制设备。
较佳地,还包括中断控制器及定时器,所述逻辑控制处理器、运动控制 处理器、控制管理单元、存储器、信号输入模块、信号输出模块、中断控制 器及定时器均与片内总线网络相连并通过所述片内总线网络相互通信。
较佳地,所述控制程序任务信息包括任务调度信息、执行过程监视信息、 安全保障信息、片上系统资源管理信息或其他片上系统管理和调度信息。
较佳地,所述存储器包括易失性存储器和非易失性存储器,所述逻辑控 制处理器和运动控制处理器为片上系统的IP核,所述控制管理单元为CPU硬 件内核与嵌入式固化程序构成。
较佳地,所述逻辑控制处理器包括总线接口模块、程序栈、程序计数模 块、取指模块、寻址模块、取数模块及指令执行模块;
所述总线接口模块用于挂接片内总线,提供数据通道;
所述程序栈用于保存间断执行的程序段和数据段;
所述程序计数模块用于对待执行的逻辑控制程序指令进行计数,并根据 逻辑控制程序执行进度(顺序或跳转)更改计数值;
所述取指模块用于按照当前计数取出逻辑控制程序中的待执行指令;
所述寻址模块用于获取所述取指模块取出的指令中包含的地址;
所述取数模块用于根据所述地址获取对应的数据;
所述指令执行模块用于根据所述地址及对应的数据执行对应的逻辑控制 程序。
较佳地,所述运动控制处理器包括总线接口模块、参数配置模块、读取 模块、运动控制算法模块、中断处理模块、控制轴输出模块;
其中,所述总线接口模块用于挂接片内总线,提供数据通道;
所述参数配置模块用于根据所述运动控制程序配置控制参数;
所述读取模块用于通过所述总线接口模块读取运动控制程序指令和数 据;
所述运动控制算法模块用于通过所述总线接口模块获取运动控制程序和 数据以选择相应运动控制算法(插补算法或加减速算法等)进行计算,以供 控制轴输出模块使用;
所述中断处理模块用于获取中断输入信号或输出报警信号;
所述控制轴输出模块用于驱动片上系统的控制轴管脚进行输出控制信 号。
较佳地,所述输入信号包括模拟量测量信号、数字量测量信号、开关/暂 停信号或其他控制参数信号;所述输出信号包括模拟量测量信号、数字量测 量信号、电机驱动输出信号或其他控制待控制设备的信号。
较佳地,部分的所述逻辑控制程序指令还包括运动控制功能调用指令, 所述运动控制功能调用指令用于调用所述运动控制处理器执行逻辑控制程序 中的运动控制功能,该部分逻辑控制程序指令用以支持混合控制程序的执行。
较佳地,所述存储器与JTAG口、通信接口或其他数据接口相连接,所述 JTAG口、通信接口或其他数据接口用于下载控制程序和数据。
较佳地,所述信号交互模块包括信号输入模块及信号输出模块;
所述信号输入模块用于控制输入信号的采集,并将输入信号提供给所述 逻辑控制处理器、运动控制处理器作为控制运算的输入参数;
所述信号输出模块用于存储所述逻辑控制处理器和运动控制处理器执行 控制程序后的输出信号,并输出至待控制设备。
本发明还提供了一种用于上述控制程序处理器的片上系统的控制程序执 行方法,其特征在于,包括以下步骤:
S1:下载控制程序和数据至存储器中;
S2:控制管理单元读取存储器中的控制程序任务信息,并根据控制程序 任务信息进行多控制任务的调度,当有符合执行要求的控制任务就绪后,判 断该控制任务的类型:如控制任务为逻辑控制任务,则将对应的逻辑控制程 序及数据发送至逻辑控制处理器并转至步骤S3,如控制任务为运动控制任务, 则将对应的运动控制程序及数据发送至运动控制处理器并转至步骤S4;
S3:所述逻辑控制处理器根据接收到的逻辑控制程序及数据自动从存储 器中寻址获取对应的指令及数据段数据,并按顺序依次执行指令直至该逻辑 控制程序的程序段结束,向所述控制管理单元返回程序执行结果信息,转至 步骤S5;
S4:所述运动控制处理器根据接收到的运动控制程序及数据自动从存储 器中寻址获取对应的指令及数据段数据,并按顺序依次执行指令直至该运动 控制程序的程序段结束,向所述控制管理单元返回程序执行结果信息,转至 步骤S5;
S5:通过信号交互模块输出程序执行结果信息至待控制设备。
较佳地,所述步骤S3或S4中,在执行指令的过程中,当出现指令错误、 数据超限或其他程序错误,则暂停程序的执行并向所述控制管理单元发送报 警信息。
较佳地,所述步骤S3或S4中,在执行指令的过程中,当遇到子程序调 用、功能块调用或其他调用命令时,自动将当前程序信息压栈保存,然后寻 址获取调用程序的程序段和数据段并执行调用程序,调用程序执行结束后, 从栈中弹出原程序信息以继续执行。
较佳地,所述步骤S3或S4中,在执行指令的过程中,当有符合执行要 求且优先级更高的任务程序就绪,则有控制管理单元向所述逻辑控制处理器 或运动控制处理器发送抢占信息,并将该任务程序交由所述逻辑控制处理器 或运动控制处理器,所述逻辑控制处理器或运动控制处理器将原程序信息压 栈保存后开始执行该任务程序,执行完后从栈中弹出原程序信息以继续执行。
较佳地,所述步骤S3中,在执行指令的过程中,当指令中包含运动控制 功能的调用程序时,由所述逻辑控制处理器将所调用的运动控制功能程序段 及数据段信息发送至所述运动控制处理器以执行该调用程序,并在执行结束 后向逻辑控制处理器返回执行结果。
较佳地,所述逻辑控制处理器在执行包含运动控制功能的调用程序的指 令时,判断该调用程序的类型,如为阻塞型,则所述逻辑控制处理器在接收 到运动控制处理器返回的执行结果后再执行后续的逻辑控制程序;如为非阻 塞型,则所述逻辑控制处理器继续执行后续的逻辑控制程序。
本发明提供的控制程序处理器的片上系统,通过设置逻辑控制处理器、 运动控制处理器、控制管理单元、存储器、信号输入模块及信号输出模块, 其中,存储器控制程序和数据,由控制管理单元根据控制程序任务信息控制 逻辑控制处理器执行逻辑控制程序以及控制运动控制处理器执行运动控制程 序及控制程序任务信息以进行逻辑控制功能和运动控制功能的管理和调度, 并通过信号输入模块获取输入参数信号并提供给逻辑控制处理器、运动控制 处理器,以及通过信号输出模块输出来自逻辑控制处理器、运动控制处理器 的输出信号至待控制设备进行对外部设备的控制。本发明在片上硬件实现了 逻辑控制程序和运动控制程序的处理,并支持混合控制程序的处理。
其中,由中央处理器(控制管理单元)负责控制程序/任务的管理和调度, 由协处理器(逻辑控制处理器和运动控制处理器)负责具体控制程序指令的 执行,逻辑控制处理器和运动控制处理器内置了控制程序所需的各种算法。 这种方式使得控制程序的处理主体和CPU独立,即将控制程序的执行与控制 程序的管理功能分离,使CPU有足够能力处理其它重要任务。该片上系统相 对于使用通用处理器芯片的控制器实现更加集成、高效、稳定,可以大大缩 减控制器的开发周期和成本。
附图说明
图1为本发明优选实施例的控制程序处理器的片上系统结构框图;
图2为本发明优选实施例的逻辑控制处理器的结构框图;
图3为本发明优选实施例的运动控制处理器的结构框图;
图4为本发明提供的片上系统一具体实施例结构图;
图5为本发明提供的片上系统的控制程序执行方法执行过程示意图;
图6为本发明另一优选实施例的混合控制程序执行方法流程图。
具体实施方式
为更好地说明本发明,兹以一优选实施例,并配合附图对本发明作详细 说明,具体如下:
如图1所示,本实施例提供的控制程序处理器的片上系统(SoC)包括逻 辑控制处理器(LCP)1、运动控制处理器(MCP)2、控制管理单元(CMU) 3、存储器4、信号输入模块5及信号输出模块6,还包括中断控制器及定时 器(图1中未示出),LCP1、MCP2、CMU3、存储器4、信号输入模块5、信 号输出模块6、中断控制器及定时器均与片内总线网络相连并通过该片内总线 网络相互通信。
其中,存储器4用于存储用户编程组态及经过编译得到的控制程序和数 据,控制程序中包括逻辑控制程序、运动控制程序及控制程序任务信息;LCP1 用于从存储器4中自动读取、处理和执行逻辑控制程序,以完成逻辑控制功 能;MCP2用于从存储器4中自动读取、处理和执行运动控制程序,以完成运 动控制功能;CMU3用于根据固化的控制管理程序从存储器4中获取控制程 序任务信息,以进行逻辑控制功能和运动控制功能的管理和调度;信号输入 模块5和信号输出模块6共同组成信号交互模块。其中,信号输入模块5用 于控制输入信号的采集,并将输入信号提供给逻辑控制处理器1、运动控制处 理器2作为控制运算的输入参数,信号输出模块6用于存储逻辑控制处理器1 和运动控制处理器2执行控制程序后的输出信号,并输出至待控制设备。
其中,输入信号包括模拟量测量信号、数字量测量信号、开关/暂停信号 或其他控制参数信号;输出信号包括模拟量测量信号、数字量测量信号、电 机驱动输出信号或其他控制待控制设备的信号。
具体地,如图2所示,逻辑控制处理器1包括总线接口模块11(也即寄 存器配置模块)、程序栈12、程序计数模块13、取指模块14、寻址模块15、 取数模块16及指令执行模块17。其中,总线接口模块11用于通过总线网络 获取存储器4中的逻辑控制程序和数据,程序栈12用于保存中断执行的程序 段和数据段;程序计数模块13用于对等待执行的逻辑控制程序进行计数,并 根据逻辑控制程序执行进度更改计数值;取指模块14用于按照当前计数取出 逻辑控制程序中的指令;寻址模块15用于获取取指模块14取出的指令的地 址;取数模块16用于根据该地址获取对应的数据;指令执行模块17用于根 据上述的地址及对应的数据执行对应的逻辑控制程序。
如图3所示,运动控制处理器2包括总线接口模块21、参数配置模块22、 读取模块23、运动控制算法模块24、中断处理模块25及控制轴输出模块26。 其中,总线接口模块21用于通过总线网络获取存储器4中的运动控制程序和 数据;参数配置模块22用于根据运动控制程序配置控制参数;读取模块23 用于通过总线接口模块21读取变量和指令;运动控制算法模块24用于通过 总线接口模块21获取运动控制程序和数据以选择执行模式,并控制读取模块 23读取不同执行模式对应的变量和指令,以供控制轴输出模块26使用;中断 处理模块25用于获取中断输入信号或输出中断信号;控制轴输出模块26用 于根据不同的执行模式及其对应的变量和指令输出控制信号至待控制设备以 实现对待控制设备的控制。
如图4所示本实施例提供的片上系统具体包括由AHB0总线及APB总线 构成的总线网络,AHB0总线及APB总线间通过桥(Bridge)连接。DMAC(数 据传输控制器)、LCP、MCP、CMU、以太网接口MAC1和MAC0以及由Flash CTRL和SRAMCTRL构成的存储器分别与AHB0总线相连,AHB0总线上 还连接有通信接口EPA以及复位键、时钟键、PWM输出等。而APB总线与 一般片上系统常规具备的模块相连,如中断控制器(INTC0~2)、定时器(TIM)、 电源管理等系统资源模块,UART、CAN等接口,ADC、GPIO、脉冲信号 输入等信号输入模块,以及DAC、GPIO等信号输出模块。
其中,LCP模块用于自动读取和处理执行逻辑控制程序指令,该逻辑控 制程序指令是对基于IEC61131-3标准语言所编写程序编译得到的机器指令。 LCP自带了各类逻辑控制算法,包括IEC61131-3标准定义的功能块、功能函 数。而图4所示的片上系统中,LCP执行的是32位定长的精减指令集指令 SCODE,该指令与IEC61131-3标准的指令表IL对应。
MCP模块用于自动读取和处理执行运动控制程序指令,该运动控制程序 指令是对基于G代码所编写程序编译得到的机器指令。MCP自带了各类运动 控制算法,包括插补算法、加减速算法等。而图4所示的片上系统中,MCP 执行的是MCODE,该指令与G代码指令对应。
本实施例中的LCP和MCP由于功能相对简单(读取并执行指令),因而 以硬件IP核的方式存在。IP核通过片内通讯总线网络与片内其它模块交互。 通讯总线网络根据SoC速度、总线占用等因素来定义,如LCP与ram存储器 间可架设独立总线保证LCP的执行效率。
由于CMU的工作相对复杂,涉及到整个SoC控制功能的管理和调度, 具体包括控制任务的调度和执行过程监视,安全保障,SoC资源管理等,本 实施例中采用CPU硬件内核+嵌入式固化程序的方式进行实现;其中的调度 功能也可以以硬件IP核的方式独立实施。该片上系统的控制以CMU为主, LCP和MCP承担类似于协处理器的角色,受CMU调度和管理。三者都可以 直接操作存储器和输入输出映射,但在具体操作权限上有所区分。
如图5所示,本实施例提供的片上系统的控制程序执行方法,具体如下:
(1)用户进行控制程序(逻辑控制程序、运动控制程序或混合控制程序) 的编写后,片上系统下载控制程序和数据至存储器中。控制程序具体的组织 方式包括:
●工程信息:包括工程名称,程序版本,编译时间,加载时间,任务数 量,数据段数量,程序段数量,等。
●任务索引表:所有任务的类型、周期、优先级、主程序段段号、主数 据段号等。
●数据段索引表:所有数据段的首地址、数据段大小。
●程序段索引表:所有程序段的首地址、程序段大小、程序段类型(逻 辑/运动/混合)。
●数据段。
●程序段。
控制程序的下载通过JTAG口、通信接口或其他片上系统常用的数据接口 下载到存储器中,本发明对数据接口的形式不做具体限定。
(2)片上系统(SoC)启动后,控制管理单元(CMU)读取存储器中的 控制程序任务信息,并根据控制程序任务信息进行多控制任务的调度。
具体为,根据“工程信息”判断程序的有效性,同时CMU启动计时计数, 根据任务索引表,开启多控制任务的调度。当有符合执行要求的控制任务就 绪后,判断该控制任务的类型:如控制任务为逻辑控制任务,则CMU将对应 的逻辑控制程序(程序段号)及数据(数据段号)发送至LCP;如控制任务 为运动控制任务,则将对应的运动控制程序(程序段号)及数据(数据段号) 发送至MCP。
(3)LCP接收到程序段号及数据段号后立即启动该程序的执行。具体地:
a)自动根据接收到的程序段号到程序段索引表查找到程序段首地址和段 大小;根据数据段号到数据段索引表查找到数据段首地址和段大小;
b)根据程序段首地址读取第一条程序指令,开始执行指令,根据指令中 的被操作数选择从数据段首地址和偏移量查找并读取数据,或从输入映射中 查找并读取;
c)根据指令执行结果更新数据段数据或输出映射中数据;
d)自动读取下一条程序指令并执行,直至遇到程序结束标志;
e)向CMU返回程序执行结果信息。
(4)MCP接收到程序段号及数据段号后立即启动该程序的执行。执行过 程与步骤(3)的步骤a)~e)相类似,此处不赘述。
(5)CMU将来自LCP和MCP的执行结果信息通过信号交互模块输出 至待控制设备以完成相应的片上系统的控制功能。
其中,在优选实施例中的LCP或MCP执行指令的过程中:当出现指令 错误、数据超限、数据获取失败等程序错误时,则暂停程序的执行并向所述 控制管理单元发送报警信息;当遇到子程序调用、功能块调用或其他调用命 令时,自动将当前程序信息压栈保存,然后寻址获取调用程序的程序段和数 据段信息并执行调用程序,调用程序执行结束后,LCP或MCP从栈中弹出原 程序信息以继续执行;当有符合执行要求且优先级更高的任务程序就绪,则 由CMU向LCP或MCP发送抢占消息,并将该任务程序的程序段和数据段交 由LCP或MCP,LCP或MCP将原程序信息压栈保存后开始执行该任务程序, 执行完后从栈中弹出原程序信息以继续执行。
在其他优选实施例中,CMU也可以向LCP、MCP主动发起暂停和停止 信号,具体如下:
a)LCP、MCP执行程序过程中收到CMU发起的暂停消息时,暂停当前 程序的执行,保留当前程序指针和数据内容并等待CMU的进一步消息;
b)LCP、MCP执行程序过程中收到CMU发起的停止消息时,中止当前 程序的执行,清空寄存器并回复到空闲状态。
优选地,LCP还可以执行以逻辑控制程序为主体的混合控制程序。即在 LCP程序指令中包含对MCP功能的直接调用,而不需要由CMU来干预。
在混合控制程序中,运动控制程序以G代码功能块的形式存放,提供功 能块编号。逻辑控制程序里可以直接使用“CALLFB+功能块编号”的指令来 调用该运动控制程序。当LCP执行到该指令时,将所调用功能块编号查找到 对应运动控制程序段段号和数据段段号发送给MCP,由MCP执行并向LCP 报告执行信息。
如图6所示,混合控制程序的具体执行流程如下:
1)用户进行混合控制程序的编写,其中主程序为逻辑控制程序用 IEC61131-3语言编写,而运动控制部分程序以功能块(而非控制任务)的形 式用G代码编写。
a)由于一段G代码定义的运动控制程序通常完成一系列动作,执行时间 较长,因此G代码功能块在编写时有两种模式选择:阻塞型G代码功能块和 非阻塞型G代码功能块。阻塞型表示该功能块被LCP调用后,LCP等待该功 能块执行完成后才继续执行后续逻辑控制指令;非阻塞型表示该功能块被 LCP调用后,LCP不需要等待其执行结束便接着执行后续逻辑控制指令。
b)控制程序编译时,为G代码功能块分配功能块号,如FB001。
2)控制程序以程序段、数据段等组织方式下载到存储器中。
3)SoC启动工作后,CMU扫描到逻辑控制任务,调度执行该任务,执行 流程如前所述。
4)LCP执行到调用运动控制功能块指令(如CALLFB001)时,查询功能 块表获取该G代码功能块的程序段和数据段信息,并将该信息发送给MCP。 并根据CALL指令中的类型信息判断所调用的G代码功能块为阻塞型还是非 阻塞型。
a)如为阻塞型,LCP暂停程序执行后续逻辑控制程序,直至接收到MCP 发送的G代码功能块执行完成的消息。
b)如为非阻塞型,LCP继续执行后续逻辑控制程序。
5)MCP接收到G代码功能块的程序段和数据段信息时,自动执行该功能 块程序,执行过程如前所述。执行结束后向LCP发送执行结果信息。所述执 行结果信息包含程序执行成功/失败、执行时间等。
6)LCP执行完逻辑控制程序后,向CMU返回程序执行结果信息。所述执 行结果信息包含程序执行成功/失败、执行时间等。
其中,上述各实施例中,对片上系统及其控制程序执行过程中涉及到的 指令集格式不作限定。
上述的片上系统将LCP、MCP以及各种控制功能块在SoC上集成,使用 在一颗处理芯片上可以同时实现逻辑控制程序和运动控制程序的处理,高度 且有效的集成。LCP支持直接调用MCP也使得对混合控制程序的支持简单有 效。LCP、MCP和CMU(即固化了控制管理程序的CPU)直接实现了控制 程序的管理和执行,特别是内置了控制程序所需要的各种算法如功能块、功 能函数、插补算法等,对用户而言是一颗直接可以用于控制程序处理的SoC 芯片,而无须复杂的控制器设计和开发工作。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限 于此,任何本领域的技术人员在本发明揭露的技术范围内,对本发明所做的 变形或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围 应以所述的权利要求的保护范围为准。
机译: 信息处理器,信息处理器的控制方法,信息处理器的控制程序,其上记录有信息处理器的记录介质的控制程序,信息记录器的数据记录方法和记录有信息的记录介质的记录介质
机译: 重构内容决策系统,管理和信息处理器的服务器,重构内容决策系统控制程序,管理和信息处理器控制程序的服务器控制程序以及重构内容决策系统的控制方法,管理服务器的控制方法和信息处理的控制方法
机译: 印刷管理装置,具有印刷管理功能的印刷装置,具有印刷管理功能的信息处理器,印刷系统,印刷装置,印刷管理程序,具有印刷管理功能的印刷装置控制程序,印刷管理程序。提供功能的信息处理器控制程序,打印设备控制程序,打印管理方法,提供打印管理功能的打印设备控制方法,提供打印管理功能的信息处理器控制方法和打印设备控制方法。