掌桥专利:专业的专利平台
掌桥专利
首页

一种基于光纤的虚拟高速相机阵列数据缓冲逻辑设计方法

文献发布时间:2023-06-19 16:06:26



技术领域

本发明涉及一种基于光纤的虚拟高速相机阵列数据缓冲逻辑设计方法,属于图像处理算法、高速数据缓冲技术领域。

背景技术

为了实现航天器自主决策和路径规划,需要对多个相机的图像进行实时处理。为了满足航天器更快更优更小的任务需求,航天器相机阵列规模变大、图像数量变多、图像传输速率要求从Mbps提升至Gbps量级。

与此同时,航天器导航控制计算机硬件电路和算法迭代速度加快。在航天器导航控制计算机的算法的反复迭代和硬件电路生产流程中都需要大量的确认测试过程。测试过程中需要模拟实际相机阵列得到的图像数据,并同步传送给航天器导航控制计算机中的FPGA并行图像算法模块。

发明内容

本发明解决的技术问题是:针对目前现有技术中,对航天器导航控制计算机硬件电路和算法迭代速度的要求、航天器更快更优更小的任务需求,提出了一种基于光纤的虚拟高速相机阵列数据缓冲逻辑设计方法。

本发明解决上述技术问题是通过如下技术方案予以实现的:

一种基于光纤的虚拟高速相机阵列数据缓冲逻辑设计方法,包括:

(1)读取并缓存单路相机的N帧图像,模拟N路虚拟相机阵列的一帧图像,进入步骤(2);

(2)并行对N帧图像进行按行分拆处理,并在行首添加帧头、行计数、行数据量,在帧尾添加校验和,形成N列并行的相机阵列模拟数据流,进入步骤(3);

(3)将相机阵列模拟数据流写入,完成接收后,进入步骤(4);

(4)根据行计数、行数据量、校验和对图像数据流的正确性进行校验,若出现数据量错误、校验和错误的问题,进入步骤(5),否则进入步骤(6);

(5)切换至数据接收的备份通道读取相机阵列模拟数据流,若备份通道内数据流正确,进入步骤(6);若备份通道内数据流仍出错,停止接收并建立对应的错误标志,经打印串口反馈,重新发送当前帧数据;

(6)根据收到的数据流中的帧头信息,依次将N路相机模拟数据流分发至对应的数据缓存区,进入步骤(7);

(7)各数据缓存区中若存在一行以上可用数据后,则产生数据准备好标志,进入步骤(8);

(8)判断到数据准备好标志后,由缓存区读取当前行数据,读取N个相机的一行数据,读取完成后给出数据读取完成tick,进入步骤(9);

(9)判断到数据读取完成tick后,修改行缓存的状态标志,进行后续相机数据流的缓存。

包括图像预处理FPGA、光纤发送控制FIFO、图像接收FPGA、备份通道FIFO,其中:

图像预处理FPGA读取并缓存单路相机的N帧图像,模拟N路虚拟相机阵列的一帧图像,并行对N帧图像进行按行分拆处理,并在行首添加帧头、行计数、行数据量,在帧尾添加校验和,形成N列并行的相机阵列模拟数据流;

图像预处理FPGA将相机阵列模拟数据流写入光纤发送控制FIFO,相机阵列模拟数据流经主备份双路光纤后,由图像接收FPGA的光纤接收控制模块接收;

图像接收FPGA接收相机阵列模拟数据流,根据行计数、行数据量、校验和对图像数据流的正确性进行校验,若出现数据量错误、校验和错误的问题,则利用图像接收FPGA切换至光纤接收控制逻辑的备份通道FIFO读取相机阵列模拟数据流,若备份通道内数据流仍出错,停止接收并建立对应的错误标志,经打印串口反馈,由图像预处理FPGA重新发送当前帧数据;

若无数据量错误、校验和错误的问题,或备份通道内数据流正确,图像接收FPGA中根据收到的数据流中的帧头信息,依次将N路相机模拟数据流分发至对应的数据缓存区;

各数据缓存区中若存在一行以上可用数据后,则产生数据准备好标志,图像接收FPGA判断到数据准备好标志后,由缓存区读取当前行数据,并行的读取N个相机的一行数据,读取完成后给出数据读取完成tick,否则继续等待后续的相机模拟数据流;

