肖 可
(湖南科技学院 计算机与通信工程系,湖南 永州 425100)
数字图像采集接口电路设计方法
肖 可
(湖南科技学院 计算机与通信工程系,湖南 永州 425100)
本文介绍了两种用于嵌入式系统的数字图像采集接口方法,I/O接口和内存直接写入。在对采集速度要求不高的应用中,I/O接口方法可以简化接口电路设计,减少系统资源。对于要求实时进行图像处理的系统,直接写入内存法可以在不需要处理器干预的情况下,直接将图像数据写入系统存储区内,实现高速图像采集。本文主要讨论I/O接口方法。
嵌入式系统;图像采集;I/O接口方法;接口电路设计
嵌入式系统通常是一个包含微处理器的特殊计算机系统,是一个较大系统或设备的组成部分,它在很大程度上决定了设备的功能特性。如今随着信息化、智能化、网络化的迅速发展,嵌入式系统已被广泛应用在消费电子、工业应用、军事国防、网络设备等领域。随着半导体技术的飞速发展,具有图像功能的嵌入式应用愈来愈多。从数码相机、可视电话、多功能移动电话等消费产品到门禁、数字视频监视等工业控制及安防产品,图像采集和处理已成为重要的组成部分之一。图像采集需要进行同步信号的处理,图像采集过程比较复杂,电路设计也比较困难。传统PC上的图像采集卡在嵌入式系统中不同的处理器和图像传感器的信号定义及接口方式不同,没有通用的接口芯片。利用系统中的现有资源设计图像采集电路,可以减少器件数量、缩小产品体积和降低系统成本。所以,通常嵌入式系统中要求自行设计图像采集接口电路。本文针对不同采集速度的要求,提出了两种图像采集接口电路的设计方法。
在读取图像数据时用采样时钟PCLK锁存输出数据。除采样时钟(PCLK)和数据输出(D)外,还有水平方向的行同步信号(HSYNC))和垂直方向的场同步信号(VSYNC)。对于隔行扫描器件,还有帧同步信号(FRAME)。一帧包括两场,同步脉冲期间数据端口输出的数据无效。 PLCK存在时,图像数据端口连续不断地输出数据。由于行之间以及场之间输出数据无效,在采集图像数据必须考虑同步信号,读取有效数据才能保证图像的完整性。
对于MCU、DSP处理器,I/O是最方便的访问方式之一。以I/O方式读取图像数据不仅可以简化电路设计,而且程序也很简单。但由于读取每一个像素都要检测状态,在处理器速度低的情况下,读取图像慢。在处理器速度快或图像采集速度要求不高的应用中,I/O接口方式是一个较好的选择。
在图像传感器和处理器之间,利用两个锁存器分别锁存状态和图像数据,处理器通过两个I/O端口分别读取。在采样时钟的上升沿数据锁存器保存传感器输出的图像数据,当处理器通过I/O口读取图像时,数据锁存器输出数据。其它情况下,锁存器输出处于高阻状态。处理器通过状态锁存器读取同步信号和图像就绪(Ready)指示信号。在数据锁存器保存图像数据的同时,状态锁存器产生Ready信号(从‘0’到‘1’)。处理器读取图像数据时,Ready信号自动清除(从‘1’到‘0’)。处理器读取状态时锁存器驱动总线,其他情况下输出处于高阻状态。
要保证图像的完整性就必须从一场图像的第一行开始读取,对于隔行扫描输出的图像则必须从一帧的第一行开始读取。读取每行图像数据时,则从该行的第一个像素开始。因此,在读取图像数据前应先判断场和行的起始位置。读取每个像素数据前先查询数据状态,如果数据已准备好则读取数据。
为了简化电路设计,用处理器直接读取同步信号,然后找出场和行的起始位置。 处理器读取同步信号时,信号可能处在同步脉冲状态(‘1’)或正常状态(‘0‘)。对于那些同步信号反向的器件,则分别为‘0’和‘1’。如果信号处于同步脉冲状态,第一次检测到的正常状态就起始位置。如果信号处于正常状态,则首先检测到脉冲状态,然后用同样的方法确定起始位置。
通过上述方法可以检测出场的起始位置和行起始位置。
在应用中,以上两个锁存器的功能和其他逻辑集中在一起,用可编程逻辑器件实现。下面分别为它们的VHDL表示。
设DO(0-7)是锁存器输出端,DI(0-7)是锁存器输入端,DM(0-7)是中间状态,Data_R是数据读信号(低电平时有效),则数据锁存器的VHDL描述为:
Process (reset, PCLK) -- 锁存图像数据
Begin
If reset='0' then
DM<="00000000"; -- 清除数据
Else if PCLK'event and PCLK='1' then
DM<=DI; -- 锁存数据
End if;
End process;
Process (DM, Data_R) -- 读取图像数据
Begin
If Data_R='0' then
DO<=DM; -- 输出图像数据
Else
DO<="ZZZZZZZZ" -- 输出高阻
End if;
End process;
进一步设数据有效状态为Dstatus, 状态读写信号为Status_R (低点平时有效),则状态锁存器的VHDL描述为:
Process (reset, PCLK,Data_R) -- 数据有效状态控制
Begin
If reset='0' or Data_R='0' then
Dstatus<='0'; -- 清除状态
Else if PCLK'enent and PCLK='1' then
Dstatus<='1'; -- 设置状态
End if;
End process;
Process (Dstatus, Status_R) --读取状态和同步信号
Begin
If Status_R='0' then
DO0<=Dstatus;
DO1<=VSYNC;
DO2<=HSYNC;
DO3<=FRAME;
Else
DO<="ZZZZZZZZ"; -- 高阻状态
End if;
End process;
在处理器速度较慢且图像数据输出的频率不能降低的情况下,采用上述I/O接口方法不能得到完整的图像。另外,有些应用中要求能够实时采集图像。为此,我们设计了高速数据图像采集方法―内存直接写入法。由于SRAM访问控制简单,电路设计方便,被大量嵌入式系统采用。具体应用中可根据不同需求对上述设计进行修改以满足不同的要求。
[1]何立民.从嵌入式系统看现代计算机产业革命[J].单片机与嵌入式系统应用,2008,(1).
[2]胡继阳等. 嵌入式系统导论. 北京: 中国铁道出版社,2005.
[3]陈翌等. 嵌入式软件开发技术. 北京: 国防工业出版社,2003.
[4]刘攀,王红亮,孟令军.基于FPGA的数字图像采集存储系统的设计[J].电视技术,2010,34(6):32-34.
[5]朱奕丹,方怡冰.基于FPGA的图像采集与VGA显示系统[J].计算机应用,2011,31(5): 1258-1260.
TP302
A
1673-2219(2012)08-0043-03
2012-05-10
肖可(1972-),男,湖南永州人,实验师,研究方向为智能仿真。
(责任编校:何俊华)