當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于NiosⅡ的圖像采集和顯示的實(shí)現(xiàn)

隨著大規(guī)模集成電路設(shè)計(jì)技術(shù)的進(jìn)步、制造工藝水平的提高以及單個(gè)芯片上的邏輯門數(shù)的增加,嵌入式系統(tǒng)設(shè)計(jì)變得日益復(fù)雜。把整個(gè)系統(tǒng)集成到一個(gè)芯片上,即片上系統(tǒng)SoC(System on Chip)技術(shù)是當(dāng)前嵌入式系統(tǒng)設(shè)計(jì)的一個(gè)研究熱點(diǎn)。在Altera公司提供的SOPC平臺(tái)上設(shè)計(jì)的基于FPGA的SoC系統(tǒng),具有開發(fā)周期短、成本低和可重構(gòu)等多種優(yōu)點(diǎn)。
1 系統(tǒng)設(shè)計(jì)
    基于NiosⅡ的高速圖像數(shù)據(jù)采集和顯示系統(tǒng)的實(shí)現(xiàn)通常有兩種方案。一種是在NiosⅡ處理器上使用軟件控制PIO(Peripheral I/O)端口模擬采集模塊的時(shí)序,從而可靈活地存儲(chǔ)圖像數(shù)據(jù),并可按照?qǐng)D像宏塊(如8×8像素的MCU塊)存入SDRAM的連續(xù)地址中;第二種方案是加FIFO緩沖區(qū),圖像數(shù)據(jù)直接經(jīng)DMA控制器存儲(chǔ)SDRAM,這種方案能節(jié)省NiosⅡ的軟件開銷,更高效地完成圖像的采集工作。
    本系統(tǒng)采用的FPGA為Altera的EP1C6Q240C8,它有5980個(gè)LC(邏輯門單元)和20個(gè)M4K的RAM塊。本系統(tǒng)設(shè)計(jì)的一個(gè)11位深度的DMA控制器,需要280個(gè)Logic Cells和151個(gè)LC Registers,占FPGA整個(gè)系統(tǒng)資源的7.2%,其資源占用較少。本系統(tǒng)設(shè)計(jì)了兩個(gè)DMA控制器,一個(gè)用于前端采集模塊通道,一個(gè)用于后端顯示模塊通道。
    由于CMOS和CCD的固體圖像傳感器的類型很多,有些傳感器(如OV7620)輸出的是YCrCb(4:2:2)的格式,但大多數(shù)CMOS和CCD的圖像傳感器出來的圖像數(shù)據(jù)是Raw Data(Bayer)的數(shù)據(jù)格式。所以首先需要對(duì)這些圖像數(shù)據(jù)進(jìn)行CFA插補(bǔ)。為了節(jié)省軟件開銷,本系統(tǒng)采用了一種最簡(jiǎn)單的CFA插補(bǔ)算法(Bilinear),與高階B-spline和cubic-spline等插補(bǔ)函數(shù)相比,圖像的像質(zhì)相差不大。但Bilinear的算法要簡(jiǎn)單得多,消耗的軟件資源相對(duì)要少。插補(bǔ)后的圖像需要進(jìn)一步裁剪成液晶屏能顯示的分辨率(QVGA),RGB分量只取高6位。
2 硬件設(shè)計(jì)
2.1 系統(tǒng)的硬件電路圖
    系統(tǒng)電路圖如圖1所示。

 


    從圖1可以看出,系統(tǒng)的采集、存儲(chǔ)和顯示模塊的控制器都是在EP1C6Q240C8這塊FPGA上完成。
