基于Nios软核的SoPC系统硬件设计

接口/总线/驱动

1117人已加入

描述

对基于FPGA以及NIOS的图像采集与处理系统进行了深入研究,在完成硬件实验平台设计的基础上,完成了嵌入式操作系统的移植及应用程序的设计。以PDF417二维条码的识别为例,对识别过程及识别算法进行研究,并对所设计的系统进行测试,达到了较好的识别效果。

随着计算机技术和人工智能技术的快速发展,图像识别技术已成为人工智能的基础技术,它涉及的技术领域越来越广泛,应用越来越深入。随着现代工业生产向高速化、自动化方向的发展,以形状为特征的图像识别在现代生产中的应用日益增加,不论是材料、工业自动化、遥感技术,还是产品质检都需要对形状进行检测。因此,开发集图像信号的采集与处理于一体、具有高集成度、高保密性的图像处理系统将成为行业的发展趋势。此外,基于32 bit微处理器纯嵌入式系统的图像采集处理技术正处于方兴未艾阶段,发展前景广阔,可广泛应用于工业自动化生产、监护/防盗系统、机器人视觉等技术中。SoPC技术是Altera公司提出的一种灵活、高效的SoC解决方案,是一种新的软硬件协同设计的系统设计技术。本系统就是在这种背景下提出的。其主要工作是设计一个实用的图像采集和处理平台,能完成目标图像的采集输入,并能对采集到的图像进行处理和识别。

1 系统整体方案及硬件设计

系统要求在FPGA片内利用SoPC技术实现便携式的图像采集与处理。它通过对原始图像的扫描,经数字图像处理与识别后即可将得到的大容量的承载信息(包括文字、头像、指纹等个人信息)在LCD上显示,并可通过USB接口将信息拷贝,或通过RS-232接口将信息上传给PC机,也可以通过GPRS将获得的信息方便快捷地发往数据中心作验证。

整个系统的核心部分是内嵌Nios II软核的FPGA,外围设备和芯片包括图像获取设备、显示器及片外SDRAM和FLASH存储器、输入设备等。系统结构框图如图1所示。

RS-232接口

系统的工作过程是:系统配置完成后,视频获取设备获取视频图像,每帧图像经模数转换生成图像数据进入预处理模块,经预处理后的图像数据送入SDRAM存储器,由Nios II处理器进行图像的后续处理和控制。处理后的图像经数模转换在监视器上实时显示。

1.1 图像采集接口电路设计

本系统采用美国OmiVision公司的数字式彩色CMOS图像传感器OV7640。该芯片分辨率为640×480像素,成像速度为30帧/s,采取逐行扫描方式,输出为数字信号。工作原理如图2。

RS-232接口

图像采集的程序流程是:首先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所示。

RS-232接口

RS-232接口

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分