一种基于SoCFPGA的数据传输系统及数据传输方法与流程

文档序号:12887132阅读:423来源:国知局
一种基于SoC FPGA的数据传输系统及数据传输方法与流程

本发明属于计算机通信技术领域,尤其涉及一种基于socfpga的数据传输系统及数据传输方法。



背景技术:

随着信息科技的飞速发展,信号处理任务越来越繁重,对高速数据传输的要求也越来越高,特别在当数据传输量较大,对数据传输速率要求较高的情况下,不同通讯设备或通讯模块之间的握手机制在数据传输过程中起关键性作用。此前已经出现了多种比较成熟的握手协议,例如三种最常用的rs-232握手形式:软件握手、硬件握手和xmodem。

目前,在数字信号处理方面广泛采用的是fpga+arm结构,即单独的现场可编程门阵列(field-programmablegatearray,fpga)芯片加单独的处理器(acornriscmachine,arm)相结合。其中,fpga负责对信号的采集及处理,处理后的数据需在fpga侧进行缓存,arm通过控制信号及地址信号对缓存在fpga内的数据进行读取并上传至上位机,实现信号数据的采集和上传。

当数据量较大时,数据缓存需要较大缓存空间,而fpga内部存储空间有限,难以满足要求,若将数据通过外部存储器进行缓存,则fpga既要对存储器的进行写操作也要进行读操作,还要实现读取数据发送,对数据传输速率产生影响。同时fpga与arm之间要有数据线、地址线、控制线,所需管脚较多,数据传输速率受芯片管脚限制。



技术实现要素:

本发明的目的在于提供一种快速对大数据量视频数据进行采集和上传的基于socfpga的数据传输系统。

本发明是这样实现的,一种基于socfpga的数据传输系统,所述基于socfpga的数据传输系统包括现场可编程门阵列fpga、硬核处理系统hps和双倍速率同步动态随机存储器ddr,所述双倍速率同步动态随机存储器ddr挂在所述hps侧,其中:

所述硬核处理系统hps内设有处理器arm和ddr控制器,所述fpga与所述ddr之间通过芯片内部高速互连通道axi进行数据的写操作,所述hps与所述ddr之间进行数据的读操作,其中,所述fpga与所述hps之间通过预先定义的握手信号h2f_a和h2f_b进行数据写、读操作时序控制;

所述双倍速率同步动态随机存储器ddr包括ddra和ddrb地址空间,其中,所述握手信号h2f_a置0或置1状态与所述ddra的空满状态相对应,所述握手信号h2f_b置0或置1状态与所述ddrb的空满状态相对应。

作为一种改进的方案,所述ddra和ddrb空间大小相同,且ddra空间结束地址与ddrb空间起始地址连续。

作为一种改进的方案,所述fpga访问所述ddr的频率低于所述ddr的工作频率。

本发明的另一目的在于提供一种基于socfpga的数据传输方法,所述方法包括下述步骤:

fpga对握手信号h2f_a的状态进行检测,判断所述握手信号h2f_a是否为1,当所述握手信号h2f_a为1时,所述fpga开始写ddra,当所述握手信号h2f_a为0时,继续对所述握手信号h2f_a的状态进行检测;

判断所述fpga写所述ddra是否完成,当写ddra完成时,将所述握手信号h2f_a赋值为0;

所述fpga对握手信号h2f_b的状态进行检测,判断所述握手信号h2f_b是否为1,当所述握手信号h2f_b为1时,所述fpga开始写ddrb,当所述握手信号h2f_b为0时,继续对所述握手信号h2f_b的状态进行检测;

判断所述fpga写所述ddrb是否完成,当写ddrb完成时,将所述握手信号h2f_b赋值为0,并返回执行所述fpga对握手信号h2f_a的状态进行检测的步骤。

作为一种改进的方案,所述方法还包括下述步骤:

预先对握手信号h2f_a和h2f_b进行定义;

所述握手信号h2f_a置0或置1状态与所述ddra的空满状态相对应,所述握手信号h2f_b置0或置1状态与所述ddrb的空满状态相对应。

作为一种改进的方案,所述方法还包括下述步骤:

对预先定义的所述握手信号h2f_a和h2f_b进行初始化操作,将所述握手信号h2f_a和h2f_b置0;

当hps启动时,将所述握手信号h2f_a和h2f_b均置为1。

本发明的另一目的在于提供一种基于socfpga的数据传输系统的基于socfpga的数据传输方法,所述方法包括下述步骤:

hps对握手信号h2f_a的状态进行检测,判断所述握手信号h2f_a是否为0,当所述握手信号h2f_a为0时,所述hps开始读ddra,当所述握手信号h2f_a为1时,继续对所述握手信号h2f_a的状态进行检测;

