设为首页 | 加入收藏 培训视频 | 关键字排名 | 采购直通车 | 资质认证 | 收费标准 | 帮助

ICBUY > 行业资讯 > 设计与运用 > 基于NiosⅡ的图像采集和显示的实现

基于NiosⅡ的图像采集和显示的实现

作者:罗 钧,吴克松,廖红华  来源:电子技术应用  发布时间:2008-08-22 08:18  评论:0条  阅读:173次 发给好友
  随着大规模集成电路设计技术的进步、制造工艺水平的提高以及单个芯片上的逻辑门数的增加,嵌入式系统设计变得日益复杂。把整个系统集成到一个芯片上,即片上系统SoC(System on Chip)技术是当前嵌入式系统设计的一个研究热点。在ALTERA公司提供的SOPC平台上设计的基于FPGA的SoC系统,具有开发周期短、成本低和可重构等多种优点。
1 系统设计
     基于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图像采集时序与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.




热门供应

型号 产品名称 品牌/产地 封装/规格 数量 供货商 地区
0805 贴片发 台湾光 C-170X 1000000 苏州高新区赛格电子市 [苏州]
0810 工字电 鸿元 0 广东鸿元电感线圈厂浙 [杭州]
全系列 安规电 中国广 环氧树 20000000 东莞市辰辉电子有限公 [东莞]
74LVC1G08GW 100%都 NXP/PH SOT353 33200 深圳市冰鑫洋电子有限 [深圳]
TY-1151 压力变 天康 1 500 安徽天康(集团)股份有 [滁州]

热门求购

采购标题 品牌/产地 批号 规格/封装 数量 无铅 交货期 发布时间
 采购手机IC,及 SUNPLU 2000 无铅 1 08-12
 高价求购库存 10000 无铅 不限 08-12
 收购厂家库存 不限 无铅 长期 08-12
 求购,MC13778 10000 无铅 不限 08-12
 长期收购电脑 3600 无铅 3 08-12
推荐资讯
图片新闻
热点专题:
PCB专题
    PCB专题
    电子信息产业已经成为我国国民经济第一大支柱产业,而在这一产业中起着承上启下作用的印制电路板业规模已居全球第二,目前正在向全球龙头老大的地位进 详细
2007年春季(第69届)中国电子
    2007年春季(第69届)中国电子
    CEF春季会自2004年结束巡展模式、定址深圳以来,连续两年在深圳高交会展览中心举行,并启用所有可用场馆。第67届(春季)全国电子展更是扩容乔迁至深圳 详细
最新问答
分类导行
关于我们 | 联系我们 | 招聘信息 | 广告服务 | 帮助中心 | 友情链接 | 设为首页 | 收藏本网
Email:
ICBuy.Com © 2007 版权所有 不得转载 浙B2-20060234号