基于DSP的纸币号码识别系统
3.2使用CPLD实现对图像的开窗处理
利用象素时钟LLC2和行同步信号HS实现行截取的VHDL程序:
process(LLC2,HS)
variable temp: std_logic_vector(10 downto 0);
begin
if(LLC2'event and LLC2='1') then
if(HS='1' ) then temp:=temp+'1';
if(temp>80 and temp<241)
then Href<
;='1';
else Href<='0';
end if; else Href<='0';
end if; end if;
end process;
从SAA7113输出的数字视频图像为整幅图像,可是对识别有用的图像大小为40x200,为减少图像数据的存储量和处理量。通过调整CCD摄像头与点钞机之间的位置,利用视频解码器的行、场同步信号HS、VS和象素时钟参考信号LLC,使用VHDL语言,对感兴趣的图像区域进行开窗处理。具体做法为:在场信号VS为高的期间,对行信号HS进行计数, 使感兴趣的图像期间的场信号输出为高,在其它区域其场信号为低,这样得到新的场信号VREF。与场截取相类,利用行信号HS和象素时钟LLC2,得到新的行信号HREF。这样通过两个计数器实现了图像的开窗处理。本文给出了对图像进行开窗处理的框图,并给出了行截取的VHLD程序,对列的截取VHDL程序与行截取相类似。
3.3利用DSP实现图像的采集
SAA7113上电初始化之后将一直处于工作状态,其象素时钟参考信号LLC为27MHz,为象素时钟的二倍,即象素时钟为13.5MHz。这么快的时钟频率如果直接进行图像采集的话将出现数据丢失的现象。本文采用了先进先出阵列FIFO作为图像缓存,将图像数据先存入FIFO中,通过DSP读取FIFO中的图像数据,来完成图像的采集。CCD摄像头输出PAL制,场频为50Hz的视频信号,其行周期为64us,场周期为20ms。在本系统中图像大小为40x200,通过示波器可看到截取后的场周期为2.56ms,而DSP的读写周期为10ns,通过DSP的读写程序所需时间大约为3ms左右,与点钞机相连接,将有充足的时间实现图像的采集。
由于FIFO是没有片选的,对FIFO控制主要是对其读写信号有效的控制。FIFO写有效经CPLD图像截取后的行场同步信号以及象素时钟信号来控制。在FIFO写完一场图像数据之后,利用半满信号作为DSP的中断信号,通过中断服务子程序将图像数据存入DSP的数据空间作为识别处理的数据来源。对FIFO的读控制通过将其映射到DSP的I/O空间来实现,为了与其它器件进行区分使用地址线A15和A14参与译码。当FIFO的读信号为高时,数据总线为高阻状态,从而实现总线隔离。
4 DSP存储空间的设计
DSP芯片由于其改进的哈佛结构,处理速度快,特殊的DSP指令和快速地实现各种数字信号处理算法的特点,广泛地应用于各种图像处理系统中。在本系统选用TMS320VC5410作为中央处理器,该芯片的读写周期为10ns,具有丰富的片上资源[2]。
根据纸币号码图像大小和号码识别算法的要求,本系统在DSP外扩了一片64Kx16的RAM,其中0x0000—0x3fff的存储区映射到DSP的程序空间,0x8000—0xffff的存储区映射到DSP的数据空间。同时外扩了一片256Kx16的FLASH芯片SST39VF400A,根据DSP系统程序加载的特点,将FLASH地址为0x8000—0xffff的存储区在程序下载的过程中映射到DSP的数据空
《基于DSP的纸币号码识别系统(第2页)》