判断所述hps读所述ddra是否完成,当写ddra完成时,将所述握手信号h2f_a赋值为1;

所述hps对握手信号h2f_b的状态进行检测,判断所述握手信号h2f_b是否为0,当所述握手信号h2f_b为0时,所述hps开始读ddrb,当所述握手信号h2f_b为1时,继续对所述握手信号h2f_b的状态进行检测;

判断所述hps读所述ddrb是否完成,当读ddrb完成时,将所述握手信号h2f_b赋值为1,并返回执行所述hps对握手信号h2f_a的状态进行检测的步骤。

作为一种改进的方案,所述方法还包括下述步骤:

预先对握手信号h2f_a和h2f_b进行定义;

所述握手信号h2f_a置0或置1状态与所述ddra的空满状态相对应,所述握手信号h2f_b置0或置1状态与所述ddrb的空满状态相对应。

作为一种改进的方案,所述方法还包括下述步骤:

对预先定义的所述握手信号h2f_a和h2f_b进行初始化操作,将所述握手信号h2f_a和h2f_b置0;

当hps启动时,将所述握手信号h2f_a和h2f_b均置为1。

在本发明实施例中,基于socfpga的数据传输系统包括fpga、hps和ddr,ddr挂在所述hps侧,hps内设有处理器arm和ddr控制器,fpga与所述ddr之间通过芯片内部高速互连通道axi进行数据的写操作,所述hps与所述ddr之间进行数据的读操作,其中,所述fpga与所述hps之间通过预先定义的握手信号h2f_a和h2f_b进行数据写、读操作时序控制;ddr包括ddra和ddrb地址空间,握手信号h2f_a置0或置1状态与所述ddra的空满状态相对应,所述握手信号h2f_b置0或置1状态与所述ddrb的空满状态相对应,从而实现将压缩的视频数据上传至上位机,数据传输流畅,速度较快,给用户带来较好的体验。

附图说明

图1是本发明提供的基于socfpga的数据传输系统的结构示意图;

图2是本发明实施例一提供的基于socfpga的数据传输方法的实现流程图;

图3是本发明实施例二提供的基于socfpga的数据传输方法的实现流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1示出了本发明提供的基于socfpga的数据传输系统的结构示意图,为了便于说明,图中仅给出了与本发明相关的部分。

基于socfpga的数据传输系统包括现场可编程门阵列fpga、硬核处理系统(hardprocessorsystem,hps)和双倍速率同步动态随机存储器(dualdatarate,ddr),所述双倍速率同步动态随机存储器ddr挂在所述hps侧,其中:

所述硬核处理系统hps内设有处理器arm和ddr控制器,所述fpga与所述ddr之间通过芯片内部高速互连通道axi进行数据的写操作,所述hps与所述ddr之间进行数据的读操作,其中,所述fpga与所述hps之间通过预先定义的握手信号h2f_a和h2f_b进行数据写、读操作时序控制;

所述双倍速率同步动态随机存储器ddr包括ddra和ddrb地址空间,其中,所述握手信号h2f_a置0或置1状态与所述ddra的空满状态相对应,所述握手信号h2f_b置0或置1状态与所述ddrb的空满状态相对应。

其中,根据cyclonevsoc芯片的特点,通过hps侧集成的ddrcontroller,可以实现fpga与hps共同访问同一ddr,在数据传输过程中fpga将数据依次写入ddr,hps从中读取;在ddr地址空间确定的情况下fpga与hps之间只需要通过握手信号指示ddr的可读可写状态即可。

在本发明实施例中,基于socfpga的数据传输系统的过程全部均在cyclonevsoc芯片中完成,fpga负责数据的采集处理过程,hps负责系统控制过程。fpga采集并处理数据完成之后,通过特定的通道直接将数据写入挂在hps侧的ddr,当数据写入ddr后,arm可以从中将数据读出并上传至上位机。其中,fpga访问ddr的过程中没有arm的参与,因此效率得到大大的提高,fpga与arm之间是通过握手信号来获取对方此刻对ddr的操作的。

在该实施例中,对于,fpga与arm之间的握手信号的预定义为:

打开alterafpga开发软件quartus15.1新建一个工程,在插件qsys中添加hps,编辑hps,添加一个fpga-to-hpsinterface并选择为64位的axi-3,在qsys中添加两个inout型的pioh2f_a和h2f_b,该h2f_a和h2f_b即fpga与hps之间的握手信号;

当h2f_a为低(0)时表示fpga将ddra写满,此时hps可以读取ddra,当h2f_a为高(1)时表示hps将ddra读空,此时fpga可以将数据写入ddra,同理,h2f_b对应于ddrb的空满状态。