2.2 FPGA中的電路設(shè)計(jì)
    在FPGA中需要設(shè)計(jì)3種控制器,即CMOS采集控制器、SDRAM控制器、TFT液晶顯示控制器。Altera公司提供了SDRAM的控制器,需要根據(jù)具體的SDRAM器件正確配置SDRAM控制器的時(shí)間參數(shù),才能正常、穩(wěn)定地工作。本系統(tǒng)采用的SDRAM型號(hào)為HY57V561620T-H,其配置參數(shù)如表1所示。

   


    OV2610和TFT液晶的控制器如圖2和圖3所示。兩個(gè)控制器都用硬件描述語言寫用戶邏輯,創(chuàng)建Alvalon Slave接口,直接連接到DMA控制器的主端口。通過NiosII CPU數(shù)據(jù)和程序總線寫DMA的控制器字來控制數(shù)據(jù)的采集和顯示。

 


    OV2610的圖像數(shù)據(jù)在TFT液晶屏上顯示時(shí),需要設(shè)計(jì)兩個(gè)DMA控制器,一個(gè)用做圖像數(shù)據(jù)采集通道,一個(gè)用做圖像顯示通道。由于OV2610圖像數(shù)據(jù)的接口是數(shù)據(jù)流的形式,用FIFO存儲(chǔ)單元來做緩存與雙口RAM相比,不需要設(shè)計(jì)地址發(fā)生器,減少了FPGA內(nèi)部的邏輯綜合布線。具體設(shè)計(jì)包括兩部分:第一部分采用硬件描述語言設(shè)計(jì)CMOS采集和液晶顯示模塊的時(shí)序發(fā)生器;第二部分是在NiosⅡ IDE環(huán)境下,用C語言編寫DMA初始化和控制程序。
    CMOS采集時(shí)序模塊和TFT液晶時(shí)序發(fā)生模塊都需要嚴(yán)格按照CMOS圖像傳感器和TFT液晶顯示的時(shí)序設(shè)計(jì)。在CMOS采集控制器和液晶控制器的設(shè)計(jì)中,關(guān)鍵是設(shè)計(jì)好時(shí)序產(chǎn)生模塊的邏輯,同時(shí)采集和顯示的數(shù)據(jù)需要存儲(chǔ)到資源有限的FIFO中。在EP1C6Q240C8內(nèi)部,由于只有20個(gè)M4K的存儲(chǔ)單元,所以資源有限。在CMOS采集控制器中,會(huì)占用11位深度2KB的FIFO存儲(chǔ)單元;QVGA分辨率(320×240),液晶顯示模塊要設(shè)計(jì)9位深度512B的FIFO存儲(chǔ)單元做顯存才能滿足要求。
    用硬件描述語言設(shè)計(jì)采集時(shí)序模塊和液晶時(shí)序發(fā)生模塊的控制器。在Quartus Ⅱ Simulator中模擬的液晶時(shí)序發(fā)生控制器波形如圖4所示。

 


    CMOS圖像采集時(shí)序與TFT液晶時(shí)序類似。
    在SOPC平臺(tái)中,要設(shè)計(jì)CMOS傳感器與Avalon的接口,將數(shù)據(jù)存儲(chǔ)到SDRAM,掛接到Avalon總線上。本系統(tǒng)CMOS采集時(shí)序模塊和TFT液晶時(shí)序發(fā)生模塊都設(shè)計(jì)成為Avalon的從設(shè)備,需要用到address、clk、reset、chipselect、read、readdata、begintransfer、endofpacket引腳。
    設(shè)計(jì)TFT_LCD與Avalon的接口也需要用到clk、reset、chipselect、address、write、writedata、begintransfer、endofpacket。在SOPCbuilder4.2環(huán)境中可以創(chuàng)建用戶自定義的元件,這里采用HDL文件描述控制器的行為。
    數(shù)據(jù)傳輸需要按照Avalon總線從模式傳輸?shù)目偩€接口時(shí)序進(jìn)行。從圖5的傳輸時(shí)序可以看出,流模式的數(shù)據(jù)傳輸與FIFO的傳輸時(shí)序相似,因此在FIFO與Avalon總線的接口上能夠做到無縫連接。這里Avalon總線將FIFO讀入DMA或Nios Ⅱ的主端口的時(shí)鐘是內(nèi)部總線的時(shí)鐘,本系統(tǒng)采用80MHz。也就是說,用流模式傳輸?shù)淖畲髱捘苓_(dá)到160Mbps,可滿足300萬像素、圖像采集30幀/s的要求,比用PIO方式采集的帶寬要大。圖像采集系統(tǒng)的關(guān)鍵為SDRAM的存儲(chǔ)部分。在SOPC的設(shè)計(jì)中,如果更多的主端口掛接到SDRAM控制器上,則SDRAM的仲裁電路消耗的時(shí)間就會(huì)增加,從而造成SDRAM的數(shù)據(jù)存儲(chǔ)速度下降。當(dāng)連接到SDRAM控制器的主端口過多時(shí),就會(huì)成為圖像數(shù)據(jù)傳輸?shù)钠款i。

 


3 系統(tǒng)軟件設(shè)計(jì)
3.1 NiosII IDE軟件環(huán)境
    系統(tǒng)硬件要正確運(yùn)行,還需要在NiosⅡ IDE的軟件環(huán)境中正確地配置兩路DMA的控制寄存器,同時(shí)設(shè)計(jì)好DMA的源地址和目的地址。
    由于Altera為NiosⅡ處理器用戶提供硬件抽象層(HAL)系統(tǒng)庫驅(qū)動(dòng)程序,允許用戶使用HAL應(yīng)用程序接口(API)函數(shù)訪問外設(shè),所以用戶能方便地操作底層硬件。
    本系統(tǒng)設(shè)計(jì)中,HAL層采用NiosⅡIDE提供的驅(qū)動(dòng)程序,在altera_avalon_dma_regs.h文件中定義了各個(gè)DMA的控制寄存器和各個(gè)位控單元的宏定義,為編程提供了一種標(biāo)準(zhǔn)的頭文件。雖然altera_avalon_dma.c文件中也提供了一些標(biāo)準(zhǔn)的DMA調(diào)用函數(shù),但對(duì)系統(tǒng)速度的提高作用不大,而調(diào)用HAL層的宏可以更快地實(shí)現(xiàn)DMA的初始化及后續(xù)的圖像數(shù)據(jù)插補(bǔ)。DMA控制器寄存器都是32位,共有8個(gè)寄存器(包括與Nios相比新增加的3個(gè)寄存器),包括狀態(tài)寄存器、源地址寄存器、目標(biāo)地址寄存器、長度寄存器及控制寄存器等。
