CN104021098B - 基于dma透明传输的多板协同架构 - Google Patents

基于dma透明传输的多板协同架构 Download PDF

Info

Publication number
CN104021098B
CN104021098B CN201410275194.6A CN201410275194A CN104021098B CN 104021098 B CN104021098 B CN 104021098B CN 201410275194 A CN201410275194 A CN 201410275194A CN 104021098 B CN104021098 B CN 104021098B
Authority
CN
China
Prior art keywords
plate
data
ram
dma
detection plate
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.)
Active
Application number
CN201410275194.6A
Other languages
English (en)
Other versions
CN104021098A (zh
Inventor
魏云龙
俞兆志
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuzhou Min-Tai Machinery Co Ltd
Original Assignee
Fuzhou Min-Tai Machinery Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fuzhou Min-Tai Machinery Co Ltd filed Critical Fuzhou Min-Tai Machinery Co Ltd
Priority to CN201410275194.6A priority Critical patent/CN104021098B/zh
Publication of CN104021098A publication Critical patent/CN104021098A/zh
Application granted granted Critical
Publication of CN104021098B publication Critical patent/CN104021098B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明涉及一种基于DMA透明传输的多板协同系统,包括利用FPGA总线接口逻辑配合总线连接在一起的主控板和复数个检测从板;其特征在于:由 FPGA 内生成的双口 RAM 作数据缓冲区,并将主控板的双口 RAM 地址分成若干区,分别与检测板的双口 RAM 的缓冲区对应,每个区和检测板的双口 RAM 的缓冲区大小相等;然后,在 FPGA 内采用 DMA 传输方法实现主控板和检测从板间 FPGA RAM 的数据传递。本发明提出基于真双口RAM 的 DMA 板间总线数据传输的方法,实现板间数据的透明传输,CPU 无需涉及传输过程。主板 CPU 直接操作从板数据,简化计算逻辑,提高系统计算的速度。

Description

基于DMA透明传输的多板协同架构
技术领域
本发明涉及主从板数据传输技术领域,特别是一种基于DMA透明传输的多板协同系统。
背景技术
工业生产线上的产品质量判别,常常需要数个测量从板和一个计算主板构成多板主从系统,先进行多工位的数据分析,再综合各工位数据,产生质量合格与否的判别结果。在高速流水线中,这种多板的计算架构,每块板的 CPU 都需要大量的用于板间数据传输的总线常用的有 ISA 总线、VESA 总线、PCI 总线,其中 ISA 总线、VESA 总线受制于处理器,PCI 总线不受制于处理器,并为处理器和高速外设之间供了一条通道[1]。有人提出了基于 PCI 总线接口技术实现 DMA 数据传输系统的通用设计方法[2],还有学者提出了基于解放 CPU 的目的,在总线中集成 DMA 的思想[3]。但是 PCI 总线协议适用于主处理器与外设间的通信,并不适用于分布式多板计计算系统,而且其实现的复杂度对于在工业应用中采用的低速率高可靠的嵌入式处理器的多板协同系统并不适用。计算,同时板间亦须有及时的数据传递。
如图1所示,工业流水线上的主从多板计算系统,例如流水线上的蛋壳裂纹检测系统,检测系统通过对蛋壳表面的多点进行数据分析,并对各点数据分析结果进行综合计算判别一个蛋是否有裂纹。电机 M 带动皮带轮前进,多个蛋 E 放在皮带轮的滚子上,C0 至Cn 为数据采集板,每个蛋分别需要经过 n 个点的数据分析,并将分析结果主控板 D。对于每个点的裂纹分析,有学者利用声学方法进行分析,特征参数和处理算法用误差反向传播算法人工神经网络[4]。还有学者利用机器视觉和图像处理研究对连续旋转鸡蛋进行裂纹检测的方法, 同样需要较大的计算量,检测速度较慢[5]。如果流水线是多列的,即每个数据采集板C 要对多个蛋的数据进行采集分析,每个采集板的计算量是较大的,要占用 CPU 主要的时间和空间资源。而每个蛋最终判断又依据所有 C0 至 Cn 的计算结果。这种流水线上的检测系统通常采用主从式的多板协同架构,即由多个处理板同时进行计算,最终的结果又需要各板即时传送到主板中作决策计算。
发明内容
本发明的目的是提供一种基于DMA透明传输的多板协同系统,能实现板间数据的透明传输,CPU 无需涉及传输过程。
本发明采用以下方案实现:一种基于DMA透明传输的多板协同系统,包括利用FPGA总线接口逻辑配合总线连接在一起的主控板和复数个检测从板;其特征在于:由 FPGA 内生成的双口 RAM 作数据缓冲区,并将主控板的双口 RAM 地址分成若干区,分别与检测板的双口 RAM 的缓冲区对应,每个区和检测板的双口 RAM 的缓冲区大小相等;然后,在FPGA 内采用 DMA 传输方法实现主控板和检测从板间 FPGA RAM 的数据传递。
在本发明一实施例中,所述在 FPGA 内采用 DMA 传输方法实现主、从板间 FPGARAM 的数据传递,具体实现方式为:所述总线由数据总线,地址总线和控制总线构成,地址总线由板内地址线AB,板地址线 BB 构成;控制总线由片选线 CS、读写线 RW、时钟线 CLK、板数据收到 REVOK、检测板板 n 数据准备好 BRDYn 信号线构成,其中所述检测板 n数据准备好 BRDYn 信号线为每个检测从板一根,直接与主控板相联;检测板数据就位时,相应 BRDYn标记有效,主控板依据优先级,选定一个检测从板,板地址线 BB 发出与该检测从板相匹配的地址信号;其中与该信号不匹配的检测板的数据总线接口DB切换为高阻态;当主控板读取完板地址 BB 所对应的检测从板数据位后,将板数据收到信号REVOK置位,使当前传输完成的从板 BRDYn标记清零;然后扫描从板的BRDYx标记,只要有一根有效,则又开始另一个从板的数据读取;当多个从板同时有效时,主控选定优先级较高的从板作为当前通信对象,将板地址设为该板所对应地址。
在本发明一实施例中,所述检测从板的CPU在更新自身RAM 数据时会发出BRDYn信号,用以自触发更新;也能在 FPGA 中设计与待传送 RAM 大小一样的备份区,所述的备份区中设置有更新监测模块定时与待传送 RAM进行比较,如果不同,则更新备份区,并发出BRDYn信号,如果定时周期小于CPU对 RAM数据的读间隔,则从板到主板数据的更新实现自动触发。
在本发明一实施例中,所述检测从板在主板 RAM 中的相应对应区可设一个刷新位,当主板取得该区数据时,将 RAM 中该位置位,而在检测从板的映像 RAM中该位永为零,则如主板中该刷新位变为零,则表明主板该 RAM 区是新数据。
本发明利用的双口 RAM 间的 DMA 数据传送来进行主从板间数据的传输,利用双口RAM双总线可同时读写的特性让传输和 CPU 数据操作相互独立,处理器直接操作映射数据空间,而不必关心传输过程,从而实现对处理器数据的透明传输。从板数据空间到主板数据空间的直接映射,CPU的程序设计就完全集中于数值计算,使得系统的程序设计难度下降。
附图说明
图1是流水线上的蛋壳裂纹检测系统示意图。
图2是主从多板架构示意图。
图3是板间总经定义示意图。
图4是板间总线时序示意图。
图5是双口 RAM 作板间映射缓冲区示意图。
图6是图5共用虚拟存储器示意图。
图7是主从板 DMA 透明传输电路架构。
图8是DMA 控制器状态机。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
本申请的整个系统架构如图2所示,图 1 中流水线中的每个工位由图 2 中的一个检测板 C 进行检测分析,主控板 D 对各检测板的传来的数据进行综合计算,主控板和检测从板之间如何进行板间数据传输从而解放CPU 的时间资源和简化分布式计算的协同逻辑是这种架构的一个问题。
具体的,首先先定义板间总线逻辑,如图3所示,对于板间数据传输, 并行总线可作为板间总线的易于实现的通信方式。总线由数据总线,地址总线和控制总线构成。图 3中,地址总线由板内地址线AB,板地址线 BB 构成;控制总线由片选线 CS、读写线 RW、时钟线CLK、板数据收到 REVOK、板 n 数据准备好 BRDYn 构成,检测板 n 数据准备好BRDYn 信号线为每个检测从板一根,直接与主控板相联。主控板读选定检测板的时序如图4所示,检测板数据就位时,相应 BRDYn 有效,主控板依据优先级,选定一个检测板,板地址线 BB 发出与该检测板相匹配的地址信号。与该信号不匹配的检测板的数据总线接口 DB切换为高阻态。主控板完成图 4 的读逻辑。当主控板读取完板地址 BB 所对应的检测从板数据位后,将板数据收到信号 REVOK 置位,使当前传输完成的从板 BRDYn 清零。然后扫描从板的 BRDYx,只要有一根有效,则又开始另一个从板的数据读取。当多个从板同时有效时,主控选定优先级较高的从板作为当前通信对象,将板地址设为该板所对应地址。
在图 2 的电路架构中可以由 FPGA 内生成的双口 RAM 作数据缓冲区。双口 RAM是在1 个 RAM 存储器上具有两套完全独立的数据线、地址线和读写控制线,并允许两个独立的系统同时对其进行随机性访问的存储器,允许两个独立的 CPU 或控制器同时异步地访问存储单元。本申请利用 IP 核生成器在主从板上的 Xilinx FPGA中生真双口(TrueDual-port RAM[6])RAM.
双口RAM的数据映射:设计主控板的双口RAM地址分成若干区,分别与检测板的双口RAM的缓冲区对应,每个区和检测板的双口RAM的缓冲区大小相等。图5中若主从板的双口RAM 自动快速完成数据映射,在逻辑上双口 RAM 成为主从双方的 CPU 的共有存储器,在CPU 的程序设计中,可以视本地的双口 RAM 为分布式系统的全局变量所在地,如图6,这个虚拟的共有存储器,可以将所有多板的程序逻辑变为一个逻辑上的整体。
板间DMA透明传输: 图5中,双口RAM 作为主控板和检测从板 CPU 之间的映射缓冲存储器,主从板各自的双口 RAM 在无 CPU 参与的情况下实现数据的快速映射是实现图6中虚拟的共有存储器的技术关键。本申请在 FPGA 内采用 DMA 传输方法实现两个板间FPGA RAM 的数据传递。在图2的架构中,多板共用一主从总线,本发明用图 3 所示的BRDYn 线来实现事件触发,当某一从板数据有效且为新数据时,触发DMA传送。当多个从板的 BRDYn线同时有效时,用非占先式的优先级策略来保证 DMA 的实时性。
请参见图7,图7说明了基于DMA技术的多板协同系统的电路。主控板的CPU通读写控制WEA、片选 ENA、读写时钟 CLKA、地址线 ADDRA、数据数 DB 与 FPGA 内双口 RAM 的 A口相联;双向 RAM 的 B 口通过 FPGA 内设计的 DMA 控制器 DMA_FSM 与板间总线相联。DMA_FSM 收到某个从板的数据更新监测模块发来的 BRDYn 信号,即启动主板 RAM 与从板RAM 的 DMA 传送,生成读从板 RAM 和写主板RAM 的时序,读取从板 RAM 的数据,写入主板的 RAM。从板的 CPU 无需关心传送过程,数据通过 B 口写入双向 RAM。
如果这种 RAM 间的数据传递足够快,使得主板的 CPU 在读取本地 FPGA 内的RAM 区时,该 RAM 区的数据总是和相应从板的 RAM 中的数一致,主板 CPU 的程序对从板的数据取得操作就视为本地变量的读取,达到透明传输的效果。
值得一提的是,本申请在 FPGA 内设计实现的 DMA_FSM,其状态机如图 8所示,当任一从板数据准备好 BRDYn 信号线有效时,DMA 控制器 DMA_FSM 根据当前优先级最高的BRDYn 信号线得到从板号,生成从板地址 BB,初始化从板 RAM A 口地址线 AB为零,主板RAM 地址线 ADDRB 值设为该板对应 RAM 区首地址。接着,对从板 RAM 发出读操作,使得从板 RAM 将数据输出到数据总线 DB,因并行总线数据位需同步,延时一定时间,而后对主板 RAM 进行写操作,将 DB 总线上的数据存入主板 RAM。延时特定时间后,关闭 RAM 使能,使存入主板 RAM 的数据不受影响。如数据未传输完毕,则对主从板 RAM 地址分别加一,传输下一个字节。如传输完毕,控制器发送板数据收到信号 REVOK,与当前板地址相对应的从板收到该信号后数据准备好信号 BRDYn 复位。一块从板的 RAM数据实到主板 RAM相应区的传送。接继续判断所有板的 BRDYn 信号线,如所有 BRDYn信号无效,则控制器处于待触发状态。若多个从板的 BRDYn 同时就位时,控制器输出判断优先级最高的板的板地址。由于 DMA 控制器和双口 RAM 都由 FPGA 内电路实现,可以达到很高的传输速率。
本实施例中,系统数据传递具备自触发功能:其中BRDYn 信号可以由从板 CPU 在更新从板 RAM 数据时发出,也可以在从板 FPGA 中设计与待传送 RAM 大小一样的备份区,备份区由图 7 中的更新监测模块定时与待传送 RAM进行比较,如果不同,则更新备份区,并发出 BRDYn 信号,如果定时周期小于 CPU 对 RAM数据的读间隔,则从板到主板数据的更新实现自动触发。
本实施例中,系统还可以判别新旧数据:其利用前述的数据转输过程,在多板主从架构中,主板根据本地 RAM 中的从板映像数据进行进一步计算,得到相应的结论。该架构应用于实时系统,从板在主板 RAM 中的相应对应区可设一个刷新位,当主板取得该区数据时,将 RAM 中该位置位,而在从板的映像 RAM中该位永为零,则如主板中该刷新位变为零,则表明主板该 RAM 区是新数据。
参考文献:
[1]王廷龙.基于FPGA和PCI总线高速数据传输板的开发[D].哈尔滨工业大学学位论文:哈尔滨工业大学,2009.
[2]颜建峰,吴宁.基于 PCI 总线的 DMA 高速数据传输系统[J].电子科技大学学报,2007(5):858-861.
[3]刘博.基于PCI Express总线的高速DMA传输系统的研究与实现[D].西安电子科技大学学位论文:西安电子科技大学,2012.
[4]潘磊庆,屠康,刘明,等.基于声学响应和 BP 神经网络检测鸡蛋裂纹[J].南京农业大学学报,2010(6):115-118.
[5]潘磊庆,屠康,苏子鹏,等.基于计算机视觉和神经网络检测鸡蛋裂纹的研究[J].农业工程学报,2007(5):154-158.
[6]佚名.LogiCORE IP Block Memory Generator v7.2 Product Guide[EB/OL].Xilinx Inc,USA.2012-7-25.www.xilinx.com.
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

Claims (3)

1.一种基于DMA透明传输的多板协同系统,包括利用FPGA总线接口逻辑配合总线连接在一起的主控板和复数个检测板;其特征在于:由 FPGA 内生成的双口 RAM 作数据缓冲区,并将主控板的双口 RAM 地址分成若干区,分别与检测板的双口 RAM 的缓冲区对应,每个区和检测板的双口 RAM 的缓冲区大小相等;然后,在 FPGA 内采用 DMA 传输方法实现主控板和检测板间 FPGA RAM 的数据传递;所述在 FPGA 内采用 DMA 传输方法实现主控板和检测板间 FPGA RAM 的数据传递,具体实现方式为:所述总线由数据总线,地址总线和控制总线构成,地址总线由板内地址线AB,板地址线 BB 构成;控制总线由片选线 CS、读写线 RW、时钟线 CLK、板数据收到信号 REVOK、检测板 n 数据准备好 BRDYn 信号线构成,其中所述检测板 n 数据准备好 BRDYn 信号线为每个检测板一根,直接与主控板相连;检测板数据就位时,相应 BRDYn标记有效,主控板依据优先级,选定一个检测板,板地址线BB 发出与该检测板相匹配的地址信号;其中与该信号不匹配的检测板的数据总线接口DB切换为高阻态;当主控板读取完板地址 BB 所对应的检测板数据位后,将板数据收到信号REVOK置位,使当前传输完成的检测板 BRDYn标记清零;然后扫描检测板的BRDYx标记,只要有一根有效,则又开始另一个检测板的数据读取;当多个检测板同时有效时,主控板选定优先级较高的检测板作为当前通信对象,将板地址设为该板所对应地址。
2.根据权利要求1所述的基于DMA透明传输的多板协同系统,其特征在于:所述检测板的CPU在更新自身RAM 数据时会发出BRDYn信号,用以自触发更新;也能在 FPGA 中设计与待传送 RAM 大小一样的备份区,所述的备份区中设置有更新监测模块定时与待传送 RAM进行比较,如果不同,则更新备份区,并发出BRDYn信号,如果定时周期小于CPU对 RAM数据的读间隔,则检测板到主控板数据的更新实现自动触发。
3.根据权利要求1所述的基于DMA透明传输的多板协同系统,其特征在于:所述检测板在主控板 RAM 中的相应对应区可设一个刷新位,当取得该区数据时,将 RAM 中该位置位,而在检测板的映像 RAM中该位永为零,则如主控板中该刷新位变为零,则表明主控板该RAM 区是新数据。
CN201410275194.6A 2014-06-19 2014-06-19 基于dma透明传输的多板协同架构 Active CN104021098B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410275194.6A CN104021098B (zh) 2014-06-19 2014-06-19 基于dma透明传输的多板协同架构

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410275194.6A CN104021098B (zh) 2014-06-19 2014-06-19 基于dma透明传输的多板协同架构

Publications (2)

Publication Number Publication Date
CN104021098A CN104021098A (zh) 2014-09-03
CN104021098B true CN104021098B (zh) 2017-05-17

Family

ID=51437859

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410275194.6A Active CN104021098B (zh) 2014-06-19 2014-06-19 基于dma透明传输的多板协同架构

Country Status (1)

Country Link
CN (1) CN104021098B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106168933B (zh) * 2016-06-30 2019-08-09 国电南瑞科技股份有限公司 一种基于高速串行通信实现虚拟双端口共享内存的方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101509805A (zh) * 2009-03-27 2009-08-19 中国科学院上海光学精密机械研究所 基于现场可编程门阵列的多路并行数据采集系统
CN201569435U (zh) * 2009-12-17 2010-09-01 南京信息工程大学 一种高速ccd相机数据合成系统
CN101847864A (zh) * 2009-03-27 2010-09-29 北海银河科技继保电气有限公司 一种电力系统继电保护装置的高速同步数据采样方法
CN102117342A (zh) * 2011-01-21 2011-07-06 中国科学院上海技术物理研究所 基于PCI Express总线的多波段红外图像实时采集系统及方法
CN102521182A (zh) * 2011-11-23 2012-06-27 华南师范大学 一种可扩展多通道并行实时数据采集装置和方法
CN102551810A (zh) * 2012-03-09 2012-07-11 华南师范大学 一种多通道同步实时数字化光声成像装置及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010124736A1 (en) * 2009-04-30 2010-11-04 Telefonaktiebolaget Lm Ericsson (Publ) Efficient internal cache for hardware motion estimation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101509805A (zh) * 2009-03-27 2009-08-19 中国科学院上海光学精密机械研究所 基于现场可编程门阵列的多路并行数据采集系统
CN101847864A (zh) * 2009-03-27 2010-09-29 北海银河科技继保电气有限公司 一种电力系统继电保护装置的高速同步数据采样方法
CN201569435U (zh) * 2009-12-17 2010-09-01 南京信息工程大学 一种高速ccd相机数据合成系统
CN102117342A (zh) * 2011-01-21 2011-07-06 中国科学院上海技术物理研究所 基于PCI Express总线的多波段红外图像实时采集系统及方法
CN102521182A (zh) * 2011-11-23 2012-06-27 华南师范大学 一种可扩展多通道并行实时数据采集装置和方法
CN102551810A (zh) * 2012-03-09 2012-07-11 华南师范大学 一种多通道同步实时数字化光声成像装置及方法

Also Published As

Publication number Publication date
CN104021098A (zh) 2014-09-03

Similar Documents

Publication Publication Date Title
US11586578B1 (en) Machine learning model updates to ML accelerators
CN105824777B (zh) 一种spi总线在ipran设备中的实现方法
CN107015844A (zh) 虚拟机批量在线迁移
CN104731733B (zh) 用于跨数据处理系统的接口的频率确定的系统和方法
US7818509B2 (en) Combined response cancellation for load command
CN103559152A (zh) 基于pcie协议的cpu访问本地总线的装置及方法
CN108647046A (zh) 用于控制执行流程的设备和方法
CN102262607A (zh) 一种在pc中利用i2c总线采集温度信息的方法
CN104731757B (zh) 用于基于已删除命令确定命令速率的系统和方法
WO2021238513A1 (zh) 区块链节点扩容方法、装置、计算机设备及存储介质
CN102033818A (zh) 媒体缓冲和流水线式处理组件
CN104021098B (zh) 基于dma透明传输的多板协同架构
CN101206911A (zh) 数据选通定时补偿
US11144235B1 (en) System and method for evaluating memory system performance
CN105359122B (zh) 多cpu系统中的增强型数据传输
CN209149287U (zh) 大数据运算加速系统
US20170103796A1 (en) Dimm ssd soc dram byte lane skewing
CN103093446A (zh) 基于多处理器片上系统的多源图像融合装置和方法
TWI594125B (zh) 橫跨晶粒介面窺探或全球觀測系統訊息排序之技術
CN106547694A (zh) 一种基于ARM CortexM4内核处理器的在线调试系统
Fox Massively parallel neural computation
US9176554B2 (en) Power management in a bridge based on a second derivative value derived from a mathematical derivative of plurality of values corresponding to the received packets
CN110007940A (zh) 灰度发布的验证方法、系统、服务器及可读存储介质
CN106155947B (zh) 一种数据存储模块的实现方法
CN103714012A (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
GR01 Patent grant
GR01 Patent grant