一种贴片机设备的图像数据接收系统及方法与流程

文档序号:23791854发布日期:2021-01-30 06:19阅读:153来源:国知局
一种贴片机设备的图像数据接收系统及方法与流程

[0001]
本发明涉及网络传输技术领域,特别涉及一种贴片机设备中连续图像数据接收系统和方法。


背景技术:

[0002]
贴片机作为实现高速、高精度地全自动地贴放元器件的设备,在现代工业生产中的应用已越来越广泛。而其中的视觉系统通过对元件的识别和特征分析可以校准元器件的贴装位置,其性能直接影响贴片机的贴装速度和精度。一般而言,一台贴片机的视觉系统由多个工业相机及其对应的光源系统和图像控制集成电路板组成。工业相机的集成电路板上有光敏元件阵列,相机将感知到的光强分布转化成模拟信号,再转换成离散的数字信号,即得到了图像的像素值。通过对采集到的元件的图像进行识别和特征分析判断待贴装元件是否符合要求并计算实际贴装位置的偏移量。
[0003]
由于使用环境、图像采集对象、图像处理要求等因素的不同,机器视觉系统传输图像的方式也不尽相同。考虑到图像数据量大,为了满足传输效率,在贴片机机器视觉可以采用cameralink协议作为图像传输方式,虽然采用cameralink保证了传输效率,但在实际应用中,贴片机设备的接线往往需要使用坦克链捆扎、束缚,需要保证机器运行中不会出现拉拽情况。cameralink线缆直径大且笨重,不利于在紧凑的贴片机中布线及走线,造成结构上需要更大的空间布局线缆,且cameralink线缆不支持热插拔,所以在贴片机系统中使用的局限性较大。
[0004]
为了解决cameralink协议传输图像的不足,另一种方式是采用千兆以太网协议传输图像,通过网线连接相机、图像控制板及上位机设备,传输距离更长,且无需像cameralink协议那样使用专用的图像采集卡,线路设计更加灵活自由。千兆以太网网络通信传输层主要使用的协议有tcp(传输控制协议)和udp(用户数据报协议),tcp是一种面向连接的、可靠的,基于字节流传输的通讯协议,tcp数据传输具有确认数据、失败重发的功能,但是数据吞吐量相比较udp而言较低且占用资源较多。
[0005]
udp是一种无需连接就能发送封装ip数据包的传输层协议,优点是传输效率高,占用系统资源少。缺点是没有握手、数据确认、纠错、重发的机制,传输数据不可靠,可能出现网络包丢失或者错乱的情况。
[0006]
千兆以太网网络通信传输层主要使用的协议有tcp(传输控制协议)和udp(用户数据报协议),udp是一种无需连接就能发送封装ip数据包的传输层协议,优点是传输效率高,占用系统资源少。缺点是没有握手、数据确认、纠错、重发的机制,传输数据不可靠,可能出现网络包丢失或者错乱的情况。


技术实现要素:

