System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于SRIO的单通道多数据源传输系统及方法技术方案_技高网

一种基于SRIO的单通道多数据源传输系统及方法技术方案

技术编号:43850664 阅读:13 留言:0更新日期:2024-12-31 18:42
一种基于SRIO的单通道多数据源传输系统及方法,属于数据传输技术领域,包括FPGA子系统和DSP子系统;FPGA子系统包括FPGA预处理模块、SRIO发送模块、SRIO复位模块和SRIO接收模块;DSP子系统包括DSP接收模块、DSP发送驱动层、DSP发送接口层、DSP发送应用层和EMIF设置模块;通过SRIO发送模块,将前级多个通道的FPGA数据预处理模块封装好的SRIO包,进行排序发送即可。SRIO进行无应答传输,相对于现有技术中对于短包数据的处理,大大提高了传输效率和实时性;加入片循环操作,对比之前单缓存或者乒乓操作,增加了存储空间,前级传输无需等待后级的处理反馈时间,直接进行大批量连续存储,这种连续存储解决了等待的延时问题。

【技术实现步骤摘要】

本专利技术属于数据传输,尤其涉及一种基于srio的单通道多数据源传输系统及方法。


技术介绍

1、现有的数据处理系统,常使用嵌入式平台进行开发,dsp+fpga制成pcb,dsp进行总数据报文的处理和流程控制,fpga进行硬件接口拓展,dsp与fpga内部通信核心使用srio(serial rapid ip)和emif(external memory interface)外部存储器,srio是一种高速串行的通信接口协议,其拓扑结构简单且灵活多变,串行方式硬件总线少,是一种面向嵌入式的高可靠、高性能、基于包交换的高速互联技术。emif是dsp芯片与fpga之间常用的一种并行通信连接方式,性能优良,具有很大的方便性和灵活性。

2、在现有数据传输系统中,常见采用emif进行串口、spi等时间长度不确定的接口数据传输,srio进行大批量连续数据传输方式,这种方式存在emif速率低,时效性差的问题;或者采用srio使用小于等于256字节的流模式数据包进行传输的方式,这种方式导致srio带宽利用低,影响数据整体传输效率。


技术实现思路

1、本专利技术旨在解决上述使用不同接口不同格式的数据传输,统一使用srio进行快速高效的数据传输问题;加入片循环轮询的方式,解决短包快速连续大量存储的问题,同步缩短了传输过程中的延时等待;提供一种基于srio的单通道多数据源传输系统及方法。

2、第一方面,本专利技术提供一种基于srio的单通道多数据源传输系统,包括fpga子系统和dsp子系统;

3、所述fpga子系统包括接口通道模块、fpga预处理模块、srio发送模块、emif状态模块、srio复位模块和srio接收模块;

4、所述接口通道模块用于外部连接多个接口的硬件;所述fpga预处理模块用于对来自外部接口的数据进行预处理;所述srio发送模块用于数据包和门铃包发送;所述emif状态模块用于当前接口通道的最新状态结果存储;所述srio复位模块用于在srio链路链接初始化或者异常时进行复位;所述srio接收模块用于接收srio数据包;

5、所述dsp子系统包括dsp接收模块、dsp门铃模块、dsp发送驱动层、dsp发送接口层、dsp发送应用层和emif设置模块;

6、所述dsp接收模块用于接收并将数据写入dsp的内存;所述dsp门铃模块用于识别门铃中断的中断源;所述dsp发送应用层用于处理各个接口需要发送的数据;所述dsp发送接口层根据数据量分时分批分包启动所述dsp发送驱动层将srio包发送出去;所述emif设置模块具有存储性能,用于做srio协议约定,进行每个通道的srio的片循环地址、片循环大小、片循环次数、门铃中断的数据长度、门铃中断的数据包个数的设置。

7、进一步,本专利技术所述基于srio的单通道多数据源传输系统,所述接口通道模块依据各接口的采样时钟将数据接收进来或者发送出去;接收接口最多64个,发送接口最多2×32个,接口带宽之和小于等于srio带宽。

8、进一步,本专利技术所述基于srio的单通道多数据源传输系统,所述fpga预处理模块进行数据预处理时,按照emif设置模块的srio协议和内部的片循环进行打包数据;所述打包数据包括加包头、分包、加门铃包;打包完成之后的数据包传递到srio发送模块。

