首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

SoPC技术在图像采集和处理系统中的应用设计(1)

SoPC技术在图像采集和处理系统中的应用设计(1)

随着计算机技术和人工智能技术的快速发展,图像识别技术已成为人工智能的基础技术,它涉及的技术领域越来越广泛,应用越来越深入。随着现代工业生产向高速化、自动化方向的发展,以形状为特征的图像识别在现代生产中的应用日益增加,不论是材料、工业自动化、遥感技术,还是产品质检都需要对形状进行检测。因此,开发集图像信号的采集与处理于一体、具有高集成度、高保密性的图像处理系统将成为行业的发展趋势。此外,基于32 bit微处理器纯嵌入式系统的图像采集处理技术正处于方兴未艾阶段,发展前景广阔,可广泛应用于工业自动化生产、监护/防盗系统、机器人视觉等技术中。 SoPC技术是Altera公司提出的一种灵活、高效的SoC解决方案,是一种新的软硬件协同设计的系统设计技术。本系统就是在这种背景下提出的。其主要工作是设计一个实用的图像采集和处理平台,能完成目标图像的采集输入,并能对采集到的图像进行处理和识别。
1 系统整体方案及硬件设计
系统要求在FPGA片内利用SoPC技术实现便携式的图像采集与处理。它通过对原始图像的扫描,经数字图像处理与识别后即可将得到的大容量的承载信息(包括文字、头像、指纹等个人信息)在LCD上显示,并可通过USB接口将信息拷贝,或通过RS-232接口将信息上传给PC机,也可以通过 GPRS将获得的信息方便快捷地发往数据中心作验证。
整个系统的核心部分是内嵌Nios II软核的FPGA,外围设备和芯片包括图像获取设备、显示器及片外SDRAM和FLASH存储器、输入设备等。系统结构框图如图1所示。

系统的工作过程是:系统配置完成后,视频获取设备获取视频图像,每帧图像经模数转换生成图像数据进入预处理模块,经预处理后的图像数据送入SDRAM存储器,由Nios II处理器进行图像的后续处理和控制。处理后的图像经数模转换在监视器上实时显示。
1.1 图像采集接口电路设计
本系统采用美国OmiVision公司的数字式彩色CMOS图像传感器OV7640。该芯片分辨率为640×480像素,成像速度为30帧/s,采取逐行扫描方式,输出为数字信号。工作原理如图2。


图像采集的程序流程是:首先Nios初始化OV7640的各个寄存器,主要包括状态寄存器(STA)、数据和时钟控制寄存器(CLKRC)、自动增益控制寄存器(AGC)的设置;然后查询等待,条码图像被OV7640采集进入数据寄存器后,通过DMA方式存入SDRAM,Nios再从SDRAM 中提取数据进行译码。
1.2 基于Nios的SoPC系统硬件设计
基于Nios软核的SoPC系统设计是整个系统硬件设计的核心,包括Nios软核处理器的设计、数据采集控制的设计、图像信号FFT分析的实现、参数显示以及RS232通信模块的设计等。另外,使用Nios进行嵌入式设计在硬件上必需使用Altera公司的FPGA。
Nios处理器核的硬件设计是根据系统的功能要求定制合适的CPU和外设,然后在SoPC和Quartus II中实现。在硬件设计流程中,可以灵活定制Nios CPU的许多特性甚至指令,可以使用Altera提供的IP Core来加快设计者开发Nios外设的速度并提高外设性能,也可以使用第三方的IP Core,或者使用VHDL、Verilog自行定制外设。
系统Nios外设主要包括:
(1)CMOS图像传感器接口模块。由于Altera没有提供CMOS图像传感器接口模块,所以使用VHDL编程自行定制。通过VHDL编程设计一个CMOS图像传感器控制模块,采用接入Avalon总线的方式自定制外设。


(2)由于要对数字图像信号进行FFT运算,所以采集的数据必须先进行存储,然后再作FFT计算。因此,必须设计FIFO存储器和FFT实现的硬件。
(3)RS232通信电路模块。RS232通信可以通过串行口UART加上一个转换芯片来实现。所以,本系统利用SoPC中提供的UART组件来实现RS232通信接口的设计。
(4)LCD液晶显示模块。LCD液晶显示是通过配置Nios的PIO接口来控制的。
除上面所述之外,根据系统要求,Nios处理器核应当配置以下组件及接口模块:cpu、boot_rom(用于系统引导)、uart1(用于系统的仿真调试)、uart_rs232(用于串口通讯)、Timer1(系统内部时钟)、lan_timer(以太网通信用时钟)、 button_pio(用于参数设置)、lcd_pio(用于参数显示)、user_logic_ad_nv_ctl和 user_logic_ad_power_ctl(自定义的AD转换的接口模块)、Ethernet(用于以太网通信)、ext_ram(外部 SRAM)、dma(用于将采集的数据直接存入SRAM中)和ext_flash(外部flash)。
本系统中数据的存储是通过设计FIFO存储器电路实现的。FIFO存储器电路主要由一个双口RAM模块(Dual-Port RAM)和状态机模块(State Machine Table)组成,通过先进先出(FIFO)堆栈把数据存储在双口RAM中。其设计是在Matlab环境下利用Altera DSP Builder设计工具实现的。
电路设计完成并仿真验证成功后,应用DSP Builder中的signal Compiler进行编译分析,经signal Compiler转换后可以变成VHDL语言的程序。同时,在Quartus II中,可以将VHDL语言程序转换成电路符号,便于应用原理图的方法设计硬件系统。由FIFO存储器的VHDL程序生成的电路符号如图3所示。在设计过程中,需要用到Quartus II软件和其内嵌的IP Toolbench。按照本系统的要求设置FFT的参数为:点数为1 024点,数据宽度为12 bit。最后设计生成FFT的MegaCore Function模块,包含一些VHDL程序及其他相关的文件。由VHDL程序生成的FFT模块电路符号如图4所示。


2 系统软件设计
返回列表