一种离散接口接收数据方法与流程

文档序号:20882995发布日期:2020-05-26 17:16阅读:321来源:国知局

本发明专利涉及离散接口技术领域,具体为一种离散接口接收数据方法。



背景技术:

计算机是电子设备的控制核心,需要采集越来越多的离散量信号用来获取当前系统的工作状态,同时,需要输出大量的离散量信号来发送指令,面对日趋复杂的未来机载系统,离散量信号处理量不断增大,信号带宽急剧增高,功能日趋复杂,现有的离散量处理方案已无法满足系统对离散量信号切换速率、小型化、可靠性等诸多方面的要求。

随着离散量的增多,传统离散接口接收数据的方法存在一定的不足之处,其不能对信息进行相应的判断、清除和校验工作,很难保证数据的可靠性,为此提出一种可以对标记位置进行有效判断,而且能对已读取的数据进行清除工作,同时还能实现对数据信息进行实时校验,有效提高了数据可靠性和稳定性的离散接口接收数据方法来解决此问题。

发明专利内容

(一)解决的技术问题

本发明专利的目的在于提供一种离散接口接收数据方法,以解决上述背景技术中提出的传统离散接口接收数据的方法存在一定的不足之处,其不能对信息进行相应的判断、清除和校验工作,很难保证数据可靠性的问题。

(二)技术方案

为实现上述目的,本发明专利提供如下技术方案:一种离散接口接收数据方法,其方法包括如下:

(1)软件端接收数据流程:

(1.1)首先软件开辟一段地址空间,按照测试要求,发送和接收方约定相同长度的数据;

(1.2)软件启动一个接收任务,之后再使能fpga内的接收使能信号;

(1.3)软件轮询fpga的接收状态寄存器,查询数据半空标记位和帧结束标记位是否有效;

(1.4)根据标记的有效性,判断待读取的大小,并进行累积帧内已读取数据个数的清除工作;

(1.5)软件对相应大小的数据进行读取,并进行相关数据大小的判断;

(1.6)结束;

(2)逻辑端接收数据流程:

(2.1)逻辑端内部有一个接收fifo;

(2.2)逻辑端在接收到512个数据或者帧结尾标记后,会标记;

(2.3)通过控制寄存器和状态寄存器进行相应功能的数据处理操作;

(2.4)结束。

优选的,所述步骤(1.2)中,软件在启动一个接收任务的同时,需要清空fpga内的接收fifo。

优选的,所述步骤(1.3)中,数据半空标记位和帧结束标记位的有效情况为三种,分别为数据半空标记位单独有效、帧结束标记位单独有效以及两者同时有效。

优选的,所述步骤(1.4)中,如果数据半空标记位有效,表示fifo半空,待读取的大小就是512个16位,如果帧结束标记位有效,软件就读取帧大小寄存器,待读取的大小就是该值减去之前已分段走的值,如果两者同时有效,表示fifo半空,待读取的大小就是512个16位。

优选的,所述步骤(1.5)中,软件在读取数据前,要清空帧结束标记位。

优选的,所述步骤(1.5)中,软件读取完相应大小的数据后,判断是否达到接收数据的总长度,如果是,就关闭fpga的接收使能信号,否则继续查询数据非空标记。

优选的,所述步骤(2.1)中,该接收fifo的默认深度为1024。

优选的,所述步骤(2.2)中,逻辑端如果检测到接收fifo溢出情况会写数据溢出位,后续数据不再写入,直到帧结束有效,再重新写接收fifo。

优选的,所述步骤(2.2)中,逻辑端的接收受接收使能信号的控制,使能信号无效时,不接收总线的数据。

优选的,所述步骤(2.3)中,控制寄存器用于接收fifo清空、接收启动以及接收帧长度寄存器,状态寄存器用于进行帧结束标记(写1清零)以及fifo半空标记。

有益效果

与现有技术相比,本发明专利提供了一种离散接口接收数据方法,具备以下有益效果:

通过设计了软件地址空间、软件轮询fpga的接收状态寄存器以及逻辑端内部的接收fifo,可以对标记位置进行有效判断,而且能对已读取的数据进行清除工作,同时还能对数据信息进行实时校验,有效提高了数据可靠性和稳定性,解决了传统离散接口接收数据的方法存在一定的不足之处,其不能对信息进行相应的判断、清除和校验工作,很难保证数据可靠性的问题。