图像接收FPGA根据给出的数据读取完成tick后,修改行缓存的状态标志,进行后续相机数据流的缓存。

所述数据缓存区大小根据对应FPGA器件的资源大小配置,可同时缓存一个相机的M行数据。

所述图像预处理FPGA对N帧原始图像进行并行分拆预处理,添加帧头、帧尾信息字,图像信息处理后经光纤发送至图像接收FPGA,图像接收FPGA依据通讯协议解析帧头帧尾,对数据流进行分拆缓存,形成N列并行的模拟N列相机的图像数据流。

所述图像预处理FPGA、图像接收FPGA间的通讯协议根据不同产品的实际应用需求配置。

所述图像数据流经图像预处理FPGA发送至图像接收FPGA时,采用主备份的两路光纤发送数据,两路光纤同时发送相同数据。

所述图像数据流正常时,图像接收FPGA由主份光纤的缓存FIFO中读取数据,当发生帧头、帧尾信息的校验错误时,图像接收FPGA由备份光纤的缓存FIFO中读取数据,若校验正确,则使用备份数据,若校验仍错误,则建立对应的错误标志,经串口反馈错误信息,图像预处理FPGA重新发送当前行数据。

所述根据任务需求的速率及安全需求,两路光纤通路采用主备份工作方法或将数据分拆并行发送以扩展数据传输带宽。

所述图像接收FPGA的N路相机数据缓存区,对于每路图像均有缓存M行数据的空间,M大于等于2,可根据FPGA硬件资源开销和速率匹配情况选取。

所述图像接收FPGA的N路相机数据缓存区,对图像数据流采用按行的循环缓存方法,具体为:

图像接收FPGA依1到M行的顺序缓存图像数据,各行缓存完成后,均有缓存完成tick,根据缓存完成tick于需要时提取图像数据;

光纤发送数据同时于其他行进行缓存,各行图像数据读取完成后,当前的缓存空间将被释放以接收新的图像数据。

所述图像预处理FPGA,或由外部同步串口注入N帧特定图像数据作为图像的输入源。

本发明与现有技术相比的优点在于:

(1)本发明提供的一种基于光纤的虚拟高速相机阵列数据缓冲逻辑设计方法,在图像预处理FPGA端通过通讯协议将多路相机图像数据进行分拆处理,模拟实际相机阵列输出的图像数据流,形成虚拟的多通道相机阵列,同时图像预处理FPGA和图像接收FPGA之间采用双通道主备份的光纤通讯方式,实现数据的高速传输,并利用图像接收FPGA通过判断通讯协议的信息头,将每行数据准确分发至对应数据缓存区内,采用主备份的光纤通讯方式确保了图像数据在图像预处理FPGA和图像接收FPGA间传输的安全性;

(2)本发明采用通讯协议中在每行图像前添加的信息头和校验和确保了单行数据出错不会影响其他行的图像数据存储,利用图像数据在图像接收FPGA中采用按行循环缓冲方式,根据FPGA图像处理算法需求和硬件资源大小可灵活配置,对FPGA资源开销小,访问效率高,通讯协议可依据不同产品需求灵活配置,因此具有良好的通用性。

附图说明

图1为发明提供的实施方法流程图;

图2为发明提供的多路相机模拟数据流示意图;

图3为发明提供的逻辑设计组织结构图;

图4为发明提供的实施方法多路相机图像模拟数据流;

具体实施方式

一种基于光纤的虚拟高速相机阵列数据缓冲逻辑设计方法,按照预设通讯协议对虚拟多路相机的图像数据进行分拆预处理,生成模拟多通道相机阵列的数据流,并经双通道的光纤传输,通过数据流的高传输速率和数据通讯协议保证了输入FPGA并行图像算法模块的多路相机数据的同步性,同时在图像接收端采用按行循环缓冲方式降低了FPGA硬件资源消耗,可对航天器外的相机阵列进行模拟,

基于光纤的虚拟高速相机阵列数据缓冲逻辑设计系统,包括图像预处理FPGA、光纤发送控制FIFO、图像接收FPGA、备份通道FIFO:

