标题:
基于NiosⅡ的图像采集和显示的实现 02
[打印本页]
作者:
samwalton
时间:
2014-2-23 13:06
标题:
基于NiosⅡ的图像采集和显示的实现 02
用硬件描述语言设计采集时序模块和液晶时序发生模块的控制器。在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所示。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0