具体实施方式

下面将对本发明专利实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明专利一部分实施例,而不是全部的实施例。基于本发明专利中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明专利保护的范围。

本发明专利提供一种技术方案:一种离散接口接收数据方法,其方法包括如下:

(1)软件端接收数据流程:

(1.1)首先软件开辟一段地址空间,按照测试要求,发送和接收方约定相同长度的数据;

(1.2)软件启动一个接收任务,之后再使能fpga内的接收使能信号;

(1.3)软件轮询fpga的接收状态寄存器,查询数据半空标记位和帧结束标记位是否有效;

(1.4)根据标记的有效性,判断待读取的大小,并进行累积帧内已读取数据个数的清除工作;

(1.5)软件对相应大小的数据进行读取,并进行相关数据大小的判断;

(1.6)结束;

(2)逻辑端接收数据流程:

(2.1)逻辑端内部有一个接收fifo;

(2.2)逻辑端在接收到512个数据或者帧结尾标记后,会标记;

(2.3)通过控制寄存器和状态寄存器进行相应功能的数据处理操作;

(2.4)结束。

实施例一:

一种离散接口接收数据方法,其方法包括如下:

(1)软件端接收数据流程:

(1.1)首先软件开辟一段地址空间,按照测试要求,发送和接收方约定相同长度的数据;

(1.2)软件启动一个接收任务,之后再使能fpga内的接收使能信号,软件在启动一个接收任务的同时,需要清空fpga内的接收fifo,可避免fifo中留有未知的数据(没有及时读取或发送)对程序造成影响;

(1.3)软件轮询fpga的接收状态寄存器,查询数据半空标记位和帧结束标记位是否有效,数据半空标记位和帧结束标记位的有效情况为三种,分别为数据半空标记位单独有效、帧结束标记位单独有效以及两者同时有效,从起始位开始到停止位结束的时间间隔称之为一帧,起始位之后就是传送数据位,结束位在最后,用以标志一个字符传送的结束,它对应于逻辑1状态;

(1.4)根据标记的有效性,判断待读取的大小,并进行累积帧内已读取数据个数的清除工作,如果数据半空标记位有效,表示fifo半空,待读取的大小就是512个16位,如果帧结束标记位有效,软件就读取帧大小寄存器,待读取的大小就是该值减去之前已分段走的值,如果两者同时有效,表示fifo半空,待读取的大小就是512个16位,对于同步的fifo,只需判断非空满判断位的那一位,如12bit的信号,12位为空满判断用的,那么11位,可以用做半满判决,而对于在异步的fifo中,可以根据读写地址来判断半满信号;

(1.5)软件对相应大小的数据进行读取,并进行相关数据大小的判断;

(1.6)结束;

(2)逻辑端接收数据流程:

(2.1)逻辑端内部有一个接收fifo;

(2.2)逻辑端在接收到512个数据或者帧结尾标记后,会标记;

(2.3)通过控制寄存器和状态寄存器进行相应功能的数据处理操作;

(2.4)结束。

实施例二:

一种离散接口接收数据方法,其方法包括如下:

(1)软件端接收数据流程:

(1.1)首先软件开辟一段地址空间,按照测试要求,发送和接收方约定相同长度的数据;

(1.2)软件启动一个接收任务,之后再使能fpga内的接收使能信号,软件在启动一个接收任务的同时,需要清空fpga内的接收fifo,可避免fifo中留有未知的数据(没有及时读取或发送)对程序造成影响;

(1.3)软件轮询fpga的接收状态寄存器,查询数据半空标记位和帧结束标记位是否有效,数据半空标记位和帧结束标记位的有效情况为三种,分别为数据半空标记位单独有效、帧结束标记位单独有效以及两者同时有效,从起始位开始到停止位结束的时间间隔称之为一帧,起始位之后就是传送数据位,结束位在最后,用以标志一个字符传送的结束,它对应于逻辑1状态;

