1、 引言
接触式图像传感器(Contact image sensor,简称 CIS)是由一排与扫描原稿宽度相同的光电传感阵列、 LED光源阵列和柱状透镜阵列等部件组成一种新兴图像传感器。这些部件全部集成在一个条状方形盒内,不需要另外的光学附件,没有调整光路和景深等问题,具有结构简单、体积小、应用方便等优点。在一些应用场合 CIS传感器比 CCD或 COMS等传感器有无法比拟的优点。在传真机、扫描仪、纸币清分兑零等领域应用非常广泛。
在本文中采用复杂可编程逻辑器件( CPLD)设计一个新型的CIS传感器控制器,实现了接触式图像传感器的控制和图像数据的采集。
2、 硬件设计
2.1系统总体方案
根据 CIS传感器的工作原理,其输出信号是串行输出的电压信号。因此,本文中的图像处理系统包括微处理器、CPLD模块、CIS传感器接口、信号差分放大电路、图像信号的 A/D转换、双缓冲存储器接口等部分,从而实现图像的采集与处理。系统框图如图 1所示,
由于 CIS传感器的工作速度高,如果直接由微处理器(MPU)产生 CIS传感器的控制时序信号,则非常消耗微处理器的时间和资源。因此,本驱动电路以 CPLD为控制核心,微处理器不直接控制 CIS传感器。微处理器只需要控制 CPLD的页使能信号( P_EN)和线使 能信号(L_EN)两个信号线。CPLD就能够自动完成 CIS控制时序的产生、A/D转换器控制时序的产生、数据的暂存和乒乓存储的总线切换等功能。这种采用 CPLD独立完成图像采集和数据存储,减少了微处理器对底层器件的控制,提高了微处理器在图像处理中的效率。
2.2 CIS控制模块与微处理器的接口设计
在图 1所示的图像处理系统中, CPLD主要完成两个任务:一是完成底层器件的控制,二是实现与微处理器 MPU的外围接口。图 1中,外围接口总线分为图像采集的控制线和缓冲存储器的读写总线两类。图像采集的控制线包括页使能信号和线使能信号两个信号。缓冲存储器的读写总线包括 8位数据线 D[0..7]、17位地址线 A[0..16]、读信号线 RD、写信号线 WR和选通信号线 CS。MPU通过 CPLD实现对 IS61C1024型缓冲存储器的读写。
2.3 CIS图像传感器的接口电路设计本文以FW2R216型CIS传感器为例,采用 EPM7128QC160型CPLD实现图像采集的控制。
(1)CIS图像信号的放大
CIS输出的图像信号幅值比较小,通常只有几百毫伏,而且是叠加在一个暗电流的直流信号上。因此要对信号进行放大和零点校正。采用运算放大器 LM7131构成差分放大电路实现信号的调整,如图 2所示。图中,电阻 R1=R2,R3=R4,因此可以得到:
Vout=(Vsig-Vref)·R3/R1+V1
V1=Vref·R5/(R5+R6)
其中,Vref是为了去掉 CIS图像信号的暗电流分量,由基准稳压电源 LM285提供 1.25V的基准电压。V1电压是为了零点校正,由电阻 R5和 R6对 Vref分压后经电压跟随器获得。
(3)A/D转换器的电路设计
由于灰度图像的灰阶通常为 256级,因此选用 8位的高速并行模数转换器 TLC5540,它的最高工作频率高达 40MHz,依靠 5V单电源工作,而且内部带有基准电路构成分压电路获得参考电压。+5V
TLC5540在其时钟信号的下降沿对输入模拟信号进行保持和采样,在 2.5个时钟周期后将转换的数据输出到内部总线上。当 TLC5540读选通信号 OE有效时,数据输出到外围管脚上。 TLC5540的接口电路如图 3所示。
TLC5540的参考电压由精密基准电压源 TL431、电阻 R6和 R7构成的电路提供。 TLC5540的 CLK管脚和 OE管脚由 CPLD直接控制,分别为 AD_EN和 AD_CLK。当 CPLD产生的 AD_EN为下降沿时,CPLD使能 TLC5540的 OE脚将数据 AD[0..7]读取到 CPLD的内部寄存器中,实现信号由模拟到数字的转换过程。
3、软件设计
3.1 CPLD的逻辑功能模块设计
CPLD是 CIS控制模块的核心部件。根据 CPLD需要完成的任务,将 CPLD的逻辑功能划分为不同的模块,包括时序控制模块、 A/D数据读取模块、数据暂存地址发生器、乒乓存储的总线切换和 MPU接口模块等。CPLD逻辑功能的模块如图 4所示。
3.2时序控制模块
时序控制模块是 CPLD在外部时钟信号 CLK控制下,根据 MPU提供的 P_EN与 L_EN信号,产生 CIS的控制时序、A/D转换器的控制时序、数据暂存的读写信号。
(1)CIS传感器和 AD转换器的控制时序产生
根据 CIS传感器的控制时序特性, CPLD为 CIS传感器提供时钟信号 CIS_CLK、选通信号 CIS_SI和光源控制信号 CIS_LED等。当微处理器将 P_EN置为高电平时,CPLD处于初始化状态。当 P_EN为低电平后,CPLD处于准备阶段。此时,一旦微处理器给 L_EN管脚上产生一个脉冲信号,CPLD就随后自动产生 CIS_SI信号启动 CIS,同时 CPLD的内部计数器对外部 CLK进行计数。在根据计数值 CPLD产生 AD转换器的控制信号。这一时序电路的硬件描述如下,其中 CNT是一个 0到 647的计数器。
if P_EN =‘1’ then
CNT《=0; AD_EN《=‘1’; CIS_SI《=‘0’;
elsif (CLK ‘event and CLK =’1‘) then
if L_EN =’1‘ then CNT《=1;
elsif CNT=647 or CNT=0 then CNT《=0;
else CNT《=CNT+1; end if;
if CNT=2 then CIS_SI 《=’1‘;
else CIS_SI 《=’0‘;end if;
if CNT》=64 and CNT《=640 then AD_EN《=’0‘;
else AD_EN《=’1‘; end if; end if;
3.3 A/D数据读取模块
A/D数据读取模块将模数转换器的输出数据暂存在 CPLD内部寄存器中。在 A/D转换器的读使能信号有效,即 AD_EN为 0时, CPLD为 ADC产生时钟 AD_CLK。CPLD在 AD_CLK的下降沿将 ADC的转换结果暂存在寄存器 D1中,其硬件的描述如下。
if AD_CLK’EVENT and AD_CLK =‘0’ then D1(7 downto 0)《=AD(7 downto 0); end if;
3.4数据暂存的地址发生器
CIS传感器是按照一个个像素逐次串行输出。因此必须将图像数据按照地址逐次增一的格式存储在存储器 IS61C1024中。其写信号 A1_WR是由 A/D转换器的读使能信号 AD_EN和外部时钟 CLK进行逻辑与得到的,其硬件描述如下。
A1_WR《=AD_EN and CLK;
存储地址的产生是由一个 17位计数器 A1完成,当 P_EN=1时表示图像采集没有开始,地址计数器 A1初始化为0。当 P_EN=0时,在写信号 A1_WR的上升沿地址增 1,为下一个数据的存储提供地址。这一过程的硬件描述如下。
If P_EN =‘1’ then A1《=(others=》‘0’); elsif A1_WR‘event and A1_WR =’1‘ then A1《=A1+1; end if;
3.5乒乓存储功能的总线切换
为了提高系统的效率,当 CPLD在采集数据时,微处理器同时完成前幅图像数据的处理,因此在系统中采用双缓冲存储区[2]。当 CPLD向 RAM1写数据时,缓冲区 RAM2的总线控制权交给微处理器。当微处理器完成 RAM2中数据的处理且 CPLD完成当前幅图像的采集后,总线进行切换,使 CPLD将下一幅图像的数据写入 RAM2,此时 RAM1的总线控制权切换给微处理器。总线切换由 P_EN的上升沿触发 EXCH信号取反。下面的程序是 EXCH信号在不同情况下,各总线工作状态的硬件描述。双向数据总线的 VHDL硬件描述如下。
D《=R1D when EXCH=’0‘ and RD=’0‘ else
R2D when EXCH=’1‘ and RD=’0‘ else
“ZZZZZZZZ”;
R1D《=D when EXCH=’0‘ and WR=’0‘ else
D1 when EXCH=’1‘ and A1_WR=’0‘ else
“ZZZZZZZZ”;
R2D《=D1 when EXCH=’0‘ and A1_WR=’0‘else
D when EXCH=’1‘ and WR= ’0‘ else
“ZZZZZZZZ”;
地址总线和控制总线切换过程的硬件描述如下。
if EXCH =’0‘ then
R1A《=A;R1_WR《=WR;R1_RD《=RD;
R1_CE《=CS;R2A《=A1;R2_WR《=A1_WR;
R2_RD《=’1‘;R2_CE《=’0‘;
else
R1A《= A1;R1_WR《= A1_WR; R1_RD《=’1‘;
R1_CE《=’0‘; R2A《= A;R2_WR《= WR;
R2_RD《=RD; R2_CE《= CS;
end if;
4 、结论
图5给出了在 Quartus II 6.0中采用 EPM7128QC160型 CPLD对上述方案的仿真时序波形图,仿真结果与设计思想完全吻合。此驱动电路已在纸币清分设备中得到较好的应用。
本文作者创新点:以 CPLD为核心实现 CIS传感器时序驱动、A/D转换器控制、双缓冲区的乒乓总线切换以及微处理器接口等功能;微处理器不直接控制底层器件,提高了微处理器的效率;采用双缓冲区的乒乓工作方式,图像采集和图像处理实现并行工作,提高了图像处理系统的性能。
责任编辑:gt
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)