CN105137817A - 控制程序处理器的片上系统及其控制程序执行方法 - Google Patents

控制程序处理器的片上系统及其控制程序执行方法 Download PDF

Info

Publication number
CN105137817A
CN105137817A CN201510443437.7A CN201510443437A CN105137817A CN 105137817 A CN105137817 A CN 105137817A CN 201510443437 A CN201510443437 A CN 201510443437A CN 105137817 A CN105137817 A CN 105137817A
Authority
CN
China
Prior art keywords
program
control
control program
module
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510443437.7A
Other languages
English (en)
Other versions
CN105137817B (zh
Inventor
杨大胜
潘再生
童庆
唐艳丽
朱冬冬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ningbo zhongkong Microelectronics Co.,Ltd.
Original Assignee
ZHEJIANG SUPCON RESEARCH Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZHEJIANG SUPCON RESEARCH Co Ltd filed Critical ZHEJIANG SUPCON RESEARCH Co Ltd
Priority to CN201510443437.7A priority Critical patent/CN105137817B/zh
Publication of CN105137817A publication Critical patent/CN105137817A/zh
Application granted granted Critical
Publication of CN105137817B publication Critical patent/CN105137817B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种控制程序处理器的片上系统及其控制方法,通过设置逻辑控制处理器、运动控制处理器、控制管理单元、存储器、信号输入模块及信号输出模块,其中,存储器存储控制程序和数据,由控制管理单元根据控制程序任务信息控制逻辑控制处理器执行逻辑控制程序以及控制运动控制处理器执行运动控制程序,以进行逻辑控制功能和运动控制功能的管理和调度,并通过信号输入模块获取输入参数信号以及通过信号输出模块输出输出信号至待控制设备进行对外部设备的控制。该片上系统将控制程序的执行与控制程序的管理功能分离,相对于使用通用处理器芯片的控制器实现更加集成、高效、稳定,可以大大缩减控制器的开发周期和成本。

Description

控制程序处理器的片上系统及其控制程序执行方法
技术领域
本发明涉及面向控制技术的片上系统技术领域,特别涉及一种控制程序处理器的片上系统及其控制程序执行方法。
背景技术
从应用于家用设备的小型控制器到应用于大型工厂的大规模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以及由FlashCTRL和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芯片,而无须复杂的控制器设计和开发工作。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何本领域的技术人员在本发明揭露的技术范围内,对本发明所做的变形或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述的权利要求的保护范围为准。

Claims (16)

1.一种控制程序处理器的片上系统,其特征在于,包括逻辑控制处理器、运动控制处理器、控制管理单元、存储器及信号交互模块,其中:
所述存储器用于存储用户编程组态及经过编译得到的控制程序和数据,所述控制程序中包括逻辑控制程序、运动控制程序及控制程序任务信息;
所述逻辑控制处理器用于从所述存储器中自动读取、处理和执行逻辑控制程序,以完成逻辑控制功能;
所述运动控制处理器用于从所述存储器中自动读取、处理和执行运动控制程序,以完成运动控制功能;
所述控制管理单元用于根据固化的控制管理程序从所述存储器中获取控制程序任务信息,以进行逻辑控制功能和运动控制功能的管理和调度;
信号交互模块,用于获取输入参数信号并提供给所述逻辑控制处理器、运动控制处理器,以及输出来自所述逻辑控制处理器、运动控制处理器的输出信号至待控制设备。
2.根据权利要求1所述的控制程序处理器的片上系统,其特征在于,还包括中断控制器及定时器,所述逻辑控制处理器、运动控制处理器、控制管理单元、存储器、信号输入模块、信号输出模块、中断控制器及定时器均与片内总线网络相连并通过所述片内总线网络相互通信。
3.根据权利要求1或2所述的控制程序处理器的片上系统,其特征在于,所述控制程序任务信息包括任务调度信息、执行过程监视信息、安全保障信息、片上系统资源管理信息或其他片上系统管理和调度信息。
4.根据权利要求1所述的控制程序处理器的片上系统,其特征在于,所述存储器包括易失性存储器和非易失性存储器,所述逻辑控制处理器和运动控制处理器为片上系统的IP核,所述控制管理单元为CPU硬件内核与嵌入式固化程序构成。
5.根据权利要求1所述的控制程序处理器的片上系统,其特征在于,所述逻辑控制处理器包括总线接口模块、程序栈、程序计数模块、取指模块、寻址模块、取数模块及指令执行模块;
所述总线接口模块用于挂接片内总线,提供数据通道;
所述程序栈用于保存间断执行的程序段和数据段;
所述程序计数模块用于对待执行的逻辑控制程序指令进行计数,并根据逻辑控制程序执行进度更改计数值;
所述取指模块用于按照当前计数取出逻辑控制程序中的待执行指令;
所述寻址模块用于获取所述取指模块取出的指令中包含的地址;
所述取数模块用于根据所述地址获取对应的数据;
所述指令执行模块用于根据所述地址及对应的数据执行对应的逻辑控制程序。
6.根据权利要求1所述的控制程序处理器的片上系统,其特征在于,所述运动控制处理器包括总线接口模块、参数配置模块、读取模块、运动控制算法模块、中断处理模块、控制轴输出模块;
其中,所述总线接口模块用于挂接片内总线,提供数据通道;
所述参数配置模块用于根据所述运动控制程序配置控制参数;
所述读取模块用于通过所述总线接口模块读取运动控制程序指令和数据;
所述运动控制算法模块用于通过所述总线接口模块获取运动控制程序和数据以选择相应运动控制算法进行计算,以供控制轴输出模块使用;
所述中断处理模块用于获取中断输入信号或输出报警信号;
所述控制轴输出模块用于驱动片上系统的控制轴管脚进行输出控制信号。
7.根据权利要求1或5或6所述的控制程序处理器的片上系统,其特征在于,所述输入信号包括模拟量测量信号、数字量测量信号、开关/暂停信号或其他控制参数信号;所述输出信号包括模拟量测量信号、数字量测量信号、电机驱动输出信号或其他控制待控制设备的信号。
8.根据权利要求1或2所述的控制程序处理器的片上系统,其特征在于,部分的所述逻辑控制程序指令还包括运动控制功能块调用指令,所述运动控制功能块调用指令用于调用所述运动控制处理器执行逻辑控制程序中的运动控制功能块,该部分逻辑控制程序指令用以支持混合控制程序的执行。
9.根据权利要求1或2所述的控制程序处理器的片上系统,其特征在于,所述存储器与JTAG口、通信接口或其他数据接口相连接,所述JTAG口、通信接口或其他数据接口用于下载控制程序和数据。
10.根据权利要求1或2所述的控制程序处理器的片上系统,其特征在于,所述信号交互模块包括信号输入模块及信号输出模块;
所述信号输入模块用于控制输入信号的采集,并将输入信号提供给所述逻辑控制处理器、运动控制处理器作为控制运算的输入参数;
所述信号输出模块用于存储所述逻辑控制处理器和运动控制处理器执行控制程序后的输出信号,并输出至待控制设备。
11.一种片上系统的控制程序执行方法,其特征在于,包括以下步骤:
S1:下载控制程序和数据至存储器中;
S2:控制管理单元读取存储器中的控制程序任务信息,并根据控制程序任务信息进行多控制任务的调度,当有符合执行要求的控制任务就绪后,判断该控制任务的类型:如控制任务为逻辑控制任务,则将对应的逻辑控制程序及数据发送至逻辑控制处理器并转至步骤S3,如控制任务为运动控制任务,则将对应的运动控制程序及数据发送至运动控制处理器并转至步骤S4;
S3:所述逻辑控制处理器根据接收到的逻辑控制程序及数据自动从存储器中寻址获取对应的指令及数据段数据,并按顺序依次执行指令直至该逻辑控制程序的程序段结束,向所述控制管理单元返回程序执行结果信息,转至步骤S5;
S4:所述运动控制处理器根据接收到的运动控制程序及数据自动从存储器中寻址获取对应的指令及数据段数据,并按顺序依次执行指令直至该运动控制程序的程序段结束,向所述控制管理单元返回程序执行结果信息,转至步骤S5;
S5:通过信号交互模块输出程序执行结果信息至待控制设备。
12.根据权利要求11所述的控制程序执行方法,其特征在于,所述步骤S3或S4中,在执行指令的过程中,当出现指令错误、数据超限或其他程序错误,则暂停程序的执行并向所述控制管理单元发送报警信息。
13.根据权利要求11所述的控制程序执行方法,其特征在于,所述步骤S3或S4中,在执行指令的过程中,当遇到子程序调用、功能块调用或其他调用命令时,自动将当前程序信息压栈保存,然后寻址获取调用程序的程序段和数据段并执行调用程序,调用程序执行结束后,从栈中弹出原程序信息以继续执行。
14.根据权利要求11所述的控制程序执行方法,其特征在于,所述步骤S3或S4中,在执行指令的过程中,当有符合执行要求且优先级更高的任务程序就绪,则有控制管理单元向所述逻辑控制处理器或运动控制处理器发送抢占信息,并将该任务程序交由所述逻辑控制处理器或运动控制处理器,所述逻辑控制处理器或运动控制处理器将原程序信息压栈保存后开始执行该任务程序,执行完后从栈中弹出原程序信息以继续执行。
15.根据权利要求11所述的控制程序执行方法,其特征在于,所述步骤S3中,在执行指令的过程中,当指令中包含运动控制功能的调用程序时,由所述逻辑控制处理器将所调用的运动控制功能程序段及数据段信息发送至所述运动控制处理器以执行该调用程序,并在执行结束后向逻辑控制处理器返回执行结果。
16.根据权利要求15所述的控制程序执行方法,其特征在于,所述逻辑控制处理器在执行包含运动控制功能的调用程序的指令时,判断该调用程序的类型,如为阻塞型,则所述逻辑控制处理器在接收到运动控制处理器返回的执行结果后再执行后续的逻辑控制程序;如为非阻塞型,则所述逻辑控制处理器继续执行后续的逻辑控制程序。
CN201510443437.7A 2015-07-24 2015-07-24 控制程序处理器的片上系统的控制程序执行方法 Active CN105137817B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510443437.7A CN105137817B (zh) 2015-07-24 2015-07-24 控制程序处理器的片上系统的控制程序执行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510443437.7A CN105137817B (zh) 2015-07-24 2015-07-24 控制程序处理器的片上系统的控制程序执行方法

Publications (2)

Publication Number Publication Date
CN105137817A true CN105137817A (zh) 2015-12-09
CN105137817B CN105137817B (zh) 2018-04-17

Family

ID=54723198

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510443437.7A Active CN105137817B (zh) 2015-07-24 2015-07-24 控制程序处理器的片上系统的控制程序执行方法

Country Status (1)

Country Link
CN (1) CN105137817B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106527977A (zh) * 2016-10-17 2017-03-22 锐捷网络股份有限公司 一种配置参数的方法及存储设备
CN108388195A (zh) * 2017-02-02 2018-08-10 欧姆龙株式会社 可编程控制器及其制造方法及对动作模式进行切换的方法
CN110385709A (zh) * 2018-04-17 2019-10-29 沈阳中科博微科技股份有限公司 一种基于机器人控制的多任务实时处理与同步方法
CN111400202A (zh) * 2020-03-13 2020-07-10 宁波中控微电子有限公司 应用于片上控制系统的寻址方法、模块及片上控制系统
CN115857418A (zh) * 2023-02-28 2023-03-28 深圳华龙讯达信息技术股份有限公司 一种基于耦合设计的可编程逻辑控制系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040096789A (ko) * 2003-05-10 2004-11-17 한국과학기술원 SoC 로봇 시스템과 그 구동방법
CN1752874A (zh) * 2005-08-22 2006-03-29 武汉理工大学 基于片上系统的嵌入式运动控制方法及装置
CN103207771A (zh) * 2013-03-19 2013-07-17 浙江中控研究院有限公司 一种plc程序执行器ip核
CN103226344A (zh) * 2013-03-19 2013-07-31 浙江中控研究院有限公司 一种运动控制片上系统
WO2012030787A3 (en) * 2010-08-31 2014-03-20 Sonics, Inc. Intelligent power controller
CN104135212A (zh) * 2014-07-21 2014-11-05 华南理工大学 一种柔性化运动控制ip核及实现方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040096789A (ko) * 2003-05-10 2004-11-17 한국과학기술원 SoC 로봇 시스템과 그 구동방법
CN1752874A (zh) * 2005-08-22 2006-03-29 武汉理工大学 基于片上系统的嵌入式运动控制方法及装置
WO2012030787A3 (en) * 2010-08-31 2014-03-20 Sonics, Inc. Intelligent power controller
CN103207771A (zh) * 2013-03-19 2013-07-17 浙江中控研究院有限公司 一种plc程序执行器ip核
CN103226344A (zh) * 2013-03-19 2013-07-31 浙江中控研究院有限公司 一种运动控制片上系统
CN104135212A (zh) * 2014-07-21 2014-11-05 华南理工大学 一种柔性化运动控制ip核及实现方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106527977A (zh) * 2016-10-17 2017-03-22 锐捷网络股份有限公司 一种配置参数的方法及存储设备
CN106527977B (zh) * 2016-10-17 2020-01-21 锐捷网络股份有限公司 一种配置参数的方法及存储设备
CN108388195A (zh) * 2017-02-02 2018-08-10 欧姆龙株式会社 可编程控制器及其制造方法及对动作模式进行切换的方法
CN110385709A (zh) * 2018-04-17 2019-10-29 沈阳中科博微科技股份有限公司 一种基于机器人控制的多任务实时处理与同步方法
CN111400202A (zh) * 2020-03-13 2020-07-10 宁波中控微电子有限公司 应用于片上控制系统的寻址方法、模块及片上控制系统
CN115857418A (zh) * 2023-02-28 2023-03-28 深圳华龙讯达信息技术股份有限公司 一种基于耦合设计的可编程逻辑控制系统

Also Published As

Publication number Publication date
CN105137817B (zh) 2018-04-17

Similar Documents

Publication Publication Date Title
CN105137817A (zh) 控制程序处理器的片上系统及其控制程序执行方法
CN110545319A (zh) 一种SoC核系统的设计和核间任务通信的实现方法
CN103226344B (zh) 一种运动控制片上系统
CN103941650A (zh) 逻辑与运动集成控制器
CN106125664A (zh) 一种嵌入式plc控制系统
CN102346687A (zh) 基于Windows驱动程序的实时系统
CN109983411B (zh) 程序模块的流程控制
CN105137800A (zh) 一种基于sopc技术的plc协同控制装置
US9152454B2 (en) Method for enabling sequential, non-blocking processing of statements in concurrent tasks in a control device
GB2486136A (en) Simulation method, system and program
CN101750992B (zh) 一种应用于可编程序控制器的通用顺序控制算法
CN102621960A (zh) 一种基于ARM-Linux的编译型PAC
CN205003526U (zh) 一种基于sopc技术的plc协同控制装置
CN106527335A (zh) 一种支持协程功能的plc控制器
CN104597832B (zh) 一种基于amba总线的plc程序调度器ip核
US7134118B1 (en) Re-programmable flash memory micro controller as programmable logic controller
CN102566512A (zh) 基于图编程的轴承切削自动生产线专用控制电路及系统
Wu et al. The design and experimental research of an open architecture soft-CNC system based on RTX and an IPC
CN111123818A (zh) 一种plc浮点数和定点数相互转换控制系统及方法
CN102692892B (zh) 一种数控控制器以及数控机床
CN108762197B (zh) 基于plc的运动控制方法和运动控制器
CN216442561U (zh) 一种基于arm嵌入式的码垛机器人控制系统
CN109932997A (zh) 一种可编程逻辑控制器内核系统
CN117572815A (zh) 一种基于iec语言封装实现高速计数功能的方法
CN113568333B (zh) 数据处理方法、控制系统和设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20180212

Address after: 310053 Binjiang District, Hangzhou, Hangzhou, Zhejiang Province, No. six and No. 309 F16

Applicant after: Zhejiang Jay core technology Co., Ltd.

Address before: 310053 Hangzhou Province, Binjiang District Province, No. six and No. 309 Road, the center of science and Technology Park (high tech Zone) ()

Applicant before: Zhejiang Supcon Research Co., Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211208

Address after: 315000 room 1-1-178, 150 Changpu Road, jishigang Town, Haishu District, Ningbo City, Zhejiang Province

Patentee after: Ningbo zhongkong Microelectronics Co.,Ltd.

Address before: F16, 309 Liuhe Road, Binjiang District, Hangzhou City, Zhejiang Province, 310053

Patentee before: Zhejiang Jay core technology Co.,Ltd.