一种使用下载器进行多帧图像传输实现在线测试系统及方法与流程

文档序号:19951403发布日期:2020-02-18 10:35阅读:172来源:国知局
一种使用下载器进行多帧图像传输实现在线测试系统及方法与流程

本发明涉及一种使用下载器进行多帧图像传输实现在线测试系统及方法。



背景技术:

目前,遥感相机成像系统对图像算法功能模块提出了越来越多的需求,在遥感电子学电路中,可编程器件fpga是目前实现成像功能的主要载体,图像算法功能作为模块集成在fpga中。图像源由成像系统的其他电路提供,一般经由光电转换芯片,模拟信号双采样信号之后,将一帧图像分为多通道多比特位的数字信号,输入到fpga中的图像算法功能模块完成图像算法功能。验证测试工作是遥感相机成像系统工作流程中的重要组成部分,时间比重可以达到50%,各模块的测试工作,会影响整个项目的进展情况。

图像算法功能模块的验证与测试是成像系统的fpga产品测试中的重要一环,目前存在以下不足之处:

(1)图像模拟源是项目成本之一,作为前端图像输入的模拟源用以验证图像算法功能模块。

(2)如果图像模拟源完成的时机太晚,图像算法功能验证与测试工作无法及时开展。

(3)图像算法功能的测试独立性,在成像系统测试过程中,如果遇到问题,无法排除图像输入源的错误导致图像算法功能异常的情况。

(4)由于图像输入源的限制性,如果出现图像输入格式更改,需要对图像模拟源进行重新测试,灵活性不高。



技术实现要素:

本发明的技术解决问题是:克服现有技术的不足,提供一种使用在线进行多帧图像传输,以达到测试的目的。

本发明的技术解决方案是:一种使用下载器进行多帧图像传输实现在线测试系统,包括上位机、可编程器件fpga、ddr2储存器及jtag下载器;

上位机通过jtag下载器将图像数据传输到可编程器件fpga中;

可编程器件fpga接收jtag下载器输入的图像数据,写入ddr2存储器中,存储图像数据帧数达到最大量后,由可编程器件fpga读取ddr2存储器,作为图像源输入到fpga内部进行图像算法功能的验证及测试;

ddr2存储器用于在线保存作为模拟源的多帧图像数据,由可编程器件fpga完成在线读写。

所述可编程器件fpga包括jtag接口控制模块、接口总控制模块、ddr2控制器接口模块和图像算法功能模块;

jtag接口控制模块控制jtag下载器与可编程器件fpga的接口时序,将上位机通过jtag下载器传输到可编程器件fpga的图像数据转换为约定的地址以及数据时序关系后,发送给接口总控制模块;

接口总控制模块用于控制ddr2存储器的读写转换控制、ddr2存储器的读写地址转换控制,以及ddr2数据格式转换控制;在ddr2写操作控制时,接收jtag接口控制模块输入的地址及数据,并发送给ddr2控制器接口模块,在ddr2读操作控制时,根据读操作约定格式,生成ddr2的读地址发送给ddr2控制器接口模块,同时接收ddr2控制器接口模块输入的存储在ddr2控制器中的图像数据,并输出给图像算法功能模块;

ddr2控制器接口模块用于控制与ddr2存储器的接口通信功能;

图像算法功能模块完成图像数据中目标识别的功能。

一种使用下载器进行多帧图像传输实现在线测试的方法,步骤如下:

(1)根据一帧图像大小及ddr2存储器空间,计算得到ddr2存储图像的最大帧计数值n;

(2)读取上位机存储的图像数据,经jtag下载线输入到fpga,存储到ddr2中,一帧图像数据分次传输,每次读取设置为128bits,读取次数计数值从1开始累加,直至累加到计数器num的最大值m,表明一帧图像数据读取完毕,读取第二帧,重新开始计数,num继续从1开始累加;每读取一帧数据,帧计数值加1,累加到最大帧计数值n时,完成最大帧数的图像数据写入fpga并存储到ddr2;

