CN113961499B - 一种GIGE vision数据传输方法、采集卡及系统 - Google Patents
一种GIGE vision数据传输方法、采集卡及系统 Download PDFInfo
- Publication number
- CN113961499B CN113961499B CN202011505999.7A CN202011505999A CN113961499B CN 113961499 B CN113961499 B CN 113961499B CN 202011505999 A CN202011505999 A CN 202011505999A CN 113961499 B CN113961499 B CN 113961499B
- Authority
- CN
- China
- Prior art keywords
- data
- host
- gige vision
- image data
- gige
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000005540 biological transmission Effects 0.000 title claims abstract description 41
- 238000012545 processing Methods 0.000 claims abstract description 46
- 238000004891 communication Methods 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 18
- 230000006837 decompression Effects 0.000 claims description 17
- 238000005538 encapsulation Methods 0.000 claims description 15
- 238000004806 packaging method and process Methods 0.000 claims description 11
- 230000006835 compression Effects 0.000 claims description 9
- 238000007906 compression Methods 0.000 claims description 9
- 230000003139 buffering effect Effects 0.000 claims description 5
- 230000000977 initiatory effect Effects 0.000 claims 1
- 230000011664 signaling Effects 0.000 description 16
- 238000012546 transfer Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000008521 reorganization Effects 0.000 description 6
- 230000000875 corresponding effect Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 239000000872 buffer Substances 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
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/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI 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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- 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/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开一种GIGE vision数据传输方法、采集卡及系统,该方法包括:基于主机的下载命令接收来自于从设备的GIGE vision帧数据并拆包以获取数据包;对数据包进行拆分解析分流获得控制流和数据流;对分流后的数据流重组并缓存;根据分流后的控制流与主机通信并在主机处于待机状态时启动下载以将缓存的数据流传输至主机。用于克服相关技术中主机CPU和内存占用率,提高主机的处理性能。
Description
技术领域
本发明涉及通信技术领域,具体是一种GIGE vision数据传输方法、采集卡及系统。
背景技术
GIGE Vision是由AIA制定的通信协议,用来实现在机器视觉领域利用千兆以太网接口进行图像的高速传输。该标准是基于UDP协议,与普通网络数据包不同之处在于应用层协议,应用层协议采用GVCP(GIGE Vision控制协议)和GVSP(GIGE Vision流传输协议),分别用来对相机进行配置和数据流的传输。图像采集系统软件的实现就是基于GVCP\GVSP这两种协议。
如图1所示,相关技术中GIGE vision协议通信的方式通常是主端通过PC主机来封装或解析协议,通过交换设备获取从端设备即GIGE Vision设备上传的数据,该方式对于从端设备虽然具有硬件成本低的优势,但是对于主机而言CPU使用率很大,导致响应较慢、效率较低,在工业应用领域并不具备优势,甚至阻碍了生产率的提高。
发明内容
本申请提供一种GIGE vision数据传输方法、采集卡及数据传输系统,用于克服现有技术中主机CPU和内存占用率,提高主机的处理性能。
为实现上述目的,一方面本申请提供一种基于GIGE vision数据传输方法,包括:
基于主机的下载命令接收来自于从设备的GIGE vision帧数据并对头部类型进行拆包以获取数据包;
对数据包进行拆分解析后分流获得控制流和数据流;
对分流后的数据流重组并缓存;
根据分流后的控制流与主机通信并在主机处于待机状态时启动下载以将缓存的数据流传输至主机。
通过采用上述的技术方案,可在FPGA、DSP等芯片上运行,在基于主机的下载命令下载图像时,FPGA芯片采集来自于交换设备或从设备传输的GIGE vision帧数据并对其头部类型进行拆包以获取数据包,再对数据包进行拆分,拆分后的数据分别解析获得控制流和数据流;其中对数据流重组后缓存,同时FPGA芯片的处理器基于控制流的控制指令与主机通信并在主机处于待机状态时启动下载,控制FPGA芯片内部的模块动作将缓存的数据流传输至主机;由于GIGE vision协议帧数据的拆包解析以及数据流的重组缓存均在主机外部完成,从而降低了主机的CPU和内存的占用率,提升了主机的响应速度和处理性能,在工业像机应用领域具备明显优势。尤其是利用FPGA芯片可通过程序灵活编辑其内部的逻辑电路以及多个并行线程对工业相机的图像数据流实现高效快速地处理、拼接和重组。
优选地,所述根据分流后的控制流与主机通信并在主机处于待机状态时启动下载将缓存的数据流传输至主机的步骤包括:
将缓存的数据流解压获得图像数据流;
经多通道并行对图像数据流进行拼接获得还原的图像数据;
搬运还原的图像数据经PCIE总线发送至主机。
通过采用上述的技术方案,数据流的解压和解码均在主机外部完成,进一步降低了主机的CPU和内存的占用率,提升主机的响应速度和处理性能。
优选地,所述经多通道并行对图像数据流进行拼接获得还原的图像数据的步骤之前还包括:
在解压的图像数据缺失时,通知从设备将缺失的数据包重传,直到原始图像数据收集完整后再进行插值处理。
通过采用上述的技术方案,能过获得完整且清晰度更高的还原图像,而降低个别采集数据局部残缺对还原图像带来的不利影响。
优选地,在所述将缓存的数据流解压获得图像数据的步骤之前包括:
在接收到确认解压的控制指令时,对缓存的数据流进行解压。
通过采用上述的技术方案,主机在下载图像数据时,可通过输入解压操控指令,FPGA芯片基于此发出控制指令,在下载数据时,将缓存的数据流进行解压和解码,下载获得的是还原的图像数据;若主机在下载图像数据时没有输入解压操控,则下载获得的是缓存的数据流,在主机端进行数据流的解压和解码;本方案能够基于用户的操作选择在主机外部进行解压和解码,或选择在主机内部进行解压和解码,可进一步降低主机CPU和内存的占用率,提高主机的相应速度,并且灵活性较高。
优选地,还包括:
基于主机的控制指令发送上传请求报文;
接收从设备对上传请求报文的应答;
接收来自于主机的图像数据并对图像数据包进行封装后上传。
通过采用上述的技术方案,还可以借助FPGA芯片在主机外部实现将主机存储的图像数据可上传至交换设备,经交换设备传输至指定的GIGE vision设备或直接上传至GIGEvision设备,而上述上传数据过程中的GIGE vision协议的封包以及数据转移均在主机外部在FPGA芯片内完成,从而降低了主机的CPU和内存的占用率,提升了主机的响应速度和处理性能,在工业像机应用领域具备明显优势。
优选地,在所述接收来自于主机的图像数据包并对图像数据包进行封装后上传的步骤还包括:
将图像数据进行GIGE vision头部封装后传输至IP层;
在IP层对获得的数据进行IP头部封装后传输至链路层;
在链路层对获得的数据进行MAC头部封装并传输至物理层;
在物理层对获得的数据进行标准化处理获得GIGE vision帧数据并上传。
通过采用上述的技术方案,上述封装操作仅需要主机与FPGA芯片处理单元交互通信控制指令即可,均在FPGA芯片内部完成,而无需占用主机的CPU和内存,提升了主机的响应速度和处理性能。
优选地,在所述将图像数据进行GIGE vision头部封装后传输至IP层的步骤之前还包括:
转移主机内存输出的图像数据,并将转移的图像数据通过JPEG2000、LZ777或LZSS算法进行无损压缩。
通过采用上述的技术方案,将需要发送的图像数据从主机输出端口转移至FPGA芯片输入端口,然后在将转移的图像数据通过上述算法进行无损压缩,能够大大降低图像数据的占用空间,并提升上传速度。
优选地,所述接收帧数据并进行拆包以获取数据包的步骤包括:
提取帧数据的MAC头部;
基于MAC头部提取帧数据的IP头部;
基于MACIP提取帧数据的GIGE vision头部;
基于GIGE vision头部获得数据包。
通过采用上述的技术方案,上述拆包的过程均可通过FPGA芯片完成,主机只需要基于DHCP协议经FPGA芯片发送下载请求的广播指令,从设备响应指令后基于指令的要求上传GIGE vision帧数据,FPGA芯片接收GIGE vision帧数据并对其拆包获得数据包,然后对数据包拆分解析分流,最后在基于分流后获得的控制流与主机交互按照控制流的指令完成数据流的处理重组和缓存并实现向主机传输,完成数据下载。相对于相关技术将上述操作移植到主机外通过外接的FPGA芯片能完成,能大大降低主机的硬件性能配置。
为实现上述目的,另一方面本申请还提供一种基于GIGE vision采集卡,包括处理器、第一存储器和第二存储器,所述第一存储器存储有数据传输程序,第二存储器,用于缓存下载或上传的数据流;所述处理器在运行所述数据传输程序时执行上述方法的步骤。
通过采用上述的技术方案,基于FPGA、DSP等芯片实现GIGE vision协议进行通信,在主机外部能实现图像数据的下载和上传,运行速度高,降低主机设备的成本和功耗,提高主机处理性能。
为实现上述目的,再一方面本申请还提供一种数据传输系统,包括:
主机,接收或上传图像数据;
GIGE vision设备,用于上传或下载GIGE vision帧数据;
采集卡,为上述的基于GIGE vision采集卡,与所述主机通过PCIE总线连接,与所述GIGE vision设备物理连接;用于对GIGE vision设备上传的GIGE vision帧数据进行拆封还原获得的图像数据传输给主机或将主机上传的图像数据封装形成的GIGE vision帧数据传输至GIGE vision设备;实现主机与GIGE vision设备之间的通信及图像数据的传输。
通过采用上述的技术方案,主机在基于GIGE vision协议与交换设备通信下载或上传图像数据(来自于或上传至GIGE vision设备)时,能实现将GIGE vision协议的封装和解析放到GIGE vision采集卡上来实现,从而大大降低主机CPU和内存的占用率,提高了主机的处理性能。
优选地,在上述数据传输系统的基础上,在采集卡与多个GIGE vision设备之间还设置有交换设备,其中:
交换设备一端与采集卡通信连接,另一端与GIGE vision设备通信连接;用于将GIGE vision设备上传的帧数据经采集卡传输至主机或将主机经采集卡上传的图像数据传输至指定的GIGE vision设备。
通过采用上述的技术方案,主机在基于GIGE vision协议与交换设备通信下载或上传图像数据(来自于或上传至指定的GIGE vision设备)时,能实现将GIGE vision协议的封装和解析放到GIGE vision采集卡上来实现,从而大大降低主机CPU和内存的占用率,提高了主机的处理性能。与上述技术方案的不同之处在于增设了交换设备,可满足主机与多个GIGE vision设备之间数据传输。
本申请提供的GIGE vision数据传输方法、采集卡及数据传输系统具有如下综合技术效果:
GIGE vision采集卡能实现将GIGE vision协议的封装和解析,大大降低主机CPU和内存的占用率,降低主机的硬件成本和运行功耗,减小了主机的体积,提高了主机的处理性能和处理效率,可广泛应用于基于机器视觉的工业现场监控;
对于下载的数据GIGE vision采集卡能实现数据流的解压和解码;进一步上传的数据GIGE vision采集卡能实现输出图像的转移和无损压缩;进一步降低主机CPU和内存的占用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为背景技术中的通信方式;
图2为本申请一实施例方案涉及的网络通信示意图;
图3为本申请另一实施例方案涉及的网络通信示意图;
图4为图3中硬件之间的通信示意图;
图5为图4中的采集卡的内部结构示意图;
图6为本申请数据传输方法一实施例的流程示意图;
图7为本申请数据传输方法另一实施例的流程示意图;
图8为图6及图7中数据的拆封及分装的流程图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明,本发明实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
另外,在本发明中如涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“连接”、“固定”等应做广义理解,例如,“固定”可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接,还可以是物理连接或无线通信连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
另外,本发明各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
如图2所示,是本申请一实施例方案涉及的硬件运行环境的网络通信示意图。
FPGA芯片、主机和GIGE vision设备连接到同一个局域网内,本申请实施例中,GIGE vision采集卡设置有PCIE接口和PHY接口,PCIE接口通过PCIE总线与主机连接,PHY接口与GIGE vision设备(即从设备)的PHY接口物理连接;在本申请的其他实施例中,GIGEvision采集卡可拓展两个以上的PCIE接口已实现连接两个以上的GIGE vision设备。
上述方案中,GIGE vision采集卡采用FPGA芯片,采用GIGE vision协议通信实现主机PC端与从端设备(GIGE vision设备,例如工业相机等视觉设备)通信时,通过FPGA芯片来封装或解析协议,从而降低主机CPU及内存占用率,从而提高主机的处理性能。
参见图3,是本申请另一实施例方案涉及的硬件运行环境的网络通信示意图。图4为图3中硬件之间的通信示意图。
交换设备、FPGA芯片、主机和GIGE vision设备连接到同一个局域网内,交换设备与FPGA芯片之间可以不用通过网线直连,交换设备通过物理层接口PHY与FPGA芯片通信,FPGA芯片安装在主机上,GIGE vision设备通过RJ45接口与交换设备的物理层接口PHY通信,在本申请一实施例中FPGA芯片与主机之间通过PCIE(PCI Express)主线连接。相对于其他接口,PCIE接口具有高带宽,低延迟等有益效果。交换设备的作用在于为主机与每个局域网中每个从设备之间的传输路径划分确定的接口通道。
参见图5,本申请的FPGA芯片的内部结构包括MAC模块S01、IP层数据处理模块S02、数据拆分模块S03、数据封装模块S04、数据打包模块S05、识别与分流模块S06、中央处理器(即MCU模块)S07、重组模块S08、DDR存储器、FLASH存储器、解压模块S09、图像处理模块S10、图像搬运模块S11、压缩模块S12、PCIE接口S13。上述模块均是基于下面方法实施的步骤从功能上界定的模块,可以是与步骤对应的虚拟的装置,也可以基于实施步骤所需的实际功能构架FPGA芯片内部的逻辑电路。下面结合上述包含交换设备的硬件运行环境以及FPGA芯片的内部框架对本申请的方法进行详细说明:
参见图6,本申请第一实施例基于FPGA芯片侧提供一种基于FPGA的GIGE vision数据传输方法,以实现通过FPGA芯片按照主机的指令配置指定的多个从设备采集图像数据并下载上述采集的图像数据,该方法加载在FPGA芯片侧,并通过FPGA芯片运行并执行以下步骤,包括:
步骤S100,FPGA芯片的PCIE接口接收主机的控制命令并基于主机的控制命令发送下载请求报文;
FPGA芯片基于PCIE总线接收来自于主机(PC、嵌入式系统等)的控制命令,该命令包含下载请求,IP的配置;
报文通过广播的形式在局域网内播报,局域网内的所有的设备一直在侦听端口状态,当发现网络中有设备尝试与自身通信时,从设备会对网络中的请求作出响应,并开始与之建立通信连接;进而将自身的设备信息传递个主端;
步骤S200,FPGA芯片的PHY接口接收从设备对下载请求报文的应答并发送至主机;
从设备以单播的方式向FPGA芯片发送请求消息应答帧,FPGA芯片再通过PCIE总线发送至主机;主机接收应答帧并解包分析,然后再基于从设备的型号、制造商等信息生成控制命令以对从设备进行配置(例如包括配置从设备的控制寄存器,该控制寄存器地址是双方约定好的,向这些预定好的地址的控制寄存器写入特定值),并通过PCIE总线再经FPGA芯片发出携带配置信息的下载请求报文,相关的从设备接收该报文并解包分析,基于配置信息(从设备根据主设备填写的自身控制寄存器的特定值做出相应的动作,控制寄存器的值与动作及其之间的映射关系是事先约定好的)上传GIGE vision帧数据。
步骤S300,FPGA芯片的PHY接口接收来自于从设备的GIGE vision帧数据并拆包以获得数据包;
这里的GIGE vision帧数据指的是由GIGE vision设备输出的图像数据经由打包、编码等处理后按照GIGE vision协议格式封装形成,帧数据头部类型包括GIGE vision设备的MAC地址、IP地址、GVCP协议信令,MAC模块S01、IP层数据处理模块S02、数据拆分模块S03对上述信息依次进行识别,并与主机的MAC地址、IP地址匹配,匹配成功后按照上述地址找到数据包;若MAC地址、IP地址、GVCP头部与主机匹配不成功,则丢弃当前帧数据;对下一时刻帧数据进行拆包。数据拆分模块S03在本地对帧数据进行拆分解析,获得数据包。
步骤S400,经识别与分流模块S06对数据包分流获得控制流和数据流;
数据包其中一部分由控制字符构成,经识别与分流模块S06识别和归类后形成控制流供MCU与主机端通信,另一部分为传输的数据包,经识别与分流模块S06识别和归类后形成数据流供主机下载。
步骤S500,重组模块S08对分流后的数据流重组并缓存在DDR存储器中;
重组模块S08对分流后的数据流进行重组(把拆散的图像数据拼成一帧完整的数据),并根据MCUS07的指令将重组数据缓存在DDR存储器中,待MCU频繁调取时可通过重组模块S08准确地从DDR存储器内取出MCU S07所需的数据。
步骤S600,MCU模块S07根据分流后的控制流与主机通信并在主机处于待机状态时启动下载以将缓存的数据流传输至主机。
分流后的控制流经MCU模块 S07与主机通信,确定主机是否处于非忙碌状态,是否需要下载当前数据,若都满足时,则启动下载指令,将缓存在DDR存储器中的数据按照主机的指示转移至主机。若确定要下载当前数据,但主机当前处于忙碌状态,则启动重组模块S08对分流后的数据流进行重组缓存在DDR存储器中,等待主机处于待机状态时,将其所有需要下载的数据经图像搬运模块S11依次搬运至PCIE接口,再经PCIE总线传输至主机;若确定不需要下载当前数据,则无需启动重组模块S08对分流后的数据流进行重组,也不必缓存。
在本申请一实施例中,数据的处理流程参见图8,步骤S300包括:
步骤S301,MAC模块S01提取帧数据的MAC头部并与主机的MAC比较;
GIGE vision设备发送信令报文(即应答消息帧),经网线或PHY芯片与交换设备的PHY接口(内设PHY芯片)连接,PHY芯片将GVCP信令报文除去前导码并进行CRC校验后,传输至FPGA芯片,首先传输至MAC模块S01,对输入的数据进行MAC地址校验,即与从主机获取的MAC(这里指的是:主机对GIGE vision设备配置的MAC)进行比较;
步骤S302,在两者一致时,IP数据处理模块S02基于MAC提取帧数据的IP头部并与主机的IP比较;
在两者一致时确认校验通过,并除去MAC头格式后,根据数据中心的IP类型段,把GVCP信令报文发送至IP数据流,传输至IP数据处理模块S02;IP数据处理模块S02对输入的数据流进行IP地址校验以及首部检错码校验,指与从GVCP信令报文中获取的主机IP进行比较。
步骤S303,在两者一致时,数据拆分模块S03基于IP提取帧数据的GIGE vision协议中的数据包并拆分获得GVCP数据包和GVSP数据包;
在校验通过时,从数据段中提取出IP地址信息进行缓存,除去信令报文的IP首部后,根据数据流类型,把信令报文数据传输至数据拆分模块S03,数据拆分模块S03基于IP提取帧数据的GIGE vision协议中的数据包并拆分,获得GVCP数据包和GVSP数据包。
步骤S304,在两者一致时,数据拆分模块S03基于GIGE vision中的GVCP头部获得数据包。
确认帧数据与主机匹配后,数据拆分模块S03将去除信令报文的GVCP头部后,获得数据包并传输至识别与分流模块S06。
识别与分流模块S06对帧数据进行拆分获得控制流(可以理解为GVCP流即对GVCP信令报文进行读取、核查、协议处理操作,并根据信令报文产生的内部指令)和数据流(可以理解为GVSP数据流),内部指令传输至MCU模块S07,数据流传输至重组模块S08。
步骤S600包括:
步骤S601,在解压模块S09接收到MCU模块S07的确认解压的控制指令时,执行步骤602;
上述解压操作,可基于主机端用户的输入指令选择是否需要在采集卡端对下载的数据进行解压,如果用户选择则执行解压步骤,若用户未选择解决,则直接将内存中的数据流搬运至PCIE接口S13,通过PCIE总线传输至主机。
步骤S602,解压模块S09将缓存的数据流解压获得图像数据流;
为减小传输过程中的占用空间,根据协议要求,上传的数据流均为经过编码压缩的数据包,在下载时,解压模块S09对数据流的解压可在采集卡上进行操作,直接获得图像数据流,这里的图像数据流还不是真正的图像,而是按照编码器的要求编码后的数字文件。
步骤S603,在解压的图像数据缺失时,设备可以通知从设备端将缺失的数据包重传,直到原始图像数据收集完整后再进行插值处理;在获取的图像采样数据完整后,图像处理模块S10可通过插值、二值化、降噪等算法将从端设备传递过来的图像做相应的算法处理,进而最大限度的降低PC的处理量;图像处理模块S10包含各类常用的图像算法,用户可以通过配置来决定使用那些算法以及调节算法的参数,以增强设备的灵活性;
步骤S604,经多通道并行对图像数据流进行拼接获得还原的图像数据;
图像处理模块S10可以借助FPGA芯片内部的多个并行的逻辑电路(通道)对多个图像数据流进行拼接,每个通道完成一帧图像的拼接后,即可发送至图像搬运模块S11,多个通道并行能够同时完成多帧数据的拼接,相对与相关技术,在主机端进行的图像拼接(串行通道只能一帧一帧完成)大大提高了数据流的传输速度;此外,图像处理模块S10还可以将多个图像处理算法借助FPGA芯片内部的逻辑电路实现,以满足用户端的多个操作:例如曝光时间调整、图像边界处理等;如果自身不能满足例如曝光时间调整,则会将帧数据退回至从设备端进行曝光处理后重新上传并解压还原处理;可以理解为通过图像处理模块S10能够对图像数据流进行解码后对图像进行还原,获得图像数据,将从设备上传的数据还原为采集的图像数据;并在采集的图像数据的基础上还能基于用户的指令进行优化处理。
步骤S605,搬运还原的图像数据经PCIE总线发送至主机。
通过图像搬运模块S11例如DMA(Direct Memory Access,也称为成组数据传送)方式将内存中的数据成批搬运至PCIE接口S13,通过PCIE总线传输至主机。DMA方式能满足高速I/O设备的要求,也有利于CPU效率的发挥。PCIE总线采用差分线RX、TX。抗干扰的能力更强,且差分信号可以使用更高的总线频率,实现数据的高速传输。主机借助采集卡下载数据的工作过程如下:
主机上电,采集卡内部程序初始化,主机读取GIGE vision设备状态,并配置设备参数、自动发出发现GIGE vision新设备的指令与开启GIGE vision新设备指令开始工作,GIGE vision设备获取图像数据,经交换设备或嵌入式图像采集设备解析和预处理后进行格式封装,待主机与交换设备的信令交互完成后,采集卡接收封装的帧数据进行拆包缓存并向主机传输。
参见图7,本申请第二实施例中基于FPGA芯片侧提供一种基于FPGA的GIGE vision数据传输方法,以实现通过FPGA芯片按照主机的指令配置向指定的多个从设备传输图像数据,该方法加载在FPGA芯片侧,并通过FPGA芯片运行并执行下面的步骤:
步骤S001,FPGA芯片的PCIE接口接收主机的控制命令并基于主机的控制指令发送上传请求报文;
FPGA芯片基于PCIE总线接收来自于主机(PC、嵌入式系统等)的控制命令,该命令包含上传请求,上传请求基于GVCP协议标准的写在报文中,报文中还包括主机的MAC地址、IP地址、从设备(即GIGE vision设备)的MAC地址、IP地址的信息等内容。报文通过广播的形式在局域网内播报,局域网内的所有GIGE vision设备一直在GVCP端口侦听网络状态,当发现有请求消息帧在网络中传输时就会接收该广播并对消息帧进行解包分析,会将自身相关的配置信息填充到请求应答器中,这些消息包含GIGE vision设备型号、制造商等。
步骤S002,FPGA芯片的PHY接口接收从设备对上传请求报文的应答并发送至主机;FPGA芯片通过交换设备与从设备进行数据交互;
从设备以单播的方式向FPGA芯片发送请求消息应答帧,FPGA芯片再通过PCIE总线发送至主机;主机接收应答帧并解包分析,然后再基于从设备的型号、制造商等信息生成控制命令以对从设备进行配置(例如包括配置从设备的控制寄存器,该控制寄存器地址是双方约定好的,向这些预定好的地址的控制寄存器写入特定值),并通过PCIE总线再经FPGA芯片发出携带配置信息的上传请求报文,相关的从设备接收该报文并解包分析,基于配置信息(从设备根据主设备填写的自身控制寄存器的特定值做出相应的动作,控制寄存器的值与动作及其之间的映射关系是事先约定好的)接收来自于FPGA芯片的GIGE vision帧数据。
步骤S003,接收来自于主机的图像数据并对图像数据包进行封装后上传。
需要说明的是,上传数据可与下载数据调换顺序,也可以同时进行,即步骤S001-S003与步骤S100-S600的时序可以整体调换或并列进行,主机需要上传数据时,主机发送信令报文GVCP,通过PCIE接口经FPGA芯片与交换设备进行信息交互并经指定的路径发送至指定的从设备,协商并配置GIGE vision设备中的通用引导寄存器与用户寄存器,主机完成基本的设备读写寄存器操作后,通过信令报文形式读取设备描述文件,主机自动解析描述文件,若解析成功则进行下一步,否则(也可以发送报错指令给MCU模块S07)返回上一步;解析成功后主机产生配置接口和传输通道,根据主机端用户使能采集卡,开启上传操作。
步骤S003包括:
步骤S013,FPGA芯片中的图像转移模块S10转移主机内存输出的图像数据至PCIE接口,压缩模块S12将转移的图像数据通过JPEG2000、LZ777或LZSS算法进行无损压缩;数据打包模块S05将压缩数据打包传输至数据封装模块S04。
参见图8,上传数据的流程中,可在采集卡内进行无损压缩后再进行头部封装,封装可以理解为在一串字符流的前面按照协议添加特定的描述符或用户数据,以进一步降低内存占用空间。
步骤S023,数据封装模块S04将打包的压缩图像数据进行GIGE vision的GVCP头部封装后传输至IP层;
数据封装模块S04基于上传请求报文和/或应答报文解析数据形成GVCP的控制字符,并将GVCP头部封装在数据包内并设置校验码。
步骤S033,IP层数据处理模块S02在IP层对获得的数据进行IP头部封装后传输至链路层;
IP层数据处理模块S02基于上传请求报文和/或应答报文获取的主机和/或从设备的IP,并将IP头部封装在数据包内并设置校验码。
步骤S043,MAC模块S01在链路层对获得的数据进行MAC头部封装并传输至物理层;
MAC模块S01基于上传请求报文和/或应答报文获取的主机和/或从设备的MAC,并将MAC头部封装在数据包内并设置校验码。
步骤S053,PHY接口在物理层对获得的数据进行标准化处理获得GIGE vision帧数据并上传。
PHY接口负载电压可达20V,能够与绝大部分外设硬件(负载电压通常为10V以下)之间进行通信而不至于烧损,从而提高数据传输的安全性。
实施例二
在实施例一的基础上,本实施例还提供一种基于FPGA的GIGE vision采集卡,包括处理器、第一存储器和第二存储器,所述第一存储器存储有数据传输程序,第二存储器,用于缓存下载或上传的数据流;所述处理器包括FPGA,在运行所述数据传输程序时执行上述方法的步骤。
通过采用上述的技术方案,基于FPGA实现GIGE vision协议进行通信,在主机外部能实现图像数据的下载和上传,运行速度高,降低主机设备的成本和功耗,提高主机处理性能。
基于同一发明构思本申请还提供一种数据传输系统,包括主机、采集卡、交换设备和GIGE vision设备,其中:
主机用于接收或上传图像数据;
采集卡为上述的基于FPGA的GIGE vision采集卡,与所述主机通过PCIE总线连接;用于对下载的帧数据进行解析或将上传的图像数据进行封装;
交换设备一端与采集卡通信连接,另一端与GIGE vision设备通信连接;用于将GIGE vision设备上传的图像数据按照配置经采集卡传输至主机;
所述GIGE vision设备用于接收主机的控制命令上传图像数据。
通过采用上述的技术方案,主机在基于GIGE vision协议与交换设备通信下载或上传图像数据(来自于或上传至GIGE vision设备)时,能实现将GIGE vision协议的封装和解析放到GIGE vision采集卡上来实现,从而大大降低主机CPU和内存的占用率,提高了主机的处理性能。
本申请提供的基于FPGA的GIGE vision数据传输方法、采集卡及数据传输系统具有如下综合技术效果:
GIGE vision采集卡能实现将GIGE vision协议的封装和解析,大大降低主机CPU和内存的占用率,降低主机的硬件成本和运行功耗,减小了主机的体积,提高了主机的处理性能和处理效率,可广泛应用于基于机器视觉的工业现场监控;
对于下载的数据GIGE vision采集卡能实现数据流的解压和解码;进一步上传的数据GIGE vision采集卡能实现输出图像的转移和无损压缩;进一步降低主机CPU和内存的占用率。
需要说明的是,FPGA芯片可以用不同的专用芯片或单片机以及DSP等芯片分别实现各子模块的功能,同时在接口的设置上可以用RJ45相类似的接口或同类型接口来实现,比如POE,PCIE接口可以用X1/X2/X4等不同通道数据的接口实现。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。
Claims (9)
1.一种GIGE vision数据传输方法,其特征在于,包括:
基于主机的下载命令接收来自于从设备的GIGE vision帧数据并拆包以获取数据包;
对数据包进行拆分解析分流获得控制流和数据流;
对分流后的数据流重组并缓存;
根据分流后的控制流与主机通信并在主机处于待机状态时启动下载以将缓存的数据流传输至主机;
所述根据分流后的控制流与主机通信并在主机处于待机状态时启动下载以将缓存的数据流传输至主机的步骤包括:
将缓存的数据流解压获得图像数据流;
经多通道并行对图像数据流进行拼接获得还原的图像数据;
搬运还原的图像数据经PCIE总线发送至主机。
2.根据权利要求1所述的GIGE vision数据传输方法,其特征在于,所述经多通道并行对图像数据流进行拼接获得还原的图像数据的步骤之前还包括:
在解压的图像数据丢失时,通知从设备将缺失的数据包重传,直到原始图像数据收集完整后再进行插值处理。
3.根据权利要求1所述的GIGE vision数据传输方法,其特征在于,在所述将缓存的数据流解压获得图像数据的步骤之前包括:
在接收到确认解压的控制指令时,对缓存的数据流进行解压。
4.根据权利要求1~3任一项所述的GIGE vision数据传输方法,其特征在于,还包括:
基于主机的控制指令发送上传请求报文;
接收从设备对上传请求报文的应答;
接收来自于主机的图像数据并对图像数据包进行封装后上传。
5.根据权利要求4所述的GIGE vision数据传输方法,其特征在于,所述接收来自于主机的图像数据并对图像数据包进行封装后上传的步骤包括:
将图像数据进行GIGE vision头部封装后传输至IP层;
在IP层对获得的数据进行IP头部封装后传输至链路层;
在链路层对获得的数据进行MAC头部封装并传输至物理层;
在物理层对获得的数据进行标准化处理获得GIGE vision帧数据并上传。
6.根据权利要求5所述的GIGE vision数据传输方法,其特征在于,所述将图像数据进行GIGE vision头部封装后传输至IP层的步骤之前还包括:
转移主机内存输出的图像数据,并将转移的图像数据通过JPEG2000、LZ777或LZSS算法进行无损压缩。
7.根据权利要求1所述的GIGE vision数据传输方法,其特征在于,所述接收帧数据并对头部类型进行拆包以获取数据包的步骤包括:
提取帧数据的MAC头部,并与主机的MAC比较;
在两者一致时基于MAC提取帧数据的IP头部,并与主机的IP比较;
在两者一致时基于IP提取帧数据的GIGE vision头部;
在两者一致时基于GIGE vision获得数据包。
8.一种GIGE vision采集卡,其特征在于,包括:
第一存储器,存储有数据处理程序;
第二存储器,用于缓存下载或上传的数据流;
处理器,在运行所述数据处理程序时执行权利要求1~7任一项所述方法的步骤。
9.一种数据传输系统,其特征在于,包括:
主机,接收或上传图像数据;
GIGE vision设备,用于上传或下载GIGE vision帧数据;
采集卡,为权利要求8所述的GIGE vision采集卡,与所述主机通过PCIE总线连接,与所述GIGE vision设备物理连接;用于对GIGE vision设备上传的GIGE vision帧数据拆封还原获得的图像数据传输给主机或将主机上传的图像数据封装形成的GIGE vision帧数据传输至GIGE vision设备;实现主机与GIGE vision设备之间的通信及图像数据的传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011505999.7A CN113961499B (zh) | 2020-12-18 | 2020-12-18 | 一种GIGE vision数据传输方法、采集卡及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011505999.7A CN113961499B (zh) | 2020-12-18 | 2020-12-18 | 一种GIGE vision数据传输方法、采集卡及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113961499A CN113961499A (zh) | 2022-01-21 |
CN113961499B true CN113961499B (zh) | 2024-04-26 |
Family
ID=79460099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011505999.7A Active CN113961499B (zh) | 2020-12-18 | 2020-12-18 | 一种GIGE vision数据传输方法、采集卡及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113961499B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114785748B (zh) * | 2022-06-21 | 2022-09-16 | 苏州领慧立芯科技有限公司 | 用于图像传输的dma控制系统与方法 |
CN116405733B (zh) * | 2023-06-08 | 2023-09-19 | 新华三技术有限公司 | 一种数据传输方法及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1497999A (zh) * | 2002-10-24 | 2004-05-19 | �ձ�������ʽ���� | 移动通信系统,移动站,基站,及其数据包通信方法 |
JP2009118151A (ja) * | 2007-11-06 | 2009-05-28 | Fujitsu Ltd | 通信システム、送信装置、中継装置、受信装置及び送信プログラム |
CN109040786A (zh) * | 2018-09-03 | 2018-12-18 | 锐捷网络股份有限公司 | 摄像头数据的传输方法、装置、系统及存储介质 |
CN109089029A (zh) * | 2018-09-05 | 2018-12-25 | 暨南大学 | 一种基于FPGA的Gige Vision接口图像传输系统与方法 |
-
2020
- 2020-12-18 CN CN202011505999.7A patent/CN113961499B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1497999A (zh) * | 2002-10-24 | 2004-05-19 | �ձ�������ʽ���� | 移动通信系统,移动站,基站,及其数据包通信方法 |
JP2009118151A (ja) * | 2007-11-06 | 2009-05-28 | Fujitsu Ltd | 通信システム、送信装置、中継装置、受信装置及び送信プログラム |
CN109040786A (zh) * | 2018-09-03 | 2018-12-18 | 锐捷网络股份有限公司 | 摄像头数据的传输方法、装置、系统及存储介质 |
CN109089029A (zh) * | 2018-09-05 | 2018-12-25 | 暨南大学 | 一种基于FPGA的Gige Vision接口图像传输系统与方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113961499A (zh) | 2022-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4344749B2 (ja) | 無線macプロセッサのネットワーク接続でデータストリーミングを提供する方法及び装置 | |
CN113961499B (zh) | 一种GIGE vision数据传输方法、采集卡及系统 | |
KR100446508B1 (ko) | 패킷 데이터 통신시스템에서 패킷 데이터 처리장치 | |
WO2016187813A1 (zh) | 一种光电混合网络的数据传输方法及装置 | |
KR100981561B1 (ko) | 이동통신 시스템의 데이터 처리 방법 및 장치 | |
CN113709047B (zh) | 一种汽车域控制器数据转发系统及方法 | |
CN108243185A (zh) | 基于ax88180的科学级ccd千兆以太网通信系统及方法 | |
CN110971909A (zh) | 一种低功耗低延时soc芯片 | |
WO2023124768A1 (zh) | 图像采集卡、图像采集方法及图像采集系统 | |
CN113572688A (zh) | 报文转发方法及终端设备、计算机存储介质 | |
EP2854350A1 (en) | System and method for cross-network data storage | |
CN110996120A (zh) | 一种视频流发送、接收方法 | |
WO2015055008A1 (zh) | 一种存储控制芯片及磁盘报文传输方法 | |
KR20200143881A (ko) | 제어기 통신 장치 및 그 방법 | |
CN115174409A (zh) | 一种基于cxl协议的网络连接方法及系统 | |
CN102480463B (zh) | 网络交互方法及系统 | |
CN113556320A (zh) | 以太网多路音频实时传输方法及设备 | |
CN116996592B (zh) | 网卡、数据发送处理方法和数据接收处理方法 | |
CN112637027B (zh) | 基于uart的帧边界界定装置及发送方法和接收方法 | |
CN114095572B (zh) | 数据搬运方法及装置 | |
CN115378921B (zh) | 基于raw的网络构架及数据传输方法 | |
CN114079675B (zh) | 报文处理方法、装置、终端设备及移动宽带上网设备 | |
US20030014547A1 (en) | Data transfer method, data transfer device, communication interface method, and communication interface device | |
CN117560243A (zh) | Canfd转接头、通讯方法及通讯系统 | |
US20190354727A1 (en) | Processing device, communication device and methods thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |