便携式cameralink数据采集系统和采集方法与流程

文档序号:22335215发布日期:2020-09-25 18:08阅读:541来源:国知局
便携式cameralink数据采集系统和采集方法与流程

本发明属于数字图像采集与显示领域,便携式cameralink数据采集系统和采集方法。



背景技术:

传统技术中,进行cameralink接口图像采集时要将采集卡直接安装在工控机上,由工控机显示图像,存在图像采集时工控机和采集卡无法分离,携带不方便,并且采集卡价钱昂贵等问题。

公开号为cn110751600a的中国专利文献,公开了一种小型化cameralink数字采集装置及系统,该系统包括cameralink信号接收模块、图像数据处理模块和以太网图像输出模块。该方案的不足在于:

1.无法实现对cameralink多个tap数据进行采集。

2.无法实现对cameralink单个tap数据位数超过8bit而非16bit进行采集。

3.原始数据经过采集系统进行了图像处理,无法从中提取原始图像数据。



技术实现要素:

为了解决现有技术中cameralink采集数据装置不便于携带、成本高,或者虽然便于携带但无法实现对cameralink单个tap数据位数超过8bit而非16bit采集,或者cameralink多个tap非8bit整数倍数且小于24bit数据进行采集的技术问题,本发明提出一种便携式cameralink数据采集系统和采集方法。

本发明的技术方案是:

便携式cameralink数据采集系统,其特殊之处在于:用于采集位宽小于等于24bit的cameralink数据;包括cameralink接收单元、fpga主控单元、以太网发送单元;

cameralink接收单元用于接收原始cameralink数据并将其转换为数字信号后发送给所述fpga主控单元;

所述fpga主控单元用于对数字信号进行格式转换、数据封装后,发送给以太网发送单元;

所述以太网发送单元用于将接收到的数据发送给外部的计算机进行显示;

所述fpga主控单元包括数据接收模块、数据格式转换模块、数据处理模块和以太网发送模块;

数据接收模块根据cameralink数据协议,从所述数字信号中提取cameralink接收单元发送的cameralink数据以及cameralink数据中的cameralink_fval,cameralink_lval和cameralink_dval,将这三个信号和cameralink数据一起发送给数据格式转换模块;

数据格式转换模块用于实现以下步骤:

1】根据cameralink数据协议,为8bit≤n<16bit的数据开辟用于缓存并进行格式转换的第一fifo,为16bit≤n<24bit的数据开辟用于缓存并进行格式转换的第二fifo,为n=24bit的数据开辟用于缓存并进行格式转换的第三fifo;第一fifo、第二fifo和第三fifo均为同步fifo;

2】根据cameralink数据协议,对接收到的cameralink数据进行缓存,

当接收到的cameralink数据为大于等于8bit小于16bit的数据时,将其缓存于第一fifo中,在缓存过程中检测cameralink_fval,当检测到cameralink_fval的上升沿后,将cameralink数据中的cameralink_fval,cameralink_lval和cameralink_dval三者相与的结果作为第一fifo写使能信号,当第一fifo中数据容量大于等于1个数据单元后,产生长度与第一fifo写使能信号一致的第一fifo读使能信号,从第一fifo中读出数据,若读出的数据大于8bit,则在读出的数据高位补零将其转换为16bit数据后发送给数据处理模块,若读出的数据为8bit,则将读出的数据直接发送给数据处理模块;

当接收到的cameralink数据为大于等于16bit小于24bit的数据时,将其缓存于第二fifo中,在缓存过程中检测cameralink数据中的cameralink_fval,当检测到cameralink_fval的上升沿后,将cameralink数据中的cameralink_fval,cameralink_lval和cameralink_dval三者相与的结果作为第二fifo写使能信号,当第二fifo中数据容量大于等于1个数据单元后,产生长度为第二fifo写使能信号长度2倍的第二fifo的读使能信号,从第二fifo中读出数据,若读出的数据大于8bit,在读出的数据高位补零,使其转换为16bit数据后,发送给数据处理模块,若读出的数据为8bit,则将读出的数据直接发送给数据处理模块;

