基于FPGA的图像采集系统
更新时间:2023-11-04 13:38:01 阅读量: 综合文库 文档下载
题目
基于FPGA的图像采集系统设计与实现
:
基于FPGA的图像采集系统设计与实现
摘 要
现在是科技迅速发展的年代,数字图像处理技术在这个年代中得到了迅猛的发展并在各行各业得到了广泛的应用。可编程逻辑器件(FPGA)凭借其较低的开发成本、较高的并行处理速度、较大的灵活性及其较短的开发周期等特点,在图像处理系统中有独特的优势。
针对视频图像采集的可靠性和实时性,本设计采用Altera公司生产的CycloneⅡEP2C8Q208C8NK芯片,先由CCD图像传感器采集模拟信号,在经过芯片TVP5150将模拟量转换为标准的YUV4:2:2的数据信号,把数据信号输入到FPGA芯片中并在其中将该数据转换到RGB色域后在输出到ADV7123芯片进行D/A转换,最后经过VGA接口电路把处理过的图像呈现在显示屏上。经过相关的调试工作,系统通用性比较好,并且移动性能也不错。
该系统的软件部分采用自顶向下的设计方法,模块化设计思想,硬件语言编程,只修改源程序,不必更改硬件电路,就可实现在线编程,实时控制,从而有效地减少系统的体积,不但增加了系统可靠性,降低研制成本,并且能够对控制逻辑进行修改升级,十分灵活。该系统包括三个功能模块:图像采集模块、图像处理模块、图像显示模块。
关键词:FPGA;TVP5150;RGB色域;ADV7123芯片
Image acquisition system based on FPGA design and
implementation
Abstract
It is the rapid development of science and technology, digital image processing technology has been rapid development in this era and has been widely used in all walks of life, and the maturity of FPGA technology has changed the commonly used parallel computer or digital signal processor (DSP), a special integrated circuit (ASIC) as the embedded processor usage. Programmable logic device (FPGA) with its low cost, high parallel processing speed, flexibility and short development cycle and other characteristics, has its unique advantages in image processing system. The project demand, this paper presents a solution of image acquisition and processing system based on FPGA, and the use of low cost and high performance of Altera company's CyclonelI series FPGA EP2C8Q208C8N as the core, design and development of integrated system of hardware and software of image acquisition and processing.
In view of the reliability of video image acquisition and real-time performance, this paper describes how to FPGA for video acquisition system control. Using Cyclone Ⅱ EP2C8Q208C8NK chip produced by Altera company, is responsible for receiving and processing video data from the TVP5150 decoding, converts the data into RGB color gamut in the output to the ADV7123 chip. After debugging, the system better generality, and mobile performance is also good.
Keywords: FPGA;TVP5150;RGB color gamut;ADV7123 chip
目 录
1 前言 .......................................... 1
1.1 课题背景与意义 ............................... 1 1.2 研究的现状及特点 .............................. 2 1.3 研究的主要内容 ............................... 2
2 图像采集系统的硬件电路设计 .................... 3
2.1 采集系统硬件的总体设计 ....................... 3 2.2 FPGA核心模块 .................................... 5 2.3 外围电路 ..................................... 6 2.4 图像采集电路 .................................... 7 2.4.1 图像传感器 .................................... 7 2.4.2 A/D转换电路 ................................... 8 2.5 图像显示电路 .................................... 8
3 图像采集系统的软件设计 ....................... 11 3.1 系统的设计环境 ............................. 11
3.2 设计的主要流程 .............................. 12 3.3 设计内部数据量的变换 ......................... 12 3.3.1 IIC数据总线 .................................. 12
4 调试 ......................................... 17 参考文献 ........................................ 18 致谢 ............................................ 19 附录 ............................................ 20
1 前言
1.1 课题背景与意义
随着多媒体技术在各个应用领域不断普及,用户会不断要求新产品具有更大的图像容量、更高的图像质量和更快的图像处理速度,这为图像的存储和处理提出了更高的要求。在数字图像处理可视电话通信、数字电视等应用中,遇到的首要难题就是数据量过大,导致图像传输和存储成问题。现场可编程门阵列(FPGA),与传统逻辑电路和门阵列相比FPGA具有不同的结构它增强了电路设计的灵活性。不但降低了开发成本,而且也减小了设计风险,并且充分挖掘图像处理算法中的并行性,在较低主频下能获得可观的执行速度。因此,在信号处理方面得到了广泛的应用。
FPGA作为系统以及图像采集处理板卡的核心器件,外围器件的电路和功能已经得到尽可能的简化,许多外围的功能器件的接口都不需要单独的接口芯片来完成,均由FPGA来实现.整个系统中仅仅需要FPGA以及FPGA配置芯片、SDRAM、PCI接口芯片三个主要的芯片,整体上看提高了电路的稳定性,而且其先进的开发工具使整个系统的设计调试周期大大缩短。因此FPGA内部逻辑设计就成为图像采集处理系统设计的核心和关键。
1.2 研究的现状及特点
20世纪20年代,图像处理首次得到应用。20世纪60年代中期,随电子计算机的发展得到普遍应用。60年代末,图像处理技术不断完善,逐渐成为一个新兴的学科。利用数字图像处理主要是为了修改图形,改善图像质量,或是从图像中提起有效信息,还有利用数字图像处理可以对图像进行体积压缩,便于传输和保存。数字图像处理主要研究以下内容:傅立叶变换、小波变换等各种图像变换;对图像进行编码和压缩;采用各种方法对图像进行复原和增强;对图像进行分割、描述和识别等。随着技术的发展,数字图像处理主要应用于通讯技术、宇宙探索遥感技术和生物工程等领域。数字图像处理因易于实现非线性处理,处理程序和处理参数可变,故是一项通用性强、精度高、处理方法灵活、信息保存、传送可靠的图像处理技术。主要用于图像变换、量测、模式识别、模拟以及图像产生,并广泛应用在遥感、宇宙观测、影像医学、通信、刑侦及多种工业领域[1]。
而在对图像处理这一技术上FPGA具有以下几种特点: (1):高性能,可以在一片FPGA中完成多种处理功能
(2):灵活性高使产品快速面市,方便产品跟新,满足不断发展的需求 (3):低开发成本并且结构化容易操作
(4):不会过时,其拥有非常广泛的客户基础,而且FPGA可以很容易的从一个工作节点移植到下一个工作节点。
1
程);编译成功后,就开始时序仿真,通过创建输入信号波形(也就是激励文件),自动产生输出波形,看输出波形否和我们设计的一致,是否正确,正确的话,通过JTAG下载。
3.3 设计内部数据量的变换
根据视频图像采集系统软件设计的功能可以推测出本实验包括的主要模块有IIC_CONFIG 模块和TV_TO_VGA 模块。其中IIC_CONFIG 模块主要是用来通过给TVP5150赋值来控制 TVP5150工作模式 。TVP5150采用IIC 总线接口配置,采用Verilog HDL 硬件描述语言设计实现,集成了一个视频解码器,能够满足高达6 通道模拟视频输入,可以自动检测标准模拟基带电视信号,包括NTSC,PAL,SECAM 视频制式,转换为符合CCIR601/CCIR656 的4:2:2 分量数字视频数据。对TVP5150 的配置,只需将数据写入TVP5150 的寄存器中,所以IIC 控制器只需实现IIC 的写数据控制。整个功能由两个模块来完成,IIC_Controller 模块用来产生IIC 总线规范的时序,IIC_Config 模块用来产生需要配置的寄存器的地址和配置参数[5]。TV_TO_VGA 模块主要包括ITU_R656 解码模块、视频图像存储模块、YUV 到RGB 色域模块,完成的功能包含视频信号的采集、分配、存储以及色度空间的转换。ITU_R656 解码模块对电视解码器芯片TVP5150 解码得到的YCrCb(4:4:2) 数据源在插值之后得到YCrCb(4:4:4)信号,同时生成13.5MHz 的像素时钟及消隐信号。其中双端口线路缓冲器模块和HSYNC×2 模块可以实现去交织操作,时钟像素从13.5MHz 变为27MHz,HSYNC 信号从31.4kHz 降到15.7kHz。双端口吸纳路缓冲器模块内部使用一个1K 字节长的双口SRAM 将YCrCb 数据量加倍。最终YCrCb2RGB 模块将YCrCb×2 数据送到VGA 显示器上输出,VGA 时序发生器模块用来生成单独的VGA同步信号VGA_HS 和VGA_VS,以便VGA 显示器显示输出数据[8]。
3.3.1 IIC数据总线
IIC总线是用于连接微控制器及外围设备的。其主要特征有以下几点: (1):只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL。 (2):每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主机接收器;
(3):它是一个真正的多主机总线,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏;
(4):串行的8 位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s;
(5):连接到相同总线的IC 数量只受到总线的最大电容400pF 限制。
而实现实现IIC总线通信协议主要有两种方法:利用MCU对两根I/O口线进行软件编程,模拟IIC总线的SCL和SDA时序要求;使用专用IIC总线控制核,但受其主机接口方式和时钟频率的限制,在有些场合应用并不方便。本设计中用VHDL对FPGA的两根I/O口进行IIC总线控制核设计。
12
IIC控制模块的设计按照的是自顶而下的方法。其可分成三个模块: 12C_TOP模块、IIC_CMD模块、12C_CORE模块。其大致结构如图3-3所示:
IIC_TOP 模块 IIC_CMD 模块 IIC_CORE 模块 CCD 外部采集设备 图3-3 IIC模块内部设计
此图中IIC_TOP是顶层控制模块主要负责接受FPGA发来的控制信号、命令及数据;发送由从设备读出的数据和确认位到FPGA;实现IIC控制核与FPGA的中断通信机制;提供当前IIC的工作状态;把FPGA发出的命令信号IIC_cmd模块。IIC控制设计的核心工作是对IIC总线命令及时序的状态发送到划分。在控制核内设置了两个状态机,分别称为命令状态机和时序状态机,其中命令状态机用于管理IIC总线具体的读写操作的命令状态转移过程;时序状态机用于实现IIC总线上启动、停止、读、写、确认等命令的具体时序关系。
IIC的工作原理:IIC总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,IIC总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。
IIC总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。
开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。 结束信号:SCL为低电平时,SDA由低电平向高电平跳变,结束传送数据。 应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平
13
脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。IIC时序模块的电平交换如图3-4所示:
图3-4 IIC时序模块的电平交换
目前有很多半导体集成电路上都集成了IIC接口。带有IIC接口的单片机有:CYGNAL的 C8051F0XX系列,PHILIPSP87LPC7XX系列,MICROCHIP的PIC16C6XX系列等。很多外围器件如存储器、监控芯片等也提供IIC接口。
3.3.2 数据扫描程序
水平线像素计数:
在计数过程中先给与一个信号,如果是下降沿信号则像素计数器清零,如果不是则检查是否为最后一行,如果是则像素计数器清零,不是的话开始计数。
always @ (posedge pixel_clock or negedge_reset_n) begin if (!reset_n) begin
创建水平同步脉冲:
14
// 寄存器清0
end
pixel_count <= 11'h000;
else if (pixel_count == (`H_TOTAL - 1))
begin end
pixel_count <= pixel_count +1;
begin end
// 最后一行 // 寄存器清0
end
pixel_count <= 11'h000;
else
always @ (posedge pixel_clock or negedge reset_n) begin
else if (pixel_count == (`H_TOTAL - `H_BACK_PORCH -1))
// 停止计数
hs <= 1'b0;
begin
end
else if (pixel_count == (`H_ACTIVE + `H_FRONT_PORCH -1)) begin
end
// 开始计数
hs <= 1'b1;
if (!reset_n)
begin end
hs <= 1'b0;
// 计数器清0
end
IICC总线初始化:
IIC模块的初始化包括以下几个方面: 1.从机初始化
(1)写:IICA——设置从地址。 (2)写:IICC——使能IIC和中断。
(3)初始化若干所需RAM变量用于数据传输。 2.主机初始化
(1)写:IICF——设置IIC波特率。 (2)写:IICC——使能IIC和中断。
(3)初始化若干所需的RAM变量用于数据传输。 (4)写:IICC——使能TX(这一位表征发送/接收)。 (5)写:IICC——使能MST(主模式)。
(6)写:IICD寻址从目标(这个字节的最低一位将确定这次通信是主接收还是主发送)。 IIC总线在图像采集系统中初始化过程[14]如图3-5所示:
15
开始 视频设备开启 获取设备信息和图像信息 初始化采集窗口、颜色模式、帧状态 捕捉视频数据 N 是否终止视频采集 Y 图像数据处理 关闭视频设备 结束
图3-5 IIC初始化过程图
16
h_blank <= 1'b1; end
else if (pixel_count == (`H_TOTAL -2)) begin // end of HBI h_blank <= 1'b0; end end
// CREATE THE VERTICAL BLANKING SIGNAL
// the \ in the horizontal factor because of the extra // register delay for the composite blanking signal
always @ (posedge pixel_clock or negedge reset_n) begin if (!reset_n) begin // on reset v_blank <= 1'b0; // remove v_blank end
else if ((line_count == (`V_ACTIVE - 1) && (pixel_count == `H_TOTAL - 2))) begin // start of VBI v_blank <= 1'b1; end
else if ((line_count == (`V_TOTAL - 1)) && (pixel_count == (`H_TOTAL - 2))) begin // end of VBI v_blank <= 1'b0; end end
// CREATE THE COMPOSITE BANKING SIGNAL always @ (posedge pixel_clock or negedge reset_n) begin if (!reset_n) begin // on reset blank <= 1'b0; // remove blank end
else if (h_blank || v_blank) // blank during HBI or VBI begin blank <= 1'b1; end else begin
27
blank <= 1'b0; // active video do not blank end end
// CREATE THE COLOUR BAR SIGNAL /*
always @(posedge pixel_clock or negedge reset_n) begin if(!reset_n) begin rgb <= 24'b0; end
// else if(line_count == 1) // begin // rgb <= 24'hff00ff; // end
// else if(pixel_count == 0) // begin // rgb <= 24'hffffff; // end
else if(pixel_count <= 159) begin rgb <= 24'b0; end
else if(pixel_count > 159 && pixel_count <= 319) begin rgb <= 24'hffffff; end
else if(pixel_count > 319 && pixel_count <= 479) begin rgb <= 24'hff0000; end
else if(pixel_count > 479 && pixel_count <= 639) begin rgb <= 24'h00ff00; end
else if(pixel_count > 639 && pixel_count <= 799) begin rgb <= 24'h0000ff; end
else if(pixel_count > 799&& pixel_count <= 959) begin rgb <= 24'hffff00; end
else if(pixel_count > 959 && pixel_count <= 1119)
28
begin rgb <= 24'h00ffff; end
else if(pixel_count > 1119 && pixel_count <= 1279) begin rgb <= 24'hff00ff; end else begin rgb <= 24'b0; end end */
always @(posedge pixel_clock or negedge reset_n) begin if(!reset_n) begin rgb <= 24'b0; end else begin rgb <= {pixel_count[10:3],8'b0,pixel_count[10:3]}; end // else // begin // rgb <= 24'b0; // end end
endmodule
29
30
4 调试
检查硬件电路,测试电路板能否正常工作。若硬件电路没有问题的话,即可给电路板加电进行测试,加载如见对软件进行测试。
通过实验板上FPGA 的对图像解码芯片TVP5150 芯片以及ADV7123 芯片进行初始化,图像数据由PAL 制式的CCD 摄像头提供,由图像解码芯片TVP5150 转换成数字图像后,采集到FPGA 中相应的处理过后再通过FPGA将数据发送给数模转换芯片ADV7123,由ADV7123 将数字信号转换成模拟视频信号,通过VGA 接口输出到CRT显示器上即可验证结果的正确与否。其结果如下:
图4-1 图像采集系统的调试结果
17
参考文献
[1] 刘焕军,王耀南,段 峰.机器视觉中的图像采集技术.电脑与信息技术.2003 年第1 期 [2] 陆绍强. FPGA 将逐渐取代ASIC 和ASSP.电子产品世界,2000.9 [3] 李玉山等.图像采集及边缘提取ASIC 设计.西安电子科技大学学报,1995 [4] 李广军,孟宪元.可编程ASIC 设计与应用.成都,电子科技大学出版社,2000 [5] 宋万杰,罗丰,吴顺君. CPLD 技术
[7] 褚振勇,翁木云. FPGA 设计与应用. 西安:西安点子科技大学出版社, 2002 [8] 姚天任,江太辉. 数字信号处理. 武汉: 华中理工大学出版社, 1987
[9] 姚天任,孙洪. 现代数字信号处理.武汉及其应用. 西安西安电子科技大学出版社, 1999 [10] 章毓晋.图像处理与分析.北京:清华大学出版社,1999
[11] 沈庭芝. 数字图像处理及模式识别.北京:北京理工大学出版社,1998 [12] 康华光. 电子技术基础模拟部分. 北京:高等教育出版社, 1979
[13] 沙吉乐,曲兴华,关红彦等.基于FPGA 技术的新型高速图像采集[J].集成电路应用,2000 [14] 刘焕军,王耀南,段峰.机器视觉的图像采集技术.电脑信息与技术,2003
18
附 录
IIC_controller.v
/ -------------------------------------------------------------------- // Copyright (c) 2005 by Terasic Technologies Inc.
// -------------------------------------------------------------------- //
// Permission: //
// Terasic grants permission to use and modify this code for use
// in synthesis for all Terasic Development Boards and Altrea Development // Kits made by Terasic. Other use of this code, including the selling // ,duplication, or modification of any portion is strictly prohibited. //
// Disclaimer: //
// This VHDL or Verilog source code is intended as a design reference // which illustrates how these types of functions can be implemented. // It is the user's responsibility to verify their design for // consistency and functionality through the use of formal
// verification methods. Terasic provides no warranty regarding the use // or functionality of this code. //
// -------------------------------------------------------------------- //
// Terasic Technologies Inc
// 356 Fu-Shin E. Rd Sec. 1. JhuBei City,
19
// HsinChu County, Taiwan // 302 //
// web: http://www.terasic.com/ // email: support@terasic.com //
// -------------------------------------------------------------------- //
// Major Functions:IIC controller //
// -------------------------------------------------------------------- //
// Revision History :
// --------------------------------------------------------------------
// Ver :| Author :| Mod. Date :| Changes Made:
// V1.0 :| Joe Yang :| 05/07/10 :| Initial Revision // -------------------------------------------------------------------- `timescale 1ns/100ps module IIC_Controller ( CLOCK,
IIC_SCLK,//IIC CLOCK IIC_SDAT,//IIC DATA
IIC_DATA,//DATA:[SLAVE_ADDR,SUB_ADDR,DATA] GO, //GO transfor END, //END transfor W_R, //W_R ACK, //ACK RESET, //TEST
SD_COUNTER, SDO );
input CLOCK;
input [23:0]IIC_DATA; input GO;
input RESET; input W_R;
inout IIC_SDAT; output IIC_SCLK; output END; output ACK;
//TEST
output [5:0] SD_COUNTER;
20
output SDO;
reg SDO; reg SCLK; reg END; reg [23:0]SD;
reg [7:0]SD_COUNTER; reg IIC_SCLK;
//wire IIC_SCLK=SCLK | ( ((SD_COUNTER >= 4) & (SD_COUNTER <=30))? ~CLOCK :0 ); wire IIC_SDAT=SDO?1'bz:0 ;
reg ACK1,ACK2,ACK3;
wire ACK=ACK1 | ACK2 |ACK3;
//--IIC COUNTER
always @(negedge RESET or posedge CLOCK ) begin if (!RESET) SD_COUNTER=8'b11111111; else begin if (GO==0)
SD_COUNTER=8'd0; else
if (SD_COUNTER < 8'b11111111) SD_COUNTER=SD_COUNTER+1; end end //----
always @(negedge RESET or posedge CLOCK ) begin
if (!RESET) begin IIC_SCLK=1;SDO=1; ACK1=0;ACK2=0;ACK3=0; END=1; end else
case (SD_COUNTER)
8'd0 : begin ACK1=1 ;ACK2=1 ;ACK3=1 ; END=0; SDO=1; IIC_SCLK=1;end //start
8'd1 : begin SD= #1 IIC_DATA;SDO= #1 1;end 8'd2 : begin SDO= #1 0; end //SLAVE ADDR
8'd3 : begin IIC_SCLK= #1 0; end 8'd4 : begin SDO= #1 SD[23]; end 8'd5 : begin IIC_SCLK= #1 1; end 8'd6 : begin IIC_SCLK= #1 0; end 8'd7 : SDO= #1 SD[22];
8'd8 : begin IIC_SCLK= #1 1; end 8'd9 : begin IIC_SCLK= #1 0; end 8'd10 : SDO= #1 SD[21];
21
正在阅读:
基于FPGA的图像采集系统11-04
UXB02070G4TR100中文资料07-26
天崮山导游词600字07-07
三圈环流和海陆分布练习题05-28
固定汇率制下的财政政策效应12-28
人教版高中英语选修六:Unit4教案+07-18
javascript 浏览器对象05-04
我国历届参加国际生物奥林匹克竞赛成绩表01-21
- 天大砼方案 - 图文
- 农业科技网络书屋能力提升_玉米错题选
- DNS习题
- 浅议检察官对罪犯谈话的技巧与效果
- 高考语文文言文翻译专题训练
- AB类学科竞赛目录(2015)
- 建筑面积计算新规定(2015最新)
- Revit2012初级工程师题集一
- 十三五项目米线可行性报告
- 2013体育学院党组织建设工作总结
- 2014Revit工程师题库
- 高中数学如何实施研究性学习
- 茶艺表演 中英互译
- 小学音乐湘文艺版 四年级下册 第十一课《(歌表演)脚印》优质课公
- 山西省农村合作经济承包合同管理条例
- 2015年镇江市中考化学一模试题参考答案及评分标准(定稿)
- 统计 题集
- 批评意见清单
- 8潞安集团蒲县黑龙关煤矿矿业公司2
- 鄂教版四年级语文上册复习精要(光谷四小)
- 采集
- 图像
- 基于
- 系统
- FPGA
- 桅杆式起重机设备吊装方案 - 图文
- 移动互联网时代的信息安全与防护考试
- 小学品德与社会新课标测试题-附答案
- 蓬溪县大石镇大力小学课题实施方案
- 期中考试试卷(化学)
- 地球物理测井知识点复习 - 图文
- 《公共关系实务》电子教案
- 山西省太原市2017届高三第三次模拟理综生物试题及答案
- 第十二章生物化学试题
- 双并牛筋布项目可行性研究报告(发改立项备案+2014年最新案例范文)详细编制方案
- 河北省行政许可案卷标准(试行)20081230103824243
- 杭州市区楼宇经济业态规划
- 汇率及其相关因素的回归分析
- 贵州茅台报表分析
- 英语一般现在时练习题(1)
- 关于XX同志函调材料的复函模板
- 2019年眉山市中考化学试卷 - 图文
- 无机材料物理化学复习参考
- 在全区食品安全工作会议上的表态发言
- 1102运输巷掘进作业规程(无图)