图像预处理FPGA读取并缓存单路相机的N帧图像,模拟N路虚拟相机阵列的一帧图像,并行对N帧图像进行按行分拆处理,并在行首添加帧头、行计数、行数据量,在帧尾添加校验和,形成N列并行的相机阵列模拟数据流;

图像预处理FPGA将相机阵列模拟数据流写入光纤发送控制FIFO,相机阵列模拟数据流经主备份双路光纤后,由图像接收FPGA的光纤接收控制模块接收;

图像接收FPGA接收相机阵列模拟数据流,根据行计数、行数据量、校验和对图像数据流的正确性进行校验,若出现数据量错误、校验和错误的问题,则利用图像接收FPGA切换至光纤接收控制逻辑的备份通道FIFO读取相机阵列模拟数据流,若备份通道内数据流仍出错,停止接收并建立对应的错误标志,经打印串口反馈,由图像预处理FPGA重新发送当前帧数据;

若无数据量错误、校验和错误的问题,或备份通道内数据流正确,图像接收FPGA中根据收到的数据流中的帧头信息,依次将N路相机模拟数据流分发至对应的数据缓存区;

各数据缓存区中若存在一行以上可用数据后,则产生数据准备好标志,图像接收FPGA判断到数据准备好标志后,由缓存区读取当前行数据,并行的读取N个相机的一行数据,读取完成后给出数据读取完成tick,否则继续等待后续的相机模拟数据流;

图像接收FPGA根据给出的数据读取完成tick后,修改行缓存的状态标志,进行后续相机数据流的缓存。

具体方法步骤如下:

(1)通过图像预处理FPGA读取并缓存单路相机的N帧图像,模拟N路虚拟相机阵列的一帧图像,进入步骤(2);

(2)通过图像预处理FPGA并行对N帧图像进行按行分拆处理,并在行首添加帧头、行计数、行数据量,在帧尾添加校验和,形成N列并行的相机阵列模拟数据流,进入步骤(3);

(3)通过图像预处理FPGA将相机阵列模拟数据流写入光纤发送控制FIFO,相机阵列模拟数据流经主备份双路光纤后,由图像接收FPGA的光纤接收控制模块接收,进入步骤(4);

(4)通过图像接收FPGA接收相机阵列模拟数据流,根据行计数、行数据量、校验和对图像数据流的正确性进行校验,若出现数据量错误、校验和错误的问题,进入步骤(5),否则进入步骤(6);

(5)利用图像接收FPGA切换至光纤接收控制逻辑的备份通道FIFO读取相机阵列模拟数据流,若备份通道内数据流正确,进入步骤(6);若备份通道内数据流仍出错,停止接收并建立对应的错误标志,经打印串口反馈,由图像预处理FPGA重新发送当前帧数据;

(6)根据图像接收FPGA中收到的数据流中的帧头信息,依次将N路相机模拟数据流分发至对应的数据缓存区,进入步骤(7);

(7)各数据缓存区种存在一行以上可用数据后,产生数据准备好标志,进入步骤(8);

(8)根据图像接收FPGA的图像算法模块判断到数据准备好标志后,由缓存区读取当前行数据,通过图像算法模块并行的读取N个相机的一行数据,读取完成后由图像算法模块给出数据读取完成tick,进入步骤(9);

(9)根据图像接收FPGA的数据缓存逻辑模块判断到FPGA的图像算法模块给出的数据读取完成tick后,修改行缓存的状态标志,进行后续相机数据流的缓存。

其中,数据缓存区大小根据对应FPGA器件的资源大小配置,可同时缓存一个相机的M行数据;

图像预处理FPGA对N帧原始图像进行并行分拆预处理,添加帧头、帧尾信息字,图像信息处理后经光纤发送至图像接收FPGA,图像接收FPGA依据通讯协议解析帧头帧尾,对数据流进行分拆缓存,形成N列并行的模拟N列相机的图像数据流;

图像预处理FPGA、图像接收FPGA间的通讯协议根据不同产品的实际应用需求配置;图像数据流经图像预处理FPGA发送至图像接收FPGA时,采用主备份的两路光纤发送数据,两路光纤同时发送相同数据;

