基于NIOS II的实时图像采集系统的设计
2018-06-27石圣羽
摘 要:为了保证图像采集的快速性和准确性,提出了一种基于Nios II的实时图像采集系统的设计。该系统以Altera FPGA芯片EP2C8Q208C8为主控芯片,根据自顶向下的设计思想,采用Verilog HDL语言构建NIOS Ⅱ硬件平台,利用C语言编写摄像头OV7670寄存器的配置、SCCB总线通信协议和TFT-LCD显示屏配置代码,将采集得到的图像实时显示在TFT-LCD液晶显示屏上。该系统具有稳定度高、设计灵活高效、可移植性强等优势,可应广泛用于实际生产生活实时图像监控中。
关键词:实时; 图像采集;硬件平台;自顶向下;可移植性
DOI:10.16640/j.cnki.37-1222/t.2018.11.123
0 引言
随着现代电子科技的迅猛发展,图像采集技术在人们的生活和工作中得到了广泛应用如各类电话会议、监控系统等[1-3]。当前市面上图像采集系统采用的设计方案多种多样,核心控制芯片各不相同,主要有利用ARM芯片实现的图像采集系统、基于DSP芯片的图像采集系统和利用可编程逻辑器件FPGA芯片实现的图像采集系统等[1-6]。这些系统各有优缺点,基于FPGA的图像采集系统以可移植性强、性能良好等特性受到研究者青睐。本设计采用Altera FPGA芯片EP2C8Q208C8完成图像采集系统的设计。
1 实时图像采集系统总体设计方案
本设计由五部分构成:FPGA控制模块、图像采集模块、时钟模块、SDRAM存储模块和TFT-LCD显示模块,系统整体设计框图如图1所示。系统设计由硬件设计和软件开发构成。硬件设计包括时钟模块设计、NIOS Ⅱ硬件平台构建、摄像头OV7670控制模块和TFT-LCD显示控制模块设计;软件设计采用C语言配置摄像头OV7670寄存器、编写SCCB总线通信协议和配置TFT-LCD在NIOSⅡIDE系统中完成。
2 实时图像采集系统硬件设计
2.1 时钟模块设计
系统源时钟信号为50MHz,可以分频得到NIOS II硬件平台、SDRAM存储模块和摄像头OV7670的工作时钟,分别为50MHz、50MHz和24MHz。设计采用模拟锁相环来消除延时提高其准确性。
2.2 NIOS II硬件平台构建
系统是基于NIOS II系统设计的,因此NIOS II硬件平台的构建是设计核心。NIOS II硬件平台选择标准MCU内核,16位SDRAM控制器,JTAG UART调试接口,用于片内RAM及用于TFT-LCD控制的I/O口[7],自动分配基地址和中断。
2.3 摄像头OV7670控制模块设计
摄像头OV7670采集的图像信号以帧为单位,每一帧图像信号由帧同步和行同步信号协同控制转换为图像在TFT-LCD液晶屏上显示。本设计的TFT-LCD图像格式是RGB565,为了能够将OV7670采集到的信号正确显示在TFT-LCD上,必须将OV7670采集到的信号转换为TFT-LCD的信号格式。设计将OV7670采集到的两个8位信号拼接成16位信号构成RGB565格式,送入TFT-LCD各引脚进行显示。OV7670控制时序图如图2所示。如图,当摄像头采集到的两个8位信号为7DH与8CH,输出信号实现数据拼接为7D8CH,,从而实现采集数据的正确显示。
2.4 TFT-LCD显示控制模块设计
TFT-LCD显示模块的功能是控制输入TFT-LCD屏的数据通道,可通过控制信号enable选择FPGA控制芯片或者摄像头控制数据传输。当enable为1时,传输到TFT-LCD液晶屏的信号为FPGA控制芯片的输出数据;反之为摄像头控制模块的输出数据[8,9]。
3 实时图像采集系统软件开发
系统软件开发依托NIOS II IDE平台实现,采用C语言完成摄像头OV7670寄存器、SCCB总线通信协议和TFT-LCD液晶屏配置程序的编写[10]。
3.1 摄像头OV7670寄存器配置
本设计采用OV公司的图像传感器OV7670,该摄像头具有自动曝光、白平衡和降噪调节等功能。摄像头OV7670的写地址为0x42,设计采用wr_OV7670_Reg函数来实现摄像头寄存器数据配置,首先判断摄像头寄存器写地址是否有效,若有效即开始SCCB总线工作,延时100 us,若无效即停止SCCB总线;然后用同样方法判断寄存器地址与配置数据是否有效。
3.2 SCCB通信协议编写
摄像头OV7670采集到的信号通过SCCB总线传送,可通过读写OV7670寄存器控制图像输出。OV7670以相为传输单元,每一相由9位数据构成,包含8位图像信号和1位校验位。OV7670寄存器的配置数据传输为三相传输,分别为控制寄存器的写地址,寄存器的地址和寄存器的配置数据。
3.3 TFT-LCD配置
为了将摄像头OV7670采集信号正确显示到TFT-LCD上,需要确定图像显示的行与列的起始点和结束点。采集到的输入信号从起始点逐行依次显示,设行起始地址和结束地址分别为0000和00EF,列起始地址和结束地址分别为0000和013F,行和列限制的范围即为摄像头OV7670采集到的图像的显示区域,通过函数Lcd_Show来实现。
4 硬件验证
系统硬件验证在HSNIOS2C8 V3.0 NIOS II开发板上实现,如图3(a)所示。图3(b)为利用摄像头OV7670采集的原始图像,图3(c)为用摄像头OV7670实时采集图像,由图可看出图像清晰,分辨率较好,该系统实现了实时图像采集的功能。
5 結束语
本文实现了基于Nios II系统的实时图像采集系统,工作性能稳定。NIOS Ⅱ系统设计方法不仅简化了设计难度,而且充分利用了FPGA设计的灵活性,系统时序逻辑调试可以在软件上仿真实现,大大降低硬件调试难度。该系统具有稳定度高、设计灵活高效、可移植性强等优势,可广泛应用于生产生活中。
参考文献:
[1]常丹华,南进等.基于嵌入式平台和USB2.0的高速线阵CCD图像采集系统[J].电子测量技术,2008(03).
[2]张博,刘岚.基于TMS320C80的图像采集系统[J].微计算机信息, 2006(02).
[3]司孝平.基于SDRAM的FPGA实时图像采集系统的设计[J].西南大学学报(自然科学版),2011(01).
[4]邱雪松,姚公建.图像采集压缩SOC系统在FPGA中的实现[J].今日电子,2007(12).
[5]张彦梅,柴芳娇.基于FPGA的高速图像采集系统[D].北京理工大学学报,2010,30(09):1117-1120.
[6]杨晓,王红亮.基于FPGA控制的图像采集与存储系统[J].火力与指挥控制,2010,35(09):124-126.
[7]孙恺,程世恒.Nios Ⅱ系统开发设计与应用实例[M].北京:北京航空航天大学出版社,2007(08).
[8]张超建,王厚军.基于FPGA的TFT-LCD液晶显示模块设计[J].中国测试,2010,36(05):73-75.
[9]夏宇闻.Verilog 数字系统设计教程[M].北京:北京航空航天大学出版社,2008(06).
[10]张敏霞,孙凤霞.C语言程序设计教程[M].北京:电子工业出版社,2007(03).
作者简介:石圣羽,男,河北秦皇岛人,硕士研究生,研究方向:检测技术与自动化装置。