基于SOPC可重构的图像采集与处理系统设计
2020-09-05
来源:意榕旅游网
第34卷第2期 2011年4月 电子器件 Chinese Journal of Electron Devices V01.34 No.2 Apr.2011 Design of Reconfigurable Image Acquisition and Processing System Based on SOPC CHEN Dongming,YE Yutang .pU Liang,LIU Li。PAN Ming,WANG Xudong (University ofElectronic Science and Technology School ofOptoelectronic Information,Chengdu 610054,China) Abstract:A reconfigurable image acquisition and processing system was designed based on SOPC against the existing problems that PC algorithm can not achieve real—time processing right and it is difficult to achieve algorithm changes or upgrades in a fixed hardware platform,real・time image data processing on—chip and algorithm modiied or fupgraded functions without changing the hardware circuit are realized.This system is designed around two Xilinx FPGA chips and completed hardware design via FPGA Microblaze 32 bits soft core processor and associated interface module,completed software design combined with FPGA development environment ISE and EDK tools.As a result of SOPC technology and reconfigurable technology this design has the characteristics of design Flexibility, high processing speed and flexibility to algorithm upgrade. Key words:FPGA;SOPC;image acquisition and processing;microblaze;reconfigurable technology EEACC:6140C doi:10.3969/j.issn.1005-9490.2011.02.028 基于SOPC可重构的图像采集与处理系统设计术 陈东明,叶玉堂 ,蒲 亮,刘 莉,潘 明,王旭东 (电子科技大学光电信息学院,成都610054) 摘 要:针对目前Pc算法无法实现图像实时处理以及固定硬件平台很难实现算法修改或者升级的问题,设计一种基于 SOPC可重构的图像采集与处理系统,实现了图像数据的片上实时处理以及在不改变硬件电路结构而完成算法修改或者升级 的功能。此系统围绕两块Xilinx FPGA芯片进行设计,通过FPGA以及其Microblaze 32 bit软核处理器和相关接口模块实现硬 件电路设计,结合FPGA开发环境ISE工具和EDK工具协作完成软件设计。由于采用SOPC技术和可重构技术,此设计具有 设计灵活、处理速度快和算法可灵活升级等特点。 关键词:FPGA;SOPC;图像采集与处理;Microblaze;可重构技术 中图分类号:TN957.52;TN911.73 文献标识码:A 文章编号:1005—9490(2011)02—0232-05 目前很多领域对图像处理的实时性要求越来越 程器件,其资源配置可改变的特性刚好满足可重构 高,以嵌入式智能平台为核心的各类硬件平台越来 体系结构的要求。本文设计一种基于SOPC可重构 越多,比如金融领域的点钞机、清分机等要求在硬件 的图像采集与处理系统,由FPGA芯片及配置的 平台上完成图像采集的同时也要完成图像的片上实 Microblaze 32 bit处理器软核和相关接口模块实现 时处理,基于PC机的算法已经不能满足要求。而 大部分硬件电路,并通过FPGA开发环境ISE工具 且很多成熟的产品要求嵌入式硬件平台能够实现算 和EDK工具协作工作完成软件设计实现了数据传 法修改或者升级并尽可能地降低成本。相比传统的 输、存储、处理、在线重配置等功能 。 嵌入式CPU,FPGA内部的处理器核运算能力有一 些不足,但嵌入式产品的主要功能是控制,在这点 1 系统结构及原理 上,FPGA可以使用纯逻辑控制方式,具有天然的优 此设计采用两块FPGA芯片,FPGA1是Xilinx公 势。尤其是在实时性要求较高的场合,FPGA硬件 司Spartan一3系列型号为XC3SIO00,此芯片用作图像 的反应时间在ns级,这是传统嵌人式CPU所不能 采集以及FPGA2配置控制单元,具有17 280个逻辑 企及的¨ 。同时FPGA是基于SRAM工艺的可编 单元,1 M系统门,内部存储量达到552 kbit,具有391 项目来源:粤港关键领域重点突破项目(091683) 收稿日期:2010—09—03 修改日期:2010—10—08 第2期 陈东明,叶玉堂等:基于SOPC可重构的图像采集与处理系统设计 233 个I/O口,是一块低成本,容量大的芯片,是高密度 集成数据处理应用的理想选择。FPGA2是Xilinx公 司Vi ̄ex一4系列型号为XC4VSX25,此芯片具有23 040个逻辑单元,128个XtremeDSP Slices,内部 Block RAM达到2 304 kbit,具有4个DCM,比同类 产品多出数倍的乘法器,是高速数字信号处理的理 想选择。 系统结构如图1所示,接触式传感器(CIS)将 接收到的光电信号转化成模拟信号,FPGA1控制 A/D转换器将模拟信号转化成8 bit数字信号,经 FPGA1内部开辟的存储空间双口RAM(DUAL— RAM)缓存后传输给FPGA2,FPGA2接到FPGA1接 收数据命令后开始接收数据存人SDRAM中,传输 过程中用异步FIFO作为通信接口[5-6]。当一帧数 据发送完毕后,FPGAI再向FPGA2发送停止接收命 令,FPGA2停止接收。同时FPGA2依次读出 SDRAM中已写入的一帧数据,在EDK环境编程下 对数据进行算法处理,并将处理结果通过SPI接口 与外部USER通信或者直接通过UART串行接口将 数据传输给PC机,通过应用软件显示数据灰度值 图像。此设计采用了FPGA可重构技术,对FPGA2 芯片进行在线重配置。下面对整个系统的硬件设计 做一个简单的阐述。 图1 系统结构原理图 2系统硬件设计 2.1 FPGA2在线配置结构 可重构系统利用FPGA的资源可重配置特性, 设计一种电路结构,在不影响系统正常使用的前提 下完成FPGA的免插拔在线重配置,实现FPGA内 部逻辑电路的实时重构 J。此设计利用硬件电路 进行计算,具有极高的系统性能,又因为FPGA的可 编程特点,只需通过软件修改便能实现再配置,无需 改变系统硬件,因此实现起来方便,具有很强的灵活 性。通常在FPGA逻辑功能需要转换,如算法改进 或是发现设计上错误或者FPGA配置数据发生错误 而导致功能失效的时候,需对FPGA进行重新 配置 。 此设计针对算法改进采用在线配置,当软硬件 可执行文件都生成完毕之后,将FPGA2生成的比特 流文件通过USB 2.0接口传送给FPGA1。USB 2.0 接口Cypress芯片CY7C68013A采用Slave FIFOs工 作方式,FIFO深度为5l2,每个数据为8 bit。FPGA1 作为控制单元控制Slave FIFO将配置比特流文件按 照512的数量依次传输,当一个FIFO存入的数据达 到设定的容量阈值时,USB芯片内部自动产生一个 FULL信号,申请外部控制器接收数据,并自动更换 内部FIFO空间,继续接收写入数据。FPGA1接收 到FULL信号后将满状态FIFO里的数据传输到多 功能FLASH存储器里,直到比特流文件传输完毕为 止。如图2所示。 图2 FPGA2在线配置结构图 FPGA1开辟片内存储空间FIFO作为FLASH 存储器与FPGA2配置模块的通信接口,FPGA1将 FLASH中的数据依次写入FIFO中并读出对FPGA2 进行串行配置,配置流程图如图3所示。在调用 FIFO的IP核时,FIFO—DIN为8 bit数据,开辟写入 N 初始化J 配置时钟CCLK置低 Y DIN保持上一个数据 PROG B置低500 rls PROG_B置高卜卜一 + N ‘Y N 配置时钟CCLK置高 配置数据送给DIN < 塑 圆●Y 图3 FPGA2配置流程图 234 电 子 器件 第34卷 地址空间1 024,由于FLASH中存人的8 bit数据, 而串行配置数据DIN是1 bit数据总线,所以FIFO 的读出FIFO—DOUT为1 bit数据,读出时钟RD— CLK为写入时钟WR~CLK的8倍频率,读出地址空 间为1 024的8倍即8 192。 2.2采集数据缓存模块 化后的Microblaze 4.00版32 bit软核,工作频率可 达到200 MHz,核心性能比前一版本提高多达25%, 处理速度超过1 66 DMIPS。FPGA1发送数据模块和 FPGA2接收数据模块用异步FIFO作为通信接口, FIFO写时钟FIFO—WR—CLK与FPGA1发送时钟同 步,FIFO读时钟FIFO—RD—CLK与SDRAM1写时钟 WCLK同步。由于XC4VSX25芯片内部Block RAM 此设计的图像采集模块中,A/D转换方式为R、 G、B三通道方式,即A/D转换器将三路并行模拟信 号转换成RGB三路8 bit数字信号,这就要求控制 达到2 304 kbit,而采集数据只有8 bit,乒乓操作要 求两个双倍地址空间,所以FIFO的地址空间最大 单元具有并行处理数据的能力。FPGA1作为采集 控制单元,具有并行处理数据的特点,用三倍于A/ D转换频率的时钟CLK依次将三路RGB数字信号 缓存于FPGA1内部存储器双口RAM中,由A/D转 换而成的数字信号应依次为R1,G ,B1,R2,G2,B2… 冗 ,G ,B 。不同于FIFO的先进先出特性,双口 RAM可以把写入数据1TI存入任何一个开辟了的子 地址空间,然后根据需求控制数据in的读出顺 序¨ “ 。如图4所示,FPGA1开辟RAM空间时采 用乒乓操作即双地址循环存储,双口RAM中地址 空间应分为三段:第一段地址空间为1到Ⅳ,依次存 放Ⅳ个R数据;第二段地址空问Ⅳ十1到2N依次存 人Ⅳ个G数据;第三段地址空间2Ⅳ+1到3N依次 存人B数据。因此双口RAM地址空间1到3N存 放的数据依次为 1,R2…R,v,G1,G2…GⅣ,B1,B2… B ,将RGB三种数据按照图像格式要求邻域输出。 图5为双口RAM的缓存仿真图。 CLK 1 2 3 图4 RAM数据缓存方式 图5双1:7 RAM缓存仿真波形图 2.3处理模块设计 在此设计中,处理芯片FPGA2中嵌人了性能优 可以达到144 kbit,此设计取FIFO地址空间深度为 10 bit。此过程在EDK编程环境下完成,Microblaze 核接收到发送命令RECEIVE—START开始向 SDRAM中写人数据,接收到结束命令RECEIVE— OVER即一帧数据发送完毕,便停止接收数据。 此设计SDRAM采用镁光公司型号为砌 LC的 芯片,数据总线为16 bit。由于采集数据只有8 bit,所 以Mien)blaze核需要对SDRAM数据接口信号连接进 行修改【12]。Microblaze处理器在制定OPB_EMC核时, SDRAM的数据总线Mem—DQS是由OPB总线直接生 成的,具有OPB地址总线特陛,宽度为16 bit,第0位是 地址最高位,第15位为地址最低位。SDRAM只需 8 bit总线,8 bit~15 bit,其他未使用的8 bit总线 0 bit-7 bit需置为无连接,在Net列不能直接完成此 操作,需要在Mem_DQ行的Net列删除原有连接,然后 用键盘输入ne0&ncldmc2&nc3&ne4&nc5&ne6dmc7。 8 bit数据总线Mem_DQ[0:7]链接到重新定义的信号 sdram_dq,并定义网表信号sdram_dq的宽度为8。图6 为修改后的连接情况。 MereBEN l ̄ga O_Generic_Extemal_Memory_Mem_BEN O Mem_QWEN No Connection 0 MereWEN l fpga_o—oeneric_Extemal_Memory_Mem_WEN 0 YlemOEN fpga OGenericExternalMemoryMemOEN 0  ̄IemCEN l fpga_o Generic_ExtemaLMemory Mem CEN 0 Ⅵem RPN i GenericExtemal Memory Mem RPN 0  ̄lemA i fpga_OGenericExternalMemory Mem_A 0 vlemDQ_T l No connection O VlemDQ 0}No connection 坚 O vlemDQ_l}No connection I demDQ incO&ncl&nc2&nc3 nc4&nc5&nc6&nc7 } IO (dClk lsysclk s ● 图6更改后的SDRAM接口信号连接 3系统软件设计 此设计采用了两块Xilinx FPGA芯片,软件编 程是在ISE编程环境和EDK编程环境下完成,通过 协作设计建立了ISE和EDK两大工具的连接,发挥 了两种工具组的优势。ISE适合逻辑设计,EDK适 合嵌入式设计,ISE环境下Verilog编程,主要负责 FPGA2的在线配置、数据采集与存储以及FPGA1与 FPGA2的通信。EDK环境下c编程,主要负责对片 第2期 陈东明,叶玉堂等:基于SOPC可重构的图像采集与处理系统设计 235 内存储器FIFO以及片外存储器SDRAM的数据存 储以及对数据的算法处理。此设计以直方图均衡化 intwidth,int height)为直方图均衡化函数,imgln指向 一维输入图像数组;imgOut指向一维输出图像数组; 算法为例对采集数据进行处理,通过串行接口传输 给PC机,由应用软件显示数据灰度值图像。整个 流程如图7所示。 传输给FPGA2 t 存储于SDRAM FPGA2在线配置 N N 。 。帧图像数、 、据存储完 - "Y v ̄- 直方图均衡化 处理 N 双口RAM达 传输给PC ̄)L 到容量阈值 显示图像 图7软件设计流程 Microblaze软核在XPS环境编程下的核心代码: #include xparameters.h #include xio.h” #include xbasictypes.h #include xuartlite1.h void histEq(short imgln,short¥img0ut,int width,int height); //====================:========= ===================== int main(void){ for(m=0;Ill<=17l;m++)//图像分为172块分块处理 { ofr(i=0;i<=10239;i++)//每块为10K图像数据 { j[i]=XIo—Inl6(XPAR—GENERIC—EXTERNAL—MEMORY— MEMOBASEADDR+n+i); XUartLiteSendByte(XPAR—RS232一BASEADDR,j[i]); } histEq(J,Data,1720,6);//网像宽度为1720,10K数据总共 有6的深度 ofr(k=0;k<=10239;k++) { XIoOutl6(XPAR——GENERIC——EXTERNAL——MEMORY——MEMO—— BASEADDR+n+k,Data[k]); XUartLiteSendByte(XPAR—RS232一BASEADDR,Data[k]); }} return 0; } void histEq(short imgln,short:l:imgOut, width被处理图像宽度高度参数;height被处理图像高 度参数。一帧图像大小为1 720×1 024 bit,约1.7 Mbit,数据由SDRAM读出进行处理时需设定指针对 数据进行缓存,由于XC4VSX25芯片内部Block RAM 为2 304 kbit,不足以缓存整个图像数据,所以对图像 数据进行分块处理,具体方法如上述代码所示。图8 和图9分别为图像处理前后的灰度值图像。 图8 未处理的采集图像 图9 直方图均衡化处理后的采集图像 4结束语 本文提出了一种基于SOPC可重构的图像采集与 处理系统设计新方案,并以直方图均衡化算法为例完 成软硬调试,实现了原定功能,验证了此设计的可行 性。此嵌入式平台可以作为一个子系统应用于点钞 机,清分机等金融设备中完成纸币残损、字符识别、纸 币朝向、纸币新旧等核心算法。由于此设计采用可重 构技术,用户可以根据实际需求直接通过PC机USB 接口将修改后的算法代码文件传送到目标板上从而完 成清分机核心算法修改或者升级,还可以进一步开发 uC/OS-lI、ucLinL1X等嵌入式操作系统在FPGA上的移 植从而实现更加复杂的算法并且提高处理速度。因此 本文提出的以SOPC嵌入式技术为核心的硬件平台在 许多军事领域,商业领域如信息查询机、POS机、智能 指纹考勤仪、自动售货机、智能加油机、ATM机、清分机 等方面的应用逐渐广泛起来,打破了传统数字信号处 理器(DSP)的垄断地位,具有美好的发展前景。