[0007]
本发明为克服现有技术中存在的技术问题,提出一种贴片机设备的图像数据接收系统及方法,以期既能保证高效传输,又能提升传输可靠性,同时具有很低的计算机cpu占
用率。
[0008]
本发明为达到上述发明目的,采用如下技术方案:
[0009]
本发明一种贴片机设备的连续图像数据接收系统的特点包括:套接字管理模块、事件监视模块、图像缓冲区管理模块、图像数据流模块;
[0010]
所述图像数据流模块包括:临时缓冲区、网络包解析单元、缓冲区操作单元;
[0011]
所述套接字管理模块用于管理图像数据接收系统中所有需要使用的网络套接字,包括:套接字的初始化、读写操作;其中,读操作是用于接收相机端或图像控制板发来的图像数据,写操作是用于向相机端或图像控制板发送控制包;
[0012]
所述事件监视模块用于监视图像传输中帧完成和帧丢失情况,采用基于事件驱动的方式等待帧完成或帧丢失事件发生,并为所述帧完成和帧丢失事件分别注册回调函数,当接收到帧完成事件时,表示所述图像缓冲区管理模块获取一帧图像,当接收到帧丢失事件时,利用帧丢失事件发生时所注册的回调函数来释放图像传输丢帧的信息;
[0013]
所述图像缓冲区管理模块用于存储获取到的图像并供用户使用,所述图像数据接收系统中有多个图像缓冲区管理模块,每个图像缓冲区管理模块除自身所存储的图像外,还存储当前图像对应的图像尺寸、数据来源、图像类型信息,从而构成完整的图像数据;
[0014]
所述图像缓冲区管理模块的功能包括:图像缓冲区的空间分配和释放,完整图像或部分图像数据的写入和读取,图像尺寸、数据来源、图像类型信息的获取和写入,图像缓冲区的状态的获取和设置;
[0015]
令所述图像缓冲区的状态包括:空,即表示无图像或缓冲区的图像已被获取、半满,即写入部分图像、满,即写入完整图像、溢出,即未取走图像时又有新的图像写入;
[0016]
贴片机设备中的每个图像源对应唯一的图像数据流模块,所述图像数据流模块用于接收图像数据、解析并将图像写入临时缓冲区;每个图像数据流模块采用异步传输的方式写入多个临时缓冲区;
[0017]
所述网络包解析单元每收到一个网络包,将其中的图像和关联的信息解析出来,所述关联的信息包括:图像尺寸、包类型、帧索引、包索引;其中,图像尺寸用于分配临时缓冲区和图像缓冲区;包类型、帧索引、包索引用于判断帧完成和帧丢失的情况;包类型表示图像数据包的类型,包括:起始数据包、中间数据包、末尾数据包;帧索引表示图像帧的编号,每一帧图像拥有唯一的帧索引;包索引表示数据包的编号,一帧图像的每个图像数据包拥有唯一的包索引;
[0018]
所述临时缓冲区将每个网络包中的图像按照包索引写入临时缓冲区相应的偏移位置,通过超时机制判断在接收图像的过程中是否有丢包现象发生,若无丢包现象发生,则表示帧完成情况;若有丢包现象发生,则执行重传操作,并在重传操作后判断是否有丢包现象发生,若有,则表示帧丢失情况;否则,表示帧完成情况;
[0019]
所述缓冲区操作单元在帧完成情况下将临时缓冲区中的图像写入图像缓冲区,并设置所述图像缓冲区模块的缓冲区状态;若图像缓冲区当前状态为空时,则写入完整一帧图像数据后,将状态设置为满;若图像缓冲区状态不为空时,则写入完整一帧图像后,将状态设置为溢出;
[0020]
所述缓冲区操作单元在帧丢失情况或新帧到达时,重置临时缓冲区的所有信息。
[0021]
本发明所述的贴片机设备的连续图像数据接收系统的特点也在于,所述超时机制
为:
[0022]
以一帧的起始数据包作为超时判断的起点,在一帧图像数据传输完成前记录每个数据包的时间戳,并按照完整的一帧图像数据来计算标准时间,当耗时超过所述标准时间的一定倍数或一帧图像数据未完成传输时就有新帧到达,则表示帧丢失情况;
[0023]
若新帧到达时上一帧图像数据中所有数据包已接收完毕或者完整的一帧图像数据传输的耗时时间在所述标准时间的一定倍数范围内,则表示帧完成情况;
[0024]
其中,一帧图像数据的接收完毕是指已接收的包个数等于理论包个数且获取到末尾数据包。
[0025]
本发明一种贴片机设备的连续图像数据接收方法的特点是按照如下步骤进行:
[0026]
步骤1、初始化网络套接字:
[0027]
初始化与每个工业相机的图像控制板通讯的网络套接字;
[0028]
使用初始化后的网络套接字所对应的不同端口接收相机端或图像控制板发来的以规定格式、长度的数据包所构成的图像数据以及向相机端或图像控制板发送控制指令;
[0029]
步骤2、预分配图像缓冲区的空间,并为每个图像缓冲区注册图像数据流;
[0030]
步骤3、设置帧完成和帧丢失事件并开始事件监视,采用基于事件驱动的方式等待帧完成或帧丢失事件发生,并为所述帧完成和帧丢失事件分别注册回调函数;
[0031]
步骤4、使用临时缓冲区接收图像,每接收到一个图像中的数据包就解析其图像数据,并根据包头类型和帧索引判断当前数据包是否为一帧图像的起始、中间或末尾数据包;
[0032]
若为起始数据包,则表示当前所获得的数据包中的索引的是新的一帧的帧索引,并使得临时缓冲区队列中的首个缓冲区执行出队列操作,使用当前新的一帧的帧索引及图像尺寸初始化一个临时缓冲区后放入临时缓冲区队列中,再将当前数据包中的图像写入所述临时缓冲区的起始位置;
[0033]
若为中间数据包,则在临时缓冲区队列中找到与当前数据包的帧索引相同的临时缓冲区,并根据其包索引写入所述临时缓冲区相应的偏移内存位置;
[0034]
若为末尾数据包,则找到与当前数据包的帧索引相同的临时缓冲区,并根据其包索引写入所述临时缓冲区相应的内存位置;
[0035]
每获取到一个图像的数据包,均将已接收的包个数加一,并将相应的包索引缓存;
[0036]
步骤5、通过超时机制判断帧完成或帧丢失情况:
[0037]
以一帧的起始数据包作为超时判断的起点,在一帧图像数据传输完成前记录每个数据包的时间戳,并按照完整的一帧图像数据来计算标准时间,当耗时超过所述标准时间的一定倍数或一帧图像数据传输未完成时就有新帧到达,则表示帧丢失情况;
[0038]
若新帧到达时上一帧图像数据中所有数据包已接收完毕或者完整的一帧图像数据传输的耗时时间在所述标准时间的一定倍数范围内,则表示帧完成情况;
[0039]
其中,一帧图像数据的接收完毕是指已接收的包个数等于理论包个数且获取到末尾数据包;
[0040]
步骤6、对于帧完成情况,将图像数据写入图像缓冲区并产生帧完成事件,在帧完成事件对应的回调函数中获取图像数据,并将对应的图像缓冲区状态置为空;
[0041]
对于帧丢失情况,先判断当前帧丢包是否超过所设定的阈值,若超过,则直接产生帧丢失事件并将当前帧索引对应的临时缓冲区的数据清空;否则,执行步骤7;
[0042]
步骤7、记录当前帧丢失的包索引,并打包成重传信息发送到对应的图像控制板后,接收图像控制板发来的重传数据包,再根据每个重传数据包的包索引补充写入临时缓冲区的空缺位置,从而再判断当前帧是否完整,若完整,则产生帧完成事件,否则产生帧丢失事件。
[0043]
与现有技术相比,本发明的有益效果在于:
[0044]
本发明使用udp协议,其传输效率较高,以1kb数据包(符合使用场景)收发测试为例,使用tcp协议的传输速度约为58.7mb/s,使用udp协议的传输速率约为116.6mb/s。有效解决了传统udp数据传输中数据包错乱、丢失的问题,在用户获取并处理图像数据的同时不影响图像数据的正常传输,即使在回调函数中进行复杂操作也不会阻塞图像数据的接收,且本发明的所有实施例在pc端实际运行过程中cpu占用率几乎为0。由此可知,本发明申请的技术方案是一种轻量级、高效率、高可靠性的连续图像数据接收方案。
附图说明
[0045]
图1为本发明图像数据接收系统简图;
[0046]
图2为本发明临时缓冲区异步传输的图像写入策略示意图;
[0047]
图3为本发明图像数据接收方案实施例步骤示意图;
[0048]
图4为本发明图像缓冲区写入策略示意图;
[0049]
图5为本发明临时缓冲区队列操作示意图。
具体实施方式
[0050]
本实施例中,一种贴片机设备的图像数据接收系统,包括:套接字管理模块、事件监视模块、图像缓冲区管理模块、图像数据流模块,如图1所示;
[0051]
图像数据流模块包括:临时缓冲区、网络包解析单元、缓冲区操作单元;
[0052]
套接字管理模块用于管理图像数据接收系统中所有需要使用的网络套接字,包括:套接字的初始化、读写操作;其中,套接字是网络应用程序通信时,各自通信连接中的端点,读操作是用于接收相机端或图像控制板发来的图像数据,写操作是用于向相机端或图像控制板发送控制包。读操作和写操作使用不同的网络套接字。
[0053]
事件监视模块用于监视图像传输中帧完成和帧丢失情况,采用基于事件驱动的方式等待帧完成或帧丢失事件发生,并为帧完成和帧丢失事件分别注册回调函数,当接收到帧完成事件时,表示图像缓冲区管理模块获取一帧图像,当接收到帧丢失事件时,利用帧丢失事件发生时所注册的回调函数来释放图像传输丢帧的信息。在监视模块中处理帧完成或帧丢失事件,其优势在于不会对图像采集的功能产生阻塞,保证运行效率并大幅度降低cpu占用率。
[0054]
图像缓冲区管理模块用于存储获取到的图像并供用户使用,图像数据接收系统中有多个图像缓冲区管理模块,每个图像缓冲区管理模块除自身所存储的图像外,还存储当前图像对应的图像尺寸、数据来源、图像类型信息,从而构成完整的图像数据。其中图像尺寸表示图像的宽度和高度,数据来源表示当前图像是贴片机设备中哪一个相机或图像控制板发出的。
[0055]
图像缓冲区管理模块的功能包括:图像缓冲区的空间分配和释放,完整图像或部
分图像数据的写入和读取,图像尺寸、数据来源、图像类型信息的获取和写入,图像缓冲区的状态的获取和设置;
[0056]
令图像缓冲区的状态包括:空,即表示无图像或缓冲区的图像已被获取、半满,即写入部分图像、满,即写入完整图像、溢出,即未取走图像时又有新的图像写入;使用独立的图像缓冲区管理模块,可以妥善管理图像关联的必要信息,保证在多个数据源情况下不会出现数据错乱的情况,图像缓冲区使用自适应分配逻辑以应对图像序列中不同图像尺寸不一的复杂情况。
[0057]
贴片机设备中的每个图像源对应唯一的图像数据流模块,图像数据流模块用于接收图像数据、解析并将图像写入临时缓冲区;每个图像数据流模块采用异步传输的方式写入多个临时缓冲区,如图2所示。使用临时缓冲区获取采集的数据,仅在帧完成情况下将数据拷贝至图像缓冲区,保证数据正确性和处理效率。
[0058]
网络包解析单元每收到一个网络包,将其中的图像和关联的信息解析出来,关联的信息包括:图像尺寸、包类型、帧索引、包索引;其中,图像尺寸用于分配临时缓冲区和图像缓冲区;包类型、帧索引、包索引用于判断帧完成和帧丢失的情况。包类型表示图像数据包的类型,包括:起始数据包、中间数据包、末尾数据包;帧索引表示图像帧的编号,每一帧图像拥有确定、唯一、不重复的帧索引;帧索引用于区分不同帧以进行帧完成或帧丢失的判断,包索引用于保证数据按照发送顺序写入,不会出现乱序情况。包索引表示数据包的编号,一帧图像的每个图像数据包拥有确定、唯一、不重复的包索引;
[0059]
临时缓冲区将每个网络包中的图像按照包索引写入临时缓冲区相应的偏移位置,通过超时机制判断在接收图像的过程中是否有丢包现象发生,若无丢包现象发生,则表示帧完成情况;若有丢包现象发生,则执行重传操作,并在重传操作后判断是否有丢包现象发生,若有,则表示帧丢失情况;否则,表示帧完成情况;
[0060]
缓冲区操作单元在帧完成情况下将临时缓冲区中的图像写入图像缓冲区,并设置图像缓冲区模块的缓冲区状态;若图像缓冲区当前状态为空时,则写入完整一帧图像数据后,将状态设置为满;若图像缓冲区状态不为空时,则写入完整一帧图像后,将状态设置为溢出;
[0061]
缓冲区操作单元在帧丢失情况或新帧到达时,重置临时缓冲区的所有信息。
[0062]
本实施例中的超时机制为:以一帧的起始数据包作为超时判断的起点,在一帧图像数据传输完成前记录每个数据包的时间戳,并按照完整的一帧图像数据来计算标准时间,当耗时超过标准时间的一定倍数或一帧图像数据未完成传输时就有新帧到达,则表示帧丢失情况;
[0063]
若新帧到达时上一帧图像数据中所有数据包已接收完毕或者完整的一帧图像数据传输的耗时时间在标准时间的一定倍数范围内,则表示帧完成情况。超时机制的优势为在图像传输过程中可实时判断帧丢失情况的发生,同时不影响后续图像的正常接收。
[0064]
其中,一帧图像数据的接收完毕是指已接收的包个数等于理论包个数且获取到末尾数据包。
[0065]
本实施例中,一种能同时保证传输速率和数据完整性并占用较少系统资源的连续图像数据接收方法在贴片机系统中显得尤为重要。因此,贴片机设备的图像数据接收系统内设置了一种软件触发相机采集图像并接收图像数据的方法。软件触发指得是上位机通过
下发控制指令控制相机采集指定的帧数。连续图像数据接收系统接收到的图像尺寸不一,连接多块图像控制板,即有多个图像来源,每个图像数据流模块使用多个图像缓冲区,如图3所示,该连续图像数据接收方法是按照如下步骤进行:
[0066]
步骤1、初始化网络套接字:
[0067]
初始化与每个工业相机的图像控制板通讯的网络套接字,包括控制套接字和图像套接字,控制套接字用于向图像控制板发送控制指令,指定要采集的帧数;图像套接字用于接收图像控制板发来的图像数据。
[0068]
使用初始化后的网络套接字所对应的不同端口接收相机端或图像控制板发来的以规定格式、长度的数据包所构成的图像数据以及向相机端或图像控制板发送控制指令;
[0069]
步骤2、预分配图像缓冲区的空间,并为每个图像缓冲区注册图像数据流:
[0070]
每个图像数据流均使用多个图像缓冲区。每个图像数据流注册的多个图像缓冲区按照环形缓冲区逻辑写入,每获取一帧图像数据写入下一索引的图像缓冲区,当最后一个索引的图像缓冲区写入图像完毕后,下一帧图像又从第一索引的图像缓冲区开始写入,如图4所示。这种方式的优势在于,回调函数操作时间较多时,获取到的图像数据在处理时不易丢失,因为在读取当前帧图像数据时,下一帧图像数据写入的是其余的图像缓冲区。
[0071]
步骤3、设置帧完成和帧丢失事件并开始事件监视,采用基于事件驱动的方式等待帧完成或帧丢失事件发生,并为帧完成和帧丢失事件分别注册回调函数。基于事件驱动的方式,其优势在于将获取或处理图像的操作与接收图像的操作分离,显著提升系统的工作效率。图像数据流中产生的帧完成或者帧丢失事件会被事件监视模块捕获,并触发相应回调函数。本实施例中,在帧完成对应的回调函数中拷贝图像缓冲区中的图像用于实时显示,在帧丢失对应的回调函数中释放丢帧信息用于错误显示。
[0072]
步骤4、软件通过控制端口下发指令,让相机工作于软件触发连续采集模式。相机端返回准备就绪的响应网络包。相机工作模式启动后,相机处于等待上位机发送触发采集信号的状态。设置要采集的图像帧数,打包指令通过控制端口发送到相机端,相机端通过图像端口传输图像数据。
[0073]
步骤5、使用临时缓冲区接收图像,每接收到一个图像中的数据包就解析其图像数据,并根据包头类型和帧索引判断当前数据包是否为一帧图像的起始、中间或末尾数据包;
[0074]
若为起始数据包,则表示当前所获得的数据包中的索引的是新的一帧的帧索引,并使得临时缓冲区队列中的首个缓冲区执行出队列操作,使用当前新的一帧的帧索引及图像尺寸初始化一个临时缓冲区后放入临时缓冲区队列中,再将当前数据包中的图像写入临时缓冲区的起始位置,如图5所示;
[0075]
若为中间数据包,则在临时缓冲区队列中找到与当前数据包的帧索引相同的临时缓冲区,并根据其包索引写入临时缓冲区相应的偏移内存位置;
[0076]
若为末尾数据包,则找到与当前数据包的帧索引相同的临时缓冲区,并根据其包索引写入临时缓冲区相应的内存位置;
[0077]
每获取到一个图像的数据包,均将已接收的包个数加一,并将相应的包索引缓存;
[0078]
步骤6、若已接收的包个数等于理论包个数且获取到末尾数据包,或者完整的一帧图像数据传输的耗时时间在标准时间的一定倍数范围内,先判断图像尺寸与预分配的图像缓冲区尺寸是否相同,相同则直接写入,不相同需要释放该图像缓冲区,按照当前要接收的
图像尺寸重新分配并更新重分配后的图像缓冲区绑定的图像尺寸等信息。每次都写入下一索引的图像缓冲区。之后,发送帧完成事件,将已接收的包计数重置为0,将包索引缓存清空。
[0079]
以一帧的起始数据包作为超时判断的起点,在一帧图像数据传输完成前记录每个数据包的时间戳,并按照完整的一帧图像数据来计算标准时间,当耗时超过标准时间的一定倍数或一帧图像数据传输未完成时就有新帧到达,则表示帧丢失情况。
[0080]
若新帧到达时上一帧图像数据中所有数据包已接收完毕或者完整的一帧图像数据传输的耗时时间在标准时间的一定倍数范围内,则表示帧完成情况;
[0081]
其中,一帧图像数据的接收完毕是指已接收的包个数等于理论包个数且获取到末尾数据包;
[0082]
步骤7、对于帧完成情况,将图像数据写入图像缓冲区并产生帧完成事件,在帧完成事件对应的回调函数中获取图像数据,并将对应的图像缓冲区状态置为空;
[0083]
对于帧丢失情况,先判断当前帧丢包是否超过所设定的阈值,若超过,则直接产生帧丢失事件并将当前帧索引对应的临时缓冲区的数据清空;否则,执行步骤8的重传机制;
[0084]
步骤8、重传机制为记录当前帧丢失的包索引,并打包成重传信息发送到对应的图像控制板后,接收图像控制板发来的重传数据包,再根据每个重传数据包的包索引补充写入临时缓冲区的空缺位置,从而再判断当前帧是否完整,若完整,则产生帧完成事件,否则产生帧丢失事件。重传机制的优势为在偶尔丢包的情况下,使用重传数据包保证数据完整性,对于一帧图像仅使用一次重传逻辑,在网络瞬时环境较差时可避免过多重传影响后续图像的传输。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1