System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请属于数据通信领域,更具体地,涉及一种基于fpga多通道数据通信的通道切换方法和fpga。
技术介绍
1、在网络通信、工业控制、数据传输等领域,多通道数据通信汇聚到某一个处理器上,在这些领域广泛被应用。在某些通信场景中,存在着某一控制器控制着多路业务的数据处理功能,但受制于芯片自身的接口限制,不可能有多路数据通道的特征。因此,进行多路通道汇聚到一路总线传输给控制器处理,而且多通道的数据协议、通信速率等均有可能不同。
技术实现思路
1、针对现有技术的缺陷,本申请的目的在于提供一种基于fpga多通道数据通信的通道切换方法和fpga,旨在解决处理器芯片限制的接口少、通信协议单一、通信速率固定的问题。
2、为实现上述目的,第一方面,本申请提供了一种基于fpga多通道数据通信的通道切换方法,所述fpga作为接收端,一侧与cpu进行通信,另一侧与多路业务板进行通信,所述方法包括:
3、s1.检测fpga与cpu通信的链路、fpga与所有业务板通信的链路是否全部连接上,若是,进入s2,否则,继续检测链路连接状态;
4、s2.fpga本地缓存第一区域非满时,开启cpu向fpga本地缓存第一区域写数据,否则,暂停cpu向fpga本地缓存第一区域写数据;fpga本地缓存第一区域非空时,通道号对应业务板从fpga本地缓存第一区域读数据。
5、优选地,所述fpga本地缓存第一区域非满时,开启cpu向fpga本地缓存第一区域写数据,否则,暂停cpu向fpg
6、s21.若检测到fpga本地缓存第一区域非满,拉高与cpu通信的链路ready信号,以使cpu检测到该信号后启动向fpga写数据,进入s22,否则,拉低与cpu通信的链路ready信号,以使cpu检测到该信号后暂停向fpga写数据;
7、s22.接收到cpu向fpga写入的数据时,将其存入fpga本地缓存第一区域。
8、优选地,所述fpga本地缓存第一区域非空时,通道号对应业务板从fpga本地缓存第一区域读数据具体如下:
9、接收到cpu向fpga写入的数据时,检测数据中的通道号;
10、在fpga本地缓存第一区域非空时,按照检测到的通道号,顺序从fpga本地缓存第一区域读取数据,发送到该通道对应的业务板。
11、为实现上述目的,第二方面,本申请提供了一种基于fpga多通道数据通信的通道切换方法,所述fpga作为发送端,一侧与cpu进行通信,另一侧与多路业务板进行通信,所述方法包括:
12、t1.检测fpga与cpu通信的链路、fpga与所有业务板通信的链路是否全部连接上,若是,进入t2,否则,继续检测链路连接状态;
13、t2.fpga本地缓存第二区域非满时,通过轮询不同的通道号裁决将哪路通道占用,该通道对应业务板向fpga本地缓存第二区域写数据,否则,暂停当前通道对应业务板向fpga本地缓存第二区域写数据;fpga本地缓存第二区域非空时,cpu从fpga本地缓存第二区域读数据。
14、优选地,所述通过轮询不同的通道号裁决将哪路通道占用,该通道对应业务板向fpga本地缓存第二区域写数据,具体如下:
15、(1)按照通道号顺序拉高与业务板通信链路的ready信号;
16、(2)同时检测该通道是否有数据帧在发送,若无,将通道号加一,进入(1),若有,将发送的数据帧存入fpga本地缓存第二区域。
17、优选地,步骤(2)具体如下:
18、(21)若检测当前通道的通信接口有数据帧发送,在fpga本地缓存第二区域非满的情况下,拉高当前通道的ready信号,同时拉低其他通道的ready信号,以暂停其他的通道的数据发送;
19、(22)在两个周期内检测当前通道上是否有数据帧发送,若有,则占用该通道,进入(23);若无,释放该通道的占用权,将当前通道号加一,进入(21);
20、(23)将接收到的数据帧存入fpga本地缓存第二区域,在当前通道进行正常的数据帧发送过程中,实时检测当前通道上发送数据帧的帧结构是否完整,若是,进入(22),否则,若未检测到帧结束信号,产生该帧的结尾信号,进入自愈状态,丢弃当前数据帧,进入(22);若超过2500个周期内未检测到帧结束信号或者一毫秒内未检测到数据帧的任何信号,退出当前通道,将通道号加一,进入(21)。
21、优选地,所述fpga本地缓存第二区域非空时,cpu从fpga本地缓存第二区域读数据,具体如下:
22、判断fpga本地缓存第二区域是否非空且与cpu通信的链路ready信号为高,若是,从fpga本地缓存第二区域中读取数据,发送给cpu;否则,继续等待。
23、为实现上述目的,第三方面,本申请提供了一种fpga,包括至少一个处理器以及至少一个存储器;
24、所述至少一个存储器用于存储计算机指令;
25、所述至少一个处理器用于执行所述计算机指令中的至少部分指令以实现第一方面或者第二方面所述的通道切换方法。
26、优选地,所述fpga通过rgmii与cpu进行通信,通过多路aurora总线与多路业务板进行通信。
27、总体而言,通过本申请所构思的以上技术方案与现有技术相比,具有以下有益效果:
28、本申请提出一种基于fpga多通道数据通信的通道切换方法和fpga,在与cpu通信的链路、与所有业务板通信的链路全连接上的前提下,位于cpu与多路业务板之间的fpga作为接收端时,fpga本地缓存第一区域非满时,开启cpu向fpga本地缓存第一区域写数据,否则,暂停cpu向fpga本地缓存第一区域写数据;fpga本地缓存第一区域非空时,通道号对应业务板从fpga本地缓存第一区域读数据;位于cpu与多路业务板之间的fpga作为发送端时,fpga本地缓存第二区域非满时,通过轮询不同的通道号裁决将哪路通道占用,该通道对应业务板向fpga本地缓存第二区域写数据,否则,暂停当前通道对应业务板向fpga本地缓存第二区域写数据;fpga本地缓存第二区域非空时,cpu从fpga本地缓存第二区域读数据。在fpga中实现多通道数据的缓存以及通道切换轮询功能,有效解决某些处理器芯片自身接口少,但需进行多路数据通信并且每路通信协议和速率存在不同的通信模式。相对传统的通信模式,具有灵活性和可编程性,能够有效解决处理器芯片限制的接口少、通信协议单一、通信速率固定等问题,大大提高可行性和研发效率,提高成功率和节省项目成本。
本文档来自技高网...【技术保护点】
1.一种基于FPGA多通道数据通信的通道切换方法,其特征在于,所述FPGA作为接收端,一侧与CPU进行通信,另一侧与多路业务板进行通信,所述方法包括:
2.如权利要求1所述的通道切换方法,其特征在于,所述FPGA本地缓存第一区域非满时,开启CPU向FPGA本地缓存第一区域写数据,否则,暂停CPU向FPGA本地缓存第一区域写数据,具体如下:
3.如权利要求1所述的通道切换方法,其特征在于,所述FPGA本地缓存第一区域非空时,通道号对应业务板从FPGA本地缓存第一区域读数据具体如下:
4.一种基于FPGA多通道数据通信的通道切换方法,其特征在于,所述FPGA作为发送端,一侧与CPU进行通信,另一侧与多路业务板进行通信,所述方法包括:
5.如权利要求4所述的通道切换方法,其特征在于,所述通过轮询不同的通道号裁决将哪路通道占用,该通道对应业务板向FPGA本地缓存第二区域写数据,具体如下:
6.如权利要求5所述的通道切换方法,其特征在于,步骤(2)具体如下:
7.如权利要求4所述的通道切换方法,其特征在于,所述FPGA
8.一种FPGA,其特征在于,包括至少一个处理器以及至少一个存储器;
9.如权利要求8所述的FPGA,其特征在于,所述FPGA通过RGMII与CPU进行通信,通过多路AURORA总线与多路业务板进行通信。
...【技术特征摘要】
1.一种基于fpga多通道数据通信的通道切换方法,其特征在于,所述fpga作为接收端,一侧与cpu进行通信,另一侧与多路业务板进行通信,所述方法包括:
2.如权利要求1所述的通道切换方法,其特征在于,所述fpga本地缓存第一区域非满时,开启cpu向fpga本地缓存第一区域写数据,否则,暂停cpu向fpga本地缓存第一区域写数据,具体如下:
3.如权利要求1所述的通道切换方法,其特征在于,所述fpga本地缓存第一区域非空时,通道号对应业务板从fpga本地缓存第一区域读数据具体如下:
4.一种基于fpga多通道数据通信的通道切换方法,其特征在于,所述fpga作为发送端,一侧与cpu进行通信,另一侧与多路业务板进...
【专利技术属性】
技术研发人员:黄刚林,邓洁铮,张志钰,张竞涛,刘尚军,余安险,卢根,曾迎春,盛毅,张航航,安泰,万丛洋,贺灵,蔡嵩,王丽,
申请(专利权)人:武汉船舶通信研究所中国船舶集团有限公司第七二二研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。