电子文章 | 电子资料下载 | 家电维修 | 维修资料下载 | 加入收藏 | 全站地图
您现在所在位置:电子爱好者维修技术维修教程知识电子制作黑白CMOS图像传感器OV9120的原理及应用

黑白CMOS图像传感器OV9120的原理及应用

09-08 11:51:37 | http://www.5idzw.com | 电子制作 | 人气:414
标签:电子小制作,http://www.5idzw.com 黑白CMOS图像传感器OV9120的原理及应用,http://www.5idzw.com

配置的具体方法可采用三相写数据的方式,即在写寄存器过程中先发送OV9120的ID地址,然后发送写数据的目地寄存器地址,接着是要写的数据。如果连续给寄存器写数据,那么,写完一个寄存器后,OV9120会自动把寄存器地址加1,然后在程序控制下继续向下写,而不需要再次输入地址,这样,三相写数据就变成了两相写数据。由于本系统只需对有限个不连续寄存器的数据进行更改,而对全部寄存器都加以配置会浪费很多时间和资源,所以,可以只对需要更改数据的寄存器进行写数据。而对于每一个变化的寄存器,则都采用三相写数据的方法。

系统配置完毕后,将进行图像数据的采集。在采集图像的过程中,最主要的是判别一帧图像数据的开始和结束时刻。在仔细研究了OV9120输出同步信号(VSYNC是垂直同步信号、HREF是水平同步信号、PCLK是输出数据同步信号)的基础上,用VHDL语言便可实现采集过程起始点的精确控制。

VSYNC的上升沿表示一帧新的图像的到来,下降沿则表示一帧图像数据采集的开始(CMOS图像传感器是按列采集图像的)。HREF是水平同步信号,其上升沿表示一列图像数据的开始。PCLK是输出数据同步信号。HREF为高电平即可开始有效地数据采集,而PCLK下降沿的到来则表明数据的产生,PCLK每出现一个下降沿,系统便传输一位数据。HREF为高电平期间,系统共传输1280位数据。也就是说:在一帧图像中,即VSYNC为低电平期间,HREF会出现1024次高电平。而下一个VSYNC信号上升沿的到来则表明分辨率1280×1024的图像采集过程的结束。

实现采集的软件设计可在MAX+plusII环境中实现。软件设计的主要工作是CPLD对OV9120的配置。在开始充电时,首先对系统进行初始化。CPLD的全局时钟可用24MHz的晶振电路产生。配置时首先配置SCCB,配置完毕后将SCCE置1。当接收到DSP的开始采集信号后,根据同步信号的状态来判定是否开始采集数据,采集数据的同时可将数据送往SRAM。当DSP接收到CPLD的读取信号后,即可开始读取数据,并在DSP中完成图像的处理。采集处理的部分主程序如下:

reset2:process(reset_i,n1,clk)

begin

if reset_i=‘0’then scce_p<=‘1’;

else

if(n1=‘1’ or m1=‘1’)then

scce_p<=‘1’;

else scce p<=‘0’;

end if;

end if;

end process reset2;

clk1: process(n1,clk)

variable a: integer range 254 to 0;

begin

if(sio_c_start=‘0’ OR n1=‘1’) then

q<=‘1’;a:=0;

else

if(clk'event and clk=‘1’) then

if(sio_c start=‘1’ and n1=‘0’) then

if a<254 then; a:=a+1;

else a:=1;

end if;

if a<127 then q<=‘0’;

else q<=‘1’; end if;

end if;

end if;

end if;

end process clk1;

lock:process(sio_c_start,q)

variable n: integer range 8 to 0;

begin

if( sio_c_start=‘0’ then load<=‘1’;n:=0;

else

if (q 'event and q=‘0’) then

if n<8 then n?=n+1;

load<=‘0’;

else n:=0;load<=‘1’;

end if;

end if;

end if;

end process lock;

reg1: process(n1,q,load)

variable pp:std_logic_vector(7 downto 0);?

variable b:integer range 7 to 0;

variable c:integer range 13 to 0;

begin

if(n1=‘1’or reset_i=‘0’) then p<=‘1’;c:=0; b:=0;QB<=‘0’;

else

if(q'event and q=‘0’)then

if load=‘1’ then;

c:=c+1?

if c<13 then

if c=1 then

pp:=″11000010″;

elsif c=2 then

pp:=″00001100″;

elsif c=3 then

pp:=″00101001″;

elsif c=4 then

pp?=″11000010″;

elsif c=5 then

pp:=″00001101″;

elsif c=6 then

pp:=″10000000″;

elsif c=7 then

pp:=″11000010″;

elsif c=8 then

pp:=″00010001″;

elsif c=9 then

pp:=″10000000″;

elsif c=10 then

pp:=″11000010″;

上一页  [1] [2] [3]  下一页

,黑白CMOS图像传感器OV9120的原理及应用
关于《黑白CMOS图像传感器OV9120的原理及应用》的更多文章