当接收到的cameralink数据为24bit数据时,将其缓存于第三fifo中,在缓存过程中检测cameralink数据中的cameralink_fval,当检测到cameralink_fval的上升沿后,将cameralink数据中的cameralink_fval,cameralink_lval和cameralink_dval三者相与的结果作为第三fifo写使能信号,当第三fifo中数据容量大于等于1个数据单元后,产生长度为第三fifo读使能信号长度3倍的第三fifo读使能信号,读出格式为8bit的数据,发送给数据处理模块;

数据处理模块为其接收到的数据添加mac地址、ip地址、udp网络帧头和crc校验码后,封装成符合udp协议的广播数据包,然后将该广播数据包发送给以太网发送模块;

以太网发送模块将其收到的广播数据包通过以太网发送单元和网口发送给外部的计算机进行采集数据的显示。

进一步地,所述数据格式转换模块的各fifo在缓存期间还要对fifo写使能信号长度计数;所述数据处理模块还要为接收到的数据添加每一包计数,将每一包计数封装入所述广播数据包内。

进一步地,所述的第一fifo、第二fifo和第三fifo还可以均为异步fifo,此时第一fifo、第二fifo和第三fifo的读使能信号长度根据下述关系式确定:

读使能信号长度×读时钟×读数据比特位=写使能信号长度×写时钟×写数据比特位。

本发明还提供了另一种便携式cameralink数据采集系统,其特殊之处在于:用于采集位宽大于24bit的cameralink数据;包括cameralink接收单元、fpga主控单元、以太网发送单元;

cameralink接收单元用于接收原始cameralink数据并将其转换为数字信号后发送给所述fpga主控单元;

所述fpga主控单元用于对数字信号进行格式转换、数据封装后,发送给以太网发送单元;

所述以太网发送单元用于将接收到的数据发送给外部的计算机进行显示;

所述fpga主控单元包括数据接收模块、数据格式转换模块、数据处理模块和以太网发送模块;

数据接收模块根据cameralink数据协议,从所述数字信号中提取cameralink接收单元发送的cameralink数据以及cameralink数据中的cameralink_fval,cameralink_lval和cameralink_dval,将这三个信号和cameralink数据一起发送给数据格式转换模块;

数据格式转换模块用于实现以下步骤:

1】根据cameralink数据协议,为cameralink数据开辟用于缓存并进行格式转换的第一级fifo和第二级fifo;

2】根据cameralink数据协议,先利用第一级fifo对接收到的cameralink数据进行缓存,根据下述关系式(1)对第一级fifo读使能信号长度限定,从而改变第一级fifo中读出数据位数,

若从第一级fifo读出的数据位宽等于8bit或16bit,则将读出数据直接输出给数据处理模块;

若从第一级fifo读出的数据位宽为不足16bit,则将读出数据高位补零变为16bit数据后输出给数据处理模块;

若从第一级fifo读出的数据位宽为大于16bit,则将读出数据高位补零变为24bit数据,送入第二级fifo进行缓存,然后基于同样的原理对第二级fifo读使能信号长度进行限定,使从第二级fifo读出的数据位宽变为8bit后输出给数据处理模块;

所述关系式(1)为:

读使能信号长度×读时钟×读数据比特位=写使能信号长度×写时钟×写数据比特位;

数据处理模块为其接收到的数据添加mac地址、ip地址、udp网络帧头和crc校验码后,封装成符合udp协议的广播数据包,然后将该广播数据包发送给以太网发送模块;

以太网发送模块将其收到的广播数据包通过以太网发送单元和网口发送给外部的计算机进行采集数据的显示。

本发明同时提供了一种cameralink数据采集方法,其特殊之处在于,用于采集位宽小于等于24bit的cameralink数据,包括以下步骤:

步骤1,接收cameralink数据;

步骤2,根据cameralink数据协议,提取cameralink数据及cameralink数据中的cameralink_fval,cameralink_lval和cameralink_dval;

步骤3,根据cameralink数据协议,为8bit≤n<16bit的数据开辟用于缓存并进行格式转换的第一fifo,为16bit≤n<24bit的数据开辟用于缓存并进行格式转换的第二fifo,为n=24bit的数据开辟用于缓存并进行格式转换的第三fifo;第一fifo、第二fifo和第三fifo均为同步fifo;

步骤4,数据格式转换

根据cameralink数据协议,对接收到的cameralink数据进行缓存,

