基于DSP的纸币号码识别系统

发布者:鑫森淼焱最新更新时间:2006-05-22 来源: EDN China关键字:纸币  单片机  点钞机 手机看文章 扫描二维码
随时随地手机看文章

   1 引言

  近年来,钱币、特别是纸币被抢劫事件不断发生,严重影响了社会治安,也使银行在经济上受到了严重的损失。如果被抢劫的钱币不能在市场上流通,将从一个方面抑制银行抢劫事件的发生。其中一种解决方案是记录每一捆纸币的号码,将被抢劫的纸币号码建立一个数据库。在货币流通市场提供一种纸币号码自动识别装置,比如说与点钞机结合,将货币号码识别数据与被抢劫号码数据库比较,一旦有相同号码出现,便可确认目前流通的钱币为被抢劫的钱币,从而限制其流通,同时也有利于抢劫案件的侦破。另外,由于纸币号码的唯一性,通过识别纸币上的号码,可以帮助识别假币。国外有一种验钞打号机,可以对典型的纸币,比如美元、英镑等进行自动识别和号码打印,这种装置的典型识别速度为1张/秒。不过还没有点钞机附带号码自动识别装置的文献报道。

  近些年,国内也有一些单位研制开发纸币号码自动识别装置,例如南京航空航天大学开发了一种基于单片机的纸币号码识别系统[3],利用线阵CCD实现纸币图象的采集,利用单片机实现号码的定位与识别。其主要问题是难以提高号码的识别速度。哈尔滨工业大学开发了一种基于DSP的纸币号码识别系统[4],其识别速度为8张/秒,但该速度为在PC机上的仿真结果,实际样机没有实现。此外,该系统采用CIS(即接触式线型图象传感器)获得纸币图像信号,存在传感器磨损问题。

  针对以上情况,本文给出一种基于DSP的纸币号码识别系统,利用面阵CCD摄象机采集纸币号码图象,即每秒采集25幅图象,而目前的点钞机点钞速度为每秒十几张左右,从而可以实现与点钞机的配合使用。该系统由以下几个部分组成:(1)利用Philip公司专业视频解码器SAA7113实现纸币号码图像的数字化;(2)利用TI公司的数字信号处理器TMS320VC5410实现数字纸币号码图像的采集和处理;(3)利用TI公司的异步串行接口芯片TL16C550完成整个系统与PC机之间的通信。

  2 硬件设计原理


  基于DSP的纸币号码识别系统的工作原理:从面阵CCD摄像头摄取的纸币模拟视频图像,经专业视频解码器转换为数字图像。数字视频信号经图像缓存FIFO存入DSP的数据空间,作为后续图像识别的数据来源。视频解码器同时分离出行场同步信号和象素时钟参考信号,作为图像缓存模块的控制信号。为了保存和记录号码,经识别后的纸币号码数据存储在快速闪烁存储器FLASH中,或根据需要通过异步串口传送给PC机。复杂可编程逻辑器件CPLD在整个系统中起到全局逻辑控制和对采集的纸币图像实现开窗处理的作用。系统的总体结构框图如图1所示。

  3 图像采集模块

  3.1视频解码芯片SAA7113在系统中的应用

  SAA7113是一种高集成度并且支持隔行扫描、多种数据输出格式的视频解码器,内置的I2C界面提供了简单的对芯片内部电路的控制功能。对SAA7113的控制主要包括对输入模拟信号的预处理、色度和亮度的控制,输出数据格式及输出图象同步信号的选择控制等。

  在整个系统中对图象的识别处理主要是针对灰度图像进行的,在SAA7113所提供的多种数据输出格式中,RAW格式在8位输出管脚上直接输出与象素时钟相对应的象素灰度值,此种数据格式与其它格式相比对灰度图像的采集将更直接。



  SAA7113的输出RTS0和RTS1是多功能复用管脚,通过对子地址寄存器SA12写入不同的控制字,可将两输出管脚配置为行同步、帧同步、奇偶场同步等不同的信号。在本系统中将RTS0设置为行同步信号,RTS1设置为场同步信号,同时SAA7113还输出象素时钟的同步参考信号LLC。

  通过I2C总线协议对SAA7113的各个控制寄存器进行设置,使其满足系统要求。由于DSP芯片是处理型的器件,它的控制能力比较弱,通用I/O口比较少,而单片机具有很好的控制功能,因此对SAA7113的初始化工作使用AT89C51单片机来完成。AT89C51单片机内部无硬件I2C总线接口,在此将单片机的P1.0口设置为串行数据线SDA,P1.1设置为串行时钟线SCL,通过软件模拟I2C总线,对视频解码器SAA7113进行初始化,其硬件原理如图2所示。

  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的程序空间,其空间的区分通过DSP的通用I/O口XF来进行控制。FLASH的地址为0x0000—0x7fff和0x10000—0x1ffff和0x20000—0x2ffff的存储区映射到DSP的程序空间,作为识别的号码结果的记录存储而用。

  5 利用TL16C550实现与PC机之间的通信

  
