[发明专利]一种基于FPGA的高效数据缓冲方法有效
申请号: | 201710049005.7 | 申请日: | 2017-01-23 |
公开(公告)号: | CN106776374B | 公开(公告)日: | 2021-04-13 |
发明(设计)人: | 韩文兴;孙福海;张文帅;余波;赵洋;董长龙;王远兵;吴志强;刘宏春;周继翔;马权;肖鹏;刘明星 | 申请(专利权)人: | 中核控制系统工程有限公司 |
主分类号: | G06F12/0871 | 分类号: | G06F12/0871 |
代理公司: | 成都行之专利代理事务所(普通合伙) 51220 | 代理人: | 郭受刚 |
地址: | 100000 北京市大*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 fpga 高效 数据 缓冲 方法 | ||
本发明公开了一种基于FPGA的高效数据缓冲方法,将检测合格的数据和帧头地址分离存储,数据存储于第一存储单元,帧头地址存储于第二存储单元,第二存储单元将存储信息提供给CPU,CPU可以根据自身负荷选择性获取帧头地址对应的数据,从而实现FPGA缓冲区的动态分配,提高FPGA缓冲区的利用率,在FPGA缓冲区中存储多帧完整的数据,进而使CPU有选择的获取数据,避免CPU对无效数据的读取导致数据缓冲效率低下的问题。
技术领域
本发明涉及安全级数字化控制技术领域,具体涉及一种基于FPGA的高效数据缓冲方法。
背景技术
基于FPGA的数据缓冲区是基于CPU+FPGA架构系统一个重要组成部分,主要用于CPU与外设的数据缓冲。外部数据进入FPGA后,FPGA按照帧格式检测并接收数据,接收到一帧完整的数据后通知CPU读取,缓冲区的长度必须按照帧格式允许的最大长度,当帧长度小于最大长度时缓冲区的利用率将降低。在CPU+FPGA的架构中,FPGA接收数据的周期与CPU的查询周期存在偏差,一般都需要FPGA具备2帧以上的数据缓冲能力。
对于CPU+FPGA架构系统的FPGA数据缓冲区管理。目前,较为普遍的是采用以乒乓操作的方法。通过乒乓操作可以保证一帧数据的完整,但空间利用率较低、只能保证缓冲区中有一帧数据是完整的。
发明内容
本发明所要解决的技术问题是FPGA的高效数据缓冲,目的在于提供一种基于FPGA的高效数据缓冲方法,实现FPGA缓冲区的动态分配,提高缓冲区的利用率,在缓冲区中存储多帧完整的数据,从而使CPU有选择的获取数据。
本发明通过下述技术方案实现:
一种基于FPGA的高效数据缓冲方法,包括如下步骤:
A、对输入数据进行帧格式检测,具体包括帧头有效性检测、帧尾有效性检测和帧格式校验;
B、当帧头、帧尾检测有效时,将输入数据存储至第一存储单元;同时,记录存储帧头地址,并将帧头地址写入第二存储单元;
C、CPU获取第二存储单元存储的所有帧头地址,选择帧头地址,读取第一存储单元存储的所选帧头地址对应的数据。
特别地,所述步骤C还包括CPU获取第二存储单元状态数据,所述第二存储单元状态数据包括第二存储单元的空、满信号以及存储的帧头地址个数。
特别地,所述步骤B中当帧头、帧尾检测有效时,将输入数据存储至第一存储单元包括对于每一帧数据,当帧头检测有效时,开始将输入数据存储至第一存储单元,直至检测到帧尾检测有效时,结束存储。
特别地,所述步骤B中记录存储帧头地址,并将帧头地址写入第二存储单元包括对于每一帧数据,当帧头检测有效时,记录当前存储帧头地址,当帧尾检测有效时,将帧头地址写入第二存储单元。
特别地,所述步骤B还包括对于相邻两帧数据,丢弃前一帧帧尾与下一帧帧头之间的数据。
特别地,所述第一存储单元采用RAM。
特别地,所述第二存储单元采用FIFO存储器。
本发明与现有技术相比,具有如下的优点和有益效果:
本发明所述一种基于FPGA的高效数据缓冲方法,可以实现FPGA缓冲区的动态分配,提高FPGA缓冲区的利用率,在FPGA缓冲区中存储多帧完整的数据,从而使CPU有选择的获取数据,避免CPU对无效数据的读取导致数据缓冲效率低下的问题。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1为本发明实施例1提供的一种基于FPGA的高效数据缓冲方法流程图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中核控制系统工程有限公司,未经中核控制系统工程有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710049005.7/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置