当接收到的cameralink数据为大于等于8bit小于16bit的数据时,将其缓存于第一fifo中,在缓存过程中检测cameralink_fval,当检测到cameralink_fval的上升沿后,将cameralink数据中的cameralink_fval,cameralink_lval和cameralink_dval三者相与的结果作为第一fifo写使能信号,当第一fifo中数据容量大于等于1个数据单元后,产生长度与第一fifo写使能信号一致的第一fifo读使能信号,从第一fifo中读出数据,若读出的数据大于8bit,则在读出的数据高位补零将其转换为16bit数据后发送出去,若读出的数据为8bit,则将读出的数据直接发送出去;

当接收到的cameralink数据为大于等于16bit小于24bit的数据时,将其缓存于第二fifo中,在缓存过程中检测cameralink数据中的cameralink_fval,当检测到cameralink_fval的上升沿后,将cameralink数据中的cameralink_fval,cameralink_lval和cameralink_dval三者相与的结果作为第二fifo写使能信号,当第二fifo中数据容量大于等于1个数据单元后,产生长度为第二fifo写使能信号长度2倍的第二fifo的读使能信号,从第二fifo中读出数据,若读出的数据大于8bit,在读出的数据高位补零,使其转换为16bit数据后发送出去,若读出的数据为8bit,则将读出的数据直接发送出去;

当接收到的cameralink数据为24bit数据时,将其缓存于第三fifo中,在缓存过程中检测cameralink数据中的cameralink_fval,当检测到cameralink_fval的上升沿后,将cameralink数据中的cameralink_fval,cameralink_lval和cameralink_dval三者相与的结果作为第三fifo写使能信号,当第三fifo中数据容量大于等于1个数据单元后,产生长度为第三fifo读使能信号长度3倍的第三fifo读使能信号,读出格式为8bit的数据,发送出去;步骤5,数据封装

接收经步骤4格式转换后发出的数据,对接收到的数据添加mac地址、ip地址、udp网络帧头和crc校验码后,封装成一个符合udp协议的广播数据包;

步骤6,数据发送

将所述广播数据包通过以太网发送给外部的计算机进行采集数据的显示。

进一步地,步骤4中各fifo在缓存期间还要对fifo写使能信号长度计数;步骤5中还要为接收到的数据添加每一包计数,将每一包计数封装入所述广播数据包内。

进一步地,步骤3中所述的第一fifo、第二fifo和第三fifo还可以均为异步fifo,此时第一fifo、第二fifo和第三fifo的读使能信号长度根据下述关系式确定:

读使能信号长度×读时钟×读数据比特位=写使能信号长度×写时钟×写数据比特位。

本发明还提供了另一种cameralink数据采集方法,用于采集位宽大于24bit的cameralink数据,包括以下步骤:

步骤1,接收cameralink数据;

步骤2,根据cameralink数据协议,提取cameralink数据及cameralink数据中的cameralink_fval,cameralink_lval和cameralink_dval;

步骤3,根据cameralink数据协议,为cameralink数据开辟用于缓存并进行格式转换的第一级fifo和第二级fifo;

步骤4,数据格式转换

根据cameralink数据协议,先利用第一级fifo对接收到的cameralink数据进行缓存,根据下述关系式(1)对第一级fifo读使能信号长度限定,从而改变第一级fifo中读出数据位数,

若从第一级fifo读出的数据位宽等于8bit或16bit,则将读出数据直接输出;

若从第一级fifo读出的数据位宽为不足16bit,则将读出数据高位补零变为16bit数据后输出;

若从第一级fifo读出的数据位宽为大于16bit,则将读出数据高位补零变为24bit数据,送入第二级fifo进行缓存,然后基于同样的原理对第二级fifo读使能信号长度进行限定,使从第二级fifo读出的数据位宽变为8bit后输出;

所述关系式(1)为:

读使能信号长度×读时钟×读数据比特位=写使能信号长度×写时钟×写数据比特位;

步骤5,数据封装

接收经步骤4格式转换后发出的数据,对接收到的数据添加mac地址、ip地址、udp网络帧头和crc校验码后,封装成一个符合udp协议的广播数据包;

步骤6,数据发送

将所述广播数据包通过以太网发送给外部的计算机进行采集数据的显示。

进一步地,所述步骤4中各fifo在缓存期间还要对fifo写使能信号长度计数;步骤5中还要为接收到的数据添加每一包计数,将每一包计数封装入所述广播数据包内。

