本申请涉及工业自动化的数据采集技术领域,特别涉及一种profibus-dp总线控制器的数据处理方法、fpga装置、数据总线控制器以及计算机可读存储介质。
背景技术:
在工业自动化领域中需要不断对数据进行采集,获取被控制物的状态,以便更好的进行控制操作。一般的,在采集数据的过程中通常需要采集大量的数据,采集很多数据源。在主控系统中,往往需要采集的数据源多达上千个,每个数据源接收发送的数据量往往在多达上万字节每秒。
现有技术中,通常采用profibus-dp总线的方式采集数据,在数据处理方面通过处理器对数据进行相应的处理后得到需要的结果。其中,profibus总线(processfieldbus)是一种具有广泛应用范围的、开放的数字通讯系统总线,profibus-dp的dp即decentralizedperiphery。它具有高速低成本,用于设备级控制系统与分散式i/o的通信。
但是,在自动化领域中整个工作周期通常只有毫秒级别,数据处理速度的要求非常高,并且通过profibus-dp总线系统采集的数据,数据量非常大。处理器有可能无法完成数据处理的要求,造成数据采集不及时,丢包率上升,对数据采集的实时性和功能性方面造成影响。
因此,如何提高数据处理的处理速度是本领技术人员关注的重点问题。
技术实现要素:
本申请的目的是提供一种profibus-dp总线控制器的数据处理方法、fpga装置、数据总线控制器以及计算机可读存储介质,通过fpga对数据进行预处理,减少了处理器的执行环节,提高了数据处理的速度。
为解决上述技术问题,本申请提供一种profibus-dp总线控制器的数据处理方法,包括:
fpga将profibus-dp总线采集的串行信号转换为多个并行数据帧;
根据每个所述并行数据帧的数据类型对对应的并行数据帧进行数据预处理,得到多个预处理帧。
对每个所述预处理帧进行协议匹配处理,将得到的协议匹配数据帧发送至处理器,以便完成数据处理操作。
可选的,根据每个所述并行数据帧的数据类型对对应的并行数据帧进行数据预处理,得到多个预处理帧,包括:
对每个所述并行数据帧进行帧类型解析,得到每个并行数据帧的数据帧类型;
根据所有所述数据帧类型对对应的并行数据帧进行数据预处理,得到多个预处理帧。
可选的,根据所有所述数据帧类型对对应的并行数据帧进行数据预处理,得到多个预处理帧,包括:
根据所有所述数据帧类型对对应的并行数据帧进行关键帧提取处理,得到多个预处理帧。
可选的,根据所有所述数据帧类型对对应的并行数据帧进行关键帧提取处理,得到多个预处理帧,包括:
采用关键帧分割算法根据所有所述数据帧类型对对应的并行数据帧进行关键帧提取处理,得到多个预处理帧。
可选的,还包括:
当得到协议匹配数据帧时,将所述协议匹配数据帧存放在所述预处理帧的功能对应的缓存区中,以便从同一个缓存区向处理器发送同一功能的协议匹配数据帧。
可选的,对每个所述处理数据进行协议匹配处理,将得到的多个协议匹配数据发送至处理器,以便完成数据处理操作,包括:
对每个所述处理数据进行协议匹配处理,得到多个协议匹配数据帧;
按照所述处理器的处理性能占用率将所述协议匹配数据帧发送给所述处理器。
本申请还提供一种fpga装置,包括:
串并转换模块,用于将profibus-dp总线采集的串行信号转换为多个并行数据帧;
预处理模块,用于根据每个所述并行数据帧的数据类型对对应的并行数据帧进行数据预处理,得到多个预处理帧。
数据发送模块,用于对每个所述预处理帧进行协议匹配处理,将得到的协议匹配数据帧发送至处理器,以便完成数据处理操作。
可选的,所述预处理模块,包括:
数据帧类型获取单元,用于对每个所述并行数据帧进行帧类型解析,得到每个并行数据帧的数据帧类型;
数据帧预处理单元,用于根据所有所述数据帧类型对对应的并行数据帧进行数据预处理,得到多个预处理帧。
本申请还提供一种数据总线控制器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的数据处理方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的数据处理方法的步骤。
本申请所提供的一种profibus-dp总线控制器的数据处理方法,包括:fpga将profibus-dp总线采集的串行信号转换为多个并行数据帧;根据每个所述并行数据帧的数据类型对对应的并行数据帧进行数据预处理,得到多个预处理帧。对每个所述预处理帧进行协议匹配处理,将得到的协议匹配数据帧发送至处理器,以便完成数据处理操作。
通过fpga将数据进行串并信号转换,使得处理器可以从处理串行信号到处理并行信号,提高处理速度,并且对并行数据帧进行预处理,也就是在fpga中将数据提前进行报文解析等处理,减少处理器对数据的处理环节,将对数据进行处理的工作一部分分摊在fpga中,在处理器中对于一个数据帧的处理时长降低,也就是在相同时长内提高了数据处理的速度,进而可以对数据及时进行处理,减少数据丢包的概率,提高总线结构的实时性,并且保持总线结构的功能性。
本申请还提供一种profibus-dp总线控制器的数据处理方法、fpga装置、数据总线控制器以及计算机可读存储介质,具有以上有益效果,在此不做赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种profibus-dp总线控制器的数据处理方法的流程图;
图2为本申请实施例所提供的一种数据处理芯片的结构示意图;
图3为本申请实施例所提供的一种fpga装置的结构示意图。
具体实施方式
本申请的核心是提供一种profibus-dp总线控制器的数据处理方法、fpga装置、数据总线控制器以及计算机可读存储介质,通过fpga对数据进行预处理,减少了处理器的执行环节,提高了数据处理的速度。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
通常将profibus-dp总线的数据传输给处理器,以便通过处理器对数据进行处理。现有技术中采集点进行数据采集后通过profibus-dp总线将数据传输给fpga,fpga对数据进行接收后,对数据进行数据协议适配后,将协议适配的数据发送给处理器,以便处理器在后台对数据进行处理。但是,在面对大量数据时,处理器会由于计算周期等因素的影响,造成数据处理的不及时,数据遗失率上升,对总线结构的实时性和功能性造成严重的影响。
因此,本申请实施例提供一种profibus-dp总线控制器的数据处理方法,通过fpga将数据进行串并信号转换,使得处理器可以从处理串行信号到处理并行信号,提高处理速度,并且对并行数据帧进行预处理,也就是在fpga中将数据提前进行报文解析等处理,减少处理器对数据的处理环节,将对数据进行处理的工作一部分分摊在fpga中,在处理器中对于一个数据帧的处理时长降低,也就是在相同时长内提高了数据处理的速度,进而可以对数据及时进行处理,减少数据丢包的概率,提高总线结构的实时性,并且保持总线结构的功能性。
请参考图1,图1为本申请实施例所提供的一种profibus-dp总线控制器的数据处理方法的流程图。
该方法可以包括:
s101,fpga将profibus-dp总线采集的串行信号转换为多个并行数据帧;
本步骤旨在通过fpga将profibus-dp总线采集的串行信号转换为多个并行数据帧。
其中,fpga(field-programmablegatearray)为现场可编程门阵列。其主要以并行运算为主,以硬件描述语言来实现。对数据处理有较高的处理速度。
本步骤中为了在fpga对数据进行处理,并且通过处理器处理并行数据,将总线采集的串行信号转换为并行数据帧,也就是将串行信号转换为并行数据,并且以帧为单位将并行数据进行分割,后续步骤中也就是以帧为单位对数据进行处理。
具体的,本步骤中对串行信号进行转换方法可以采用现有技术提供的任意一种串并转换方法,在此不做具体限定。
s102,根据每个并行数据帧的数据类型对对应的并行数据帧进行数据预处理,得到多个预处理帧。
在步骤s101的基础上,本步骤旨在对并行数据帧进行预处理,以便将处理器执行的数据处理环节在fpga中进行操作,将数据处理的过程分摊在fpga中,降低对于一个数据帧在处理器中的处理时间,相当于加快处理器的处理速度。
并且,由于每个并行数据帧的数据类型不同所需要进行的预处理也不相同,因此需要根据并行数据帧的数据类型对对应的并行数据帧进行相应的预处理。进一步的,本步骤对所有接收到的并行数据帧都进行预处理,得到多个预处理帧。
其中,预处理可以对并行数据帧进行数据报文解析处理,也可以是关键数据提取处理,还可以是无效数据剔除处理。本步骤中的预处理具体可以根据处理器中进行何种预处理,而选择在此进行何种预处理,主要就是减少处理器本应该进行的步骤,提高处理器的处理效率。因此,也还可以很据处理器中对数据进行处理的步骤,选择可以在fpga中进行的处理步骤,作为预处理在fpga中实施,尽可能的减少处理器中的处理步骤或环节。
s103,对每个预处理帧进行协议匹配处理,将得到的协议匹配数据帧发送至处理器,以便完成数据处理操作。
在步骤s102的基础上,本步骤旨在对预处理帧进行协议匹配处理,得到协议匹配后的数据帧,发送至处理器。以使处理器所接收到的数据符合处理器的协议,达到数据互通的情况。
可选的,本实施例中的步骤s102还可以包括:
步骤一、对每个并行数据帧进行帧类型解析,得到每个并行数据帧的数据帧类型;
步骤一、根据所有数据帧类型对对应的并行数据帧进行数据预处理,得到多个预处理帧。
本可选方案主要是先对并行数据帧进行帧类型解析,确定每个并行数据帧的数据帧类型,然后根据该数据帧类型对并行数据帧进行数据预处理,得到多个预处理帧。本可选方案主要通过并行数据帧的数据帧类型进行数据预处理。在其他方案中可以通过数据帧的长度选择执行预处理,也可以通过数据帧的报文数据执行预处理,因此对并行数据帧进行预处理的方式并不唯一,不做具体限定。
可选的,上一可选方案中的步骤一可以包括:
根据所有数据帧类型对对应的并行数据帧进行关键帧提取处理,得到多个预处理帧。
本可选方案中主要是对并行数据帧进行关键帧提取处理,提取每个并行数据中的关键信息,剔除无用的帧数据。也就是在帧结构中除了用于计算的帧数据,还包括一些表示结构性的帧数据,后者不是处理器主要进行计算的数据,因此如果在处理器中直接对并行数据帧进行处理,同样也需要将这些结构性帧数据剔除,保留关键帧。所以在本可选方案中对并行数据帧进行了处理,处理器就可以不用进行处理,提高了处理器的处理速度。
可选的,上一可选方案可以包括:
采用关键帧分割算法根据所有数据帧类型对对应的并行数据帧进行关键帧提取处理,得到多个预处理帧。
本可选方案是进一步的对关键帧提取处理做限定,本可选方案中主要是采用关键帧分割算法进行关键帧提取处理。
可选的,本实施例还可以包括:
当得到协议匹配数据帧时,将协议匹配数据帧存放在预处理帧的功能对应的缓存区中,以便从同一个缓存区向处理器发送同一功能的协议匹配数据帧。
本可选方案主要是将每个并行数据帧进行处理后的协议匹配数据帧,保存在缓存区中向处理器进行发送,进一步为了提高数据的读取速度,将协议匹配数据帧根据对应的预处理帧的不同功能,再做一次分类,也就是按照数据的业务功能进行分类,分别存放在对应的缓存区中。当处理器对数据进行处理时,一般是相同的业务功能的数据在一个时间内集中处理,因此当协议匹配数据帧存在对应的缓存区时,处理器就可以从同一个缓存区中获取大量的相同功能的协议匹配数据帧,减少了在缓存区之间切换的次数,提高了数据读取的效率。
可选的,本实施例中的s103可以包括:
步骤一、对每个处理数据进行协议匹配处理,得到多个协议匹配数据帧;
步骤二、按照处理器的处理性能占用率将协议匹配数据帧发送给处理器。
本可选方案主要是限定了多个协议匹配数据帧的发送方式,也就是按照处理器的处理性能占用率将协议匹配数据帧发送给处理器,使得根据处理器的处理性能将数据动态发送至处理器,例如,当处理器的处理性能占用率较高时,处理器有可能没有办法及时的处理数据,因此降低数据发送量。当处理性能占用率较低时,处理器处于较闲的状态,因此可以将更多的数据发送至处理器,避免处理器的性能浪费,提高性能利用率。以上方式可以契合处理的运算状态,将处理器保持在较高的运行速度,加速处理。
综上,本实施例通过fpga将数据进行串并信号转换,使得处理器可以从处理串行信号到处理并行信号,提高处理速度,并且对并行数据帧进行预处理,也就是在fpga中将数据提前进行报文解析等处理,减少处理器对数据的处理环节,将对数据进行处理的工作一部分分摊在fpga中,在处理器中对于一个数据帧的处理时长降低,也就是在相同时长内提高了数据处理的速度,进而可以对数据及时进行处理,减少数据丢包的概率,提高总线结构的实时性,并且保持总线结构的功能性。
基于上一实施例,本申请还提供一种处理器芯片,可以实施上一实施例的方法。
请参考图2,图2为本申请实施例所提供的一种数据处理芯片的结构示意图。
该芯片包括:rs485(接口名称)接口,数据总线控制器,数据寄存器,fpga数据接口以及arm(advancedriscmachines处理器)数据接口,其中rs485接口为外设物理接口,其余模块位于zynq芯片(可扩展处理平台zynq系列,包含pl(progarmmablelogic)与ps(processingsystem)两部分,其中,pl为fpga部分,ps为arm部分)芯片上,数据总线控制器、数据寄存器及fpga数据接口位于pl侧,arm数据接口位于ps侧,作为处理器的数据接口进行数据交换。
其中,数据总线控制器实现profibus-dp总线接口控制,实时数据分析、数据加速算法完成以及协议适配等功能,也就是上一实施例所提供的数据处理方法。
数据寄存器实现数据缓存功能。
fpga数据接口实现了zynq芯片上通信axi总线pl侧接口功能。
arm数据接口实现了zynq芯片上通信axi总线ps侧接口功能。
其中,axi(advancedextensibleinterface)是一种总线协议,该协议是arm公司提出的amba(advancedmicrocontrollerbusarchitecture)3.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。
下面对本申请实施例提供的一种fpga装置进行介绍,下文描述的一种fpga装置与上文描述的一种profibus-dp总线控制器的数据处理方法可相互对应参照。
请参考图3,图3为本申请实施例所提供的一种fpga装置的结构示意图。
该装置可以包括:
串并转换模块100,用于将profibus-dp总线采集的串行信号转换为多个并行数据帧;
预处理模块200,用于根据每个并行数据帧的数据类型对对应的并行数据帧进行数据预处理,得到多个预处理帧。
数据发送模块300,用于对每个预处理帧进行协议匹配处理,将得到的协议匹配数据帧发送至处理器,以便完成数据处理操作。
可选的,该预处理模块200,可以包括:
数据帧类型获取单元,用于对每个并行数据帧进行帧类型解析,得到每个并行数据帧的数据帧类型;
数据帧预处理单元,用于根据所有数据帧类型对对应的并行数据帧进行数据预处理,得到多个预处理帧。
本申请实施例还提供一种数据总线控制器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如以上实施例所述的数据处理方法的步骤。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的数据处理方法的步骤。
该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种profibus-dp总线控制器的数据处理方法、fpga装置、数据总线控制器以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。