在图像采集调试及对号码的算法调试中,为了检验图像效果,需将图像在PC机中呈现出来。由于TMS320VC5410的串口是同步串行口,而与PC机通信却是异步串行收发,本文采用了异步串行收发器TL16C550来实现DSP与PC机之间的通信。TL16C550是TI公司生产的一种具有异步串行通信功能的大规模集成电路,通过对寄存器选择输入端A0、A1、A2的不同配置来实现对该器件的控制。

  在本系统中将其映射到DSP的I/O空间0x8000的地址,将DSP的地址线A2、A1、A0与550的寄存器选择控制引脚A2、A1、A0相连,即通过对DSP的I/O空间地址为0x8000-0x8007的空间进行寄存器的访问。在TL16C550中接收和发送使用的是同一个中断信号INTRPT,对数据的接收和发送通过使能不同的中断,通过中断方式实现系统与PC机之间的通信。

  6系统的软件设计

  采用手工编写的汇编语言程序虽然具有执行速度快的优点,但用汇编语言编写程序特别是识别算法的程序将是比较费时费力的[4]。为了提高程序开发的效率,采用TMS320C54x的C语言进行软件开发[5]。整个系统的软件流程图如图6所示:

  目前字符识别的算法很多,有背景特征点法,模板匹配法,结构特征分析判断法,神经网络识别算法等。结构特征分析判断法从字符的结构本身出发,检测号码的结构特征,具有快速分类的特点,根据系统速度的要求,本文对采集到的号码图像就采用了此种识别算法来完成纸币号码的识别。

  7结束语

  本系统通过使用TI公司的数字信号处理器实现纸币号码的采集,使用Altera公司的复杂可编程逻辑器件CPLD实现对图像的截取,图像采集效果非常好。该系统除有通用图像处理系统的功能外,特别适合动态图像的处理,具有极高的实时性。

  参考文献:

1. TMS320C54X DSP Reference Set, Volume 1:CPU and Peripherals,Texas Instruments, http://www.ti.com,1999

2. TMS320VC5410 Data book, Texas Instruments, http://www.ti.com,2000

3. 刘建业等,纸币号码读入识别系统的单片机实现,工业控制计算机,2002,15(1),69-71

4. 张庆峰,基于DSP的纸币号码识别系统的研究,哈尔滨工业大学硕士学位论文,2003

5. 刘益成等,TMS320C54X DSP应用程序设计与开发,北京航空航天大学出版社,2002

6. 张勇等,C/C++语言硬件程序设计,西安电子科技大学出版社,2003

关键字:纸币  单片机  点钞机 引用地址:基于DSP的纸币号码识别系统

上一篇:带RF输出的全数字调制器设计
下一篇:飞思卡尔基于下一代StarCore的多核DSP

推荐阅读最新更新时间:2024-05-02 20:24

