CN102331981A - 一种用于fpga中实现数据无冲突实时存取的方法 - Google Patents
一种用于fpga中实现数据无冲突实时存取的方法 Download PDFInfo
- Publication number
- CN102331981A CN102331981A CN201110275435A CN201110275435A CN102331981A CN 102331981 A CN102331981 A CN 102331981A CN 201110275435 A CN201110275435 A CN 201110275435A CN 201110275435 A CN201110275435 A CN 201110275435A CN 102331981 A CN102331981 A CN 102331981A
- Authority
- CN
- China
- Prior art keywords
- data
- level
- fpga
- district
- buffer
- 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
Images
Landscapes
- Multi Processors (AREA)
Abstract
本发明公开了一种用于FPGA中实现数据无冲突实时存取的方法,FPGA中以两级缓冲作为数据池,分别为一级缓冲区和二级缓冲区,包含以下步骤:一级缓冲区接收光纤接收器输出串行数据,保存有效数据;利用二级缓冲区存取的空闲时间,将一级缓冲区内的所有数据搬移到二级缓冲区内。本发明基于两级缓冲和缓冲区描述符的方式实现了FPGA中异步数据链之间的无冲突、实时交互和数据存取。
Description
技术领域
本发明涉及一种电力系统继电保护设备采用光纤进行的同步串行通信,属工业通信技术领域。
背景技术
电力系统继电保护设备是当电力系统中的电气元件发生故障或不正常运行时,快速而准确地使断路器跳闸或发出信号的自动装置。智能变电站中广泛采用的电子式电流互感器、电子式电压互感器使得微机继电保护设备和这些一次设备的互联方式由传统的电缆传输模拟量转变为使用光纤通信传输数字信号,因此光纤通信技术已经成为实现现代继电保护设备的基础技术之一。
电子式互感器与继电保护设备之间的光纤通信通常采用同步串行通信方式,同步串行通信中数据都是以帧为单元进行传输,每帧数据包含帧头、有效数据、CRC校验,有的通信协议中还要求有帧尾。在电子式互感器中的光纤传输是定时和实时的,与继电保护设备的采样计算定时周期可能不完全同步,因为继电保护设备对可靠性的高要求,为了保证继电保护设备能及时、准确、无丢失地获得互感器上的所有采样数据,同时针对FPGA片内存储单元的特点,需要在技术上对串行通信的数据接收和存储进行特殊的处理。
发明内容
本发明的目的是通过两级缓冲区和缓冲区描述符的方式,解决异步数据链之间的无冲突、实时交互和数据存取。利用该技术在FPGA内实现不同带宽、不同速率下数据的实时、准确交互,避免了异步数据链同时对数据存储区进行访问时易发生碰撞而导致数据出错、错位等情况。
为了实现上述目的,本发明提供以下技术方案:
FPGA中采用两级缓冲作为数据池,分别为一级缓冲区和二级缓冲区,利用两个相同或不同容量的一级缓冲区和二级缓冲区,以及描述二级缓冲信息和状态的缓冲区描述符,解决两侧数据不同步的情况下易发生的数据出错、错位等问题,实现异步数据的无碰撞、实时、准确存取。
所述二级缓冲区内还包含描述二级缓冲信息和数据状态的缓冲区描述符。使用缓冲区描述符方式指示数据缓冲区内的数据状态,便于外部处理器在合适的时间对数据缓冲区进行操作。
所述缓冲区描述符包含数据长度、CRC校验结果、数据准备好信息。
一级缓冲区接收光纤接收器输出串行数据,保存有效数据;
利用二级缓冲区存取的空闲时间,将一级缓冲区内的所有数据搬移到二级缓冲区内。
所述二级缓冲区中分为多个缓冲区域,每个缓冲区域对应一独立的所述缓冲区描述符,用于指示该区域当前数据状态,处理器可任何时刻读取所述缓冲区描述符状态,根据所述数据是否准备好和所述CRC校验结果的信息判断是否可以从所述二级缓冲区读取数据,以及所需读取的数据长度。
本发明所达到的有益效果:
通过两级缓冲区和缓冲区描述符的方式,实现了异步数据链之间的无冲突、实时交互和数据存取。在FPGA内实现不同带宽、不同速率下数据的实时、准确交互,避免了异步数据链同时对数据存储区进行访问时易发生碰撞而导致数据出错、错位等情况。
本发明的方法简单可靠,成本低,灵活性高;适用于多种串行数据帧的数据实时保存和读取,同样也适用于两侧异步的并行数据的情况;缓冲区大小可根据实际使用条件进行灵活设置;一级缓存向二级缓存并行、高速搬移数据,因是利用二级缓存的空闲时间,不占用处理器总线处理时间; 二级缓存在FPGA容量允许的条件下可任意设置,保证所有串行接收的数据不丢失,满足继电保护设备应用需求。
附图说明
图1是在FPGA中实现数据无冲突实时存取的框图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
图1是在FPGA中实现的数据无冲突实时存取方法的原理框图,FPGA中包括一级缓冲区和二级缓冲区,二级缓冲区分割成多个数据区,可根据实际使用配置大小和块数。
以接收为例,同步串行通信中的解码器根据实际使用的线路码型,从接收的码流中恢复原始数据和时钟,在时钟的控制下,将串行输入的数据转换成并行数据,或将并行输入的数据组合成更大宽度的并行数据,保存在一级缓冲区的FIFO中,当接收到一帧完整的数据且CRC校验通过后,或是已接收一组完整的数据后,FPGA内部的状态机电路将一级缓冲区FIFO中的数据以芯片的系统时钟速率高速搬移到空闲的二级缓冲区中,并将相应缓冲区的缓冲区描述符(Buffer Descriptor,简称BD)标志位置位,供处理器访问。处理器读取缓冲区描述符BD的状态,若缓冲区描述符BD中的标志位置位,表示数据已准备好,就可以将二级缓冲区内的数据读走,并将标志位清零,供FPGA判断二级缓冲区是否空闲可用。处理器按顺序依次检查所有的缓冲区描述符BD,只要有数据就读走。FPGA存数据时也是依次读取缓冲区描述符BD状态,找到第一个空闲的缓冲区,就将数据保存在其中。
结合以串行数据流形式输入和并行数据形式输出的在FPGA内数据存取的时序,进一步说明本发明的方法。FPGA中的解码电路从输入的码流中分离出收时钟rx_clk和收数据rx_data,然后按照收时钟rx_clk的节拍对收数据rx_data进行采样,当检出帧头后,接收标志rx_ing置位,表示当前是串行接收状态,串行数据组合成并行数据写入一级缓冲区FIFO中。当一帧数据结束时,接收标志rx_ing清零,同时帧结束标志frame_end置位,FPGA内的状态机启动,将一级缓冲区FIFO内的数据搬移到空闲的二级缓冲区RAM中,并将数据保存基地址、数据长度、数据准备好等信息写入到相应的缓冲区描述符BD中。处理器对FPGA的RAM访问时,先读取缓冲区描述符BD的内容,若“数据准备好”位为1,就从该缓冲区描述符BD的数据保存基地址所指向的RAM区读取数据,读取指定长度的数据后,处理器将该缓冲区描述符BD的“数据准备好”位清零,将缓冲区释放,供一级缓冲区使用。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (4)
1.一种用于FPGA中实现数据无冲突实时存取的方法,其特征是,FPGA中以两级缓冲作为数据池,分别为一级缓冲区和二级缓冲区,包含以下步骤:
一级缓冲区接收光纤接收器输出串行数据,保存有效数据;
利用二级缓冲区存取的空闲时间,将一级缓冲区内的所有数据搬移到二级缓冲区内。
2.根据权利要求1所述的用于FPGA中实现数据无冲突实时存取的方法,其特征是,所述二级缓冲区内还包含描述二级缓冲信息和数据状态的缓冲区描述符。
3.根据权利要求2所述的用于FPGA中实现数据无冲突实时存取的方法,其特征是,所述缓冲区描述符包含数据长度、CRC校验结果、数据准备好信息。
4.根据权利要求3所述的用于FPGA中实现数据无冲突实时存取的方法,其特征是,所述二级缓冲区中分为多个缓冲区域,每个缓冲区域对应一独立的所述缓冲区描述符,用于指示该区域当前数据状态,处理器可任何时刻读取所述缓冲区描述符状态,根据所述数据是否准备好和所述CRC校验结果的信息判断是否可以从所述二级缓冲区读取数据,以及所需读取的数据长度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110275435A CN102331981A (zh) | 2011-09-16 | 2011-09-16 | 一种用于fpga中实现数据无冲突实时存取的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110275435A CN102331981A (zh) | 2011-09-16 | 2011-09-16 | 一种用于fpga中实现数据无冲突实时存取的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102331981A true CN102331981A (zh) | 2012-01-25 |
Family
ID=45483762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110275435A Pending CN102331981A (zh) | 2011-09-16 | 2011-09-16 | 一种用于fpga中实现数据无冲突实时存取的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102331981A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176753A (zh) * | 2013-03-07 | 2013-06-26 | 深圳市江波龙电子有限公司 | 存储设备及其数据管理方法 |
CN104102473A (zh) * | 2013-04-12 | 2014-10-15 | 杭州迪普科技有限公司 | 一种实现数据高速分发的装置 |
CN104809093A (zh) * | 2015-04-13 | 2015-07-29 | 苏州凌犀物联网技术有限公司 | 对串行接口传输的数据进行处理的方法及装置 |
CN107146194A (zh) * | 2017-06-07 | 2017-09-08 | 上海乐野网络科技有限公司 | 一种提高处理器存取图片速度的结构 |
CN108132757A (zh) * | 2016-12-01 | 2018-06-08 | 阿里巴巴集团控股有限公司 | 数据的存储方法、装置及电子设备 |
CN109597711A (zh) * | 2018-11-23 | 2019-04-09 | 北京航天自动控制研究所 | 一种基于数据池的数据采集方法 |
CN112491496A (zh) * | 2019-09-12 | 2021-03-12 | 北京华航无线电测量研究所 | 一种基于fpga同步串口多级缓存接收转发方法 |
CN115694772A (zh) * | 2022-09-05 | 2023-02-03 | 北京机电工程研究所 | 一种基于两级fifo的智能接口设计方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6371672B1 (en) * | 1998-11-06 | 2002-04-16 | Gunther International, Ltd. | Imager featuring service station assembly with interface board and cartridge assembly with customized rasterizer and pen driver boards |
CN1571402A (zh) * | 2004-05-10 | 2005-01-26 | 中兴通讯股份有限公司 | 正交频分复用多址接入系统中的数据包发送装置和方法 |
CN101867452A (zh) * | 2010-06-10 | 2010-10-20 | 国网电力科学研究院 | 一种电力专用串行实时总线的通信方法 |
-
2011
- 2011-09-16 CN CN201110275435A patent/CN102331981A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6371672B1 (en) * | 1998-11-06 | 2002-04-16 | Gunther International, Ltd. | Imager featuring service station assembly with interface board and cartridge assembly with customized rasterizer and pen driver boards |
CN1571402A (zh) * | 2004-05-10 | 2005-01-26 | 中兴通讯股份有限公司 | 正交频分复用多址接入系统中的数据包发送装置和方法 |
CN101867452A (zh) * | 2010-06-10 | 2010-10-20 | 国网电力科学研究院 | 一种电力专用串行实时总线的通信方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176753A (zh) * | 2013-03-07 | 2013-06-26 | 深圳市江波龙电子有限公司 | 存储设备及其数据管理方法 |
CN103176753B (zh) * | 2013-03-07 | 2016-06-01 | 深圳市江波龙电子有限公司 | 存储设备及其数据管理方法 |
CN104102473A (zh) * | 2013-04-12 | 2014-10-15 | 杭州迪普科技有限公司 | 一种实现数据高速分发的装置 |
CN104809093A (zh) * | 2015-04-13 | 2015-07-29 | 苏州凌犀物联网技术有限公司 | 对串行接口传输的数据进行处理的方法及装置 |
CN108132757A (zh) * | 2016-12-01 | 2018-06-08 | 阿里巴巴集团控股有限公司 | 数据的存储方法、装置及电子设备 |
CN108132757B (zh) * | 2016-12-01 | 2021-10-19 | 阿里巴巴集团控股有限公司 | 数据的存储方法、装置及电子设备 |
CN107146194A (zh) * | 2017-06-07 | 2017-09-08 | 上海乐野网络科技有限公司 | 一种提高处理器存取图片速度的结构 |
CN109597711A (zh) * | 2018-11-23 | 2019-04-09 | 北京航天自动控制研究所 | 一种基于数据池的数据采集方法 |
CN112491496A (zh) * | 2019-09-12 | 2021-03-12 | 北京华航无线电测量研究所 | 一种基于fpga同步串口多级缓存接收转发方法 |
CN112491496B (zh) * | 2019-09-12 | 2022-08-23 | 北京华航无线电测量研究所 | 一种基于fpga同步串口多级缓存接收转发方法 |
CN115694772A (zh) * | 2022-09-05 | 2023-02-03 | 北京机电工程研究所 | 一种基于两级fifo的智能接口设计方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102331981A (zh) | 一种用于fpga中实现数据无冲突实时存取的方法 | |
CN100416534C (zh) | 基于PCI Express的包结合方法、设备和系统 | |
CN102930615B (zh) | 一种列车运行状态数据记录方法、装置及系统 | |
CN105573239A (zh) | 一种高速背板总线通讯控制装置及方法 | |
CN103763085B (zh) | 一种多路数据高速采集合并方法及装置 | |
CN201804075U (zh) | 一种基于fpga的输电线路单端故障定位装置 | |
CN113946297A (zh) | 基于FPGA和PCIe的光纤数据采集存储系统及方法 | |
CN103475493A (zh) | 多网口智能网卡及数据处理方法 | |
CN104778025A (zh) | 基于随机访问存储器的先入先出存储器的电路结构 | |
CN105302753A (zh) | 一种基于fpga和fifo芯片的多通道hdlc数据处理装置 | |
CN101645611B (zh) | 一种用于数字化继电保护装置的自适应重采样方法 | |
CN100334819C (zh) | 以太网光纤收发器及用于该收发器的数据收发方法 | |
CN101594305A (zh) | 一种报文处理方法及装置 | |
CN103617132A (zh) | 一种基于共享存储的以太网终端发送实现方法及终端装置 | |
CN100527184C (zh) | 电力系统暂态信号采集方法 | |
CN104267312A (zh) | 一种基于lvds高速采样的嵌入式行波测距装置 | |
CN104660470A (zh) | RapidIO总线协议的检测装置和检测方法 | |
CN101674146B (zh) | 一种光传送网中对齐各调度业务的方法及系统 | |
CN109696878A (zh) | 基于多缓冲区的控制器 | |
CN101883046A (zh) | 一种应用于epon终端系统的数据缓存架构 | |
CN205092880U (zh) | 基于fpga芯片的hdlc协议控制器 | |
CN105743585B (zh) | 一种光irig‑b及ft3码的智能探测接收方法和装置 | |
CN203658915U (zh) | 多路数据采集卡 | |
CN204795120U (zh) | 一种分体式可扩展的网络报文存储装置 | |
CN107276845B (zh) | 一种轨道交通领域的具有容错功能的实时数据调度方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120125 |