一种事件信息传输方法、装置、设备及存储介质与流程

文档序号:19634654发布日期:2020-01-07 11:52阅读:149来源:国知局
一种事件信息传输方法、装置、设备及存储介质与流程
本发明涉及事件传输领域,更具体地说,涉及一种基于fpga的事件信息传输方法、装置、设备及存储介质。
背景技术
:fpga(field-programmablegatearray)为现场可编程门阵列,其具有速度快、效率高、灵活稳定、集成度高等优点,在硬件逻辑验证与设计中是十分必要的。目前,外部设备与fpga设备通过外设总线相连,在传输事件信息时,外部设备需要将事件信息通过外设总线传输至fpga设备的寄存器,然后cpu(centralprocessingunit,中央处理器)通过axi(advancedextensibleinterface,总线协议)或者ahb(advancedhigh-performancebus,总线协议)读写的方式从寄存器中获取对应的事件信息。可以看出,目前这种传输事件信息的方式,占用外设总线时间过长,如遇到事件频发的情况,容易造成总线堵塞;并且,外部设备与fpga设备的板间距离较长,不宜拓展线束。因此,如何在事件频发的情况下,避免出现总线堵塞情况,节省硬件资源是本领域技术人员需要解决的问题。技术实现要素:本发明的目的在于提供一种基于fpga的事件信息传输方法、装置、设备及存储介质,以实现对事件信息的传输,节省硬件资源,避免出现总线堵塞情况。为实现上述目的,本发明提供的一种基于fpga的事件信息传输方法,包括:接收外部设备发送的数据包;解析所述数据包内的数据组,根据所述数据组的标识信息确定索引表;利用所述数据组与所述索引表之间的对应关系,确定与所述数据组对应的事件信息;将所述事件信息映射至内存,以便cpu从所述内存获取所述事件信息。其中,所述接收外部设备发送的数据包,包括:接收外部设备发送的数据包的标头信息;对所述标头信息进行解析,确定所述数据包内数据组的数量信息;根据所述数量信息,依次接收所述数据包的每个数据组。其中,所述解析所述数据包内的数据组,根据所述数据组的标识信息确定索引表,包括:对接收的数据组进行解析,确定所述数据组的标识信息;利用预先设定的数据组的标识信息与事件类型之间的对应关系,确定与所述数据组对应的事件类型;将与所述事件类型对应的索引表作为与所述数据组对应的索引表。其中,利用所述数据组与所述索引表之间的对应关系,确定与所述数据组对应的事件信息,包括:解析所述数据组的目标索引信息及目标数据信息;根据预先设定的索引信息与所述数据组对应的索引表之间的对应关系,确定与所述目标索引信息对应的目标索引表;利用预先设定的数据信息与索引表之间的对应关系,从所述目标索引表中确定与所述目标数据信息对应的数据表,将所述数据表作为所述事件信息。其中,所述将所述事件信息映射至内存,以便cpu获取所述事件信息,包括:对所述事件信息进行缓存后映射至内存,以便cpu从所述内存获取所述事件信息。为实现上述目的,本发明进一步提供一种基于fpga的事件信息传输装置,包括:接收模块,用于接收外部设备发送的数据包;解析模块,用于解析所述数据包内的数据组,根据所述数据组的标识信息确定索引表;事件信息确定模块,用于利用所述数据组与所述索引表之间的对应关系,确定与所述数据组对应的事件信息;事件信息映射模块,用于将所述事件信息映射至内存,以便cpu从所述内存获取所述事件信息。其中,所述接收模块,包括:第一接收单元,用于接收外部设备发送的数据包的标头信息;第一解析单元,用于对所述标头信息进行解析,确定所述数据包内数据组的数量信息;第二接收模块,用于根据所述数量信息,依次接收所述数据包的每个数据组。其中,所述解析模块包括:第二解析单元,用于对接收的数据组进行解析,确定所述数据组的标识信息;事件类型确定单元,用于利用预先设定的数据组的标识信息与事件类型之间的对应关系,确定与所述数据组对应的事件类型;索引表确定单元,用于将与所述事件类型对应的索引表作为与所述数据组对应的索引表。为实现上述目的,本发明进一步提供一种基于fpga的事件信息传输设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述事件信息传输方法的步骤。为实现上述目的,本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述事件信息传输方法的步骤。通过以上方案可知,本发明实施例提供的一种基于fpga的事件信息传输方法,包括:接收外部设备发送的数据包;解析数据包内的数据组,根据数据组的标识信息确定索引表;利用数据组与索引表之间的对应关系,确定与数据组对应的事件信息;将事件信息映射至内存,以便cpu从内存获取事件信息。可以看出,在本申请中,在传输事件信息时,只需要根据数据包的标识信息以及数据包内数据组与索引表之间的对应关系,便可解析出外部设备发送的事件信息,这种通过虚拟通道传输事件的方式,节省了硬件资源,在事件频发的情况下,不需要进行额外的布线,从而快速实现的事件信息的传输;本发明还公开了一种基于fpga的事件信息传输装置、设备及存储介质,同样能实现上述技术效果。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例公开的一种基于fpga的事件信息传输方法流程示意图;图2为本发明实施例公开的数据包格式示意图;图3为本发明实施例公开的另一种基于fpga的事件信息传输方法流程示意图;图4为本发明实施例公开的一种基于fpga的事件信息传输方法实现原理图;图5为本发明实施例公开的一种整体工作流程示意图;图6为本发明实施例公开的一种基于fpga的事件信息传输装置结构示意图;图7为本发明实施例公开的一种基于fpga的事件信息传输设备结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。目前,由于外部设备与fpga设备通过外设总线相连,在传输事件信息时,外部设备需要将事件信息通过外设总线传输至fpga设备的寄存器,但是在传输事件过多时,便需要设置较多的寄存器;在硬件channel过多时,布线会比较复杂,容易造成pin间延时,在事件不多时,由于channel数量过多,又会出现某个channel长时间处于空闲状态的现象,硬件使用效率不高,硬件资源浪费严重;并且,这种采用硬件channel传输事件信息的方式,能够添加的channel数量有限,在事件频发时,易造成总线堵塞;中断事件采用硬件pin接的方式,还会限制传输中断事件的数量。因此,在本发明公开了一种基于fpga的事件信息传输方法、装置、设备及存储介质;本方案中,提出了在spi(串行外设接口,serialperipheralinterface)基础上拓展虚拟通道的办法,通过verilog硬件描述语言实现数据流控制逻辑,这种通过虚拟通道对事件信息传输的方式,能节省硬件资源,避免出现总线堵塞情况。本发明实施例公开一种基于fpga的事件信息传输方法。参见图1,为本申请实施例提供的一种基于fpga的事件信息传输方法该传输流程示意图,该方法具体包括:s101、接收外部设备发送的数据包;在本申请中,该外部设备可以是电源管理模块、cpu监控模块等等,因此本申请接收到外部设备发送的数据包,可以用来传输acpi(advancedconfigurationandpowermanagementinterface,高级配置和电源管理接口),bios(basicinputoutputsystem,基本输入输出系统),cpu等状态信息,通过上层软件便可查看传输的各项状态信息。需要说明的是,外部设备发送的数据包在spi的基础上设置了虚拟通道协议,参见图2,为本申请提供的数据包格式示意图;通过图2可以看出,该数据包vm_packet共有0~127groups,也就是说,该数据包可有128个数据组group。参见表1,为本申请提供的虚拟通道索引index事件定义表;通过图2和表1可以看出,数据包的标头信息vw_header共8位,用来表示该数据包内的group数量,确定该数据包的group数量后,便可依次接收每个group数量;而对于group来说,均具有其对应的标识信息,如:图2中的vw_group0的标识信息id为0,两个vw_group1的标识信息id均为1,vw_group2的标识信息id为2,vw_group3的标识信息id为3。表1s102、解析数据包内的数据组,根据数据组的标识信息确定索引表;在本申请中,group的标识信息与不同类型的事件信息的索引表相对应,如表1所示,group标识信息为0~1,则对应的事件为中断事件interruptevent,group标识信息为2~7,则对应的事件为系统事件systemevent,group标识信息为8~63,则对应的事件为通用i/o扩展器事件generalpurposei/oexpander,group标识信息为64~127,则对应的事件为保留事件reserved。因此在本申请中,接收到外部设备发送的数据包后,需要对数据包内的每个数据组进行解析,确定每个数据组的标识信息,通过该标识信息确定与该数据组对应的索引表,以便通过该索引表确定查找对应的事件信息。s103、利用数据组与索引表之间的对应关系,确定与数据组对应的事件信息;s104、将事件信息映射至内存,以便cpu从内存获取所述事件信息。需要说明的是,对于每个group来说,均包括两部分,索引信息index和数据信息data,index共8位(15:8),data共8位(7:0)。由于每种事件类型的索引表的数量不止一个,因此,本申请中的索引信息用来确定该group所使用的索引表,通过索引信息确定索引表后,便可以基于该索引表及数据信息查找对应的事件信息。因此在本申请中,通过数据组的标识信息查找到对应的若干个索引表后,需要根据该数据组与该若干个索引表之间的对应关系,生成与该数据组对应的事件信息。可以理解的是,本申请中的各个索引表、各个索引表与标识信息之间的对应关系、数据组与索引表之间的对应关系,均可进行预先配置,在此并不具体限定。综上可以看出,本申请通过采用事件+内存映射这种事件传输模式,替代原有的硬件模式,与原有模式模式相比,不需要将事件信息存储至寄存器,让cpu通过总线获取,只需要对接收的数据包进行解析后生成对应的事件信息,并将相应的事件信息存储至内存mem(memory)后,以供cpu获取;可以看出,本申请提供的这种方式,传输速度快,占用硬件pin少,解决了中断数量限制的问题,还不需要过多的布线,方便cpu通过事件信息获取详细的外设运行状态,并通过上层软件及时查看获取的外设运行信息;其次,本申请采用虚拟通道,未多占用实际硬件channel,节省了硬件资源,提高了channel使用效率。基于上述实施例,在本实施例公开了一具体的事件信息传输方法;参见图3,为本申请提供的另一种基于fpga的事件信息传输方法流程示意图,该方法包括:s201、接收外部设备发送的数据包的标头信息,对标头信息进行解析,确定数据包内数据组的数量信息,根据数量信息依次接收数据包的每个数据组;需要说明的是,数据包的标头信息中记载了group的数量信息,因此,对该标头信息解析获得该数量信息之后,便可根据该数量信息依次接收该数据包的每个数据组;可以理解的是,本申请接收数据组是一个持续性的操作,在接收数据组的同时,可继续对已接收的数据组执行s202-s204的步骤,也就是说,本申请在接收第二个数据组的同时,可对已接收的第一个数据组进行解析,通过s202-s204的步骤确定与第一个数据组对应的事件信息,并存储至内存,以便cpu及时获取相应的事件信息。s202、对接收的数据组进行解析,确定数据组的标识信息;利用预先设定的数据组的标识信息与事件类型之间的对应关系,确定与数据组对应的事件类型;将与事件类型对应的索引表作为与数据组对应的索引表;在本申请中,对于接收的每个数据组均具有对应的标识信息,该标识信息与属于同一事件类型的索引表具有对应关系,如通过表1可以看出,标识信息为0~1的数据组与中断事件具有对应关系,标识信息为2~7的数据组与系统事件具有对应关系。因此本申请对数据组解析确定标识信息后,便可根据该对应关系,确定与该数据组对应的事件类型,与该事件类型对应的索引表便是与该数据组对应的索引表,该索引表的数量可以为1个或者多个,可根据预先设定的对应关系来确定。s203、解析数据组的目标索引信息及目标数据信息;根据预先设定的索引信息与数据组对应的索引表之间的对应关系,确定与目标索引信息对应的目标索引表;利用预先设定的数据信息与索引表之间的对应关系,从目标索引表中确定与目标数据信息对应的数据表,将数据表作为事件信息。可以理解的是,对于每个数据组均包括两部分:索引信息及数据信息,在本申请中,将需要处理的索引信息称为目标索引信息,将需要处理的数据信息称为目标数据信息;在s202中根据标识信息确定的索引表的数量为多个,因此需要从多个索引表中确定待使用的目标索引表。因此在本申请中,需要根据预先设定的索引信息与数据组对应的索引表之间的对应关系,来确定对应的目标索引表。参见表2,为本申请提供的一种索引表;该索引表的标识信息group为2,索引信息index为1。表2进一步,目标索引表确定后,便需要利用数据信息与索引表之间的对应关系,从目标索引表中确定与目标数据信息对应的数据表。以表2所示的目标索引表为例来说,若数据信息的8为均为1,则对于第0位,由于第0位的值为1,则对应s0的事件信息为active,同样的,第1~3位中,若对应的值为1,则对应的事件信息分别为s1active、s2active、s3active,第4~7位中,若对应的值为1,则对应的事件信息分别为s0valid、s1valid、s2valid、s3valid,那么最终生成的与目标数据信息对应的数据表如表3所示;该数据表便为与数据组对应的事件信息。可以看出,本申请中的数据包的一个数据组可传输128个数据组,而对于每个数据组便可传输8个事件信息,因此,本申请提供的这种传输方式,所传输的事件数量多,就算遇到事件频发的情况,也可快速的传输,不会出现堵塞现象。表2s0actives1actives2actives3actives0valids1valids2valids3valids204、对事件信息进行缓存后映射至内存,以便cpu从内存获取事件信息。在本申请中,所有存储至内存的事件信息,均需要先存储至缓存器fifo(firstinputfirstoutput)进行缓存之后,再存储至内存,如果内存中事件丢失,则可从缓存中获取,从而避免造成内存的读写拥挤及数据丢失。参见图4,为本申请实施例提供的一种基于fpga的事件信息传输方法实现原理图;通过图4可以看出,多个外部设备与fpga设备相连,fpga设备与内存相连、内存与cpu相连。对于该fpga设备来说,从内部逻辑实现来划分,主要包括以下功能模块:事件配置模块,该事件配置模块主要与总线接口的寄存器读写模块相连,用来对寄存器内存储的事件进行配置,配置信息主要包括如表1所述的信息,例如:数据组的标识信息与索引表的对应关系、数据组内索引信息及数据信息与索引表的对应关系等等。通过该模块,可以对任意配置信息进行修改。虚拟通道接收模块,该模块与外部设备相连,用来接收外部设备发送的数据包。需要说明的是,本申请是在原有的spi协议上拓展的虚拟通道传输方法,因此,外部设备发送的数据,首先需要经过原有spi协议解析后,在发送至该虚拟通道接收模块,该虚拟通道接收模块包括一个8x16的fifo及移位寄存器shiftregister,该寄存器移位接收数据,与原有spi接收数据类似。协议解析模块,用于根据图2的数据包格式,对接收到的数据包进行协议解析,得到数据包内的各个数据组group。目录解析模块,用于根据索引信息确定数据组对应的索引表,根据该索引表解析数据信息中各个数据的意义,从而得到事件信息。虚拟通道数据缓存模块,用来将事件信息缓存至fifo,避免造成mem的读写拥挤及数据丢失。需要说明的是,在对寄存器内各个bit进行定义后,需上电配置高低电平有效,配置事件位使能,平台特有信息配置;在使能后,虚拟通道处于通信状态,可以正常接收数据;参见图5,为本申请提供的一种整体工作流程示意图;通过图5可以看出,寄存器配置后,虚拟通道接收数据包,根据header确定接收数量,开始接收后,将逐个接收数据组,得到索引信息index和数据信息data,接收的同时并解析,根据解析得到index索引找到的索引表,解析data,确定index表的配置,然后根据索引表将数据表映射到mem中,cpu可直接从mem获取对应的事件内容。综上可以看出,本申请实现了串行外设虚拟通道协议模块设计,应用于risc-v预研项目中,基于xilinxvu440fpga平台,实现了连接多种外设,并通过虚拟通道建立映射,将事件中断和gpio状态等信息高效的传送给cpu。这种通过虚拟通道传输对事件信息传输的方式,能节省硬件资源,实现快速高线的传输事件信息,避免出现总线堵塞情况。下面对本发明实施例提供的信息传输装置进行介绍,下文描述的信息传输装置与上文描述的信息传输方法可以相互参照。参见图6,本发明实施例提供的一种基于fpga的事件信息传输装置,包括:接收模块,用于接收外部设备发送的数据包;解析模块,用于解析所述数据包内的数据组,根据所述数据组的标识信息确定索引表;事件信息确定模块,用于利用所述数据组与所述索引表之间的对应关系,确定与所述数据组对应的事件信息;事件信息映射模块,用于将所述事件信息映射至内存,以便cpu从所述内存获取所述事件信息。其中,所述接收模块,包括:第一接收单元,用于接收外部设备发送的数据包的标头信息;第一解析单元,用于对所述标头信息进行解析,确定所述数据包内数据组的数量信息;第二接收模块,用于根据所述数量信息,依次接收所述数据包的每个数据组。其中,所述解析模块包括:第二解析单元,用于对接收的数据组进行解析,确定所述数据组的标识信息;事件类型确定单元,用于利用预先设定的数据组的标识信息与事件类型之间的对应关系,确定与所述数据组对应的事件类型;索引表确定单元,用于将与所述事件类型对应的索引表作为与所述数据组对应的索引表。其中,事件信息确定模块包括:第三解析单元,用于解析所述数据组的目标索引信息及目标数据信息;目标索引表确定单元,用于根据预先设定的索引信息与所述数据组对应的索引表之间的对应关系,确定与所述目标索引信息对应的目标索引表;事件信息确定单元,用于利用预先设定的数据信息与索引表之间的对应关系,从所述目标索引表中确定与所述目标数据信息对应的数据表,将所述数据表作为所述事件信息。其中,所述事件信息映射模块具体用于:对所述事件信息进行缓存后映射至内存,以便cpu从所述内存获取所述事件信息。参见图7,为本发明实施例还公开了一种基于fpga的事件信息传输设备结构示意图;该设备包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上述任意方法实施例所述的事件信息传输方法的步骤。在本实施例中,设备可以是fpga设备。该设备可以包括存储器11、处理器12和总线13。其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是设备的内部存储单元,例如该设备的硬盘。存储器11在另一些实施例中也可以是设备的外部存储设备,例如设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器11还可以既包括设备的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于设备的应用软件及各类数据,例如执行事件信息传输方法的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。处理器12在一些实施例中可以是一中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行事件信息传输方法的代码等。该总线13可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。进一步地,设备还可以包括网络接口14,网络接口14可选的可以包括有线接口和/或无线接口(如wi-fi接口、蓝牙接口等),通常用于在该设备与其他电子设备之间建立通信连接。可选地,该设备还可以包括用户接口,用户接口可以包括显示器(display)、输入单元比如键盘(keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在设备中处理的信息以及用于显示可视化的用户界面。图7仅示出了具有组件11-14的设备,本领域技术人员可以理解的是,图7示出的结构并不构成对设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意方法实施例所述的事件信息传输方法的步骤。其中,该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1