单片机MSP430精准配置高速串口波特率的方法
在实际项目大批量生产调试设备时,笔者发现同样版本的程序在不同设备上运行时效果不一致,一部分设备串口通信正常,另外一部分串口通信不正常。通过示波器对多个设备的串口波特率及系统时钟频率测试,发现不同设备之间的系统时钟频率及波特率存在差异,与理论值不一致,用示波器测试出的系统时钟频率及波特率与理论值偏差较大。由于系统时钟频率的偏差导致波特率设置值超过了串口所允许的最大误差值,故而导致串口通信失败。其根本原因是系统的时钟频率会随环境温度、电压或其他因素变化。 1 原因分析 在异步通信中,波特率是很重要的指标,表示为每秒传送二进制数码的位数,反映了异步串行通信的速度。MSP430的波特率发生器使用一个分频计数器和一个调整器来构成
[单片机]
<font color='red'>单片机</font>MSP430精准配置高速串口波特率的方法
AVR单片机对数码管的控制设计
//数码管数据P0口,数码管控制P2口 #include #include #include #include #include #define code PROGMEM #define uchar unsigned char #define uint unsigned int code const ucharLED_7[16] = {0x28, 0x7E, 0xA2, 0x62, 0x74, 0x61, 0x21, 0x7A, 0x20, 0x60,0xff};//common of + code const uchar posi ti on[8] = {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0x
[单片机]
AVR<font color='red'>单片机</font>对数码管的控制设计
单片机程序是如何运行的呢?
从单片机上知道,在上电的那一刻,MCU的程序指针PC会被初始化为上电复位时的地址,从哪个地址处读取将要执行的指令,由此程序在MCU上开始执行(当然在调用程序的 main之前,还有一系列其他的的初始化要做,如堆栈的初始化,不过这些我们很少回去修改)。PC在上电时,和MCU差不多,不过读取的是BIOS,有它完成了很多初始化操作,最后,调用系统的初始化函数,将控制权交给了操作系统,于是我们看到了Windows,Linux系统启动了。 如果将操作系统看作是在处理器上跑的一个很大的裸机程序(就是直接在硬件上跑的程序,因为操作系统就是直接跑在CPU上的,这样看待是可以的,不过这个裸机程序功能很多,很强大),那么操作系统的启动很像MCU程序
[单片机]
Microchip重夺8位单片机销售额全球第一桂冠
Microchip Technology宣布根据权威行业分析机构Gartner最新发布的2014排名报告,Microchip重登全球8位单片机(MCU)销售额第一宝座。这一成绩充分印证了Microchip在8位PIC 单片机产品线方面所做出的坚定承诺和创新努力。 尽管近年来许多MCU供应商逐渐降低8位MCU产品投入,Microchip仍继续坚持对其8位、16位和32位产品线进行全面创新。而Gartner 2014年度报告显示Microchip在这三大产品领域的市场占有率仍保持着持续增长的势头。在2014年度16位MCU市场排名前十位的供应商中,Microchip是增长速度最快的企业,其增速超过其他排名前十企业增速的
[单片机]
Microchip重夺8位<font color='red'>单片机</font>销售额全球第一桂冠
MCU控制风光互补独立电源系统
引 言 综合利用了风能、光能的风光互补独立电源系统是一种合理的电源系统。不仅能为电网供电不便的地区,如边防哨所,通讯的中继站,交通的信号站,勘探考察的工作站以及农牧区提供低成本、高可靠性的电源,而且也为解决当前的能源危机和环境污染开辟了一条新路。 单独的太阳能或风能系统,由于受时间和地域的约束,很难全天候利用太阳能和风能资源。而太阳能与风能在时间上和地域上都有很强的互补性,白天光照强时风小,夜间光照弱时,风能由于地表温差变化大而增强,太阳能和风能在时间上的互补性是风光互补发电系统在资源利用上的最佳匹配。 1 硬件构成 风光互补独立电源系统由光伏发电单元、风力发电单元、系统智能管理核心、逆变器、储能元件等
[单片机]
<font color='red'>MCU</font>控制风光互补独立电源系统
51单片机简单计时器
#include reg52.h #define uint8 unsigned char #define uint16 unsigned short int //数码管段码显示:0~f,不亮 uint8 code LED_Disp = {0xC0,0xF9,0xA4,0xB0, //这一组编码当中不包含小数点 0x99,0x92,0x82,0xF8, 0x80,0x90}; //十个分别显示 0 1 2 3 4 5 6 7 8 9 uint8 code LED_Disp1 = {0x40,0x79,0x24,0x30, //这一个数组的编码中包含小数点 0x19,
[单片机]
基于单片机的超低功耗电子温度计的设计
  0 引言   本文设计的超低功耗电子温度计能够通过温度传感器测量和显示被测量点的温度,并可进行扩展控制。该温度计带电子时钟,其检测范围为l0℃~30℃,检测分辨率为1℃,采用LCD液晶显示,整机静态功耗为0.5μA。其系统设计思想对其它类型的超低功耗微型便携式智能化检测仪表的研究和开发,也具有一定的参考价值。   1元器件选择   本系统的温度传感器可选用热敏电阻。在10~30℃的测量范围内,该器件的阻值随温度变化比较大,电路简单,功耗低,安装尺寸小,同时其价格也很低,但其热敏电阻精度、重复性、可靠性相对稍差,因此,这种传感器对于检测在1℃以下,特别是分辨率要求更高的温度信号不太适用。   显示部分可以采用笔段式LCD
[单片机]
基于<font color='red'>单片机</font>的超低功耗电子温度计的设计
基于STM32单片机SPWM逆变电源设计
利用晶闸管电路把直流电转变成交流电,这种对应于整流的逆向过程,定义为逆变。例如:应用晶闸管的电力机车,当下坡时使直流电动机作为发电机制动运行,机车的位能转变成电能,反送到交流电网中去。又如运转着的直流电动机,要使它迅速制动,也可让电动机作发电机运行,把电动机的动能转变为电能,反送到电网中去。 1、基于STM32单片机SPWM逆变电源设计 功能描述: 单片机采用: STM32单片机(型号:STM32F030F4P6) 输出:正弦波 频率:可调; 幅值:可调; SPWM逆变原理:单片机SPWM驱动H桥+后级滤波; 调节方式:频率加按键、频率减按键、幅值加按键、幅值减按键; 频率调节范围:10hz、20hz、30hz、40hz、50
[单片机]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved