本发明专利技术涉及一种基于FPGA的数据传输板之间进行高速传输的方法,与现有技术相比解决了数据传输板之间数据通信速率低的缺陷。本发明专利技术包括以下步骤:监听空闲标志位;对发送FIFO写数据;数据组帧;数据编码;差分传送;差分转换;同步接收;数据解码;数据解析;数据读取。本发明专利技术可以更快的实现数据传输板之间的数据传输。
【技术实现步骤摘要】
一种基于FPGA的数据传输板之间进行高速传输的方法
本专利技术涉及FPGA传输技术,具体来说是一种基于FPGA的数据传输板之间进行高速传输的方法。
技术介绍
目前在配电自动化终端中多采用控制板、数据传输板的结构,数据传输板之间主要通过总线来传输数据,传统的数据总线有CAN7、RS232和PCI。由于智能电网的建设,对配电网要求越来越高,配电网自动化设备功能也越来越多,随之而来的问题就是这些设备内部需要很高的数据传输速率来保证各种功能的实现。比如在配电自动化系统中,最大需要同时采样90路模拟量,一个周波需要采集128点,如果用16位的采集,则数据速率至少为90x16x128x50=9216000bps,传统的CAN接口,通常高速为500K~1M,显然已经不能满足我们的需求,而FPGA内部拥有丰富的逻辑资源和接口资源,可以实现数据传输板的高速通讯。因此如何开发出一种基于FPGA实现数据传输板高速通信的方法已经成为急需解决的技术问题。
技术实现思路
本专利技术的目的是为了解决现有技术中数据传输板之间数据通信速率低的缺陷,提供一种基于FPGA的数据传输板之间进行高速传输的方法来解决上述问题。为了实现上述目的,本专利技术的技术方案如下:一种基于FPGA的数据传输板之间进行高速传输的方法,主数据传输板包括主CPU和主FPGA,从数据传输板包括从CPU和从FPGA;主FPGA包括与主CPU相连的主总线控制逻辑模块,主总线控制逻辑模块通过发送FIFO与发送帧处理模块相连,发送帧处理模块通过编码模块与并串转换模块相连,并串转换模块与差分输出模块相连;差分输入模块通过同步模块与解码模块相连,解码模块通过接收帧处理模块与接收FIFO相连,接收FIFO通过从总线控制逻辑模块与从CPU相连;差分输出模块与差分输入模块相连,传输方法包括以下步骤:监听空闲标志位,检测并串转换模块中的空闲标志位是否处于空闲状态,若处于繁忙状态则继续等待空闲状态,若处于空闲状态,主CPU将发送数据写入主总线控制逻辑模块,并置位于主总线控制逻辑模块中的发送标志位;对发送FIFO写数据,主总线控制逻辑模块接收到发送标志位的消息后,将数据写入发送FIFO;数据组帧,发送帧处理模块检测到发送FIFO中有数据后,将数据读出并组帧发送给编码模块;数据编码,编码模块接收到数据后,将数据的每个字节通过8B/10B编码器编成10bit的数据,发送至并串转换模块;差分传送,并串转换模块接收到编码模块的10bit数据后将其转换成1bit数据,通过差分输出模块将单端信号转化为差分信号传出去,并置并串转换模块的空闲标志位为空闲状态;差分转换,差分输入模块接收差分输出模块发送的数据并转换成单端信号后发送给同步模块;同步接收,同步模块通过位同步形成数据采集时钟,通过字节同步得到10bit数据后发送给解码模块;数据解码,解码模块通过8B/10B解码器将10bit数据转换成8bit数据并发送给接收帧处理模块;数据解析,接收帧处理模块将数据根据帧定义进行解析,并将解析后的数据存入接收FIFO;数据读取,从总线控制逻辑模块监控接收FIFO中的字节数N,如果N=20,则产生中断并通知从CPU,从CPU通过数据总线读取数据。所述的数据组帧包括以下步骤:发送帧处理模块监测发送FIFO中的数据字节接口;若检测到发送FIFO中的字节数不为零,则不停地轮询发送FIFO中的字节信号;若字节数超过10个则将数据依次读出,发送FIFO进入读数据状态,发送FIFO读取一个字节的数据后进行计算校验和,判断处理的数据个数是否等于待发送字节数,若是则进入组帧状态,加上帧头、信息位和校验位并将数据传给编码模块;若数据个数小于待发送字节数,则继续发送FIFO的数据,直到处理的字节数等于待发送字节数为止;若发送FIFO的轮询时间大于超时时间,发送FIFO进入数据状态,发送FIFO读取一个字节的数据后进计算校验和,判断处理的数据个数是否等于待发送字节数,若是则进入组帧状态,加上帧头、信息位和校验位并将数据传给编码模块;若数据个数小于待发送字节数,则继续发送FIFO的数据,直到处理的字节数等于待发送字节数为止。所述的数据解析包括以下步骤:接收帧处理模块在未收到字节使能信号前处于空闲状态,探测到字节使能信号后,接收帧处理模块进入帧头状态;判断帧头状态中收到的数据是否是帧头,如果是则等下一个字节使能信号到来进入读帧字节数状态,如果不是,则返回空闲状态;读取数据并转入计算校验状态,在计算校验状态中计算校验和并累加读取字节数,当读取字节数小于帧字节数时,返回读取数据状态;当读取字节数等于帧字节数时,进入读取校验位状态;在读取校验位状态中,判断校验和是否正确,如果正确则进入写数据到接收FIFO的状态,如果不正确则返回空闲状态;在写数据到接收FIFO状态中,连续将等于帧字节数个数的数据都存入接收FIFO中,存完转入空闲状态,重新等待新数据帧的到来。有益效果本专利技术的一种基于FPGA的数据传输板之间进行高速传输的方法,与现有技术相比可以更快的实现数据传输板之间的数据传输。相对于CAN、RS232总线传输速率更高,相对于PCI总线不需要设计复杂的通信板和单独的PCI桥接芯片,并且由于采用差分信号传输,其抗干扰能力更强,成本更低。附图说明图1为基于FPGA的数据传输板之间的连接结构图图2为本专利技术的方法流程图图3为本专利技术中数据组帧的方法流程图图4为本专利技术中位同步处理的逻辑结构示意图图5为本专利技术中位同步处理的D触发器连接示意图其中,1-主FPGA、2-主CPU、11-主总线控制逻辑模块、12-发送FIFO、13-发送帧处理模块、14-编码模块、15-并串转换模块、16-差分输出模块、3-从FPGA、31-差分输入模块、32-同步模块、33-解码模块、34-接收帧处理模块、35-接收FIFO、36-从总线控制逻辑模块、4-从CPU。具体实施方式为使对本专利技术的结构特征及所达成的功效有更进一步的了解与认识,用以较佳的实施例及附图配合详细的说明,说明如下:本专利技术一种基于FPGA的数据传输板之间进行高速传输的方法,如图1所示,可以根据现有技术的内容对主数据传输板与从数据传输板之间进行连接,数据传输板为设于控制板上用于数据传输而使用。主数据传输板用于发送数据而使用,包括主CPU2和主FPGA1,从数据传输板用于接收数据而使用,包括从CPU4和从FPGA3。主FPGA1包括与主CPU2相连的主总线控制逻辑模块11,主总线控制逻辑模块11通过发送FIFO12与发送帧处理模块13相连,发送帧处理模块13通过编码模块14与并串转换模块15相连,并串转换模块15与差分输出模块16相连。从FPGA3包括差分输入模块31,差分输入模块31通过同步模块32与解码模块33相连,解码模块33通过接收帧处理模块34与接收FIFO35相连,接收FIFO35通过从总线控制逻辑模块36与从CPU4相连。差分输出模块16与差分输入模块31相连,可以通过LVPECL总线进行差分输出模块16与差分输入模块31之间的连接,从而实现主数据传输板和从数据传输板之间的物理连接。如图2所示,基于FPGA的数据传输板之间进行高速传输的方法包括以下步骤:第一步,检测并串转换模块15中的空闲标志位是否处于空闲本文档来自技高网...
【技术保护点】
一种基于FPGA的数据传输板之间进行高速传输的方法,主数据传输板包括主CPU(2)和主FPGA(1),从数据传输板包括从CPU(4)和从FPGA(3);主FPGA(1)包括与主CPU(2)相连的主总线控制逻辑模块(11),主总线控制逻辑模块(11)通过发送FIFO(12)与发送帧处理模块(13)相连,发送帧处理模块(13)通过编码模块(14)与并串转换模块(15)相连,并串转换模块(15)与差分输出模块(16)相连;差分输入模块(31)通过同步模块(32)与解码模块(33)相连,解码模块(33)通过接收帧处理模块(34)与接收FIFO(35)相连,接收FIFO(35)通过从总线控制逻辑模块(36)与从CPU(4)相连;差分输出模块(16)与差分输入模块(31)相连,其特征在于,传输方法包括以下步骤:10)监听空闲标志位,检测并串转换模块(15)中的空闲标志位是否处于空闲状态,若处于繁忙状态则继续等待空闲状态,若处于空闲状态,主CPU(2)将发送数据写入主总线控制逻辑模块(11),并置位于主总线控制逻辑模块(11)中的发送标志位;11)对发送FIFO写数据,主总线控制逻辑模块(11)接收到发送标志位的消息后,将数据写入发送FIFO(12);12)数据组帧,发送帧处理模块(13)检测到发送FIFO(12)中有数据后,将数据读出并组帧发送给编码模块(14);13)数据编码,编码模块(14)接收到数据后,将数据的每个字节通过8B/10B编码器编成10bit的数据,发送至并串转换模块(15);14)差分传送,并串转换模块(15)接收到编码模块(14)的10bit数据后将其转换成1bit数据,通过差分输出模块(16)将单端信号转化为差分信号传出去,并置并串转换模块(15)的空闲标志位为空闲状态;15)差分转换,差分输入模块(31)接收差分输出模块(16)发送的数据并转换成单端信号后发送给同步模块(32);16)同步接收,同步模块(32)通过位同步形成数据采集时钟,通过字节同步得到10bit数据后发送给解码模块(33);17)数据解码,解码模块(33)通过8B/10B解码器将10bit数据转换成8bit数据并发送给接收帧处理模块(34);18)数据解析,接收帧处理模块(34)将数据根据帧定义进行解析,并将解析后的数据存入接收FIFO(35);19)数据读取,从总线控制逻辑模块(36)监控接收FIFO(35)中的数据字节数信号N,如果N=20,则产生中断并通知从CPU(4),从CPU(4)通过数据总线读取数据。...
【技术特征摘要】
1.一种基于FPGA的数据传输板之间进行高速传输的方法,主数据传输板包括主CPU(2)和主FPGA(1),从数据传输板包括从CPU(4)和从FPGA(3);主FPGA(1)包括与主CPU(2)相连的主总线控制逻辑模块(11),主总线控制逻辑模块(11)通过发送FIFO(12)与发送帧处理模块(13)相连,发送帧处理模块(13)通过编码模块(14)与并串转换模块(15)相连,并串转换模块(15)与差分输出模块(16)相连;差分输入模块(31)通过同步模块(32)与解码模块(33)相连,解码模块(33)通过接收帧处理模块(34)与接收FIFO(35)相连,接收FIFO(35)通过从总线控制逻辑模块(36)与从CPU(4)相连;差分输出模块(16)与差分输入模块(31)相连,其特征在于,传输方法包括以下步骤:10)监听空闲标志位,检测并串转换模块(15)中的空闲标志位是否处于空闲状态,若处于繁忙状态则继续等待空闲状态,若处于空闲状态,主CPU(2)将发送数据写入主总线控制逻辑模块(11),并置位于主总线控制逻辑模块(11)中的发送标志位;11)对发送FIFO写数据,主总线控制逻辑模块(11)接收到发送标志位的消息后,将数据写入发送FIFO(12);12)数据组帧,发送帧处理模块(13)检测到发送FIFO(12)中有数据后,将数据读出并组帧发送给编码模块(14);所述的数据组帧包括以下步骤:121)发送帧处理模块(13)监测发送FIFO(12)中的数据字节接口;122)若检测到发送FIFO(12)中的字节数不为零,则不停地轮询发送FIFO(12)中的字节信号;123)若字节数超过10个则将数据依次读出,发送FIFO(12)进入读数据状态,发送FIFO(12)读取一个字节的数据后进行计算校验和,判断处理的数据个数是否等于待发送字节数,若是则进入组帧状态,加上帧头、信息位和校验位并将数据传给编码模块(14);若数据个数小于待发送字节数,则继续发送FIFO(12)的数据,直到处理的字节数等于待发送字节数为止;124)若发送FIFO(12)的轮询时间大于超时时间,发送FIFO(12)进入数据状态,发送FIFO(12)读取一个字节的数据后进行计算校验和,判...
【专利技术属性】
技术研发人员:徐强,王飞,王俊,
申请(专利权)人:安徽中兴继远信息技术股份有限公司,
类型:发明
国别省市:安徽;34
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。