(1.4)根据标记的有效性,判断待读取的大小,并进行累积帧内已读取数据个数的清除工作,如果数据半空标记位有效,表示fifo半空,待读取的大小就是512个16位,如果帧结束标记位有效,软件就读取帧大小寄存器,待读取的大小就是该值减去之前已分段走的值,如果两者同时有效,表示fifo半空,待读取的大小就是512个16位,对于同步的fifo,只需判断非空满判断位的那一位,如12bit的信号,12位为空满判断用的,那么11位,可以用做半满判决,而对于在异步的fifo中,可以根据读写地址来判断半满信号;

(1.5)软件对相应大小的数据进行读取,并进行相关数据大小的判断,软件在读取数据前,要清空帧结束标记位,软件读取完相应大小的数据后,判断是否达到接收数据的总长度,如果是,就关闭fpga的接收使能信号,否则继续查询数据非空标记,通过校验码确认帧的每一位,发送方在最后附上校验码,接收方重新计算校验码,两个数字一样即认为正确;

(1.6)结束;

(2)逻辑端接收数据流程:

(2.1)逻辑端内部有一个接收fifo;

(2.2)逻辑端在接收到512个数据或者帧结尾标记后,会标记;

(2.3)通过控制寄存器和状态寄存器进行相应功能的数据处理操作;

(2.4)结束。

实施例三:

一种离散接口接收数据方法,其方法包括如下:

(1)软件端接收数据流程:

(1.1)首先软件开辟一段地址空间,按照测试要求,发送和接收方约定相同长度的数据;

(1.2)软件启动一个接收任务,之后再使能fpga内的接收使能信号,软件在启动一个接收任务的同时,需要清空fpga内的接收fifo,可避免fifo中留有未知的数据(没有及时读取或发送)对程序造成影响;

(1.3)软件轮询fpga的接收状态寄存器,查询数据半空标记位和帧结束标记位是否有效,数据半空标记位和帧结束标记位的有效情况为三种,分别为数据半空标记位单独有效、帧结束标记位单独有效以及两者同时有效,从起始位开始到停止位结束的时间间隔称之为一帧,起始位之后就是传送数据位,结束位在最后,用以标志一个字符传送的结束,它对应于逻辑1状态;

(1.4)根据标记的有效性,判断待读取的大小,并进行累积帧内已读取数据个数的清除工作,如果数据半空标记位有效,表示fifo半空,待读取的大小就是512个16位,如果帧结束标记位有效,软件就读取帧大小寄存器,待读取的大小就是该值减去之前已分段走的值,如果两者同时有效,表示fifo半空,待读取的大小就是512个16位,对于同步的fifo,只需判断非空满判断位的那一位,如12bit的信号,12位为空满判断用的,那么11位,可以用做半满判决,而对于在异步的fifo中,可以根据读写地址来判断半满信号;

(1.5)软件对相应大小的数据进行读取,并进行相关数据大小的判断,软件在读取数据前,要清空帧结束标记位,软件读取完相应大小的数据后,判断是否达到接收数据的总长度,如果是,就关闭fpga的接收使能信号,否则继续查询数据非空标记,通过校验码确认帧的每一位,发送方在最后附上校验码,接收方重新计算校验码,两个数字一样即认为正确;

(1.6)结束;

(2)逻辑端接收数据流程:

(2.1)逻辑端内部有一个接收fifo,该接收fifo的默认深度为1024;

(2.2)逻辑端在接收到512个数据或者帧结尾标记后,会标记,逻辑端如果检测到接收fifo溢出情况会写数据溢出位,后续数据不再写入,直到帧结束有效,再重新写接收fifo,逻辑端的接收受接收使能信号的控制,使能信号无效时,不接收总线的数据,需要使能信号的主要原因是一个大型的数字系统中,通常都需要使用多个芯片/电路单元来配合完成一个功能,而这些芯片并不是每时每刻都在工作,因此需要用使能信号来控制应该“启动”哪个芯片来工作;

(2.3)通过控制寄存器和状态寄存器进行相应功能的数据处理操作,控制寄存器用于接收fifo清空、接收启动以及接收帧长度寄存器,状态寄存器用于进行帧结束标记(写1清零)以及fifo半空标记;

(2.4)结束。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

尽管已经示出和描述了本发明专利的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明专利的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明专利的范围由所附权利要求及其等同物限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1