基于NiosⅡ的图像采集和显示的实现
发布时间:2008/8/19 0:00:00 访问次数:552
随着大规模集成电路设计技术的进步、制造工艺水平的提高以及单个芯片上的逻辑门数的增加,嵌入式系统设计变得日益复杂。把整个系统集成到一个芯片上,即片上系统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
随着大规模集成电路设计技术的进步、制造工艺水平的提高以及单个芯片上的逻辑门数的增加,嵌入式系统设计变得日益复杂。把整个系统集成到一个芯片上,即片上系统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
上一篇:单片机初学者不好掌握的概念