SoPC技術(shù)在圖像采集和處理系統(tǒng)中的應(yīng)用設(shè)計(jì)
1 系統(tǒng)整體方案及硬件設(shè)計(jì)
系統(tǒng)要求在FPGA片內(nèi)利用SoPC技術(shù)實(shí)現(xiàn)便攜式的圖像采集與處理。它通過(guò)對(duì)原始圖像的掃描,經(jīng)數(shù)字圖像處理與識(shí)別后即可將得到的大容量的承載信息(包括文字、頭像、指紋等個(gè)人信息)在LCD上顯示,并可通過(guò)USB接口將信息拷貝,或通過(guò)RS-232接口將信息上傳給PC機(jī),也可以通過(guò)GPRS將獲得的信息方便快捷地發(fā)往數(shù)據(jù)中心作驗(yàn)證。
整個(gè)系統(tǒng)的核心部分是內(nèi)嵌Nios II軟核的FPGA,外圍設(shè)備和芯片包括圖像獲取設(shè)備、顯示器及片外SDRAM和FLASH存儲(chǔ)器、輸入設(shè)備等。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。本文引用地址:http://www.ex-cimer.com/article/151883.htm
系統(tǒng)的工作過(guò)程是:系統(tǒng)配置完成后,視頻獲取設(shè)備獲取視頻圖像,每幀圖像經(jīng)模數(shù)轉(zhuǎn)換生成圖像數(shù)據(jù)進(jìn)入預(yù)處理模塊,經(jīng)預(yù)處理后的圖像數(shù)據(jù)送入SDRAM存儲(chǔ)器,由Nios II處理器進(jìn)行圖像的后續(xù)處理和控制。處理后的圖像經(jīng)數(shù)模轉(zhuǎn)換在監(jiān)視器上實(shí)時(shí)顯示。
1.1 圖像采集接口電路設(shè)計(jì)
本系統(tǒng)采用美國(guó)OmiVision公司的數(shù)字式彩色CMOS圖像傳感器OV7640。該芯片分辨率為640×480像素,成像速度為30幀/s,采取逐行掃描方式,輸出為數(shù)字信號(hào)。工作原理如圖2。
圖像采集的程序流程是:首先Nios初始化OV7640的各個(gè)寄存器,主要包括狀態(tài)寄存器(STA)、數(shù)據(jù)和時(shí)鐘控制寄存器(CLKRC)、自動(dòng)增益控制寄存器(AGC)的設(shè)置;然后查詢等待,條碼圖像被OV7640采集進(jìn)入數(shù)據(jù)寄存器后,通過(guò)DMA方式存入SDRAM,Nios再?gòu)腟DRAM中提取數(shù)據(jù)進(jìn)行譯碼。
1.2 基于Nios的SoPC系統(tǒng)硬件設(shè)計(jì)
基于Nios軟核的SoPC系統(tǒng)設(shè)計(jì)是整個(gè)系統(tǒng)硬件設(shè)計(jì)的核心,包括Nios軟核處理器的設(shè)計(jì)、數(shù)據(jù)采集控制的設(shè)計(jì)、圖像信號(hào)FFT分析的實(shí)現(xiàn)、參數(shù)顯示以及RS232通信模塊的設(shè)計(jì)等。另外,使用Nios進(jìn)行嵌入式設(shè)計(jì)在硬件上必需使用Altera公司的FPGA。
Nios處理器核的硬件設(shè)計(jì)是根據(jù)系統(tǒng)的功能要求定制合適的CPU和外設(shè),然后在SoPC和Quartus II中實(shí)現(xiàn)。在硬件設(shè)計(jì)流程中,可以靈活定制Nios CPU的許多特性甚至指令,可以使用Altera提供的IP Core來(lái)加快設(shè)計(jì)者開(kāi)發(fā)Nios外設(shè)的速度并提高外設(shè)性能,也可以使用第三方的IP Core,或者使用VHDL、Verilog自行定制外設(shè)。
系統(tǒng)Nios外設(shè)主要包括:
(1)CMOS圖像傳感器接口模塊。由于Altera沒(méi)有提供CMOS圖像傳感器接口模塊,所以使用VHDL編程自行定制。通過(guò)VHDL編程設(shè)計(jì)一個(gè)CMOS圖像傳感器控制模塊,采用接入Avalon總線的方式自定制外設(shè)。
(2)由于要對(duì)數(shù)字圖像信號(hào)進(jìn)行FFT運(yùn)算,所以采集的數(shù)據(jù)必須先進(jìn)行存儲(chǔ),然后再作FFT計(jì)算。因此,必須設(shè)計(jì)FIFO存儲(chǔ)器和FFT實(shí)現(xiàn)的硬件。
(3)RS232通信電路模塊。RS232通信可以通過(guò)串行口UART加上一個(gè)轉(zhuǎn)換芯片來(lái)實(shí)現(xiàn)。所以,本系統(tǒng)利用SoPC中提供的UART組件來(lái)實(shí)現(xiàn)RS232通信接口的設(shè)計(jì)。
(4)LCD液晶顯示模塊。LCD液晶顯示是通過(guò)配置Nios的PIO接口來(lái)控制的。
除上面所述之外,根據(jù)系統(tǒng)要求,Nios處理器核應(yīng)當(dāng)配置以下組件及接口模塊:cpu、boot_rom(用于系統(tǒng)引導(dǎo))、uart1(用于系統(tǒng)的仿真調(diào)試)、uart_rs232(用于串口通訊)、Timer1(系統(tǒng)內(nèi)部時(shí)鐘)、lan_timer(以太網(wǎng)通信用時(shí)鐘)、button_pio(用于參數(shù)設(shè)置)、lcd_pio(用于參數(shù)顯示)、user_logic_ad_nv_ctl和user_logic_ad_power_ctl(自定義的AD轉(zhuǎn)換的接口模塊)、Ethernet(用于以太網(wǎng)通信)、ext_ram(外部SRAM)、dma(用于將采集的數(shù)據(jù)直接存入SRAM中)和ext_flash(外部flash)。
本系統(tǒng)中數(shù)據(jù)的存儲(chǔ)是通過(guò)設(shè)計(jì)FIFO存儲(chǔ)器電路實(shí)現(xiàn)的。FIFO存儲(chǔ)器電路主要由一個(gè)雙口RAM模塊(Dual-Port RAM)和狀態(tài)機(jī)模塊(State Machine Table)組成,通過(guò)先進(jìn)先出(FIFO)堆棧把數(shù)據(jù)存儲(chǔ)在雙口RAM中。其設(shè)計(jì)是在Matlab環(huán)境下利用Altera DSP Builder設(shè)計(jì)工具實(shí)現(xiàn)的。
電路設(shè)計(jì)完成并仿真驗(yàn)證成功后,應(yīng)用DSP Builder中的signal Compiler進(jìn)行編譯分析,經(jīng)signal Compiler轉(zhuǎn)換后可以變成VHDL語(yǔ)言的程序。同時(shí),在Quartus II中,可以將VHDL語(yǔ)言程序轉(zhuǎn)換成電路符號(hào),便于應(yīng)用原理圖的方法設(shè)計(jì)硬件系統(tǒng)。由FIFO存儲(chǔ)器的VHDL程序生成的電路符號(hào)如圖3所示。在設(shè)計(jì)過(guò)程中,需要用到Quartus II軟件和其內(nèi)嵌的IP Toolbench。按照本系統(tǒng)的要求設(shè)置FFT的參數(shù)為:點(diǎn)數(shù)為1 024點(diǎn),數(shù)據(jù)寬度為12 bit。最后設(shè)計(jì)生成FFT的MegaCore Function模塊,包含一些VHDL程序及其他相關(guān)的文件。由VHDL程序生成的FFT模塊電路符號(hào)如圖4所示。
電氣符號(hào)相關(guān)文章:電氣符號(hào)大全
存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理
評(píng)論