CN102903074B - 一种基于fpga的图像处理装置 - Google Patents
一种基于fpga的图像处理装置 Download PDFInfo
- Publication number
- CN102903074B CN102903074B CN201210387001.7A CN201210387001A CN102903074B CN 102903074 B CN102903074 B CN 102903074B CN 201210387001 A CN201210387001 A CN 201210387001A CN 102903074 B CN102903074 B CN 102903074B
- Authority
- CN
- China
- Prior art keywords
- image processing
- image
- module
- pcie
- data
- 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.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 title claims abstract description 161
- 238000003860 storage Methods 0.000 claims description 30
- 238000005538 encapsulation Methods 0.000 claims description 29
- 239000004575 stone Substances 0.000 claims description 22
- 238000004891 communication Methods 0.000 claims description 16
- 230000005540 biological transmission Effects 0.000 claims description 15
- 230000006870 function Effects 0.000 claims description 12
- 238000013461 design Methods 0.000 claims description 8
- 238000012856 packing Methods 0.000 claims description 8
- 230000006399 behavior Effects 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 230000010354 integration Effects 0.000 claims description 4
- 230000003993 interaction Effects 0.000 claims description 3
- 230000002123 temporal effect Effects 0.000 claims description 3
- 230000002093 peripheral effect Effects 0.000 abstract 1
- 238000000034 method Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 11
- 238000007726 management method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000005259 measurement Methods 0.000 description 6
- 230000007547 defect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000008676 import Effects 0.000 description 4
- 238000005096 rolling process Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000033001 locomotion Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- XEEYBQQBJWHFJM-UHFFFAOYSA-N Iron Chemical compound [Fe] XEEYBQQBJWHFJM-UHFFFAOYSA-N 0.000 description 2
- 229910000831 Steel Inorganic materials 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 239000010959 steel Substances 0.000 description 2
- 239000004411 aluminium Substances 0.000 description 1
- XAGFODPZIPBFFR-UHFFFAOYSA-N aluminium Chemical compound [Al] XAGFODPZIPBFFR-UHFFFAOYSA-N 0.000 description 1
- 229910052782 aluminium Inorganic materials 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000919 ceramic Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000010408 film Substances 0.000 description 1
- 238000012615 high-resolution technique Methods 0.000 description 1
- 229910052742 iron Inorganic materials 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 229920003023 plastic Polymers 0.000 description 1
- 239000004033 plastic Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
Landscapes
- Image Processing (AREA)
Abstract
一种基于FPGA的图像处理装置,包括图像处理板卡和计算机主机部分;所述图像处理板卡用于完成图像信号的采集、处理、存储,并将原始图像数据和特征值数据打包传输至计算机主机部分;所述计算机主机部分用于接收和解析图像处理板卡发送来的数据包,同时提供图像分类器和用户界面软件。所述图像处理板卡采用PCIe总线扩展方式安装在计算机主机部分的主板上。本发明之基于FPGA的图像处理装置,电路规模小,硬件集成度高,具有良好的实时性和可扩展性。
Description
技术领域
本发明涉及图像处理技术领域,更具体的说是涉及一种基于FPGA的图像处理装置。
背景技术
目前,在钢铁、机械制造、电气等诸多行业,自动化生产、检测、控制技术得到广泛应用,机器视觉技术伴随计算机技术、高速高分辨率拍摄技术的发展,技术日臻成熟,机器视觉技术的高速发展有力的推动了图像处理技术的发展。
图像处理的硬件实现方法目前有诸如专用集成电路(ASIC)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)的方法。ASIC是针对特定应用而定制的专用集成电路,可根据用户需求和项目需要,将常用的FFT、卷积、求统计特性等信号处理算法固化到芯片内部去,ASIC的专用性和特殊性,使得其在众多的图像处理方案中算法实现速度最快,同时存在开发周期长、价格昂贵、灵活性受限的缺点,在芯片设计的某个环节中的失误很可能会导致芯片投产后的致命错误,使得ASIC在民用领域使用受限。图像处理领域涌现出较多的DSP厂商(TI等),因其具备较大规模的硬件乘法器,使得在做常用的信号处理算法时比常规的CPU、MCU快十倍甚至更多,但是DSP仅对特定运算提供硬件优化,其指令执行本质上还是串行机制,还是不能轻松满足大部分的算法需求。FPGA作为ASIC的一个特例,支持用户多次编程,因其富余的逻辑资源(几十万门~数千万门)、大规模的嵌入式的Block RAM、PCIe硬核、丰富的布线资源等等优势让其在图像处理领域得到广泛的应用。近年来论文和专利描述中,基于FPGA图像处理的硬件实现方法,大多同时利用FPGA的并行执行能力和外挂处理器指令集,一般有FPGA+DSP,FPGA+ARM,FPGA+MCU的方案,但这些方案因多个芯片及必要的***电路设计到同一个硬件板卡上,存在板级规模大、集成度低等缺点,同时给项目研发带来了额外的芯片间的通信调试工作。
发明内容
本发明要解决的技术问题是,克服传统图像处理硬件方案板级规模大、集成度低的问题,提供一种具备强大的图像处理硬件实现的能力、集成度高的基于FPGA的图像处理装置。
本发明解决其技术问题所采用的技术方案是:
一种基于FPGA的图像处理装置,包括图像处理板卡和计算机主机部分;
所述图像处理板卡用于完成图像信号的采集、处理、存储,并将原始图像数据和特征值数据打包传输至计算机主机部分;
所述计算机主机部分用于接收和解析图像处理板卡发送来的数据包,同时提供图像分类器和用户界面软件。
所述图像处理板卡采用PCIe总线扩展方式安装在计算机主机部分的主板上,图像处理板卡和计算机主机间的通信符合PCIe通信协议规范。
优选的,在基于FPGA的图像处理装置中,所述图像处理板卡包括图像采集模块、片内Block RAM、图像处理模块、数据封装模块、DMA模块、MUX模块、PCIe桥、PCIe硬核、MicroBlaze软核处理器、时间示波器以及DDR2内存条。
所述MicroBlaze软核处理器通过PLB总线分别与DMA模块、MUX模块、PCIe桥和时间示波器连接;MicroBlaze软核处理器还与数据封装模块连接;图像处理模块与MicroBlaze软核处理器连接,图像处理模块与片内Block RAM双向连接;图像采集模块、片内Block RAM、数据封装模块、DMA模块、MUX模块依次连接;MUX模块与PCIe桥双向连接;MUX模块与DDR2内存条双向连接;PCIe桥与PCIe硬核双向连接;PCIe硬核通过PCIe总线与计算机主机部分连接。
所述图像采集模块用于完成图像设备(如高速线阵相机等)输出信号的采集,并按照片内Block RAM的时序特性输出图像数据流;
所述片内Block RAM用于完成图像信号的实时缓存;
所述图像处理模块用于完成图像的特征值实时运算和存储;所述图像处理模块自定义了寄存器组,计算完的特征值数据存储于对应寄存器中,MicroBlaze软核处理器可根据对应中断信号读走相应特征值;
所述数据封装模块用于完成存储图像和图像特征值数据的封装打包;
所述DMA模块用于完成数据包的直接内存存取, DMA(direct memory access)为直接内存存取,此操作可在MicroBlaze软核处理器不干预的情况下直接将数据流从片内Block RAM中导出至PCIe链路(即PCIe桥和PCIe硬核),大大的提升了数据传输速度;
所述MUX模块用于完成数据链路的切换,决定数据包是传送至DDR2内存条还是PCIe链路(即PCIe桥和PCIe硬核);
所述PCIe桥用于完成PCIe通信接口的行为和逻辑控制,完成FPGA图像处理板卡的PLB总线地址和计算机主机部分的内存条物理地址映射;
所述PCIe硬核用于完成PCIe通信接口中应用层以下通信层次的封包解包处理;
所述DDR2内存条用于完成FPGA图像处理板卡本地的所有感兴趣的数据缓存和组织,标配512MB,最大可支持2GB;
所述MicroBlaze软核处理器,通过PLB总线对DMA模块、MUX模块、PCIe桥、数据封装模块以及时间示波器的寄存器进行配置,完成各模块(即DMA模块、MUX模块和数据封装模块)的初始化和行为控制。
所述MicroBlaze软核处理器对DMA模块进行智能化管理,以环形FIFO(first in first output先入先出队列)的形式管理DMA任务,彻底解决了DMA任务繁重而在某一时刻DMA只能响应其中一个请求所导致的数据传输请求丢失, FIFO中的每个数据单元为一个传输任务数据结构。
所述时间示波器对图像处理板卡中感兴趣程序段的执行时间进行测量,并存储至所述DDR2内存条中,从而可以快速准确的观察到如图像数据处理核数据流传输所耗用的时间,进而分析***性能,优化设计。
图像处理板卡可为高集成度单芯片,图像采集模块、片内Block RAM、图像处理模块、数据封装模块、DMA模块、MUX模块、PCIe桥、PCIe硬核、MicroBlaze软核处理器、时间示波器均可由VHDL语言和C语言设计,均集成于芯片内部。
优选的,在基于FPGA的图像处理装置中,所述计算机主机部分包括PCIe设备驱动程序、PC共享内存、图像存储介质、图像分类器、界面软件。
所述PCIe设备驱动程序与PC共享内存双向连接,PC共享内存与界面软件、图像分类器、图像存储介质连接,图像分类器与界面软件连接。
所述PCIe设备驱动程序支持图像处理板卡的挂载,完成数据包的接收、解析和存储;
所述图像存储介质为非易失性存储单元,可为硬盘、FLASH等存储形式;
所述图像分类器含有图像特征值数据库,可根据计算机接收的特征值数据,对接收图像进行智能分类;
所述界面软件提供人机交互的图像化界面程序,具备图像实时监控、图像特征分类显示、历史数据查询及故障报警等功能。
所述图像处理板卡的图像数据流方向为:原始图像输入图像采集模块,由图像采集模块对图形信号进行采集并存储至片内Block RAM,图像处理模块对片内Block RAM中的图像数据进行处理后得到特征值数据, 特征值数据经MicroBlaze软核处理器传送至数据封装模块,通过数据封装模块对特征值数据和存储图像封装为数据包,数据包作为DMA模块的源数据,一路通过PCIe桥、PCIe硬核透传至计算机主机部分的PC共享内存中,进而完成图像数据的高速处理和传输,另一路可选择性存储于图像处理板卡外挂的DDR2内存条中。
所述原始图像和所述存储图像的区别在于:行为逻辑不同,原始图像符合对应图像设备的行为逻辑(如Camera Link接口时序),存储图像符合对应缓存电源的行为逻辑(如Block RAM读写时序)。
使用本发明之基于FPGA的图像处理装置进行图像处理的方法为:
(1)安装图像处理板卡U1于计算机主机部分U2主板的PCIe插槽中。给图像处理板卡U1上电,并检测电源工作是否正常,电源适配器电气标准为5VDC/30W,正常上电后电源指示灯亮起,整个板卡期间无过热、无异味。
(2)下载图像处理板卡U1的PCIe通信测试子程序于图像处理板卡U1中,重启计算机,在计算机主机部分U2的Win Driver软件的设备向导中确认有该图像处理板卡U1的PCIe扩展设备存在,并确认PCIe设备的BAR(Base Address Register)空间能够正常读写。
(3)下载图像处理板卡U1的图像采集子程序于图像处理板卡U1中,重启计算机,运行计算机主机部分U2的界面软件程序,确认图像能够正常的采集。
(4)下载图像处理板卡U1的主程序于图像处理板卡U1中,重启计算机,运行计算机主机部分U2的图像分类器和界面软件程序,通过图像处理板卡的运行,可以在界面软件程序中观察和记录图像处理板卡U1的图像特征值分析结果、图像分类器对图片的分类结果、图像存在缺陷的报警情况。
(5)运行过程中,统计图像处理装置的图像缺陷识别率和检出率,工作人员可根据以上指标并结合装置的应用工况,调整、改进、增加、删减图像处理板卡U1中图像处理模块的部分功能。
(6)优化完成后,重复以上(4)、(5)步骤,直至满足图像处理领域的特定要求和参数指标。
本发明除实现电路规模小的优势外,还具有如下有益效果:
本发明在针对高速线阵相机(行像素为4096,单像素量化为1Byte)采集的图像信号进行实施时,能实时完成图像数据的采集、处理、传输、存储,不失一般性地,所述图像处理板卡中的数据封装模块,对图像数据和处理后的特征数据进行封装打包,其中每个数据包中以32行像素为单位,即32*4096Byte图像数据和1032KB的特征数据,所述图像数据存储于图像处理板卡的片内Block RAM中,所述特征值数据由于计算过程所涉及的算法的多样性,存储于图像处理板卡的DDR2内存条中,所述MicroBlaze软核处理器通过环形FIFO形式管理DMA模块,将数据包通过所述PCIe桥和PCIe硬核传输至所述计算机主机的共享内存中,数据包内图像数据的采集、处理、传输及存储的总时间为0.7ms,折算图像数据吞吐量为:(32*4096+1032)*8/0.0007s= 1.50976Gbps。极限运算可知单个数据包吞吐时间0.7ms为32行图像时间,即使用本发明之图像处理装置能够实时吞吐处理的线阵相机(4096B/line)行频高达1/(0.7/32ms)= 45.714KHz。此类线阵相机在工业领域运用时,在图像处理目标物运动速度高达22m/s情况下,运动方向分辨率可达到0.5mm。
本发明所设计的图像处理板卡为高集成度单芯片解决方案,发挥FPGA的并行执行能力的同时,应用内嵌的MicroBlaze软核处理器,完成现有外挂处理器的管理事务,整个设计集成在FPGA内,片内各模块间通过PLB总线进行通信,从根本上克服了现有“FPGA+外挂处理器”方案的缺点;图像处理板卡通过PCIe金手指安装于计算机的主板上,执行能力强,集成度高,使用和升级灵活方便。本发明克服了传统图像处理硬件方案板级规模大、集成度低的问题,具备强大的图像处理硬件实现的能力。
本发明中,图像处理板卡,以FPGA为核心处理器,配有DDR2内存条进行图像缓存,采用PCIe总线扩展方式安装在计算机的主板上,用于完成图像信号的采集、处理、存储,并将原始图像数据和特征值数据打包传输至计算机,鉴于采集和处理的图像数据量庞大的情况,图像处理板卡采用环形FIFO管理DMA任务队列,并提供时间示波器(Time Scope)功能监测程序执行性能。本发明之基于FPGA的图像处理装置,电路规模小,硬件集成度高,具有良好的实时性和可扩展性。
附图说明
图1 为本发明一实施例图像处理装置结构示意图;
图2为图1所示实施例图像处理装置的图像处理板卡结构示意图;
图3为图1所示实施例图像处理装置的计算机主机部分结构示意图;
图4为图1所示实施例图像处理装置的DMA传输任务队列示意图;
图5为图1所示实施例图像处理装置的共享内存示意图;
图6为图1所示实施例时间示波器工作原理图;
图7为采用图1所示实施例图像处理装置进行图像处理方法时时间示波器程序流程图。
具体实施方式
以下结合附图和实施例对本发明作进一步说明。
参照图1,本发明之基于FPGA的图像处理装置包括图像处理板卡U1和计算机主机部分U2;
图像处理板卡U1用于完成图像信号的采集、处理、存储,并将原始图像数据和特征值数据打包传输至计算机主机部分U2;
计算机主机部分U2接收和解析图像处理板卡U1发送来的数据包,同时提供图像分类器和用户界面软件。
其中,图像处理板卡U1采用PCIe总线扩展方式安装在计算机主机部分U2的主板上,通信符合PCIe通信协议规范。
使用本发明之基于FPGA的图像处理装置,不失一般性地,可将原始图像输入连接到高速线阵相机(行像素为4096,单像素量化为1Byte)的输出上,实时完成图像数据的采集、处理、传输及存储的速度高达 1.50976Gbps,本发明可针对高速运动物体进行图像分析和识别,适用于目标运动方向分辨率高达0.5mm的工业应用场合,目标物运动速度可高达22m/s,还可广泛的应用于薄膜、塑料、瓷砖、钢坯、板带铝等生产行业的表面检测。
参照图2,图像处理板卡U1包括图像采集模块U11、片内Block RAM U12、图像处理模块U13、数据封装模块U14、DMA模块U15、MUX模块U16、PCIe桥U17、PCIe硬核U18、MicroBlaze软核处理器U19、时间示波器U110以及DDR2内存条U111。
所述MicroBlaze软核处理器U19通过PLB总线分别与DMA模块U15、MUX模块U16、PCIe桥U17和时间示波器U110连接;MicroBlaze软核处理器U19还与数据封装模块U14连接;图像处理模块U13与MicroBlaze软核处理器U19连接,图像处理模块U13与片内Block RAM U12双向连接;图像采集模块U11、片内Block RAM U12、数据封装模块U14、DMA模块U15、MUX模块U16依次连接;MUX模块U16与PCIe桥U17双向连接;MUX模块U16与DDR2内存条U111双向连接;PCIe桥U17与PCIe硬核U18双向连接;PCIe硬核U18通过PCIe总线与计算机主机部分U2连接。
图像采集模块U11用于完成图像设备(如线阵相机等)输出信号的采集,并按照片内Block RAM的时序特性输出图像数据流;
片内Block RAM U12用于完成图像信号的实时缓存;
图像处理模块U13用于完成图像的特征值实时运算和存储;计算得到的图像特征值数据可包括图像的灰度值、方差、熵值、频谱、纹理等;所述图像处理模块自定义了寄存器组,计算完的特征值数据存储于对应寄存器中,MicroBlaze可根据对应中断信号读走相应特征值;
数据封装模块U14用于完成图像原始数据和图像特征值数据的封装打包;
DMA模块U15用于完成数据包的直接内存存取, DMA(direct memory access)为直接内存存取,此操作可在MicroBlaze不干预的情况下直接将数据流从Block RAM中导出至PCIe链路,大大的提升了数据传输速度;
MUX模块U16用于完成数据链路的切换,决定数据包是传送至DDR2内存条还是PCIe链路;
PCIe桥U17用于完成PCIe通信接口的行为和逻辑控制,完成FPGA图像处理板卡的PLB总线地址和计算机主机部分的内存条物理地址映射;
PCIe硬核U18用于完成PCIe通信接口中应用层以下通信层次的封包解包处理;
MicroBlaze软核处理器U19,通过PLB总线对DMA模块U15、MUX模块U16、PCIe桥U17、数据封装模块U14以及时间示波器U110的寄存器进行配置,完成所述模块的初始化和行为控制。
MicroBlaze软核处理器U19对DMA模块U15进行智能化管理,以环形FIFO的形式管理DMA任务,彻底解决了DMA任务繁重而在某一时刻DMA只能响应其中一个请求所导致的数据传输请求丢失,所述FIFO中的每个数据单元为一个传输任务数据结构。
时间示波器U110对所述图像处理板卡U1中感兴趣程序段的执行时间进行测量,并存储至所述DDR2内存条U111中,从而可以快速准确的观察到如图像数据处理核数据流传输所耗用的时间,进而分析***性能,优化设计。
DDR2内存条U111用于完成FPGA图像处理板卡本地的所有感兴趣的数据缓存和组织,标配512MB,最大可支持2GB;
图像处理板卡按照功能分为三个部分:图像采集部分(包括图像采集模块U11、片内Block RAM U12);图像处理部分(包括片内Block RAM U12、图像处理模块U13);图像传输部分(包括数据封装模块U14、DMA模块U15、MUX模块U16、PCIe桥U17、PCIe硬核U18、DDR2内存条U111),其中MicroBlaze软核处理器U19服务于图像处理核心传输,完成FPGA内部各个IP核之间的配置、调度和管理,MicroBlaze软核处理器U19使用总线为PLB(Processor Local Bus),MicroBlaze软核处理器U19针对FPGA内部诸如处理核传输所耗用时间进行评估,为本发明的实时性提供一种测试方法和可靠依据。
图像处理板卡U1的图像数据流方向为:原始图像S1输入图像采集模块U11,由图像采集模块U11对图形信号进行采集并存储至片内Block RAM U12,图像处理模块U13对片内Block RAM中的图像数据进行处理后得到特征值数据S2, 特征值数据S2经MicroBlaze软核处理器U19传送至数据封装模块U14,通过数据封装模块U14对特征值数据S2和存储图像S3封装为数据包,数据包S4作为DMA模块U15的源数据,一路通过PCIe桥U17、PCIe硬核U18成为待传数据包S5,并透传至计算机主机部分U2的PC共享内存中,进而完成图像数据的高速处理和传输,另一路可选择性存储于图像处理板卡U1外挂的DDR2内存条U111中。
参照图3,计算机主机部分U2包括PCIe设备驱动程序U21、PC共享内存U22、图像存储介质U23、图像分类器U24、界面软件U25。
所述PCIe设备驱动程序U21与PC共享内存U22双向连接,PC共享内存U22与界面软件U25、图像分类器U24、图像存储介质U23连接,图像分类器U24与界面软件U25连接。
PCIe设备驱动程序U21支持图像处理板卡U1的挂载,完成数据包的接收、解析和存储;
图像存储介质U23为非易失性存储单元,可为硬盘、FLASH等存储形式;
图像分类器U24含有图像特征值数据库,可根据计算机接收的特征值数据S2,对接收图像进行智能分类;
界面软件U25提供人机交互的图像化界面程序,具备图像实时监控、图像特征分类显示、历史数据查询及故障报警等功能。
图4为对图像处理板卡U1的一种DMA任务队列管理的结构示意图。在图像处理板卡U1的FPGA下位机软件中,存在多个涉及到数据缓冲的应用,包括DMA传输队列和PCIe数据传输。为了实现数据的缓冲,在基于MicroBlaze软核处理器的嵌入式软件上实现了一个环形FIFO结构和相关的功能函数。它能实现基本的环形FIFO结构管理功能,应用程序只需要指定FIFO存储数据的缓冲区地址即可构建出一个完整的环形FIFO。该结构可对DMA模块U15进行智能化管理,彻底解决了DMA任务繁重而在某一时刻DMA只能响应其中一个请求所导致的数据传输请求丢失,所述FIFO中的每个数据单元为一个传输任务数据结构。
图4中所示的环形FIFO共有N个存储单元,存储单元可以是单个字节的数据,也可以根据实际应用需求而定义的数据结构。写索引指下一个待写入的数据单元的索引,读索引指下一个待读的数据单元的索引。环形FIFO除了以上三者外,还有一个变量用来统计当前还未发送的数据单元的个数,它的值用来指示FIFO的状态(FIFO为空、FIFO已满、FIFO正常)。
为实现图4所示的FIFO结构,定义了如下结构体:
typedef struct fifo_t
{
u32 fifo_depth; //FIFO的深度
u32 write_index; //写索引
u32 read_index; //读索引
u32 unsend_cnt; //未读取的数据单元的数量
}FIFO;
接口函数如下:
int FIFO_add_member(FIFO *pfifo) ,向FIFO中添加新的数据单元,传入参数pfifo指向待操作的FIFO指针,操作成功返回0,操作失败返回1;
int FIFO_det_member(FIFO *pfifo),从FIFO中读取数据单元,传入参数pfifo指向待操作的FIFO指针;操作成功返回0,操作失败返回1;
int Is_FIFO_full(FIFO *pfifo),判断FIFO是否已满,传入参数pfifo指向待操作的FIFO指针;操作失败返回1,FIFO已满返回XST_FIFO_FULL,FIFO正常返回XST_FIFO_NORMAL;
int FIFO_flush(FIFO *pfifo),向FIFO中添加数据单元,传入参数复位FIFO,清空所有数据,操作成功返回0,失败返回1。
依照图像处理板卡U1图像数据流方向,图4中DMA模块U15的源地址为图像数据和特征值数据存储的内存地址,可为Block RAM U12和FPGA片外的DDR2内存条U111;目的地址为数据包S5发往的内存地址,可为计算机主机部分U2的PC共享内存U22。
图5提供了对图像处理板卡U1和计算机主机部分U2间PCIe数据传输时的地址映射示意图。图像处理板卡U1中MicroBlaze软核处理器的PLB总线地址,通过 PCIe接口协议映射到计算机主机部分U2中PC共享内存地址,MicroBlaze软核处理器可通过PLB总线,启动DMA自由地访问映射端计算机主机部分U2的物理内存,而计算机主机部分U2可通过应用软件自由访问自身的物理内存,本发明正是通过此方式,完成数据U1和U2间的数据通信。
时间示波器(Time Scope) U110对所述图像处理板卡U1中感兴趣程序段的执行时间进行测量,并存储至所述DDR2内存条U111中,从而可以快速准确的观察到如图像数据处理核数据流传输等所耗用的时间,进而分析***性能,优化设计。
图6为时间示波器U110的工作原理示意图,图7为时间示波器U110的程序流程图,时间示波器U110是基于一个自由运行的计数器来实现的,在感兴趣的程序段执行之前和程序段执行结束完之后分别获取计数器的计数值,两次计数值之差即为程序的执行时间。
时间示波器可测量某程序段前后节点间的执行时间,参照图7,时间示波器执行开始步骤,首先判断双点时间测量是否开始?如果开始,则获取测量起始时刻的计数器计数值T1,然后判断双点测量是否结束?如果结束,则获取测量结束时刻的计数器计数值T2,计算T2-T1并存储至DDR2对应地址的备份区,供工作人员监测所感兴趣的某特定双点间的执行时间;时间示波器还具备单点时间测量的功能,用于测试某循环执行的程序段的执行时间;然后判断是否进行单点时间测量?如果是则继续判断测量是否开始?如果是,则获取测量起始时刻的计数器计数值T3,然后判断测量是否结束?如果是,则获取测量结束时刻的计数器计数值T4,计算T4-T3并存储至DDR2对应地址的备份区,供工作人员监测所感兴趣的某特定单点循环执行的时间;以上流程结束则获取到了感兴趣的程序段执行时间,用于评估传输和处理等关键部分的性能是否达到项目需求。
在图6中,通道1用来测量程序段1的执行时间,通道2用来测量某一段程序两次执行之间的间隔时间,这种测量方式可以用来测量中断周期等。本发明中,使用了该时间示波器U110测试片内Block RAM U12内图像存储满中断的间隔、DMA模块U15任务执行时隙、PCIe传输速度等,保证了实施过程中的功能和性能。
使用本发明之基于FPGA的图像处理装置进行图像处理的方法为:
(1)安装图像处理板卡U1于计算机主机部分U2主板的PCIe插槽中。给图像处理板卡U1上电,并检测电源工作是否正常,电源适配器电气标准为5VDC/30W,正常上电后电源指示灯亮起,整个板卡期间无过热、无异味。
(2)下载图像处理板卡U1的PCIe通信测试子程序于图像处理板卡U1中,重启计算机,在计算机主机部分U2的Win Driver软件的设备向导中确认有该图像处理板卡U1的PCIe扩展设备存在,并确认PCIe设备的BAR(Base Address Register)空间能够正常读写。
(3)下载图像处理板卡U1的图像采集子程序于图像处理板卡U1中,重启计算机,运行计算机主机部分U2的界面软件程序,确认图像能够正常的采集。
(4)下载图像处理板卡U1的主程序于图像处理板卡U1中,重启计算机,运行计算机主机部分U2的图像分类器和界面软件程序,通过图2所示图像处理板卡的运行,可以在界面软件程序中观察和记录图像处理板卡U1的图像特征值分析结果、图像分类器对图片的分类结果、图像存在缺陷的报警情况。
(5)运行过程中,统计图像处理装置的图像缺陷识别率和检出率,工作人员可根据以上指标并结合装置的应用工况,调整、改进、增加、删减图像处理板卡U1中图像处理模块的部分功能。
(6)优化完成后,重复以上(4)、(5)步骤,直至满足图像处理领域的特定要求和参数指标。
使用本发明,对某厂布匹的缺陷识别率>95%,缺陷检出率>90%。
以上对本发明的一种优选具体实施方式作了详细介绍。所述具体实施方式只是用于帮助理解本发明的核心思想。应当指出,对于本技术领域的技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也属于本发明权利要求的保护范围。
Claims (4)
1.一种基于FPGA的图像处理装置,其特征在于,包括图像处理板卡和计算机主机部分;
所述图像处理板卡用于完成图像信号的采集、处理、存储,并将原始图像数据和特征值数据打包传输至计算机主机部分;
所述计算机主机部分用于接收和解析图像处理板卡发送来的数据包,同时提供图像分类器和用户界面软件;
所述图像处理板卡采用PCIe总线扩展方式安装在计算机主机部分的主板上;
所述图像处理板卡包括图像采集模块、片内Block RAM、图像处理模块、数据封装模块、DMA模块、MUX模块、PCIe桥、PCIe硬核、MicroBlaze软核处理器、时间示波器以及DDR2内存条;
所述MicroBlaze软核处理器通过PLB总线分别与DMA模块、MUX模块、PCIe桥和时间示波器连接;MicroBlaze软核处理器还与数据封装模块连接;图像处理模块与MicroBlaze软核处理器连接,图像处理模块与片内Block RAM双向连接;图像采集模块、片内Block RAM、数据封装模块、DMA模块、MUX模块依次连接;MUX模块与PCIe桥双向连接;MUX模块与DDR2内存条双向连接;PCIe桥与PCIe硬核双向连接;PCIe硬核通过PCIe总线与计算机主机部分连接;
所述图像采集模块用于完成图像设备输出信号的采集,并按照片内Block RAM的时序特性输出图像数据流;
所述片内Block RAM用于完成图像信号的实时缓存;
所述图像处理模块用于完成图像的特征值实时运算和存储;所述图像处理模块自定义寄存器组,计算完的特征值数据存储于对应寄存器中,MicroBlaze软核处理器根据对应中断信号读走相应特征值;
所述数据封装模块用于完成存储图像和图像特征值数据的封装打包;
所述DMA模块用于完成数据包的直接内存存取, DMA为直接内存存取,在MicroBlaze软核处理器不干预的情况下直接将数据流从片内Block RAM中导出至PCIe链路;
所述MUX模块用于完成数据链路的切换,决定数据包是传送至DDR2内存条还是PCIe链路;
所述PCIe桥用于完成PCIe通信接口的行为和逻辑控制,完成FPGA图像处理板卡的PLB总线地址和计算机主机部分的内存条物理地址映射;
所述PCIe硬核用于完成PCIe通信接口中应用层以下通信层次的封包解包处理;
所述DDR2内存条用于完成FPGA图像处理板卡本地的所有感兴趣的数据缓存和组织,标配512MB,最大可支持2GB;
所述MicroBlaze软核处理器通过PLB总线对DMA模块、MUX模块、PCIe桥、数据封装模块以及时间示波器的寄存器进行配置,完成初始化和行为控制;
所述MicroBlaze软核处理器对DMA模块进行智能化管理,以环形先入先出队列的形式管理DMA任务;
所述时间示波器对图像处理板卡中感兴趣程序段的执行时间进行测量,并存储至所述DDR2内存条中。
2.根据权利要求1所述的基于FPGA的图像处理装置,其特征在于,所述计算机主机部分包括PCIe设备驱动程序、PC共享内存、图像存储介质、图像分类器、界面软件;
所述PCIe设备驱动程序与PC共享内存双向连接,PC共享内存与界面软件、图像分类器、图像存储介质连接,图像分类器与界面软件连接;
所述PCIe设备驱动程序支持图像处理板卡的挂载,完成数据包的接收、解析和存储;
所述图像存储介质为非易失性存储单元;
所述图像分类器含有图像特征值数据库,根据计算机接收的特征值数据,对接收图像进行智能分类;
所述界面软件提供人机交互的图像化界面程序,具备图像实时监控、图像特征分类显示、历史数据查询及故障报警功能。
3.根据权利要求1所述的基于FPGA的图像处理装置,其特征在于,图像处理板卡为高集成度单芯片,图像采集模块、片内Block RAM、图像处理模块、数据封装模块、DMA模块、MUX模块、PCIe桥、PCIe硬核、MicroBlaze软核处理器、时间示波器均由VHDL语言和C语言设计,均集成于芯片内部。
4.根据权利要求1所述的基于FPGA的图像处理装置,其特征在于,所述图像处理板卡的图像数据流方向为:原始图像输入图像采集模块,由图像采集模块对图形信号进行采集并存储至片内Block RAM,图像处理模块对片内Block RAM中的图像数据进行处理后得到特征值数据, 特征值数据经MicroBlaze软核处理器传送至数据封装模块,通过数据封装模块对特征值数据和存储图像封装为数据包,数据包作为DMA模块的源数据,一路通过PCIe桥、PCIe硬核透传至计算机主机部分的PC共享内存中,进而完成图像数据的高速处理和传输,另一路选择性存储于图像处理板卡外挂的DDR2内存条中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210387001.7A CN102903074B (zh) | 2012-10-12 | 2012-10-12 | 一种基于fpga的图像处理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210387001.7A CN102903074B (zh) | 2012-10-12 | 2012-10-12 | 一种基于fpga的图像处理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102903074A CN102903074A (zh) | 2013-01-30 |
CN102903074B true CN102903074B (zh) | 2014-09-10 |
Family
ID=47575288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210387001.7A Expired - Fee Related CN102903074B (zh) | 2012-10-12 | 2012-10-12 | 一种基于fpga的图像处理装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102903074B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014160186A1 (en) * | 2013-03-13 | 2014-10-02 | Bosch Automotive Service Solutions Llc | Vehicle measurement apparatus having a system-on-a-chip device, a sensor and a wireless adapter |
CN103197231B (zh) * | 2013-04-03 | 2014-12-31 | 湖南大学 | 用于模拟电路故障诊断和预测的fpga装置 |
CN103853642A (zh) * | 2014-01-17 | 2014-06-11 | 中国科学院上海技术物理研究所 | 基于usb3.0的红外数字图像注入式仿真***及方法 |
CN104050419B (zh) * | 2014-06-25 | 2016-08-24 | 浪潮集团有限公司 | 基于fpga的数据单向导入设备及数据单项导入方法 |
CN106034199B (zh) * | 2015-03-18 | 2019-07-05 | 中国科学院苏州纳米技术与纳米仿生研究所 | 一种模拟数据源的图像采集装置和方法 |
CN105023185B (zh) * | 2015-08-04 | 2019-03-08 | 武汉旷腾信息技术有限公司 | 一种基于fpga的期货交易盘口数据实时解析*** |
CN106502935A (zh) * | 2016-11-04 | 2017-03-15 | 郑州云海信息技术有限公司 | Fpga异构加速***、数据传输方法及fpga |
CN108090002A (zh) * | 2018-01-02 | 2018-05-29 | 联想(北京)有限公司 | 数据处理方法、可编程阵列和可编程处理*** |
CN111142630A (zh) * | 2019-12-02 | 2020-05-12 | 杭州迪普科技股份有限公司 | 一种处理器板卡 |
CN110933333A (zh) * | 2019-12-06 | 2020-03-27 | 河海大学常州校区 | 一种基于fpga的图像采集、存储与显示*** |
CN115147672A (zh) * | 2021-03-31 | 2022-10-04 | 广东高云半导体科技股份有限公司 | 一种进行物体类别识别的人工智能***及方法 |
CN113259604B (zh) * | 2021-05-14 | 2023-05-30 | 厦门壹普智慧科技有限公司 | 一种智能感知图像获取装置及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101359050A (zh) * | 2008-08-27 | 2009-02-04 | 哈尔滨工程大学 | 一种声纳图像处理板 |
CN102044063A (zh) * | 2010-12-23 | 2011-05-04 | 中国科学院自动化研究所 | 一种基于fpga和dsp的机器视觉*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001069919A1 (en) * | 2000-03-10 | 2001-09-20 | Datacube, Inc. | Image processing system using an array processor |
-
2012
- 2012-10-12 CN CN201210387001.7A patent/CN102903074B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101359050A (zh) * | 2008-08-27 | 2009-02-04 | 哈尔滨工程大学 | 一种声纳图像处理板 |
CN102044063A (zh) * | 2010-12-23 | 2011-05-04 | 中国科学院自动化研究所 | 一种基于fpga和dsp的机器视觉*** |
Non-Patent Citations (4)
Title |
---|
"基于FPGA双通道高速数据采集***的设计与实现";罗旗舞等;《计算机测量与控制》;20101125;第2656-2658页 * |
"基于SOPC的三相电参数采集***设计";徐植坚等;《计算机工程》;20111031;第37卷(第19期);第224-226页 * |
徐植坚等."基于SOPC的三相电参数采集***设计".《计算机工程》.2011,第37卷(第19期),第224-226页. |
罗旗舞等."基于FPGA双通道高速数据采集***的设计与实现".《计算机测量与控制》.2010,第2656-2658页. |
Also Published As
Publication number | Publication date |
---|---|
CN102903074A (zh) | 2013-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102903074B (zh) | 一种基于fpga的图像处理装置 | |
US9639447B2 (en) | Trace data export to remote memory using remotely generated reads | |
US9684583B2 (en) | Trace data export to remote memory using memory mapped write transactions | |
CN103197231B (zh) | 用于模拟电路故障诊断和预测的fpga装置 | |
CN203480022U (zh) | 一种超高速通用雷达信号处理板 | |
CN103986869A (zh) | 一种高速tdiccd遥感相机图像采集与显示装置 | |
CN209168746U (zh) | 一种基于fpga的通用闪存测试*** | |
CN101957418A (zh) | 汽车线束导通检测仪及其检测方法 | |
CN103810521A (zh) | 无源rfid电子标签数字基带处理器 | |
CN103092119B (zh) | 一种基于fpga的总线状态监视方法 | |
CN104993984A (zh) | 一种物联网视觉智能感知***及方法 | |
US8566484B2 (en) | Distributed trace using central performance counter memory | |
TW201423413A (zh) | 匯流排訊號監測裝置及方法 | |
CN104199411A (zh) | 一种基于Labview的工业总线数据采集*** | |
CN102944778B (zh) | 一种便携式电力***低频振荡检测装置 | |
CN105261278A (zh) | 一种摄像头模组演示工装***及其通信和检测方法 | |
Chen et al. | Big data collection gateway for vision-based smart meter reading network | |
CN103759951B (zh) | 可同时测量多台农机车的制动性能测试仪的测试方法 | |
CN203432613U (zh) | 无线传输的输电线路在线监测*** | |
CN104572515A (zh) | 跟踪模块、方法、***和片上***芯片 | |
CN100437404C (zh) | 自动化测量控制器 | |
CN205028112U (zh) | 一种基于硬件复位的机器人数据采集*** | |
CN201060250Y (zh) | 数字式交直流局部放电检测装置 | |
CN204440089U (zh) | 一种光栅尺数据采集*** | |
CN202974671U (zh) | 一种检测车辆***的信号发生电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140910 |