《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于NiosⅡ的圖像采集和顯示的實現
基于NiosⅡ的圖像采集和顯示的實現
《電子技術應用》2007年第2期
羅 鈞1,吳克松1,廖紅華1,
摘要: 采用OV2610的CMOS圖像傳感器和26K色的TFT液晶屏,在SOPC上集成了OV2610、TFT液晶控制器和DMA控制器,實現了圖像數據流的采集和顯示。
Abstract:
Key words :

摘 要:采用OV2610的CMOS圖像傳感器和26K色的TFT液晶屏,在SOPC上集成了OV2610、TFT液晶控制器和DMA控制器,實現了圖像數據流的采集和顯示。
關鍵詞:DMA  Avalon數據流模式  SDRAM

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

 


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

   


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

 


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

 


    CMOS圖像采集" title="圖像采集">圖像采集時序與TFT液晶時序類似。
    在SOPC平臺中,要設計CMOS傳感器與Avalon的接口,將數據存儲到SDRAM,掛接到Avalon總線上。本系統CMOS采集時序模塊和TFT液晶時序發生模塊都設計成為Avalon的從設備,需要用到address、clk、reset、chipselect、read、readdata、begintransfer、endofpacket引腳。
    設計TFT_LCD與Avalon的接口也需要用到clk、reset、chipselect、address、write、writedata、begintransfer、endofpacket。在SOPCbuilder4.2環境中可以創建用戶自定義的元件,這里采用HDL文件描述控制器的行為。
    數據傳輸需要按照Avalon總線從模式傳輸的總線接口時序進行。從圖5的傳輸時序可以看出,流模式的數據傳輸與FIFO的傳輸時序相似,因此在FIFO與Avalon總線的接口上能夠做到無縫連接。這里Avalon總線將FIFO讀入DMA或Nios Ⅱ的主端口的時鐘是內部總線的時鐘,本系統采用80MHz。也就是說,用流模式傳輸的最大帶寬能達到160Mbps,可滿足300萬像素、圖像采集30幀/s的要求,比用PIO方式采集的帶寬要大。圖像采集系統的關鍵為SDRAM的存儲部分。在SOPC的設計中,如果更多的主端口掛接到SDRAM控制器上,則SDRAM的仲裁電路消耗的時間就會增加,從而造成SDRAM的數據存儲速度下降。當連接到SDRAM控制器的主端口過多時,就會成為圖像數據傳輸的瓶頸。

 


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


    整個系統中,初始化DMA是關鍵,其初始化流程如圖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;
    在注冊DMA設備的函數中,NiosⅡ會調sys_dev_init函數完成DMA HAL層的初始化,同時指明中斷服務程序的函數入口地址,而其他語句主要是完成DMA寄存器的正確配置。
3.3 數據整理
    采集的原始圖像數據為Bayer模式,如表2所示。而采用了CFA技術,則需要轉換成BT666的數據格式,用于TFT的LCD液晶顯示。由于TFT液晶像素的分辨率為QVGA(320×240),而從圖像傳感器采集到的圖像像素為SVGA(1600×1200),所以需要裁剪原來的圖像。采取了16:1的抽取方式來顯示圖像,這些數據的處理都可以在NiosⅡ IDE的軟件環境中靈活處理。

 


    圖8便是最終調試采集到的一幅200萬像素的CMOS圖像。它通過在NiosⅡ的環境中采用PIO內核,遵循CompactFlash Card接口協議模擬出CF卡的控制器,同時在NiosⅡIDE的環境中通過對采集到的RAW圖像數據進行整理插補還原,按照FAT16的文件系統寫到CompactFlash Card中。

 


    從采集實驗得到的圖像可以看出,圖像的質量很好,圖像的信噪比高。由此在SOPC平臺上開發圖像的采集和顯示控制器,能增強系統的靈活性和適應性。同時,由于一些組織提供了公開的IP核,將其應用到自開發系統上,可以縮短設計開發周期,也是一種低成本的途徑。這種'軟'硬件全新的設計概念,將會在智能測量、自動控制、便攜式儀器儀表等領域得到廣泛應用。