9、进一步,本专利技术所述基于srio的单通道多数据源传输系统,所述srio复位模块复位时将fpga内部关于srio的计数、fifo、状态字进行清除重置;fpga子系统实时检测srio的链路链接状态,在链路link或port异常时通过emif状态模块通知dsp子系统,进行复位重连。

10、进一步,本专利技术所述基于srio的单通道多数据源传输系统,所述dsp门铃模块识别门铃中断的中断源,使用doorbell中断来通知dsp子系统;dsp子系统进入门铃中断后,先根据doorbell门铃中断查找是哪一个接口通道的中断,之后通过emif状态模块识别片循环轮询的地址区和每片地址区的有效字节长度。

11、进一步,本专利技术所述基于srio的单通道多数据源传输系统,所述fpga预处理模块对数据打包完成之后,srio发送模块发送门铃包之前,fpga子系统将当前接口通道的最新状态结果更新并通过emif状态模块存储,方便dsp进行门铃中断以后进行状态结果查询,识别片循环轮询结果,完整的将数据存取出来。

12、第二方面,本专利技术提供一种根据前述第一方面所述基于srio的单通道多数据源传输系统的传输方法,包括数据上行过程和数据下行过程;

13、所述数据上行过程包括:fpga子系统从外部多个接口的硬件接收数据,通过fpga预处理模块进行数据预处理,对每个接口通道的数据,按照预设的门铃中断协议与片循环协议处理打包后通过srio发送模块将数据包和门铃包发送至dsp子系统,将前级的多路数据通过一个srio通道发送到dsp,由dsp的ddr3进行数据缓存;直接缓存到dsp的内存上,不需要使用fpga多余缓存,fpga只用实时处理封包主动上传;srio发送模块的速度远大于前级的预处理模块的打包速度;当只有一个通道需发送的时,直接将此通道数据发送出去;当存在两路或者两路以上的数据需发送的时,按照通道号依次将数据包发送出去;

14、dsp的srio底层在接收到数据后,启动dma进行数据搬移,按照srio包头协议的地址和长度,一包一包的将数据存放到dsp相应的内存区;在接收到门铃中断以后,先验证当前的中断源识别通道,之后查询通道的emif状态模块,查询当前通道的此次中断片循环的首地址与上次片循环的首地址,短包补数的接口会同时识别每片地址的有效数据字节数,之后将两次中断之间的有效数据提取出来,后续进行应用层处理;

15、所述数据下行过程包括:dsp子系统发送数据时进行分时分批发送;按照约定的接口通道协议封包;fpga子系统识别封包中的包头地址信息,判断是哪一个接口通道的数据,将数据提取出来,按照包接收到的顺序,直接放到对应的接口fifo进行对外发送即可。

16、因为srio的传输速度远大于外部接口速度,所以只需要约定数据传输的协议,不需要进行优先级的处理。数据下行的时序由dsp进行主动控制。只需考虑数据发送不要过快,导致超过fpga的fifo缓存数量,从而丢失数据即可。同时因为fpga是并行的,所以不需对fpga发送门铃中断,不用考虑fpga进行实时响应的问题。同时没有门铃的约束,所以dsp发送给fpga的数据通道数远大于64,可以达到2×16个通道数据。

17、进一步,本专利技术所述基于srio的单通道多数据源传输方法,所述门铃中断协议约定每个通道的中断数据量;fpga发送的一个通道数据量达到一包、两包、或者多包,需要发送一次门铃中断通知dsp(多少包数dsp按照硬件接口特性设置给fpga),一次门铃内的包头地址协议按照此次的片循环首地址进行累计,下一次门铃需要新的片循环首地址进行累计。

1本文档来自技高网...

【技术保护点】

1.一种基于SRIO的单通道多数据源传输系统,其特征在于:包括FPGA子系统和DSP子系统;

2.根据权利要求1所述基于SRIO的单通道多数据源传输系统,其特征在于:所述接口通道模块依据各接口的采样时钟将数据接收进来或者发送出去;接收接口最多64个,发送接口最多2×32个,接口带宽之和小于等于SRIO带宽。

3.根据权利要求1所述基于SRIO的单通道多数据源传输系统,其特征在于:所述FPGA预处理模块进行数据预处理时,按照EMIF设置模块的SRIO协议和内部的片循环协议进行打包数据;所述打包数据包括加包头、分包、加门铃包;打包完成之后的数据包传递到SRIO发送模块。