其中,该握手信号的设置还满足下述条件:

(1)在hps侧的ddr控制器可按照优先级管理fpga及hps对ddr的合理访问,保证ddr不会被长时间独占;

(2)ddr的两个缓存空间ddra和ddrb的起始地址及地址空间,其中ddra、ddrb空间大小相同,且ddra空间结束地址与ddrb空间起始地址连续;

(3)确定fpga的时钟频率,确保fpga访问ddr的频率低于ddr的工作频率;

(4)对fpga访问ddr的接口参数进行配置,例如位宽、传输有效信号等;

(5)确定fpga侧分别指示ddra和ddrb写满可读的信号;

(6)确定hps侧分别指示ddra和ddrb读空可写的信号。

图2示出了本发明实施例一提供的基于socfpga的数据传输方法的实现流程图,其具体包括下述步骤:

在步骤s101中,fpga对握手信号h2f_a的状态进行检测,判断所述握手信号h2f_a是否为1,是则执行步骤s102,否则返回继续执行步骤s101。

在步骤s102中,当所述握手信号h2f_a为1时,所述fpga开始写ddra。

在步骤s103中,判断所述fpga写所述ddra是否完成,是则执行步骤s104,否则执行继续执行步骤s102。

在步骤s104中,当写ddra完成时,将所述握手信号h2f_a赋值为0。

在步骤s105中,fpga对握手信号h2f_b的状态进行检测,判断所述握手信号h2f_b是否为1,是则执行步骤s106,否则返回继续执行步骤s105。

在步骤s106中,当所述握手信号h2f_b为1时,所述fpga开始写ddrb。

在步骤s107中,判断所述fpga写所述ddrb是否完成,是则执行步骤s108,否则继续执行步骤s106。

在步骤s108中,当写ddrb完成时,将所述握手信号h2f_b赋值为0,并返回执行所述fpga对握手信号h2f_a的状态进行检测的步骤。

上述给出了基于socfpga的数据传输中,基于fpga端的握手过程。

在本发明实施例中,预先对握手信号h2f_a和h2f_b进行定义;

所述握手信号h2f_a置0或置1状态与所述ddra的空满状态相对应,所述握手信号h2f_b置0或置1状态与所述ddrb的空满状态相对应;

其中,对预先定义的所述握手信号h2f_a和h2f_b进行初始化操作,将所述握手信号h2f_a和h2f_b置0;

当hps启动时,将所述握手信号h2f_a和h2f_b均置为1。

图3示出了本发明实施例二提供的基于socfpga的数据传输方法的实现流程图,其具体包括下述步骤:

在步骤s201中,hps对握手信号h2f_a的状态进行检测,判断所述握手信号h2f_a是否为0,是则执行步骤s202,否则返回继续执行步骤s201。

在步骤s202中,当所述握手信号h2f_a为0时,所述hps开始读ddra。

在步骤s203中,判断所述hps读所述ddra是否完成,是则执行步骤s204,否则执行继续执行步骤s202。

在步骤s204中,当读ddra完成时,将所述握手信号h2f_a赋值为1。

在步骤s205中,hps对握手信号h2f_b的状态进行检测,判断所述握手信号h2f_b是否为0,是则执行步骤s206,否则返回继续执行步骤s205。

在步骤s206中,当所述握手信号h2f_b为0时,所述hps开始读ddrb。

在步骤s207中,判断所述hps读所述ddrb是否完成,是则执行步骤s208,否则执行步骤s206。

在步骤s208中,当读ddrb完成时,将所述握手信号h2f_b赋值为1,并返回执行所述hps对握手信号h2f_a的状态进行检测的步骤。

上述给出了基于socfpga的数据传输过程中,基于hps端的握手过程。

在本发明实施例中,基于socfpga的数据传输系统包括fpga、hps和ddr,ddr挂在所述hps侧,hps内设有处理器arm和ddr控制器,所述fpga与所述ddr之间通过芯片内部高速互连通道axi进行数据的写操作,所述hps与所述ddr之间进行数据的读操作,其中,所述fpga与所述hps之间通过预先定义的握手信号h2f_a和h2f_b进行数据写、读操作时序控制;ddr包括ddra和ddrb地址空间,握手信号h2f_a置0或置1状态与所述ddra的空满状态相对应,所述握手信号h2f_b置0或置1状态与所述ddrb的空满状态相对应,从而实现将压缩的视频数据上传至上位机,数据传输流畅,速度较快,给用户带来较好的体验。

同时,本发明实施例解决了数据量较大时fpga内部存储空间小的问题,采用乒乓缓存结构(ddra+ddrb的方式),充分保证了数据传输的流畅性,fpga与hps之间只有两个握手信号,握手过程比较简单,不易出错。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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