(3)fpga读取ddr2存储的图像,通过设置ddr2存储器的读地址累加值及读数据位宽,满足图像算法模块对图像的排序要求;设一帧图像大小的表示为r*c*n,其中r表示图像的行,c表示图像的列,n表示图像每一个像素的bits的个数;图像算法功能模块接口所需的图像输入通道个数l有关,即将一帧图像分为l块并行输入,ddr2每次读操作的地址累加值是(r*c/l)*(n/8),设置第一帧图像的起始地址为0x00000000,此第一个累加值是第二帧图像的起始地址,以此类推,映射成ddr2存储器的读地址输出,由ddr2读出的数据即图像的按通道输出顺序,直到将保存的所有帧数即n帧大小的数据读取完成。

(4)图像数据按照需求输入给图像算法功能模块使用,图像算法功能模块实现包括像元不一致性校正算法功能,暗像元算法功能,即开始进行图像算法功能的在线测试。

所述n为8的倍数。

所述步骤(1)计算ddr2存储图像的最大帧计数值的据图计算方式如下:

令一帧图像大小的表示为r*c*n,其中r表示图像的行,c表示图像的列,n表示图像每一个像素的bits的个数,n是8的倍数,ddr2存储器的空间为cbits,通过公式c/(r*c*n),向下取整得到最大帧计数值n。

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

(1)本发明可以降低项目的硬件成本。目前使用信号模拟源在相机成像电路测试中模拟图像数据的输入,图像数据一般由成像系统的光电器件的模拟信号经由双采样器件后输入到可编程器件fpga送达图像算法功能模块。在不同的遥感相机成像系统,有可能采用不同的光电器件,输出的图像大小等不同,即图像算法功能模块的图像输入源时序等会有差异,测试中对模拟源的需求不同,如果每个成像电路采用一套信号模拟源,成本会变高,如果没有信号模拟源,会带来第(2)的问题。

(2)成像电路算法功能模块的测试与验证是在信号模拟源或者成像系统的光电器件电路运行正常后开始,受限于前端输入源的进度,测试过程不能并行进行,测试效率较低,也会影响整个项目的进展,本发明可以在信号源未准备好前就可以开始验证,不同的电路测试工作可以并行开展,极大的压缩了测试时间,可以更快推进的项目进度。

(3)成像系统的图像数据源在输入到图像算法功能模块前,经过了光电转换芯片,模拟信号双采样芯片,任何一个环节出现问题,都会导致最终的输出结果有误差。图像算法功能是在这些环节之后的功能模块,如果在测试过程中出现问题,分析排查工作需要从源头开始,是一个耗时耗力的过程。本方法的数据源跳过光电转换芯片,模拟信号双采样芯片的影响,直接输入到可编程器件fpga中进行图像算法功能模块的问题排查,提高了分析问题的效率。

(4)使用jtag在线输入图像,设计灵活,通用性高。图像源的通道数量,像元个数不受限制,满足不同图像算法功能模块的输入需求,在线调试期间,可以使用任意对应成像系统的图像帧格式。

附图说明

图1为本发明实现的硬件框架图;

图2为本发明实现上位机中图像数据输入fpga的流程图;

图3为本发明实现可编程器件fpga与ddr2存储器实现数据交互,并输入到图像算法功能模块的流程图;

具体实施方式

如图1所示,本发明所述的一种使用下载器进行多帧图像传输实现在线测试系统,1)上位机调用可编程器件fpga的开发软件,并下传图像数据;2)上位机通过jtag下载器将图像数据传输到可编程器件fpga中;3)可编程器件fpga接收jtag下载器输入的图像数据,写入ddr2存储器中,存储图像数据帧数达到最大量后,由可编程器件fpga读取ddr2存储器,作为图像源输入到fpga内部的图像算法功能模块进行图像算法功能的验证及测试;4)ddr2存储器可以在线保存作为模拟源的多帧图像数据,由可编程器件fpga完成在线读写。

使用jtag下载器进行多帧图像数据传输。

目前遥感相机的成像电路在不能出现冗余设计的前提下,必须利用现有硬件资源,实现多帧图像数据传输的方法,jtag是可编程器件fpga的下载工具,jtag接口设计是硬件电路设计的一部分,测试过程中一直使用。在不引入其他硬件资源的情况下,使用jtag进行数据传输是一种经济有效的办法。