本发明的有益效果是:

1.本发明不但能对cameralink单个tap的标准数据格式进行采集,还能对cameralink单个tap数据位数超过8bit且非8bit整数倍的数据进行采集,通用性更强。

2.本发明不但能对cameralink多个tap数据进行采集,还能对cameralink多个tap数据位数非8bit整数倍且小于24bit的数据进行采集,还能对多tap大于等于24bit的数据进行采集,通用性更强。

3.本发明硬件简单、集成度高、体积小、方便携带。

4.本发明逻辑简单、稳定性高,仅对原始图像进行数据采集和数据搬运,能够得到原始图像数据。

5.本发明以cameralink_fval,cameralink_lval,cameralink_dval三个信号相与的结果作为用于缓存cameralink数据的fifo的写使能信号,能够避免错误数据写入。

6.本发明在缓存cameralink数据时,对fifo的写使能进行计数,可以验证和检测读使能信号实际有效长度是否正确,提高了采集装置的可靠性。

7.本发明将每一包计数封装入符合udp协议的广播数据包内,能够检查网络传输中产生丢包的可能性,提高网络传输的可靠性和稳定性。

8.本发明在缓存cameralink数据时,即可采用同步fifo,也可采用异步fifo,可根据工程实际需求灵活选用;当采用同步fifo时,技术方案简单易行,且不易出错;当采用异步fifo时,数据读取快,占用总线资源少。

附图说明

图1是本发明cameralink数据采集系统的硬件框图(虚线框内部分为本发明)。

图2是本发明cameralink数据采集系统中fpga主控单元的逻辑模块。

图3是本发明cameralink数据采集方法的流程图。

具体实施方式

以下结合附图对本发明作进一步说明。

如图1所示,本发明实施例所提供的cameralink数据采集系统,采用cameralink接收单元+fpga主控单元+千兆以太网发送单元的硬件平台,通过cameralink接收单元接收原始cameralink视频或图像数据并将其转换为数字信号,然后采用fpga主控单元对数字信号进行处理后,传输给千兆以太网发送单元,利用千兆以太网发送单元吞吐量大、配置灵活的特点对处理后的信号进行实时传输。

本实施例中,cameralink接收单元硬件选用ti公司型号为ds90cr286或者ds90cr288的芯片;fpga主控单元硬件选用altera公司的cycloneiii系列芯片;千兆以太网发送单元硬件选用marvell公司的88e1111芯片。

如图2所示,fpga主控单元包括数据接收模块、数据格式转换模块、数据处理模块,以及以太网发送模块。

数据接收模块根据cameralink数据协议,提取cameralink接收单元发送的cameralink数据,并提取cameralink数据中的cameralink_fval(帧使能信号),cameralink_lval(行使能信号)和cameralink_dval(数据有效信号),将这三个信号和cameralink数据一起发送给数据格式转换模块。

数据格式转换模块用于实现以下步骤:

1】根据cameralink数据协议,为8bit≤n<16bit的数据开辟用于缓存并进行格式转换的第一fifo,为16bit≤n<24bit的数据开辟用于缓存并进行格式转换的第二fifo,为n=24bit的数据开辟用于缓存并进行格式转换的第三fifo;第一fifo、第二fifo和第三fifo均为同步fifo。

2】根据cameralink数据协议,对接收到的cameralink数据进行缓存,

当接收到的cameralink数据为大于等于8bit小于16bit的数据时,将其缓存于第一fifo中,在缓存过程中检测cameralink_fval,当检测到cameralink_fval的上升沿后,将cameralink数据中的cameralink_fval,cameralink_lval和cameralink_dval三者相与的结果作为第一fifo写使能信号,在缓存过程中对第一fifo写使能信号长度计数,当第一fifo中数据容量大于等于1个数据单元后,产生长度与第一fifo写使能信号一致的第一fifo读使能信号,从第一fifo中读出数据,若读出的数据大于8bit,则在读出的数据高位补零将其转换为16bit数据后发送给数据处理模块,若读出的数据为8bit,则将读出的数据直接发送给数据处理模块;

