CN101447988A - 一种基于fpga的千兆数据通信卡 - Google Patents
一种基于fpga的千兆数据通信卡 Download PDFInfo
- Publication number
- CN101447988A CN101447988A CNA2008101533440A CN200810153344A CN101447988A CN 101447988 A CN101447988 A CN 101447988A CN A2008101533440 A CNA2008101533440 A CN A2008101533440A CN 200810153344 A CN200810153344 A CN 200810153344A CN 101447988 A CN101447988 A CN 101447988A
- Authority
- CN
- China
- Prior art keywords
- data
- fpga
- serial
- parallel
- fifo
- 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.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种基于FPGA的千兆数据通信卡,包括PCI接口芯片、FIFO数据缓冲、SDRAM、SFF光电信号转换器、高速串/并转换器、FPGA处理模块,SFF光电信号转换器连接高速串/并转换器并双向通信,该高速串/并转换器、PCI接口芯片、FIFO数据缓冲、SDRAM均连接FPGA处理模块。本发明利用FPGA技术可以明显减少系统的器件数量,减少成本、提高系统的可靠性,并且可以对产品进行平滑升级,实现传输距离远,传输距离可以达到300m(多模光纤)、10km(单模光纤),主要用于综合船桥系统各设备之间的数据传输、大规模的实时仿真系统、轧钢、航海、航空航天等实时性要求较高的领域。
Description
技术领域
本发明属于计算机领域的接口设备,尤其是一种基于FPGA的千兆数据通信卡。
背景技术
当前在对实时性要求很高的高速数据进行传输时,由于没有合适的传输手段,往往依赖于百兆或者千兆IP网络来传输。现有的IP传输,发送端的IP包首先由网卡按低层的网络技术(如Ethernet、FDDI、ATM等等)格式进行封装,接收端则需要进行拆包处理,这一处理过程会形成许多冗余的传输信息,由此增加了网络传输的负担,造成网络传输效率的减低。实际上正是由于这些大量的冗余信息而不能保证IP网络的实时性。
发明内容
本发明的目的在于克服现有技术中的不足,提供一种可有效保证网络实时数据传输的基于FPGA的千兆数据通信卡。
本发明的目的是采用如下技术方案实现的:
一种基于FPGA的千兆数据通信卡,包括PCI接口芯片、SDRAM、FIFO数据缓冲、FPGA处理模块、高速串/并转换器、SFF光电信号转换器,SFF光电信号转换器连接高速串/并转换器并双向通信,该高速串/并转换器、PCI接口芯片、FIFO数据缓冲、SDRAM均连接FPGA处理模块。
而且,所述FPGA处理模块包括接收模块、发送模块、主处理模块;接收模块连接高速串/并转换器及接收FIFO;发送模块连接高速串/并转换器及发送FIFO;主处理模块连接接收FIFO及发送FIFO并同时接收PCI桥所传送的数据。
而且,SFF光电信号转换器在接收数据时将光模块转换成电信号,再通过高速串/并转换将2.125Gbps的串行数据转换成16bit的并行数据,通过FPGA的接收模块将并行数据暂存在接收FIFO中,FPGA的更新数据模块根据数据的节点号、地址等信息将数据写入对应的SDRAM中,本地计算机通过PCI接口将更新数据读入本地计算机。
而且,本地计算机通过PCI接口将本地更新的数据经过FPGA的主模块根据数据的节点号、地址等信息将数据写入对应的SDRAM中,然后通过FPGA的发送模块将并行数据暂存在发送FIFO中,再通过高速并/串转换将16bit的并行数据转换成2.125Gbps的串行数据,SFF光电信号转换器将电模块转换成光信号。
而且,所采用的软件驱动采用下列步骤:
(1).系统安装设备时设置状态变量;
(2).发送数据的设备先打开设备再将要发送的数据写入设备内存中;
(3).接收数据的设备先打开设备再将数据从设备内存读出;
(4).关闭设备。
本发明的优点和积极效果是:
1.本千兆数据通信卡利用FPGA技术可以提高明显减少系统的器件数量,减少成本、提高系统的可靠性,并且可以对产品进行平滑升级。该技术的核心是利用FPGA技术实现了本地数据的更新,以及通过光缆使得下一个节点的相应内存的数据680ns后也得到更新,此卡适用于Windows、Linux、VxWorks等不同的操作系统。采用本千兆数据通信卡,省去了数据的封装和拆包,节约了计算机的处理时间,对于2.125Gbps的高速数据传输,效果更加明显。
2.本千兆数据通信卡可实现传输距离远,传输距离可以达到300m(多模光纤)、10km(单模光纤)。
3.本发明适用领域广泛,主要用于综合船桥系统各设备之间的数据传输、大规模的实时仿真系统、轧钢、航海、航空航天等实时性要求较高的领域。
附图说明
图1为本发明的典型应用组网图;
图2为本发明的硬件模块图;
图3为本发明的驱动流程图。
具体实施方式
下面通过具体实施例对本发明作进一步详述,以下实施例只是描述性的,不是限定性的,不能以此限定本发明的保护范围。
一种基于FPGA的千兆数据通信卡,其模块如图2所示,硬件主要包括:PCI接口芯片(PCI桥)、FIFO数据缓冲、SDRAM存储器、转换器(SFF光电信号)、高速串/并转换器、FPGA处理模块,PCI接口芯片连接PCI总线,SFF光电信号转换器连接光纤网。该模块的具体连接是:SFF光电信号转换器连接高速串/并转换器并双向通信,该高速串/并转换器连接FPGA处理模块;FPGA处理模块包括接收模块、发送模块、主处理模块,接收模块连接高速串/并转换器及接收FIFO,发送模块连接高速串/并转换器及发送FIFO,主处理模块连接接收FIFO及发送FIFO并同时接收PCI桥所传送的数据,PCI桥连接SDRAM存储器。
本发明的工作原理是:
接收数据时,是通过光纤接收上一个节点的更新数据→高速串/并转换→FPGA处理将更新的数据暂存到接收FIFO→通过FPGA处理根据节点号、地址等信息将数据写入到相应的SDRAM中→本地计算机可以通过PCI接口将更新的数据读入本地计算机中,以备应用;即数据光信号通过SFF光电信号转换器转换成电信号,再通过高速串/并转换将2.125Gbps的串行数据转换成16bit的并行数据,通过FPGA的接收模块将并行数据暂存在接收FIFO中,FPGA的更新数据模块根据数据的节点号、地址等信息将数据写入对应的SDRAM中,本地计算机通过PCI桥将更新数据读入本地计算机。
发送数据时,将需要传输的数据通过PCI接口直接写入本地节点的SDRAM中→通过FPGA处理→将更新单元的数据转移到发送FIFO→高速并/串转换→通过光纤发送。
典型应用如图1所示,组网方式是第一个节点的发送端TX1与第二个节点的接收端RX2连接、第二个节点的发送端TX2与第三个节点的接收端RX3连接、…、第n(n≤256)个节点的发送端TXn和第一个节点的接收端RX1连接。
本发明可以作为双端口进行使用:一个端口为本地端口,允许本地主机对千兆数据通信卡的地址空间进行写(读)操作;另一端口则通过光缆联接一环形网,如此下一块千兆数据通信卡会接受数据;同时本地内存更新对应的地址空间,并将数据通过光缆传输出去,这样使所有节点的数据保持一致,从一个节点的数据发送到另一个节点的数据接收和更新所用的时间是确定的680ns。
本发明每个模块的功能如下:
PCI总线接口芯片:负责与PCI总线的各个协议通信,可以将接口配置成33MHz或者66MHz。
FIFO:包括发送FIFO和接收FIFO,用于发送数据和接收的缓存。实现数据速率匹配。
SDRAM:为128MB同步DRAM,用于需要传输数据的保存,本地更新数据只需要更新相应的地址内存。
SFF光电信号转换器:负责光/电、电/光转换。
FPGA模块:FPGA模块分为接收模块、发送模块、数据更新模块以及恶意包处理模块,FPGA是本卡的核心,下面分别说明:
1.发送模块(TX Module)
当FPGA检测到更新高速并/串转换器错误指示信号TX_ER有效(并/串转换器异常)时,等待高速串/并转换器正常;当检测到TX_ER无效(并/串转换器正常)时,此时发送FIFO为非空(Empty指示为无效),则将发送FIFO中数据发送到高速并/串转换器。
2.接收模块(RX Module)
当FPGA检测到更新高速串/并转换器错误指示信号RX_ER有效(串/并转换器异常)时,等待高速串/并转换器正常;当检测到RX_ER无效(串/并转换器正常)时,此时接收FIFO为非空(Almost_Empty指示为无效),则将高速串/并转换器的数据暂存于发送FIFO中。
3.主处理模块(Main Module)
主处理模块有3个主要功能,一个是根据要求的SDRAM地址将本地PCI接口的数据写入相应的地址中;第二个功能是根据发送FIFO的Almost_Full状态将本地的更新数据写入发送FIFO;第三个功能是根据接收FIFO的empty状态、节点号以及地址信息将接收FIFO的数据写入SDRAM中。
下面叙述本发明的软件情况:
以windows操作系统平台为例,驱动程序实现以下四类功能:
1.打开\关闭本卡;
2.板卡的配置;
3.数据传输;
4.中断控制与中断操作;
程序步骤:
1.系统安装设备时设置状态变量;
2.发送数据的设备先打开设备再将要发送的数据写入设备内存中;
3.接收数据的设备先打开设备再将数据从设备内存读出;
4.关闭设备。
1.基本函数说明:
(1):打开
函数名称:OSM2gOpen(char*DevicePath,OSM2GHANDLE*rh);
功能:根据路径打开设备,如果打开成功则返回设备句柄。设备句柄OSM2GHANDLE用于标识用户与设备的一个连接;
(2):关闭
函数名称:OSM2gClose(OSM2GHANDLE*rh);
功能:结束与设备的连接,关闭卡设备。
(3):得到当前配置信息
函数名称:OSM2gGetConfig(OSM2GHANDLE rh,OSM2GCONFIG*Config);
功能:根据设备句柄得到当前设备的配置信息。配置信息保存在结构体OSM2GCONFIG中,包括设备节点号,板卡ID,设备名称,设备内存大小,驱动版本信息,板卡版本和PCI版本信息。
(4)得到当前设备结点ID
函数名称:OSM2gNodeID(OSM2GHANDLE rh,OSM2G_NODE*NodeIdPtr);
功能:根据设备句柄得到设备的结点ID。每个设备的结点ID在网络中是唯一的。
(5)得到当前设备内存的大小
函数名称:OSM2gSize(OSM2GHANDLE rh,OSM2G_UINT32*SizePtr);
功能:根据设备句柄得到设备中全部可用的空间大小。
(6)重置内存指针
函数名称:OSM2gFirst(OSM2GHANDLE rh,OSM2G_UINT32*FirstPtr);
功能:该函数返回内存中可用空间的首地址。指针*FirstPtr指向映射到虚拟内存中的内存地址空间。
(7)设置DMA传输阀值
函数名称:OSM2gSetDMAThreshold(OSM2GHANDLE rh,OSM2G_UINT32 Threshold);
功能:设置一个阀值,当要传输的数据量大于等于这个阀值时设备传输数据将采用DMA方式进行。
(8)设置DMA数据传输ByteSwap
函数名称:OSM2gSetDMAByteSwap(OSM2GHANDLE rh,OSM2G_BOOL byteSwap);
功能:设置DMA方式传输数据时是否开启数据位交换ByteSwap功能。(适用于采用big endian顺序的处理器)
(9)设置PIO数据传输ByteSwap
函数名称:OSM2gSetPIOByteSwap(OSM2GHANDLE rh,OSM2G_BOOLbyteSwap);
功能:设置PIO方式传输数据时是否开启数据位交换ByteSwap功能。(适用于采用big endian顺序的处理器)
(10)读出数据
函数名称:OSM2gRead(OSM2GHANDLE rh,OSM2G_UINT32 Offset,void*Buffer,OSM2G_UINT32 Length);
功能:根据指定的设备句柄,读出设备内存中偏移量为Offset,长度为Lengh的数据到本机*Buffer所指的缓存区。
(11)写入数据
函数名称:OSM2gWrite(OSM2GHANDLE rh,OSM2G_UINT32 Offset,void*Buffer,OSM2G_UINT32 Length);
功能:根据指定的设备句柄,将*Buffer所指的缓存区数据写入设备内存中。偏移量为Offset,数据长度为Lengh。
(12)开启事件中断
函数名称:OSM2gEnableEvent(OSM2GHANDLE rh,SM2GEVENTTYPEEventType);
功能:根据给定的设备句柄,设置设备能够接收其它节点发出的中断事件。EventType为事件类型。
(13)关闭事件中断
函数名称:OSM2gDisableEvent(OSM2GHANDLE rh,OSM2GEVENTTYPE EventType);
功能:根据给定的设备句柄,设置设备不再响应其它节点发出的中断事件。EventType为事件类型。
(14)发送中断事件
函数名称:OSM2gSendEvent(OSM2GHANDLE rh,OSM2G_NODEToNode,OSM2GEVENTTYPE EventType,OSM2G_UINT32ExtendedData);
功能:向指定的节点ToNode发送中断事件,中断事件类型为EventType。ExtendedData为用户数据。
(15)清除中断事件
函数名称:OSM2gClearEvent(OSM2GHANDLE rh,OSM2GEVENTTYPEEventType);
功能:清除中断队列中全部或者某个指定的中断事件。EventType为指定的中断类型。
Claims (5)
1.一种基于FPGA的千兆数据通信卡,其特征在于:包括PCI接口芯片、SDRAM、FIFO数据缓冲、FPGA处理模块、高速串/并转换器、SFF光电信号转换器,SFF光电信号转换器连接高速串/并转换器并双向通信,该高速串/并转换器、PCI接口芯片、FIFO数据缓冲、SDRAM均连接FPGA处理模块。
2.根据权利要求1所述的一种基于FPGA的千兆数据通信卡,其特征在于:所述FPGA处理模块包括接收模块、发送模块、主处理模块;接收模块连接高速串/并转换器及接收FIFO;发送模块连接高速串/并转换器及发送FIFO;主处理模块连接接收FIFO及发送FIFO并同时接收PCI桥所传送的数据。
3.根据权利要求1所述的一种基于FPGA的千兆数据通信卡,其特征在于:SFF光电信号转换器在接收数据时将光模块转换成电信号,再通过高速串/并转换将2.125Gbps的串行数据转换成16bit的并行数据,通过FPGA的接收模块将并行数据暂存在接收FIFO中,FPGA的更新数据模块根据数据的节点号、地址等信息将数据写入对应的SDRAM中,本地计算机通过PCI接口将更新数据读入本地计算机。
4.根据权利要求3所述的一种基于FPGA的千兆数据通信卡,其特征在于:本地计算机通过PCI接口将本地更新的数据经过FPGA的主模块根据数据的节点号、地址等信息将数据写入对应的SDRAM中,然后通过FPGA的发送模块将并行数据暂存在发送FIFO中,再通过高速并/串转换将16bit的并行数据转换成2.125Gbps的串行数据,SFF光电信号转换器将电模块转换成光信号。
5.根据权利要求3所述的一种基于FPGA的千兆数据通信卡,其特征在于:所采用的软件驱动采用下列步骤:
(1).系统安装设备时设置状态变量;
(2).发送数据的设备先打开设备再将要发送的数据写入设备内存中;
(3).接收数据的设备先打开设备再将数据从设备内存读出;
(4).关闭设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101533440A CN101447988A (zh) | 2008-11-25 | 2008-11-25 | 一种基于fpga的千兆数据通信卡 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101533440A CN101447988A (zh) | 2008-11-25 | 2008-11-25 | 一种基于fpga的千兆数据通信卡 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101447988A true CN101447988A (zh) | 2009-06-03 |
Family
ID=40743386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008101533440A Pending CN101447988A (zh) | 2008-11-25 | 2008-11-25 | 一种基于fpga的千兆数据通信卡 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101447988A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102158282A (zh) * | 2010-12-06 | 2011-08-17 | 上海申瑞电力科技股份有限公司 | 光纤纵差保护装置及其同步通信方法 |
CN102761396A (zh) * | 2012-07-30 | 2012-10-31 | 哈尔滨工业大学 | 基于fpga的高速串行接口 |
CN105162727A (zh) * | 2015-08-13 | 2015-12-16 | 东方电子股份有限公司 | 一种基于VxWorks系统在DSFA系统中实现快速对等通信的方法 |
CN105302753A (zh) * | 2015-11-13 | 2016-02-03 | 中国电子科技集团公司第五十四研究所 | 一种基于fpga和fifo芯片的多通道hdlc数据处理装置 |
CN109144934A (zh) * | 2018-08-17 | 2019-01-04 | 长光卫星技术有限公司 | 一种延时时间可控制的rs-422串口通信方法 |
CN109800195A (zh) * | 2019-01-25 | 2019-05-24 | 山东超越数控电子股份有限公司 | 一种基于fpga的光纤通道适配器及数据传输方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1347062A (zh) * | 2001-11-26 | 2002-05-01 | 北方交通大学 | 千兆ip网卡 |
CN1397890A (zh) * | 2002-08-30 | 2003-02-19 | 清华大学 | 千兆位防火墙设备 |
CN1480857A (zh) * | 2003-06-05 | 2004-03-10 | 中国科学院计算技术研究所 | 双光口智能千兆以太网卡 |
-
2008
- 2008-11-25 CN CNA2008101533440A patent/CN101447988A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1347062A (zh) * | 2001-11-26 | 2002-05-01 | 北方交通大学 | 千兆ip网卡 |
CN1397890A (zh) * | 2002-08-30 | 2003-02-19 | 清华大学 | 千兆位防火墙设备 |
CN1480857A (zh) * | 2003-06-05 | 2004-03-10 | 中国科学院计算技术研究所 | 双光口智能千兆以太网卡 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102158282A (zh) * | 2010-12-06 | 2011-08-17 | 上海申瑞电力科技股份有限公司 | 光纤纵差保护装置及其同步通信方法 |
CN102158282B (zh) * | 2010-12-06 | 2015-06-17 | 上海申瑞继保电气有限公司 | 光纤纵差保护装置及其同步通信方法 |
CN102761396A (zh) * | 2012-07-30 | 2012-10-31 | 哈尔滨工业大学 | 基于fpga的高速串行接口 |
CN102761396B (zh) * | 2012-07-30 | 2015-01-07 | 哈尔滨工业大学 | 基于fpga的高速串行接口 |
CN105162727A (zh) * | 2015-08-13 | 2015-12-16 | 东方电子股份有限公司 | 一种基于VxWorks系统在DSFA系统中实现快速对等通信的方法 |
CN105162727B (zh) * | 2015-08-13 | 2017-12-01 | 东方电子股份有限公司 | 一种基于VxWorks系统在DSFA系统中实现快速对等通信的方法 |
CN105302753A (zh) * | 2015-11-13 | 2016-02-03 | 中国电子科技集团公司第五十四研究所 | 一种基于fpga和fifo芯片的多通道hdlc数据处理装置 |
CN109144934A (zh) * | 2018-08-17 | 2019-01-04 | 长光卫星技术有限公司 | 一种延时时间可控制的rs-422串口通信方法 |
CN109800195A (zh) * | 2019-01-25 | 2019-05-24 | 山东超越数控电子股份有限公司 | 一种基于fpga的光纤通道适配器及数据传输方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101753388B (zh) | 适用于多核处理器片上和片间扩展的路由及接口装置 | |
CN101788972B (zh) | 一种数据传输的系统与方法 | |
US8700866B2 (en) | Data transfer apparatus, data transfer device, and data transfer method in a data transfer device | |
CN103440219B (zh) | 一种通用总线转换桥ip核 | |
CN110837486B (zh) | 一种基于FPGA的FlexRay-CPCIe通信系统 | |
CN101447988A (zh) | 一种基于fpga的千兆数据通信卡 | |
CN102420877B (zh) | 一种多模式高速智能异步串口通信模块及实现方法 | |
CN102185833B (zh) | 一种基于fpga的fc i/o并行处理方法 | |
KR20030071857A (ko) | 메모리를 통해 데이터 처리 시스템들간의 데이터 흐름을제어하기 위한 방법 및 장치 | |
CN106953853B (zh) | 一种片上网络千兆以太网资源节点及其工作方法 | |
CN113391589B (zh) | 一种无人机异构设备统一接入与协议转换板卡 | |
CN113691397B (zh) | 工业控制数据传输用低延时5g无线透明传输方法 | |
US11500541B2 (en) | Memory system and controlling method | |
CN110635985A (zh) | 一种FlexRay-CPCIe通信模块 | |
CN101394349B (zh) | 不同接口设备通信中的数据传输方法及系统 | |
CN111625377B (zh) | 代理及向队列添加条目的方法 | |
CN101901199B (zh) | 一种数据透明传输的方法及系统 | |
CN101778038B (zh) | 基于千兆以太网的嵌入式设备高速数据传输系统 | |
CN103049409B (zh) | 一种单向高速数据传输的控制方法 | |
CN116248758A (zh) | 一种高效的内核-片上网络的桥式连接结构 | |
CN113794713B (zh) | Fc-ae-1553协议桥接mil-std-1553和uart的通讯处理方法 | |
CN216901643U (zh) | 一种基于dip封装多接口的1553b总线协议模块 | |
CN112134904B (zh) | 用于芯片间数据帧协议处理的帧打包器、方法及计量芯片 | |
US20140280716A1 (en) | Direct push operations and gather operations | |
CN113676253A (zh) | 一种基于FPGA的FlexRay总线光纤通信模块 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20090603 |