3.2 軟件實(shí)現(xiàn)流程
    實(shí)現(xiàn)CMOS圖像采集到液晶顯示的軟件流程如圖6所示。


    整個(gè)系統(tǒng)中,初始化DMA是關(guān)鍵,其初始化流程如圖7所示。

 


    以下給出DMA初始化的源代碼:
np_dma*dma_cmos_con;
dma_cmos_con=( np_dma*)DMA_0_BASE;
np_dma* pdma=(np_dma*)dma_cmos_con;
alt_irq_register(DMA_0_IRQ,(void*)pdma,(void*)isr_dma);
pdma->np_dmacontrol=0;
pdma->np_dmastatus=0;
pdma->np_dmalength=1600*1200;
pdma->np_dmareadaddress=(int)Sdram_address;
pdma->np_dmawriteaddress=(int)na_cmos_cont;
pdma->np_dmacontrol=
np_dmacontrol_go_mask |
np_dmacontrol_i_en_mask |
np_dmacontrol_byte_mask |
np_dmacontrol_reen_mask |
np_dmacontrol_rcon_mask |
np_dmacontrol_leen_mask;
    在注冊(cè)DMA設(shè)備的函數(shù)中,NiosⅡ會(huì)調(diào)sys_dev_init函數(shù)完成DMA HAL層的初始化,同時(shí)指明中斷服務(wù)程序的函數(shù)入口地址,而其他語句主要是完成DMA寄存器的正確配置。
3.3 數(shù)據(jù)整理
    采集的原始圖像數(shù)據(jù)為Bayer模式,如表2所示。而采用了CFA技術(shù),則需要轉(zhuǎn)換成BT666的數(shù)據(jù)格式,用于TFT的LCD液晶顯示。由于TFT液晶像素的分辨率為QVGA(320×240),而從圖像傳感器采集到的圖像像素為SVGA(1600×1200),所以需要裁剪原來的圖像。采取了16:1的抽取方式來顯示圖像,這些數(shù)據(jù)的處理都可以在NiosⅡ IDE的軟件環(huán)境中靈活處理。

 


    圖8便是最終調(diào)試采集到的一幅200萬像素的CMOS圖像。它通過在NiosⅡ的環(huán)境中采用PIO內(nèi)核,遵循CompactFlash Card接口協(xié)議模擬出CF卡的控制器,同時(shí)在NiosⅡIDE的環(huán)境中通過對(duì)采集到的RAW圖像數(shù)據(jù)進(jìn)行整理插補(bǔ)還原,按照FAT16的文件系統(tǒng)寫到CompactFlash Card中。

 


    從采集實(shí)驗(yàn)得到的圖像可以看出,圖像的質(zhì)量很好,圖像的信噪比高。由此在SOPC平臺(tái)上開發(fā)圖像的采集和顯示控制器,能增強(qiáng)系統(tǒng)的靈活性和適應(yīng)性。同時(shí),由于一些組織提供了公開的IP核,將其應(yīng)用到自開發(fā)系統(tǒng)上,可以縮短設(shè)計(jì)開發(fā)周期,也是一種低成本的途徑。這種'軟'硬件全新的設(shè)計(jì)概念,將會(huì)在智能測(cè)量、自動(dòng)控制、便攜式儀器儀表等領(lǐng)域得到廣泛應(yīng)用。
參考文獻(xiàn)
[1] 徐寧儀,周祖成.Avalon總線與SOPC系統(tǒng)架構(gòu)實(shí)例[J].半導(dǎo)體技術(shù),2003,(2).
[2] 方茁,陳澤文,彭澄廉.SOPC設(shè)計(jì)中的用戶自定義邏輯.計(jì)算機(jī)工程,2004,(17).
[3] ALTERA Coperation.Avalon video input module application note 372 altera(Version 1.0)[Z].2004,12.
[4] ALTERA Copertion.Nios DMA,Data Sheet(Version 1.1)[Z].2003,1.
[5] ALTERA Coperation.Nios software development tutoria (Version 1.2)[Z].2003,5.

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