4.根据权利要求1所述基于SRIO的单通道多数据源传输系统,其特征在于:所述SRIO复位模块复位时将FPGA内部关于SRIO的计数、FIFO、状态字进行清除重置;FPGA子系统实时检测SRIO的链路链接状态,在链路link或port异常时通过EMIF状态模块通知DSP子系统,进行复位重连。

5.根据权利要求1所述基于SRIO的单通道多数据源传输系统,其特征在于:所述DSP门铃模块识别门铃中断的中断源,使用DoorBell中断来通知DSP子系统;DSP子系统进入门铃中断后,先根据DoorBell门铃中断查找是哪一个接口通道的中断,之后通过EMIF状态模块识别片循环轮询的地址区和每片地址区的有效字节长度。

6.根据权利要求1所述基于SRIO的单通道多数据源传输系统,其特征在于:所述FPGA预处理模块对数据打包完成之后,SRIO发送模块发送门铃包之前,FPGA子系统将当前接口通道的最新状态结果更新并通过EMIF状态模块存储。

7.一种根据权利要求1-6任一项所述基于SRIO的单通道多数据源传输系统的传输方法,包括数据上行过程和数据下行过程;其特征在于:

8.根据权利要求7所述基于SRIO的单通道多数据源传输方法,其特征在于:所述门铃中断协议约定每个通道的中断数据量;FPGA发送的一个通道数据量达到一包、两包、或者多包,需要发送一次门铃中断通知DSP,一次门铃内的包头地址协议按照此次的片循环首地址进行累计,下一次门铃需要新的片循环首地址进行累计。

9.根据权利要求7所述基于SRIO的单通道多数据源传输方法,其特征在于:所述片循环协议约定一个通道连续存储多少次门铃中断和单次门铃中断数据长度;发送一次门铃以后,新的数据需要按照片循环协议偏移包头首地址,保证数据区连续且能够按照门铃的长度进行连续排列;同时在DSP关闭中断再次打开以后,DSP通过EMIF状态模块查询FPGA片循环的状态寄存器值,检测两次中断的间隔区,能够完整识别DDR3中的缓存数据。

10.根据权利要求9所述基于SRIO的单通道多数据源传输方法,其特征在于:根据片循环协议轮询处理短包数据时,对于不连续的短包类型的数据,FPGA需进行数据断包处理;将断包按照时间进行判断;对于长度不一致的数据采用补数或分包或加门铃中断的方式进行处理;对于连续的数据等待满足256字节封装成SWRITE包即可。

...

【技术特征摘要】

1.一种基于srio的单通道多数据源传输系统,其特征在于:包括fpga子系统和dsp子系统;

2.根据权利要求1所述基于srio的单通道多数据源传输系统,其特征在于:所述接口通道模块依据各接口的采样时钟将数据接收进来或者发送出去;接收接口最多64个,发送接口最多2×32个,接口带宽之和小于等于srio带宽。

3.根据权利要求1所述基于srio的单通道多数据源传输系统,其特征在于:所述fpga预处理模块进行数据预处理时,按照emif设置模块的srio协议和内部的片循环协议进行打包数据;所述打包数据包括加包头、分包、加门铃包;打包完成之后的数据包传递到srio发送模块。

4.根据权利要求1所述基于srio的单通道多数据源传输系统,其特征在于:所述srio复位模块复位时将fpga内部关于srio的计数、fifo、状态字进行清除重置;fpga子系统实时检测srio的链路链接状态,在链路link或port异常时通过emif状态模块通知dsp子系统,进行复位重连。

5.根据权利要求1所述基于srio的单通道多数据源传输系统,其特征在于:所述dsp门铃模块识别门铃中断的中断源,使用doorbell中断来通知dsp子系统;dsp子系统进入门铃中断后,先根据doorbell门铃中断查找是哪一个接口通道的中断,之后通过emif状态模块识别片循环轮询的地址区和每片地址区的有效字节长度。

6.根据权利要求1所述基于srio的单通道多数据源传输系统,其特征在于:所述fpga...

【专利技术属性】
技术研发人员:杨丰波张兴蒋建军
申请(专利权)人:西安奇维科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1