当接收到的cameralink数据为大于等于16bit小于24bit的数据时,将其缓存于第二fifo中,在缓存过程中检测cameralink数据中的cameralink_fval,当检测到cameralink_fval的上升沿后,将cameralink数据中的cameralink_fval,cameralink_lval和cameralink_dval三者相与的结果作为第二fifo写使能信号,在缓存过程中对第二fifo写使能信号长度计数,当第二fifo中数据容量大于等于1个数据单元后,产生长度为第二fifo写使能信号长度2倍的第二fifo的读使能信号,从第二fifo中读出数据,若读出的数据大于8bit,在读出的数据高位补零,使其转换为16bit数据后,发送给数据处理模块,若读出的数据为8bit,则将读出的数据直接发送给数据处理模块;

当接收到的cameralink数据为24bit数据时,将其缓存于第三fifo中,在缓存过程中检测cameralink数据中的cameralink_fval,当检测到cameralink_fval的上升沿后,将cameralink数据中的cameralink_fval,cameralink_lval和cameralink_dval三者相与的结果作为第三fifo写使能信号,在缓存过程中对第三fifo写使能信号长度进行计数,当第三fifo中数据容量大于等于1个数据单元后,产生长度为第三fifo读使能信号长度3倍的第三fifo读使能信号,读出格式为8bit的数据,发送给数据处理模块。

数据处理模块为其接收到的数据添加mac地址、ip地址、udp网络帧头、每一包计数和crc校验码后,封装成一个符合udp协议的广播数据包,然后将该广播数据包发送给以太网发送模块。

以太网发送模块将其收到的广播数据包通过千兆以太网发送单元和网口发送给外部的计算机进行采集数据的显示。

下面以cameralink接收单tap10bit和双tap20bit的图像数据为示例,对上述数据接收、数据格式转换、处理过程进行说明。

数据接收模块根据cameralink数据协议,提取出单tap,10bit数据和双tap,20bit数据,并提取出cameralink_fval,cameralink_lval,cameralink_dval,传输给数据格式转换模块;

数据格式转换模块将单tap10bit数据缓存于第一fifo中,当第一fifo中数据容量大于等于1时,产生长度与第一fifo写使能信号一致的第一fifo读使能信号,从第一fifo中读出数据,然后在读出的10bit数据高位补6个零构成16bit数据发送给数据处理模块。

将双tap20bit数据缓存于第二fifo中,当检测到cameralink_fval上升沿后将cameralink_fval、cameralink_lval和cameralink_dval这三个信号相与,将相与结果作为第二fifo写使能信号,对第二fifo写使能信号长度计数,将双tap20bit数据作为第二fifo的写数据,当第二fifo里面数据容量大于等于1个数据单元后,产生长度为第二fifo写使能信号长度2倍的第二fifo读使能信号,从第二fifo中读出数据,然后在读出的10bit数据高位补6个零构成16bit数据后,发送给数据处理模块。

数据处理模块为接收到的16bit数据添加mac地址、ip地址、udp网络帧头、每一包计数和crc校验码后,封装为一个符合udp协议的广播数据包发送给以太网发送模块。

需要说明的是,本发明的第一fifo、第二fifo和第三fifo也可均采用异步fifo,此时,其读使能信号长度根据下述关系式确定:

读使能信号长度×读时钟×读数据比特位=写使能信号长度×写时钟×写数据比特位。

本发明上述的数据格式转换方法还可以用于多于3tap,位宽大于24bit的数据,具体转换方法如下;

先利用第一级fifo缓存数据,根据上述关系式对第一级fifo读使能信号长度限定,从而改变第一级fifo中读出数据位数,

若从第一级fifo读出的数据位宽等于8bit或16bit,则将读出数据直接输出给数据处理模块;

若从第一级fifo读出的数据位宽为不足16bit,则将读出数据高位补零变为16bit数据,输出给数据处理模块;

若从第一级fifo读出的数据位宽为大于16bit,则将读出数据高位补零变为24bit数据,送入第二级fifo进行缓存,然后基于同样的原理对第二级fifo读使能信号长度进行限定,使从第二级fifo读出的数据位宽变为8bit输出。

例如对于34bit数据,进入第一级fifo中进行位宽转换,第一级fifo读使能长度为写使能长度的2倍,则第一级fifo输出17bit数据,对其高位补零变为24bit数据,然后将该24bit数据送入第二级fifo进行第二次位宽转换,第二级fifo读使能长度为写使能长度的3倍,最终输出8bit。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1