CN113568332A - 一种arm和fpga的业务交互方法、工控系统和自动化设备 - Google Patents
一种arm和fpga的业务交互方法、工控系统和自动化设备 Download PDFInfo
- Publication number
- CN113568332A CN113568332A CN202110265270.5A CN202110265270A CN113568332A CN 113568332 A CN113568332 A CN 113568332A CN 202110265270 A CN202110265270 A CN 202110265270A CN 113568332 A CN113568332 A CN 113568332A
- Authority
- CN
- China
- Prior art keywords
- arm
- fpga
- control flow
- task
- register
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 77
- 230000003993 interaction Effects 0.000 title claims abstract description 47
- 230000009471 action Effects 0.000 claims description 43
- 230000008569 process Effects 0.000 claims description 22
- 238000012545 processing Methods 0.000 claims description 15
- 230000002093 peripheral effect Effects 0.000 claims description 12
- 238000005111 flow chemistry technique Methods 0.000 claims description 5
- 230000000875 corresponding effect Effects 0.000 description 40
- 230000001276 controlling effect Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25257—Microcontroller
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Advance Control (AREA)
Abstract
本申请涉及一种ARM和FPGA的业务交互方法、工控系统和自动化设备,其中,该ARM和FPGA的业务交互方法包括:ARM向FPGA发送任务时,ARM将所述任务解析成控制流,通过配置对应的PL寄存器向FPGA传递所述控制流和所述任务对应的任务参数;FPGA向ARM返回数据时,FPGA将所述数据写入PL参数寄存器,并向ARM发起中断,ARM根据中断指令访问所述PL参数寄存器,获取所述数据;所述中断指令包括协议编号,所述协议编号和所述PL参数寄存器是一一对应的,ARM根据协议编号获取所述PL参数寄存器的地址。通过本申请,解决了现有技术中FPGA资源消耗大、FPGA端程序复杂的问题。
Description
技术领域
本申请涉及工业控制领域,特别是涉及一种ARM和FPGA的业务交互方法、工控系统和自动化设备。
背景技术
受惠于工业控制开始走向自动化,ARM(Advanced RISC Machine,32位元精简指令集(RISC)处理器架构)处理器和FPGA(Field Programmable Gate Array,现场可编程门阵列)器件已广泛应用到工控系统的各个环节当中。FPGA善于运动控制和实时计算,但是无法进行复杂的逻辑计算,而ARM精于逻辑计算,但是无法进行实时运算,两者恰好互补。
现有技术将ARM作为主控,FPGA作为下位机,ARM和FPGA之间通过DMA(DirectMemory Access,直接存储器访问)传输进行数据交互,ARM实时控制任务发送给FPGA执行,FPGA把执行结果返回给ARM。这种交互方法首先需要定义一套协议,传输前FPGA和ARM需要根据协议对数据进行封装,FPGA和ARM需要解析封装的数据才可以进行进一步处理,FPGA解析数据的过程会导致FPGA消耗大量资源,且FPGA既要做控制又要做解析,FPGA端的程序设计复杂繁琐。
目前针对相关技术中FPGA资源消耗大、FPGA端程序复杂的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种ARM-FPGA交互方法、工控系统和自动化设备,以至少解决相关技术中FPGA资源消耗大、FPGA端程序复杂的问题。
第一方面,本申请实施例提供了一种ARM和FPGA的业务交互方法,所述方法包括:
所述ARM向所述FPGA发送任务时,所述ARM将所述任务解析成控制流,通过配置对应的PL寄存器向所述FPGA传递所述控制流和所述任务对应的任务参数;
所述FPGA向所述ARM返回数据时,所述FPGA将所述数据写入PL参数寄存器,并向所述ARM发起中断,所述ARM根据中断指令访问所述PL参数寄存器,获取所述数据;
所述中断指令包括协议编号,所述协议编号和所述PL参数寄存器是一一对应的,所述ARM根据协议编号获取所述PL参数寄存器的地址。
在其中一些实施例中,所述方法还包括:
在所述FPGA执行所述控制流完毕后,所述FPGA将执行结果写入与所述控制流对应的PL参数寄存器,并向所述ARM发起控制流状态返回中断;
所述ARM根据所述中断指令访问所述与所述控制流对应的PL参数寄存器,获取所述执行结果。
在其中一些实施例中,所述控制流包括多个动作,所述方法还包括:
在所述FPGA需要所述ARM协助执行任一所述动作时,所述FPGA向所述ARM发起动作中断;
所述ARM接收处理所述动作中断之后,通过向PL组件状态寄存器中赋值,通知所述FPGA所述动作处理结束。
在其中一些实施例中,在所述获取所述执行结果之后,包括:
所述ARM根据所述执行结果构造控制流任务编号,并将所述控制流任务编号报告给管理服务器;
所述ARM通过向PL控制流状态寄存器中赋值,通知所述FPGA控制流处理结束。
在其中一些实施例中,所述方法还包括,若在所述FPGA执行所述控制流完毕后,所述FPGA有返回执行出参,所述执行结果包括所述执行出参。
在其中一些实施例中,所述FPGA需要所述ARM协助执行的所述动作包括:通过以太网控制外设、通过硬件接口控制外设,以及查询数据库获取参数。
在其中一些实施例中,所述ARM从管理服务器接收所述任务和所述任务参数。
在其中一些实施例中,所述FPGA从配置平台接收所述任务,所述配置平台的功能包括根据用户的配置,自动化生成对应的控制流信息。
第二方面,本申请实施例提供了一种工控系统,包括服务器、ARM、以及FPGA,其特征在于,所述ARM和所述FPGA交互时通过上述任一项所述的ARM和FPGA的业务交互方法进行交互。
第三方面,本申请实施例提供了一种自动化设备,其特征在于,包括执行装置和上述工控系统;
所述工控系统用于控制所述执行装置执行任务。
相比于相关技术,本申请提供的一种ARM和FPGA的业务交互方法、工控系统和自动化设备,ARM和FPGA通过中断控制和寄存器访问进行数据交互,ARM可直接配置FPGA的寄存器来发送任务,ARM和FPGA根据协议访问FPGA的寄存器进行参数交互,由于协议编号和寄存器是一一对应的,所以FPGA无需对数据进行解析,从而节省了FPGA的计算资源,解决了相关技术中FPGA资源消耗大、FPGA端程序复杂的问题。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是其中一个实施例提供的ARM和FPGA的业务交互方法示意图;
图2是其中一个实施例中ARM端的设计和功能示意图;
图3是其中一个实施例中ARM端处理控制流状态返回中断的流程图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指大于或者等于两个。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本申请实施例提供了一种ARM和FPGA的业务交互方法,该交互方法可以应用于工控系统的设计中。在本实施例中,ARM对接服务器,将服务器下发的任务解析后分解成一个个实时控制动作(在本申请中,也称“动作”),让FPGA执行对应的动作。如图1所示,ARM和FPGA通过中断控制和寄存器访问进行数据交互,包括ARM向FPGA发送任务和FPGA向ARM返回数据。
ARM向FPGA发送任务的过程包括如下步骤:
S111,ARM将任务解析成控制流。所述控制流为一串可以被FPGA执行的实时控制动作。
S112,根据协议配置对应的PL寄存器。ARM通过配置所述PL寄存器向所述FPGA传递所述控制流和所述任务对应的任务参数。
需要说明的是,PL(Programmable Logic)寄存器指的是FPGA的寄存器,在本实施例中,PL寄存器包括PL参数寄存器和PL状态寄存器,PL参数寄存器用于参数交互,PL状态寄存器用于任务的下发和接收。例如,ARM往PL控制流状态寄存器里写入开始标志,FPGA即可捕捉该寄存器的值的变化并执行该控制流,不同控制流对应着不同的PL控制流状态寄存器。如果任务伴随参数,ARM可将参数写入PL参数寄存器,并把与该PL参数寄存器对应的协议编号写入PL协议寄存器,FPGA即可根据协议编号访问对应的PL参数寄存器获取任务参数。
FPGA向ARM返回数据的过程包括如下步骤:
S121,FPGA将数据写入PL参数寄存器;
S122,FPGA向ARM发起中断;
S123,ARM根据中断指令访问所述PL参数寄存器,获取数据。
具体地,所述中断指令被FPGA提前写入PL中断寄存器中,ARM中的中断控制器通过读取PL中断寄存器获取中断指令。
具体地,所述中断指令包括协议编号,所述协议编号和PL参数寄存器是一一对应的,ARM根据协议编号获取PL参数寄存器的地址,即可访问该PL参数寄存器并读取其中的数据。
需要说明的是,本申请所述的PL参数寄存器、PL状态寄存器、PL协议寄存器等,是自定义并根据功能命名的,不同控制流和动作都对应着各自的PL状态寄存器和PL参数寄存器,ARM和FPGA通过访问寄存器可得知当前的任务信息。
相较于常用的DMA传输将数据当作一段二进制数据发送给FPGA,FPGA不知道这些数据代表的定义,必须ARM和FPGA在两边约定好对应的协议,ARM向FPGA发送数据时,ARM用协议封装好数据,然后发送给FPGA,FPGA再去解析协议;FPGA向ARM发送数据时,FPGA用协议封装好数据,然后发送给ARM,ARM再去解析协议。FPGA不擅长做协议,若是用DMA传输会导致FPGA消耗大量资源,而且FPGA程序复杂,而在本申请实施例提供的ARM和FPGA的业务交互方法中,ARM和FPGA通过中断控制和寄存器访问进行数据交互,ARM可直接配置FPGA的寄存器来发送任务,ARM和FPGA根据协议访问FPGA的寄存器进行参数交互,协议编号和寄存器是一一对应的,只要告诉ARM或FPGA对应的协议编号,就可以访问该协议编号对应的寄存器,获取对应的数据。通过这种方法,FPGA无需对ARM发来的数据进行解析,从而节省了FPGA的计算资源,简化了程序设计逻辑,解决了FPGA资源消耗大、FPGA端程序复杂的问题。此外,该交互方法分工明确,可以发挥出ARM和FPGA各自的特长:ARM善于业务交互,FPGA善于实时控制。并且,本技术方案采用中断和寄存器的交互方式,安全地触发中断,读取寄存器,避免了丢数据的情况发生。
在一个实施例中,提供了一种ARM和FPGA的业务交互方法。该实施例在上述实施例的基础上,在FPGA执行控制流完毕后,还包括以下步骤:
S201,FPGA将执行结果写入与所述控制流对应的PL参数寄存器;
S202,FPGA向ARM发起中断,所述中断的类型为控制流状态返回中断;
S203,ARM根据中断指令访问对应的PL参数寄存器,获取执行结果。
上述步骤提供了ARM把控制流执行结果返回给ARM的方法,实现了ARM和FPGA之间的业务交流。
在另一个实施例中,提供了一种ARM和FPGA的业务交互方法。在本实施例中,ARM对接服务器,将服务器下发的任务解析后分解成一个个实时控制动作,让FPGA执行对应的实时动作。如图1所示,ARM和FPGA通过中断控制和寄存器访问进行数据交互,包括ARM向FPGA发送任务和FPGA向ARM返回数据。
ARM向FPGA发送任务的过程包括如下步骤:
S111,ARM将任务解析成控制流。所述控制流为一串可以被FPGA执行的实时控制动作。
S112,根据协议配置对应的PL寄存器。ARM通过配置所述PL寄存器向所述FPGA传递所述控制流和所述任务对应的任务参数。
需要说明的是,PL(Programmable Logic)寄存器指的是FPGA的寄存器,在本实施例中,包括PL参数寄存器和PL状态寄存器,PL参数寄存器用于参数交互,PL状态寄存器用于任务的下发和接收,例如,ARM往PL控制流状态寄存器里写入开始标志,FPGA即可捕捉该寄存器的值的变化并执行该控制流,不同控制流对应着不同的PL控制流状态寄存器。如果任务伴随参数,ARM可将参数写入PL参数寄存器,并把与该PL参数寄存器对应的协议编号写入PL协议寄存器,FPGA即可根据协议编号访问对应的PL参数寄存器获取任务参数。
FPGA向ARM返回数据的过程包括如下步骤:
S121,FPGA将数据写入PL参数寄存器;
S122,FPGA向ARM发起中断;
S123,ARM根据中断指令访问所述PL参数寄存器,获取数据。
具体地,所述中断指令被FPGA提前写入PL中断寄存器中,ARM中的中断控制器通过读取PL中断寄存器获取中断指令。
具体地,所述中断指令包括协议编号,所述协议编号和PL参数寄存器是一一对应的,ARM根据协议编号获取PL参数寄存器的地址,即可访问该PL参数寄存器并读取其中的数据。
需要说明的是,本申请所述的PL中断寄存器、PL参数寄存器、PL状态寄存器、PL协议寄存器等,是技术人员自己定义并根据功能命名的,不同控制流和动作都对应着各自的PL状态寄存器和PL参数寄存器,ARM和FPGA通过访问寄存器可得知当前的任务信息。
在FPGA执行的动作需要ARM协助执行时,包括以下步骤:
S301,FPGA向所述ARM发起中断,所述中断的类型为动作中断;
S302,ARM接收并理该动作中断;
S303,ARM向PL组件状态寄存器中赋值,通知所述FPGA所述动作处理结束。然后FPGA可继续执行下一个动作。
具体地,FPGA需要ARM协助执行的动作包括:通过以太网控制外设(例如机器人和机床)、通过硬件接口(例如,DI、DO、485、232和CAN)控制外设,以及查询数据库(例如SQL数据库)获取参数。
上述步骤提供了FPGA在执行需要ARM协助的动作时与ARM的交互方法,通过上述步骤,本领域技术人员可以设计FPGA执行需要ARM协助的复杂任务。此外,通过上述步骤还可以通知ARM当前FPGA正在执行的动作,可用于实现虚拟仿真同步模拟。
在一个实施例中,提供了一种ARM和FPGA的业务交互方法。
在本实施例中,ARM对接服务器,将服务器下发的任务解析后分解成一个个动作,让FPGA执行对应的实时动作。如图1所示,ARM和FPGA通过中断控制和寄存器访问进行数据交互,包括ARM向FPGA发送任务和FPGA向ARM返回数据。
ARM向FPGA发送任务的过程包括如下步骤:
S111,ARM将任务解析成控制流,所述控制流为一串可以被FPGA执行的实时控制动作;
S112,根据协议配置对应的PL寄存器。ARM通过配置所述PL寄存器向所述FPGA传递所述控制流和所述任务对应的任务参数。
在FPGA执行控制流完毕后,还包括以下步骤:
S201,FPGA将执行结果写入与所述控制流对应的PL参数寄存器;
S202,FPGA向ARM发起中断,所述中断的类型为控制流状态返回中断;
S203,ARM根据中断指令访问对应的PL参数寄存器,获取执行结果。
其中,在ARM获取FPGA执行控制流返回的执行结果之后,ARM执行包括以下步骤:
S401,根据所述执行结果构造控制流任务编号;
S402,将所述任务控制流任务编号报告给管理服务器,然后FPGA可执行下一个任务;
S402,向PL控制流状态寄存器中赋值;ARM通过向PL控制流状态寄存器中赋值,通知FPGA控制流处理结束,例如,往PL控制流状态寄存器写入执行完成标志。
通过上述步骤,FPGA可以把控制流执行结果经ARM汇报给管理服务器。
在一个实施例中,若FPGA执行控制流完毕后有返回执行出参,所述执行结果包括所述执行出参。
通过该实施例,FPGA可以把执行出参返回给ARM。
在上述任一实施例提供的ARM和FPGA的业务交互方法的基础上,在一些实施例中,ARM从管理服务器接收所述任务和所述任务参数,通过管理服务器实现任务的统筹管理。
在一些实施例中,FPGA还从配置平台接收任务,配置平台的功能包括根据用户的配置,自动化生成对应的控制流信息。
在一个优选实施例中,提供了一种ARM和FPGA的业务交互方法。图2是ARM端的设计和功能示意图。如图2所示,ARM端程序包括业务解析模块,其功能包括:
(1)任务信息的解析和转发,包括将来自服务器的任务转发给FPGA执行:解析处理来自管理服务器和配置平台的任务信息,根据后的信息配置对应的FPGA的寄存器将任务转发给FPGA,具体地,ARM通过写入PL状态寄存器和PL参数寄存器来告知FPGA执行的任务和对应的任务参数;还包括将FPGA的执行结果转发给管理服务器:ARM读取FPGA写入PL参数寄存器中的执行结果,根据执行结果生成控制流任务编号,并把执行结果和控制流任务编号报告给管理服务器。
(2)协助FPGA执行任务,例如通过以太网控制外设、通过硬件接口控制外设,以及查询数据库获取参数。
如图2所示,本技术方案还涉及ARM的中断控制器。ARM的中断控制器用于读取PL中断控制器中的中断指令,所述中断指令可以设计成如下形式:
中断类型+协议编号+空白指令。例如,中断类型4位+协议编号12位+空白指令16位。也可以设计成其他形式,包含其他信息。
ARM和FPGA在一次执行来自管理服务器的任务中的具体交互过程包括以下步骤:
S501,ARM接收来自管理服务器的任务并将其解析成控制流;
S502,ARM往FPGA控制流执行寄存器里写入开始标志,通知FPGA执行,若任务伴随有任务参数,ARM将该任务参数写入PL参数寄存器,控制流任务的传递途径为:管理服务器->ARM->FPGA;
S503,控制流执行结束后,FPGA给ARM发送控制流状态返回中断,通知ARM控制流执行结束,若FPGA有返回执行出参,FPGA将执行出参写入控制流返回参数寄存器,写入后给ARM发送中断;
S504,ARM获取到中断指令,将控制流执行结果和控制流任务编号报告给管理服务器;
S505,在汇报结束后,ARM往控制流状态寄存器写入“执行完成--0”,通知FPGA控制流处理结束。
具体地,ARM端处理控制流状态返回中断的具体过程如图3所示,包括以下步骤:
S511,ARM轮巡处理中断指令;
S512,ARM中断控制器读取中断指令,并根据参数协议拼接指令信息;
S513,业务解析模块根据指令信息解析出控制流编号,所述控制流编号属于本申请文件所述的协议编号的一种;
S514,ARM查表获取相应的PL参数寄存器地址;
S515,ARM读取所述PL参数寄存器获取执行结果;
S516,ARM根据所述执行结果构造控制流任务编号并发送给管理服务器;
S517,ARM将处理结果写入PL控制流状态寄存器。
上述控制流由一连串的实时控制动作组成,当FPGA正在执行的动作需要ARM协助完成或FPGA需要通知ARM当前执行的动作时,还可以给ARM发送动作中断,具体过程为:
FPGA在执行控制流过程中依次给ARM发送动作中断,ARM接收处理之后往PL组件状态寄存器赋值,通知FPGA中断处理结束,然后FPGA继续处理下一个动作。
通过上述实施例提供的ARM和FPGA的业务交互方法,A RM和FPGA通过中断控制和寄存器访问进行数据交互,ARM可直接配置FPGA的寄存器来发送任务,ARM和FPGA根据协议访问FPGA的寄存器进行参数交互,一方可写一方可读,协议编号和寄存器是一一对应的,只要告诉ARM或FPGA对应的协议编号,就可以访问协议编号相对应的寄存器,获取对应的数据。通过这种方法,FPGA无需对ARM发来的数据进行解析,从而节省了FPGA的计算资源,简化了程序设计逻辑,解决了FPGA资源消耗大、FPGA端程序复杂的问题。这种交互方法分工明确,发挥出ARM和FPGA各自的特长:ARM善于业务交互,FPGA善于实时控制。并且,本技术方案采用的中断寄存器方法交互快速而且安全,快速安全地触发中断,读取寄存器,不会存在丢数据的情况。
在一个实施例中,提供了一种工控系统,包括服务器、ARM、以及FPGA,其中,ARM和FPGA交互时通过上述任一实施例所述的ARM和FPGA的业务交互方法进行交互。
例如,图2是ARM端的设计和功能示意图。如图2所示,ARM端程序包括业务解析模块,其功能包括:
(1)任务信息的解析和转发,包括将来自服务器的任务转发给FPGA执行:解析处理来自管理服务器和配置平台的任务信息,根据后的信息配置对应的FPGA的寄存器将任务转发给FPGA,具体地,ARM通过写入PL状态寄存器和PL参数寄存器来告知FPGA执行的任务和对应的任务参数;还包括将FPGA的执行结果转发给管理服务器:ARM读取FPGA写入PL参数寄存器中的执行结果,根据执行结果生成控制流任务编号,并把执行结果和控制流任务编号报告给管理服务器。
(2)协助FPGA执行任务,例如通过以太网控制外设(例如机器人和机床)、通过硬件接口(例如,DI、DO、485、232和CAN)控制外设,以及查询数据库(例如SQL数据库)获取参数。
如图2所示,本技术方案还涉及ARM的中断控制器。ARM的中断控制器用于读取PL中断控制器中的中断指令,所述中断指令可以设计成如下形式:
中断类型+协议编号。例如,中断类型4位+协议编号12位+空白指令16位。
ARM和FPGA在一次执行任务中的具体交互过程包括以下步骤:
S501,ARM接收来自服务器的任务并将其解析成控制流;
S502,ARM往FPGA控制流执行寄存器里写入开始标志,通知FPGA执行,若任务伴随有任务参数,ARM将该任务参数写入PL参数寄存器,控制流任务的传递途径为:管理服务器->ARM->FPGA;
S503,控制流执行结束后,FPGA给ARM发送控制流状态返回中断,通知ARM控制流执行结束,若FPGA有返回执行出参,FPGA将执行出参写入控制流返回参数寄存器,写入后给ARM发送中断;
S504,ARM获取到中断指令,将控制流执行结果和控制流任务编号报告给管理服务器;
S505,在汇报结束后,ARM往控制流状态寄存器写入“执行完成--0”,通知FPGA控制流处理结束。
具体地,ARM端处理控制流状态返回中断的具体过程如图3所示,包括以下步骤:
S511,ARM轮巡处理中断指令;
S512,ARM中断控制器读取中断指令,并根据参数协议拼接指令信息;
S513,业务解析模块根据指令信息解析出控制流编号,所述控制流编号属于本申请文件所述的协议编号的一种;
S514,ARM查表获取相应的PL参数寄存器地址;
S515,ARM读取所述PL参数寄存器获取执行结果;
S516,ARM根据所述执行结果构造控制流任务编号并发送给管理服务器;
S517,ARM将处理结果写入PL控制流状态寄存器。
上述控制流由一连串的实时控制动作组成,当FPGA正在执行的动作需要ARM协助完成(例如,通过以太网控制外设、通过硬件接口控制外设,以及查询数据库获取参数)或FPGA需要通知ARM当前执行的动作时,还可以给ARM发送动作中断,具体过程为:
FPGA在执行控制流过程中依次给ARM发送动作中断,ARM接收处理之后往PL组件状态寄存器赋值,通知FPGA中断处理结束,然后FPGA继续处理下一个动作。
通过上述实施例提供工控系统,通过采用本申请提供的ARM和FPGA的业务交互方法,ARM和FPGA通过中断控制和寄存器访问进行数据交互,ARM可直接配置FPGA的寄存器来发送任务,ARM和FPGA根据协议访问FPGA的寄存器进行参数交互,一方可写一方可读,协议编号和寄存器是一一对应的,只要告诉ARM或FPGA对应的协议编号,就可以访问协议编号相对应的寄存器,获取对应的数据。通过这种方法,FPGA无需对ARM发来的数据进行解析,从而节省了FPGA的计算资源,简化了程序设计逻辑,解决了FPGA资源消耗大、FPGA端程序复杂的问题。这种交互方法分工明确,发挥出ARM和FPGA各自的特长:ARM善于业务交互,FPGA善于实时控制。并且,本技术方案采用的中断寄存器方法交互快速而且安全,快速安全地触发中断,读取寄存器,不会存在丢数据的情况。
在一个实施例中,提供了一种自动化设备,包括执行装置和上述实施例所述的工控系统,所述工控系统用于控制执行装置执行任务。
本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种ARM和FPGA的业务交互方法,其特征在于,包括:
所述ARM向所述FPGA发送任务时,所述ARM将所述任务解析成控制流,通过配置对应的PL寄存器向所述FPGA传递所述控制流和所述任务对应的任务参数;
所述FPGA向所述ARM返回数据时,所述FPGA将所述数据写入PL参数寄存器,并向所述ARM发起中断,所述ARM根据中断指令访问所述PL参数寄存器,获取所述数据;
所述中断指令包括协议编号,所述协议编号和所述PL参数寄存器是一一对应的,所述ARM根据协议编号获取所述PL参数寄存器的地址。
2.根据权利要求1所述的方法,其特征在于,还包括:
在所述FPGA执行所述控制流完毕后,所述FPGA将执行结果写入与所述控制流对应的PL参数寄存器,并向所述ARM发起控制流状态返回中断;
所述ARM根据所述中断指令访问所述与所述控制流对应的PL参数寄存器,获取所述执行结果。
3.根据权利要求1所述的方法,其特征在于,所述控制流包括多个动作,所述方法还包括:
在所述FPGA需要所述ARM协助执行任一所述动作时,所述FPGA向所述ARM发起动作中断;
所述ARM接收处理所述动作中断之后,通过向PL组件状态寄存器中赋值,通知所述FPGA所述动作处理结束。
4.根据权利要求2所述的方法,其特征在于,在所述获取所述执行结果之后,包括:
所述ARM根据所述执行结果构造控制流任务编号,并将所述控制流任务编号报告给管理服务器;
所述ARM通过向PL控制流状态寄存器中赋值,通知所述FPGA控制流处理结束。
5.根据权利要求2所述的方法,其特征在于,若在所述FPGA执行所述控制流完毕后,所述FPGA有返回执行出参,所述执行结果包括所述执行出参。
6.根据权利要求3所述的方法,其特征在于,所述FPGA需要所述ARM协助执行的所述动作包括:通过以太网控制外设、通过硬件接口控制外设,以及查询数据库获取参数。
7.根据权利要求1-6任一项所述的方法,其特征在于,还包括:
所述ARM从管理服务器接收所述任务和所述任务参数。
8.根据权利要求1-6任一项所述的方法,其特征在于,还包括:
所述FPGA从配置平台接收所述任务,所述配置平台的功能包括根据用户的配置,自动化生成对应的控制流信息。
9.一种工控系统,包括服务器、ARM、以及FPGA,其特征在于,所述ARM和所述FPGA交互时通过权利要求1-8中任一项所述的ARM和FPGA的业务交互方法进行交互。
10.一种自动化设备,其特征在于,包括执行装置和权利要求9所述的工控系统;
所述工控系统用于控制所述执行装置执行任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110265270.5A CN113568332A (zh) | 2021-03-11 | 2021-03-11 | 一种arm和fpga的业务交互方法、工控系统和自动化设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110265270.5A CN113568332A (zh) | 2021-03-11 | 2021-03-11 | 一种arm和fpga的业务交互方法、工控系统和自动化设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113568332A true CN113568332A (zh) | 2021-10-29 |
Family
ID=78161296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110265270.5A Pending CN113568332A (zh) | 2021-03-11 | 2021-03-11 | 一种arm和fpga的业务交互方法、工控系统和自动化设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113568332A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213079A (zh) * | 2017-06-29 | 2019-01-15 | 深圳模德宝科技有限公司 | 一种自动化生产的控制方法及其装置 |
CN109894929A (zh) * | 2019-02-11 | 2019-06-18 | 上海贽丰机器人技术有限公司 | 一种模块化可重构柔性生产方法及系统 |
CN111142482A (zh) * | 2019-12-10 | 2020-05-12 | 深圳市铭华航电工艺技术有限公司 | 生产资源管理方法、装置、设备及可读介质 |
CN111791232A (zh) * | 2020-06-03 | 2020-10-20 | 中南民族大学 | 一种基于时间硬同步的机器人底盘控制系统及方法 |
CN111823229A (zh) * | 2020-06-17 | 2020-10-27 | 慧灵科技(深圳)有限公司 | 机械臂控制流程生成方法、装置、设备及存储介质 |
-
2021
- 2021-03-11 CN CN202110265270.5A patent/CN113568332A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213079A (zh) * | 2017-06-29 | 2019-01-15 | 深圳模德宝科技有限公司 | 一种自动化生产的控制方法及其装置 |
CN109894929A (zh) * | 2019-02-11 | 2019-06-18 | 上海贽丰机器人技术有限公司 | 一种模块化可重构柔性生产方法及系统 |
CN111142482A (zh) * | 2019-12-10 | 2020-05-12 | 深圳市铭华航电工艺技术有限公司 | 生产资源管理方法、装置、设备及可读介质 |
CN111791232A (zh) * | 2020-06-03 | 2020-10-20 | 中南民族大学 | 一种基于时间硬同步的机器人底盘控制系统及方法 |
CN111823229A (zh) * | 2020-06-17 | 2020-10-27 | 慧灵科技(深圳)有限公司 | 机械臂控制流程生成方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9607116B2 (en) | Distributed hardware device simulation | |
RU2597556C2 (ru) | Структура компьютерного кластера для выполнения вычислительных задач и способ функционирования указанного кластера | |
EP3092567B1 (en) | System and method for isolating i/o execution via compiler and os support | |
US8689228B2 (en) | Identifying data communications algorithms of all other tasks in a single collective operation in a distributed processing system | |
CN109062834B (zh) | 基于dma的spi通讯方法、电子设备、存储介质、装置 | |
CN111176801A (zh) | 一种多进程管理方法、装置、设备及存储介质 | |
CN112363972A (zh) | 支持多cpu间通信的电子设备及方法 | |
CN109284074A (zh) | 一种基于多核系统的打印驱动方法、多核系统及终端设备 | |
CN113568332A (zh) | 一种arm和fpga的业务交互方法、工控系统和自动化设备 | |
CN111079909B (zh) | 运算方法、系统及相关产品 | |
CN109992539A (zh) | 双主机协同工作装置 | |
Wen-zheng et al. | Design and implementation of CNC machine remote monitoring and controlling system based on embedded internet | |
CN115344370A (zh) | 任务调度方法、装置、设备及存储介质 | |
US20130103926A1 (en) | Establishing a data communications connection between a lightweight kernel in a compute node of a parallel computer and an input-output ('i/o') node of the parallel computer | |
KR101102930B1 (ko) | 로봇용 소프트웨어 컴포넌트 장치 및 이를 이용한 쓰레드 처리 방법 | |
CN110311977B (zh) | 一种基于云计算的形式验证平台及其方法 | |
Visconti et al. | Operation principle, advanced procedures and validation of a new Flex-SPI communication Protocol for smart IoT devices | |
CN111079916B (zh) | 运算方法、系统及相关产品 | |
CN111078291A (zh) | 运算方法、系统及相关产品 | |
CN111078281B (zh) | 运算方法、系统及相关产品 | |
CN111079911B (zh) | 运算方法、系统及相关产品 | |
CN108694571A (zh) | 一种基于多进程的业务处理方法及装置 | |
CN111079914B (zh) | 运算方法、系统及相关产品 | |
CN111079913B (zh) | 运算方法、装置及相关产品 | |
CN111078280B (zh) | 运算方法、装置及相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20211029 |