图像数据流正常时,图像接收FPGA由主份光纤的缓存FIFO中读取数据,当发生帧头、帧尾信息的校验错误时,图像接收FPGA由备份光纤的缓存FIFO中读取数据,若校验正确,则使用备份数据,若校验仍错误,则建立对应的错误标志,经串口反馈错误信息,图像预处理FPGA重新发送当前行数据;

根据任务需求的速率及安全需求,两路光纤通路采用主备份工作方法或将数据分拆并行发送以扩展数据传输带宽;

图像接收FPGA的N路相机数据缓存区,对于每路图像均有缓存M行数据的空间,M大于等于2,可根据FPGA硬件资源开销和速率匹配情况选取;

图像接收FPGA的N路相机数据缓存区,对图像数据流采用按行的循环缓存方法,具体为:

图像接收FPGA依1到M行的顺序缓存图像数据,各行缓存完成后,均有缓存完成tick传入算法模块,算法模块于需要时提取图像数据;

光纤发送数据同时于其他行进行缓存,各行图像数据被算法模块读取完成后,当前的缓存空间将被释放以接收新的图像数据;

图像预处理FPGA图像预处理FPGA,或由外部同步串口注入N帧特定图像数据作为图像的输入源。

下面根据具体实施例进行进一步说明:

在当前实施例中,设计实施方法流程如图1所示、多路相机模拟数据流向如图2所示、逻辑设计组织结构图如图3所示,功能结构可以分为图像预处理FPGA和图像接收FPGA两个部分,图像数据流由图像预处理FPGA处理后经光纤发送至图像接收FPGA。其中图像预处理FPGA的功能模块有,原始相机图像接收模块、相机图像缓存模块、图像按行拆分与协议打包模块、光纤发送控制模块;图像接收FPGA的功能模块有,光纤接收控制模块、协议解析模块、故障判断与处理模块、缓存控制模块。如图1所示,功能的实现流程如下:

(1)图像预处理FPGA的原始相机图像接收模块由同步串口采集,相机图像缓存模块缓存N帧图像后,得到模拟N路虚拟相机阵列的一帧图像,进行步骤(2);

(2)如图4所示,图像预处理FPGA的图像按行拆分与协议打包模块并行地对N帧图像进行按行分拆处理,并在行首添加帧头、行计数、行数据量,计算并在帧尾添加校验和,形成N列并行的相机阵列模拟数据流,进行步骤(3);

(3)图像预处理FPGA的光纤发送控制模块将相机阵列模拟数据流写入光纤发送控制FIFO,主备份写入的图像数据和控制流程相同,数据流经主备份的双路光纤,被图像接收FPGA的光纤接收控制模块所接收,进行步骤(4);

(4)图像接收FPGA的协议解析模块依据接收到的数据流,依据帧头对数据流进行分拆。分拆后故障判断与处理模块依据图像数据的行计数、行数据量、校验和等对图像数据流的正确性进行校验,如发生数据量错误、校验和错误,则进行步骤(5);如果数据校验正确,则进行步骤(6);

(5)图像接收FPGA的故障判断与处理模块切换协议解析模块至光纤接收控制逻辑的备份通道FIFO读取数据,如果备份通道内的数据正确,则进行步骤(6),如果仍发生错误,则停止接收并建立对应的错误标志,经打印串口反馈,由图像预处理FPGA重新发送当前帧;

(6)图像接收FPGA中的缓存控制模块依据数据流中的帧头信息,依次将N路相机模拟数据流分发至对应的数据缓存区,进行步骤(7);

(7)数据缓存区大小依据FPGA器件的资源大小灵活配置,可同时缓存一个相机的M行数据,缓存区有一行以上的数据可用之后,产生数据准备好标志,进行步骤(8);

(8)FPGA的图像算法模块判断到数据准备好标志后,从缓存区读取当前行数据,算法模块并行的读取N个相机的一行数据。数据被读取完成后,FPGA的图像算法模块给出数据读取完成tick,进行步骤(9);

(9)数据缓存模块的控制逻辑判断到FPGA的图像算法模块给出的数据读取完成tick后,则修改行缓存的标志,新的相机数据流可缓存到此空间。

本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。

本发明说明书中未作详细描述的内容属于本领域技术人员的公知技术。

技术分类

06120114703988