图像传感器的正常工作必须由外部提供适当的驱动信号和工作电压。这些驱动信号的波形、相位、前后沿时间、高低电平等对图像传感器器件工作的好坏影响很大,因此,在设计过程中必须严格按要求进行电路的设计[1]。
驱动电路是为图像传感器读出电路提供所必需的各个驱动脉冲信号,以便使其扫描电路以及信号处理、输出电路能正常工作,输出相应的视频信号[2]。对于CMOS图像传感器,根据像元排列形状的不同,可以把它分为线列阵、面列阵以及特殊列阵(如环行列阵等)。应用较多又最常见的是线列阵和面列阵。
1 线阵型驱动信号时序的要求
多个形状和大小完全相同的光电二极管在硅片上等间距地排成一条直线,即叫“线列阵”,只需要对水平移位寄存器进行驱动控制,其驱动信号比较简单。线阵型驱动和控制移位寄存器的波形要求如图1所示[3]。图中,CP是传感器的时钟信号,通过对晶振的输入时钟分频得到,作为传感器的工作频率。S信号是传感器扫描起始信号,由它确定视频输出电压的起始时间。两个?准信号是作为扫描电路即移位寄存器的动态电源,从而达到对每个像元的采集,且两个Φ信号可以为互补的时钟,也可以不是。Vout[3]是视频信号,是传感器在S脉冲同步下,将入射到其光敏面上的按空间分布的光强信息转换成按时序串行输出的电信号。
线阵型图像传感器在这些驱动信号的作用下,就可以输出串行的视频信号。这些驱动信号的时序关系对图像传感器工作时序至关重要。
2 ARM7微处理器及PWM定时器
由于嵌入式系统对CPU的性能要求越来越高,如核心频率、寻址能力、指令系统、功耗散热等,以ARM为体系的RISC系统结构逐渐占领市场。
2.1 ARM7系列微处理器
ARM系列处理器是由英国ARM公司设计制造的嵌入式处理器,其已成为现今世界上最流行的嵌入式处理器,主要包括ARM7、ARM9、ARM9E、ARM10E等系列。
ARM7系列微处理器为低功耗的32 bit RISC处理器,最适合于对价位和功耗要求较高的消费类应用,主要应用在工业控制、Internet设备、网络和调制解调器设备、移动电话等多媒体和嵌入式应用场合。
2.2 S3C44B0X及其PWM定时器
ARM7系列微处理器包括四种类型的内核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ-S。ARM7TDMI是目前使用最广泛的32 bit嵌入式RISC处理器,是ARM公司最早为业界普遍认可且赢得了最为广泛的应用的处理器核。S3C44B0X即是基于ARM7TDMI的体系结构。
脉冲宽度调制技术PWM,通过对一系列脉冲的宽度进行调制等效地获得所需要波形(含形状和幅值),被广泛应用于各种控制系统中[4]。
PWM是一种对模拟信号电平进行数字编码的方法,通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在测量、通信、功率控制与变换等许多领域中。
PWM的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换,让信号保持为数字形式可将噪声影响降到最小。噪声只有在强到足以将逻辑1改变为逻辑0或将逻辑0改变为逻辑1时,才能对数字信号产生影响。对噪声抵抗能力的增强是PWM相对于模拟控制的另外一个优点,而且这也是在某些时候将PWM用于通信的主要原因。从模拟信号转向PWM可以极大地延长通信距离。在接收端,通过适当的RC或LC网络可以滤除调制高频方波并将信号还原为模拟形式。
S3C44B0X内部集成了PWM(脉宽可调制)定时器,其内部框图如图2所示,具有以下特点[5]:
(1)5个16 bit带PWM的定时器(Timer),1个16 bit基于DMA或基于中断的内部定时器。
(2)3个8 bit预计数器,2个5 bit分频器,1个4 bit分频器。
(3)可编程的工作周期、频率和极性。
(4)死区(Dead-zone)产生器。
(5)支持外部时钟源。
S3C44B0X中定时器Timer0、Timer1、Timer2、Timer3、Timer4具有PWM功能,Timer5仅作为内部时钟,没有输出引脚。Timer0、Timer1共享一个8 bit的预计数器,Timer2、Timer3共享另一个8 bit预计数器,Timer4、Timer5共享其他的一个8 bit预计数器。除了Timer4和Timer5,其他每一个Timer都有时钟分频器用以得到5个不同的分频信号(1/2、1/4、1/8、1/16、1/32)。Timer4和Timer5有4个分频信号(1/2、1/4、1/8、1/16)和一个输入信号TCLK/EXTCLK。
8 bit预计数器是可编程的,通过加载TCFG0和TCFG1寄存器中存储的数据值,对MCLK信号进行分频。
Timer的计数缓冲寄存器(TCNTBn)有一个初始值,当定时器允许工作时,这个值被加载到减法计数器中。Timer的比较缓冲寄存器(TCMPBn)有一个初始值,这个值被加载到比较寄存器中与减法计数器中的值进行比较。TCMPBn中的值被用作PWM(脉宽调制)。当减法计数器中的值等于比较寄存器中的值时,定时器控制逻辑单元会改变输出电平。因此,比较寄存器决定了PWM输出信号的高电平(或者低电平)持续时间。当频率和占空比改变时,TCNTBn和TCMPBn双精度缓冲的特点使定时器能产生一个稳定的输出。
每一个Timer都拥有时钟驱动的16 bit减法计数器。当减法计数器系数减到0时,Timer产生一个中断请求来告诉CPU定时器的操作已经完成了,相应地TCNTBn中的值自动加载到减法计数器中产生下一次操作。但是如果TCONn中定时器使能端被置0,TCNBn中的值就不会再加载到计数器中[6]。