參考文獻
[1] 徐寧儀,周祖成.Avalon總線與SOPC系統架構實例[J].半導體技術,2003,(2).
[2] 方茁,陳澤文,彭澄廉.SOPC設計中的用戶自定義邏輯.計算機工程,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.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲一区999| 亚洲少妇中出一区| 一区二区激情| 亚洲二区在线视频| 好吊色欧美一区二区三区四区| 国产精品劲爆视频| 欧美午夜在线视频| 欧美性大战久久久久久久蜜臀| 欧美日韩精品一区视频| 欧美另类视频| 欧美日韩精品久久| 欧美午夜寂寞影院| 国产精品99一区| 国产精品美女久久| 国产精品影视天天线| 国产日韩在线视频| 国产亚洲欧美一区二区| 黑人巨大精品欧美一区二区| 黄色欧美成人| 在线精品亚洲一区二区| 亚洲高清123| 亚洲乱码国产乱码精品精天堂| 亚洲免费观看高清在线观看| 一区二区91| 亚洲伊人观看| 欧美在线播放一区| 亚洲福利国产| 亚洲精品麻豆| 亚洲天堂第二页| 欧美在线播放| 久久亚洲不卡| 欧美久久久久免费| 国产精品久久久久久久久久三级 | 亚洲深爱激情| 亚洲欧美日韩国产一区二区三区| 性欧美超级视频| 久久先锋资源| 欧美日韩精品一区| 国产麻豆成人精品| 在线精品高清中文字幕| 日韩亚洲精品视频| 羞羞色国产精品| 亚洲精选视频在线| 午夜精品成人在线视频| 久久人人看视频| 欧美理论大片| 国产日韩高清一区二区三区在线| 激情丁香综合| 一区二区精品国产| 久久av一区二区三区亚洲| 亚洲人人精品| 欧美一区二视频| 欧美福利一区| 国产免费成人在线视频| 亚洲电影专区| 亚洲一区国产| 亚洲人成绝费网站色www| 亚洲女人小视频在线观看| 久久亚洲精选| 欧美三级在线视频| 狠狠爱www人成狠狠爱综合网| 亚洲精品一二三| 欧美一级淫片aaaaaaa视频| 亚洲精品在线免费| 久久精品99国产精品酒店日本| 欧美激情一区在线| 国产一区二区高清| 一本色道久久综合亚洲二区三区| 亚洲成人在线视频播放 | 国产麻豆9l精品三级站| 91久久精品日日躁夜夜躁欧美| 亚洲永久字幕| 夜夜嗨av色综合久久久综合网| 久久精品道一区二区三区| 欧美日韩免费观看一区三区| 狠狠综合久久| 亚洲在线日韩| 99热这里只有精品8| 久久久久久久国产| 国产精品久久久久久久久久久久| 亚洲国产精品视频| 欧美在线视频一区| 性欧美大战久久久久久久免费观看 | 久久国产视频网站| 欧美系列精品| 亚洲人成在线播放网站岛国| 欧美在线观看视频| 性色av香蕉一区二区| 欧美日韩综合| 91久久国产综合久久91精品网站| 久久精品91久久久久久再现| 欧美一区二区三区精品| 欧美午夜一区二区福利视频| 亚洲激情图片小说视频| 亚洲二区视频| 久热这里只精品99re8久| 国产毛片久久| 亚洲愉拍自拍另类高清精品| 亚洲午夜久久久久久久久电影网| 欧美成人午夜影院| 国内一区二区三区| 欧美一区二区三区视频在线| 午夜精品视频在线观看| 欧美视频四区| 亚洲精品社区| 夜夜狂射影院欧美极品| 欧美国产日韩精品| 亚洲国产福利在线| 亚洲激情图片小说视频| 玖玖玖国产精品| 好吊日精品视频| 亚洲第一精品福利| 久久久噜噜噜久久狠狠50岁| 国产日产欧产精品推荐色| 亚洲欧美激情四射在线日| 亚洲永久字幕| 国产精品嫩草99a| 亚洲综合久久久久| 欧美在线观看日本一区| 国产日韩欧美在线播放| 午夜亚洲视频| 久久久久欧美| 在线播放豆国产99亚洲| 亚洲区第一页| 欧美激情一区在线| 夜夜嗨av一区二区三区四季av| 亚洲天堂第二页| 国产精品免费久久久久久| 亚洲五月六月| 欧美专区福利在线| 国产真实乱子伦精品视频| 亚洲国产高清自拍| 欧美福利专区| 日韩亚洲在线观看| 翔田千里一区二区| 国产一区二区三区的电影| 久久激情五月婷婷| 欧美成人午夜激情在线| 亚洲久久一区| 亚洲欧美日韩综合| 国语自产精品视频在线看抢先版结局| 久久国内精品视频| 欧美黄色免费| 亚洲视频一区二区免费在线观看| 午夜精品久久久久影视 | 亚洲电影一级黄| 欧美电影电视剧在线观看| 亚洲精品免费一二三区| 亚洲一区在线直播| 国产亚洲欧美日韩一区二区| 最近中文字幕日韩精品| 欧美日一区二区在线观看 | 亚洲一区二区三区影院| 国产亚洲精品成人av久久ww| 亚洲福利免费| 欧美日韩国产一级| 亚洲男人的天堂在线| 久久亚洲精品一区二区| 亚洲精品永久免费| 欧美呦呦网站| 亚洲激情视频在线| 午夜宅男久久久| 亚洲高清视频中文字幕| 亚洲欧美日韩国产成人| 激情久久久久久久| 在线亚洲欧美视频| 海角社区69精品视频| 99re66热这里只有精品4| 国产精品推荐精品| 最新亚洲一区| 国产精品午夜在线观看| 91久久在线视频| 国产精品乱码一区二三区小蝌蚪| 久久av二区| 欧美日韩免费看| 久久精品欧洲| 国产精品久久久久久久电影| 亚洲国产精品一区二区久| 国产精品露脸自拍| 亚洲乱码国产乱码精品精| 国产精品永久在线| 日韩视频精品在线观看| 国产日韩欧美二区| 国产精品99久久久久久人| 精品成人乱色一区二区| 亚洲男人第一av网站| 亚洲国产视频一区二区| 久久国产精品免费一区| 一本色道88久久加勒比精品| 老鸭窝91久久精品色噜噜导演| 一本色道久久综合亚洲精品不卡| 巨乳诱惑日韩免费av| 亚洲一区二区三区乱码aⅴ| 欧美激情影音先锋| 欧美有码在线视频| 国产精品乱码人人做人人爱| 亚洲免费电影在线观看| 国产一区二区三区免费不卡| 亚洲一区二区综合| 91久久久精品|