CN106502951A - Pcie接口数据摆渡卡及其摆渡数据的方法 - Google Patents
Pcie接口数据摆渡卡及其摆渡数据的方法 Download PDFInfo
- Publication number
- CN106502951A CN106502951A CN201610916625.1A CN201610916625A CN106502951A CN 106502951 A CN106502951 A CN 106502951A CN 201610916625 A CN201610916625 A CN 201610916625A CN 106502951 A CN106502951 A CN 106502951A
- Authority
- CN
- China
- Prior art keywords
- packet
- data
- ferry
- boat
- cpci
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0024—Peripheral component interconnect [PCI]
Abstract
本发明公开了一种PCIE接口数据摆渡卡,包括按照数据包传输方向顺序连接的:第一CPCI连接器、第一PCIE收发引擎、第一DMA控制器、包过滤器、第二DMA控制器、第二PCIE收发引擎和第二CPCI连接器,第一CPCI连接器的数据输入端与网络隔离装置的发送主机连接,第二CPCI连接器的数据输出端与网络隔离装置的接收主机连接;包过滤器根据过滤规则对每个数据包进行格式检查和校验,符合规则的数据包通过,不符合规则的数据包被丢弃。本发明还公开了一种摆渡数据的方法,通过设计数据包传输队列,实现发送和接收的异步工作方式。本发明具有数据传输速度快、适应性强、成本低的优点。
Description
技术领域
本发明涉及一种PCIE接口数据摆渡卡,还涉及一种PCIE接口数据摆渡卡摆渡数据的方法,属于网络通信技术领域。
背景技术
PCIE(Peripheral Component Interconnect-Express,快速外部组件互联)是一种高性能的I/O总线,它是能够应用于移动设备、台式电脑、工作站、服务器、嵌入式计算和通信平台等所有周边I/O设备互联的总线。PCIE总线最显著的优势是提高了设备传输带宽,且每台PCIE设备的引脚很少,从而降低了PCIE板卡的设计成本,并降低了板卡设计的复杂性。
在信任网络和非信任网络(也称内外网)之间交换数据的主要方法是使用网络隔离装置摆渡数据。网络隔离装置的基本结构是两个独立的主机系统和一个数据摆渡卡。数据摆渡卡是网络隔离装置的关键部件,其技术方案决定了整个系统的安全性和速度。
现有的数据摆渡方法有电子开关、单向FIFO和光纤三种方式。使用电子开关的数据摆渡卡同一个时刻只与一个网络建立物理链路,切换速度较慢,且仍然是以太网方式传输数据。单向FIFO和光纤方式都能实现非网传输,且速度较快,但是和主机的接口方式都比较复杂,时序匹配要求严格。近年来也有见使用SATA接口摆渡数据的报道,但是受限于具备SATA接口的嵌入式处理器较少和SATA协议本身的特点,这种方式没有被广泛采用。
发明内容
本发明的目的在于克服现有技术中的不足,提供一种PCIE接口数据摆渡卡,解决现有技术中数据摆渡卡适应性和兼容性差、切换速度慢、接口复杂的技术问题。
为解决上述技术问题,本发明所采用的技术方案是:PCIE接口数据摆渡卡,包括包过滤器、用于数据包发送的:第一CPCI连接器、第一PCIE收发引擎、第一DMA控制器,以及用于数据包接收的:第二CPCI连接器、第二PCIE收发引擎、第二DMA控制器;所述第一CPCI连接器、第一PCIE收发引擎、第一DMA控制器、包过滤器、第二DMA控制器、第二PCIE收发引擎、第二CPCI连接器按照数据包传送方向顺序连接;所述第一CPCI连接器与网络隔离装置的发送主机之间、所述第二CPCI连接器与网络隔离装置的接收主机之间采用具有GTP收发器的FPGA器件实现PCIE接口协议;所述包过滤器根据过滤规则对每个数据包进行格式检查和校验,符合规则的数据包通过,不符合规则的数据包被丢弃。
优选的,所述第一CPCI连接器、第二CPCI连接器均采用ERNI的针孔式CPCI连接器。
优选的,所述针孔式CPCI连接器采用55孔CPCI连接器,孔径0.7毫米,公差0.02毫米,采用压接方式连接。
进一步的,所述第一DMA控制器、第二DMA控制器中分别设计了五个寄存器:源地址寄存器、目的地址寄存器、长度寄存器、控制寄存器和状态寄存器;发送主机在发送包数据前,将数据包的源地址、目的地址和长度写入相应的寄存器中,然后写控制寄存器启动DMA控制器。
与现有技术相比,本发明提供的PCIE接口数据摆渡卡所产生的有益效果是:采用CPCI连接器取代传统的金手指连接方式,加强了主机与数据摆渡卡之间物理连接的可靠性,降低了对装配尺寸精度的要求;采用逻辑可配置的IP核来实现PCIE接口协议,数据传输速度快,具有广泛的适应性和兼容性,同时具有低成本、易移植等优点;采用具有GTP(Gigabit Transceiver with Low Power,吉比特)或者GX收发器的FPGA器件实现PCIE接口协议,极大的提高了集成度,降低了硬件复杂度和成本,也赋予了数据摆渡卡极大的灵活性。
本发明还提供了一种PCIE接口数据摆渡卡摆渡数据的方法,包括如下步骤:
步骤一:发送主机准备发送数据包时查询数据包传输队列中是否有足够的空闲空间:如果有,则启动DMA控制器,进行数据包传送,否则,进入休眠状态,等待中断唤醒;
步骤二:包过滤器对数据包进行规则检查,对每个数据包进行格式检查和校验,符合规则的数据包通过,不符合规则的数据包被丢弃,同时记录被通过和被丢弃数据包的数量,供后期状态监控使用;
步骤三:通过包过滤器的数据包进入到数据包传输队列后,依次传送到接收主机,接收主机在接收过程中,每收到十个数据包或者结束标志时向发送主机返回一个应答数据包。
优选的,所述发送主机和接收主机在通过驱动程序向用户提供服务时使用poll函数;
发送主机调用poll函数检测:数据包传输队列中是否有足够的空闲空间、发送DMA是否完毕、是否收到应答数据包三个事件;
接收主机调用poll函数检测:是否收到数据包、接收DMA是否完毕两个事件。
优选的,所述应答数据包的长度是一个字节。
进一步的,包过滤器对数据包进行规则检查,主要检查协议标志字段、长度字段和校验字段:对于协议标志不能匹配、长度非法和校验值不符的数据包,都作为非法包丢弃,并记录其数量。
进一步的,包过滤器对数据包进行规则检查,主要检查协议标志字段、长度字段和校验字段:对于协议标志不能匹配、长度非法和校验值不符的数据包,都作为非法包丢弃,并记录其数量。
与现有技术相比,本发明提供的摆渡数据的方法所产生的有益效果是:能够实现数据包发送和接收的一步工作方式,达到数据包单向、快速传输的目的,有效提高数据摆渡的效率。
附图说明
图1是本发明提供的PCIE接口数据摆渡卡的结构框图。
图2是本发明提供的PCIE接口数据摆渡卡摆渡数据的方法流程图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
如图1所示,是本发明提供的PCIE接口数据摆渡卡的结构框图,包括按照数据包传输方向顺序连接的:第一CPCI(Compact Peripheral Component Interconnect,紧凑型外部组件互联)连接器、第一PCIE收发引擎、第一DMA控制器、包过滤器、第二DMA(DirectMemory Access,直接存储器存取)控制器、第二PCIE收发引擎和第二CPCI连接器,第一CPCI连接器的数据输入端与网络隔离装置的发送主机连接,第二CPCI连接器的数据输出端与网络隔离装置的接收主机连接。
为加强独立主机于数据摆渡卡之间物理连接的可靠性,本发明提供的数据摆渡卡和独立主机(指:发送主机和接收主机)之间的物理连接采用针孔式CPCI连接器,电信号连接符合PCIE规范,数据链路层采用PCIE协议。针孔式CPCI连接器在独立主机侧采用55针CPCI插座,在数据摆渡卡侧采用55孔CPCI插座,采用这种连接方式,可以降低对摆渡板和发送/接收主机之间的装配尺寸精度要求,1毫米以下的尺寸误差都可以接受。
为简化硬件设计、提高集成度,本发明采用具有GTP收发器的FPGA器件实现PCIE接口协议和数据包处理,在FPGA器件内部采用逻辑可配置的IP核来实现PCIE接口协议,独立主机中的数据包通过CPCI连接器与PCIE接口协议建立的PCIE接口向数据摆渡卡采用DMA方式进行数据包传送。由于支持双路PCIE核的FPGA器件比较昂贵,本发明的数据摆渡卡选用两片XILINX的XC6S45T,该器件支持一个PCIE x1 Lane核,线速2.5Gbps。由于XC6S45T是BGA484封装,需要扇出的信号较多,同时也为了照顾PCIE信号的完整性,数据摆渡卡的硬件使用了六层PCB板,第二层为主要信号层,中间两层为电源层和地平面层。由于摆渡卡长宽比大于3:1,为了提高PCB板强度,将板厚由常规的1.6毫米增加到1.8毫米。连接器选用ERNI(一家生产电子设备的厂商)的55孔CPCI连接器,既通过该连接器传输信号又通过该连接器从内部主机取电。该连接器在电装时一般采用压接方式,因此必须控制孔径和公差,连接器和PCB板之间的装配要求孔径0.7毫米,公差0.02毫米。
在设计FPGA器件的逻辑时使用XILINX的ISE13.4,逻辑程序设计的关键是基于PCIE的DMA控制器和包过滤器。在DMA控制器中设计了五个寄存器,分别是源地址寄存器、目的地址寄存器、长度寄存器、控制寄存器和状态寄存器。发送主机在发送一包数据前,将数据包的源地址、目的地址和长度写入相应的寄存器中,然后写控制器寄存器启动DMA控制器。
包过滤器设置于第一DMA控制器之后,包过滤器根据实现设置的过滤规则对每一个数据包进行格式检查和校验,包过滤器只允许符合规则的数据包通过,不满足规则的数据包将被丢掉,同时记录下两者的个数,供后期状态监控使用。
本发明还公开了一种摆渡数据的方法,采用上述PCIE接口数据摆渡卡实现,具体摆渡数据方法包括如下步骤:
步骤一:为了提高数据摆渡的速度,本发明设计了一个数据包传输队列,以此实现发送和接收的异步工作方式。发送主机准备发送数据包时,查询数据包传输队列中是否有足够的空闲空间:如果有,则启动DMA控制器,进行数据包传送,否则,进入休眠状态,等待中断唤醒。当数据包传送到数据包传输队列之后,发送主机就可以结束本次发送,进入下一次发送准备状态。数据包在数据包传输队列中依次序向接收主机传送。
步骤二:包过滤器对数据包进行规则检查,对每个数据包进行格式检查和校验,符合规则的数据包通过,不符合规则的数据包被丢弃,同时记录被通过和被丢弃数据包的数量,供后期状态监控使用。包过滤器的规则检查主要检查协议标志字段、长度字段和校验字段:对于协议标志不能匹配、长度非法和校验值不符的数据包都作为非法包丢弃,并在一个计数器中记录其数量。
步骤三:数据包经过包过滤器之后会进入一个队列,从队列出来后以DMA方式传送到接收主机的内存中,然后通过中断通知接收主机。单向传输是网络隔离装置的基本特征之一,为了保证传输的完整性和连续性,接收主机需要返回必要的应答。接收主机在接收过程中,每收到十个数据包或者结束标志时向发送主机返回一个应答数据包,有效提高数据摆渡的效率。本发明将应答数据包的长度限定为1个字节,这样可以从根本上杜绝收发两侧直接建立TCP连接。
数据摆渡卡的驱动程序主要实现PCIE设备的资源探测、DMA传送、中断处理和用户接口等功能。收到中断后,主机查询中断标志寄存器,判断是中断源,根据不同的中断源进入相应的中断服务程序。本发明为用户提供接口的主要是poll函数,该函数便于用户检测多个系统事件:发送主机调用poll函数检测是否有队列中是否有足够的空闲空间,发送DMA是否完毕,是否收到应答数据包三个事件。接收主机调用poll函数检测是否收到数据包,接收DMA是否完毕两个事件。当检测到发送完毕、数据包到达、应答数据包到达等事件时执行相应的处理程序,否则阻塞用户程序,进入睡眠状态。为了便于使用,在实践中将收发两方的驱动程序统一,并且设计了用户层接口函数。
依据此实施方案制作的数据摆渡卡已经在一种网络隔离装置中得到了验证,在包长为1024字节的测试条件下,用户实际可用速度为50Mbps。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (8)
1. PCIE接口数据摆渡卡,其特征在于,包括包过滤器、用于数据包发送的:第一CPCI连接器、第一PCIE收发引擎、第一DMA控制器,以及用于数据包接收的:第二CPCI连接器、第二PCIE收发引擎、第二DMA控制器;
所述第一CPCI连接器、第一PCIE收发引擎、第一DMA控制器、包过滤器、第二DMA控制器、第二PCIE收发引擎、第二CPCI连接器按照数据包传送方向顺序连接;
所述第一CPCI连接器与网络隔离装置的发送主机之间、所述第二CPCI连接器与网络隔离装置的接收主机之间采用具有GTP收发器的FPGA器件实现PCIE接口协议;
所述包过滤器根据过滤规则对每个数据包进行格式检查和校验,符合规则的数据包通过,不符合规则的数据包被丢弃。
2.根据权利要求1所述的PCIE接口数据摆渡卡,其特征在于,所述第一CPCI连接器、第二CPCI连接器均采用ERNI的针孔式CPCI连接器。
3.根据权利要求2所述的PCIE接口数据摆渡卡,其特征在于,所述针孔式CPCI连接器采用55孔CPCI连接器,孔径0.7毫米,公差0.02毫米,采用压接方式连接。
4.根据权利要求1所述的PCIE接口数据摆渡卡,其特征在于,所述第一DMA控制器、第二DMA控制器中分别设计了五个寄存器:源地址寄存器、目的地址寄存器、长度寄存器、控制寄存器和状态寄存器;
发送主机在发送数据包前,将数据包的源地址、目的地址和长度写入相应的寄存器中,然后设置控制寄存器启动DMA控制器。
5. PCIE接口数据摆渡卡摆渡数据的方法,其特征在于,包括如下步骤:
步骤一:发送主机准备发送数据包时查询数据包传输队列中是否有足够的空闲空间:如果有,则启动DMA控制器,进行数据包传送,否则,进入休眠状态,等待中断唤醒;
步骤二:包过滤器对数据包进行规则检查,对每个数据包进行格式检查和校验,符合规则的数据包通过,不符合规则的数据包被丢弃,同时记录被通过和被丢弃数据包的数量,供后期状态监控使用;
步骤三:通过包过滤器的数据包进入到数据包传输队列后,依次传送到接收主机,接收主机在接收过程中,每收到十个数据包或者结束标志时向发送主机返回一个应答数据包。
6.根据权利要求5所述的PCIE接口数据摆渡卡摆渡数据的方法,其特征在于,所述发送主机和接收主机在通过驱动程序向用户提供服务时使用poll函数;
发送主机调用poll函数检测:数据包传输队列中是否有足够的空闲空间、发送DMA是否完毕、是否收到应答数据包三个事件;
接收主机调用poll函数检测:是否收到数据包、接收DMA是否完毕两个事件。
7.根据权利要求5所述的PCIE接口数据摆渡卡摆渡数据的方法,其特征在于,所述应答数据包的长度是一个字节。
8.根据权利要求5所述的PCIE接口数据摆渡卡摆渡数据的方法,其特征在于,包过滤器对数据包进行规则检查,主要检查协议标志字段、长度字段和校验字段:对于协议标志不能匹配、长度非法和校验值不符的数据包,都作为非法包丢弃,并记录其数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610916625.1A CN106502951A (zh) | 2016-10-21 | 2016-10-21 | Pcie接口数据摆渡卡及其摆渡数据的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610916625.1A CN106502951A (zh) | 2016-10-21 | 2016-10-21 | Pcie接口数据摆渡卡及其摆渡数据的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106502951A true CN106502951A (zh) | 2017-03-15 |
Family
ID=58318173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610916625.1A Pending CN106502951A (zh) | 2016-10-21 | 2016-10-21 | Pcie接口数据摆渡卡及其摆渡数据的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106502951A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766269A (zh) * | 2017-10-18 | 2018-03-06 | 深圳市亿威尔信息技术股份有限公司 | 一种隔离交换装置及方法 |
CN111078610A (zh) * | 2019-11-23 | 2020-04-28 | 中国科学院长春光学精密机械与物理研究所 | 可插拔式存储装置和具有该装置的硬件平台 |
CN114095275A (zh) * | 2022-01-11 | 2022-02-25 | 北京国泰网信科技有限公司 | 边缘隔离设备和方法 |
CN115118459A (zh) * | 2022-06-02 | 2022-09-27 | 合肥卓讯云网科技有限公司 | 一种基于安全卡与隔离卡异构实现安全数据交换的方法及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105656883A (zh) * | 2015-12-25 | 2016-06-08 | 冶金自动化研究设计院 | 一种适用于工控网络的单向传输内外网安全隔离网闸 |
CN205334485U (zh) * | 2015-12-10 | 2016-06-22 | 安徽问天量子科技股份有限公司 | 一体化数据摆渡装置 |
CN106027511A (zh) * | 2016-05-13 | 2016-10-12 | 北京工业大学 | 一种基于Modbus/TCP深度解析的协议隔离方法 |
-
2016
- 2016-10-21 CN CN201610916625.1A patent/CN106502951A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN205334485U (zh) * | 2015-12-10 | 2016-06-22 | 安徽问天量子科技股份有限公司 | 一体化数据摆渡装置 |
CN105656883A (zh) * | 2015-12-25 | 2016-06-08 | 冶金自动化研究设计院 | 一种适用于工控网络的单向传输内外网安全隔离网闸 |
CN106027511A (zh) * | 2016-05-13 | 2016-10-12 | 北京工业大学 | 一种基于Modbus/TCP深度解析的协议隔离方法 |
Non-Patent Citations (3)
Title |
---|
宋敬彬 等编著: "《Linux网络编程 第2版》", 28 February 2014, 清华大学出版社 * |
梁明坤: "包过滤技术在网络隔离系统中的应用", 《中国优秀硕士学位论文全文数据库(电子期刊) 信息科技辑》 * |
王勇强: "基于FCC总线的网闸数据交换系统的设计与实现", 《中国优秀硕士学位论文全文数据库(电子期刊) 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766269A (zh) * | 2017-10-18 | 2018-03-06 | 深圳市亿威尔信息技术股份有限公司 | 一种隔离交换装置及方法 |
CN111078610A (zh) * | 2019-11-23 | 2020-04-28 | 中国科学院长春光学精密机械与物理研究所 | 可插拔式存储装置和具有该装置的硬件平台 |
CN114095275A (zh) * | 2022-01-11 | 2022-02-25 | 北京国泰网信科技有限公司 | 边缘隔离设备和方法 |
CN115118459A (zh) * | 2022-06-02 | 2022-09-27 | 合肥卓讯云网科技有限公司 | 一种基于安全卡与隔离卡异构实现安全数据交换的方法及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106502951A (zh) | Pcie接口数据摆渡卡及其摆渡数据的方法 | |
CN102495920B (zh) | 一种FPGA用基于PCIe的集成化逻辑分析模块 | |
CN105243044B (zh) | 基于串口的管理系统及管理方法 | |
CN108255755A (zh) | 基于fpga的pcie通用多功能通信接口模块 | |
US20040141518A1 (en) | Flexible multimode chip design for storage and networking | |
CN108255776A (zh) | 一种兼容apb总线的i3c主设备、主从系统及通信方法 | |
CN104050133A (zh) | 一种基于fpga实现dsp与pc借助pcie总线进行通信的通信装置与通信方法 | |
CN115695234A (zh) | PCIe总线网络接口卡的系统级验证平台 | |
CN101706747A (zh) | 一种可编程逻辑的信息处理方法、装置和系统 | |
US8090893B2 (en) | Input output control apparatus with a plurality of ports and single protocol processing circuit | |
CN104714907A (zh) | 一种pci总线转换为isa和apb总线设计方法 | |
US20060095630A1 (en) | Serial attached small computer system interface (SAS) connection emulation for direct attached serial advanced technology attachemnt (SATA) | |
CN208538025U (zh) | 一种支持10个热插拔硬盘的服务器 | |
CN109582634B (zh) | 总线系统 | |
CN111506461A (zh) | 一种基于总线、用于测试的反压模块及其实现方法 | |
CN111723032B (zh) | 一种中断管控方法及电子设备 | |
CN209842616U (zh) | 一种基于fpga的i2c/spi配置ip核 | |
CN101593167B (zh) | 片上系统的桥接装置及方法 | |
CN114116584A (zh) | 接口板卡、用户设备及cpu的测试系统 | |
CN209803772U (zh) | 一种新型led显示屏数据备份装置 | |
CN103218336A (zh) | Sd/mmc卡和iic从机的控制设备,其控制方法及控制系统 | |
US20100290508A1 (en) | Implementing Single Line Asynchronous Dual Watchdog Communication for ESD Immunity | |
CN100499410C (zh) | 实现通讯接口时序自动检测的装置和方法 | |
CN100349152C (zh) | 接口装置 | |
CN101071406A (zh) | 接口可配置的通用串行总线控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170315 |