jtag下载器是fpga进行程序代码烧写的工具,测试过程中连接上位机与fpga,即可以进行fpga的程序存储prom芯片的下载文件烧写,又可以直接进行fpga的比特流烧写。jtag(jointtestactiongroup;联合测试工作组)是一种国际标准测试协议(ieee1149.1兼容),很多可编程器件都支持jtag协议,比如dsp,fpga等。

使用jtag可以完成上位机与可编程器件fpga之间的数据传输,但是传输速度最大可设置12mhz,无法满足图像算法功能模块的高频率要求,并且可编程fpga内部的存储空间有限,可以利用外部存储器实现多帧数据的存储。实现一种单帧图像数据依次经jtag接口低速输入可编程器件fpga中,由fpga转存至外部高速大容量存储器中,存储到最大帧数后,由fpga读出多帧高速图像数据,输入到图像算法功能模块,实现图像算法功能的验证和测试。

使用ddr2存储图像数据,可以完成数据的高速传输。ddr是doubledataratesdram的缩写,是双倍速率同步动态随机存储器的意思,ddr2中的2表示ddr的第二代。由jtag直接传输图像数据到fpga的缺点是速率太低,最快只有12mhz。经由ddr2存储后的数据,可以达到330mhz,同时完成多帧的连续输入。

如图2所示,是通过jtag下载器上位机下传图像数据到可编程器件fpga的处理流程。具体有以下步骤:

(1)根据图像大小及ddr2存储器空间计算ddr2存储图像的最大帧计数值;

一帧图像大小的表示方式为r*c*n,其中r表示图像的行,c表示图像的列,n表示图像每一个像素的位宽,计算结果的单位为bit即比特。一帧图像行是1400,列是1400每个像素是14bits,该图像的大小为1400*1400*14=27440000bits。目前主流的ddr2控制以8bits即1byte为一个读写单位,为保证ddr2控制寻址的通用性,图像在写入ddr2前,将每一个像素点扩展到8的倍数,即14bits扩展为16bits,那么该图像大小为1400*1400*16=31360000bits=29mbits。ddr2存储器的空间为c,除以图像大小,向下取整得到最大帧计数值n。

(2)读取上位机存储的图像数据,每次读取设置为128bits,读取次数计数值从1开始累加,经jtag下载线输入到fpga,直至累加到计数值的最大值m,m的计算由图像大小,即29mbits/128bits得到。一帧图像数据读取完毕,重新开始计数,读取第二帧。每读取一帧数据,帧计数值加1,累加到帧最大计数值n时,ddr2写操作完成。ddr2写操作过程中,写地址依次累加。

如图3所示,实现可编程器件fpga与ddr2存储器的图像数据交互,具体有以下步骤:

(3)设置接口总控模块的读地址时序关系,初始化接口总控模块,包括读取ddr2存储器的初始化地址,以及每次读取的数据长度,由接口总控模块映射成ddr2存储器的读地址,并输出给ddr2控制器接口模块。

ddr2的读操作寻址与图像算法校正模块接口所需的图像输入通道个数l有关,即将一帧图像分为l块并行输入。ddr2读出的图像数据的位宽由l*n1比特位计算得到n1是c扩展为8的整数倍,,ddr2读操作的寻址是按照(r*c/l)*n1的大小为每次读取的长度。如果l设置为16,ddr2读出的数据位宽为16*16=32bytes,接口总控模块的初始化地址设置第一帧图像的地址为0x00000000,每次读地址的累加值为0x0001d000,按照此设置,在进行读操作过程中会映射成ddr2存储器的读地址输出,直到将保存的所有帧数即n帧读取完成。

(4)由ddr2存储器读入可编程器件fpga的图像数据频率以及数据位宽,由接口总控模块进行转换后,达到图像算法功能模块的接口时序需求,保证图像算法功能模块的正常验证。

(5)n帧图像数据由ddr2存储器读取完成后,再进行下一个循环,即重新开始从上位机经过jtag下载器

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

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