首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

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

采用OV2610的CMOS图像传感器和26K色的TFT液晶屏,在SOPC上集成了OV2610、TFT液晶控制器和DMA控制器,实现了图像数据流的采集和显示。
  随着大规模集成电路设计技术的进步、制造工艺水平的提高以及单个芯片上的逻辑门数的增加,嵌入式系统设计变得日益复杂。把整个系统集成到一个芯片上,即片上系统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存储单元做显存才能满足要求。
返回列表