硬币智能识别的软件系统设计.docx
《硬币智能识别的软件系统设计.docx》由会员分享,可在线阅读,更多相关《硬币智能识别的软件系统设计.docx(29页珍藏版)》请在冰点文库上搜索。
![硬币智能识别的软件系统设计.docx](https://file1.bingdoc.com/fileroot1/2023-5/23/a0f3ab4b-adcf-47ca-8c64-270712545e6e/a0f3ab4b-adcf-47ca-8c64-270712545e6e1.gif)
硬币智能识别的软件系统设计
摘 要
硬币在人们的日常生活中扮演着重要角色,同时随着人口的增加和社会文明程度的提高,硬币的需求量会日益增加。
硬币代替小面额纸币流通给人们带来许多方便,同时也带来了一些问题。
银行等一些特殊部门要对大量的硬币进行高效的处理如计数、分类、包装等以使其再流通,无人售票车、投币电话等需要对硬币进行实时识别,自动售货机除了识别之外,还要提供找零功能等。
随着假币的出现,在线识伪也成为了一个急需解决的问题。
硬币清分系统应运而生。
本文从对硬币进行清分的必要性出发,针对当前国内外硬币清分的现状,提出了一种实用可靠的解决方案。
本系统采用DSP与单片机构成的主从式系统,实现了对硬币高速、准确地清分。
关键词:
硬币清分;DSP;单片机;数据采集;数据处理
Abstract
Coinsplayaveryimportantroleinpeople’slife,andwiththeincreaseofthepopulationandtheimprovementofsocialcivilization,theamountofcoinsneededwillincreasedgreatly.Asthesubstituteofpapermoney,coinsbringourlifemuchconvenience,andmanyproblemsaswell.Somespecialdepartments,suchasbanks,forexample,countingthenumbersofcoins,dividingcoinsandpackagingcoins.Automaticticketcars,publictelephones,etc,whichneedcoins,mustdiscerncoinsin-time,andcharging.Furthermore,withtheappearingoffakecoins,thetaskofdiscerningfakecoinsin-timebecomesanurgentproblem.Andthenthecoinscountinganddiscerningsystemcomesintoexistence.
Thearticleputforwardapracticalandreliableprojectforcoinscountinganddiscerningsystematthebaseofessentialityofcoinscountinganddiscerning,andaimingatthecurrentsituationofcoinscountinganddiscerningintheworld.Thesystem,arguinginthearticle,adoptsthemulti-CPUsystemcomposedofDSPandMPU,andrealizescoinscountinganddiscerningwithhighspeedandhighaccuracy.
KeyWords:
CoinsDetectionandDifferentiation;DSP;SingleChipMicroprocessor;DataGathering;DataProcessing
目 录
1 绪论
1.1硬币与识别系统
硬币在日常生活中扮演着重要角色。
硬币在漫长的货币史中占据重要地位,并且与其他形式的货币相伴而流通而发展。
因人口的增加和社会文明程度的提高,硬币的需求量仍在日益增加,各国的造币厂尚在日夜兼程制造各种面值的硬币(如美国每年要生产200亿美元的硬币)。
面对庞大的硬币流通量,硬币的高效检测是一项非常有意义的工作:
银行等一些特殊部门要对大量的硬币进行高效的处理如计数、分类、包装等以使其再流通;无人售票车、投币电话等需要对硬币进行实时识别;自动售货机除了识别之外,还要提供找零功能等;随着假币的出现,在线识伪也成为了一个急需解决的问题。
硬币识别系统应运而生。
硬币识别系统是对高速通过的硬币进行识别、计数,同时对伪币、残币进行剔除的系统。
它是分类机、计数机、包装机、销毁机等众多硬币处理器具的基础。
由于国情和货币体系不同,研制统一的硬币识别系统不现实,因此,需要针对不同的货币体系研制相应的识别系统。
1.2本系统的研制目标
综上所述,我国的硬币体系与其他国家的相比具有材质差异大、币种多、版本多且各版本的同种硬币的铸造参数差异大等特点,从而对我国的硬币自动化识别系统的提出了更高的要求。
硬币的高效实时批量鉴别在国内尚未很好地解决。
研制硬币智能系统的目的在于给出完整的硬币识别与处理方案:
实现动态、快速、精确地对硬币进行识别、计数,对出现的假币和残币进行准确判别并将其剔除;便于操作,能够以友好界面对识别情况进行实时显示或打印;具备学习功能,可以适应新发行的硬币品种。
2 硬币识别方案的设计
2.1方案论证
方案一:
方案是采用专用的数字处理芯片DSP来实现。
同样进行数据采集,以速度可达100MPIS以上的TMS320VC5402芯片为例。
对于高速硬币清分系统,硬币速度达到6000枚/分钟,每枚硬币采集100个点,则硬币将用C语言编写的数据采集程序在CodeComposerStudio(CCS5000)中进行软件仿真,可知采集并处理一个数据仅需10us,可以满足本系统6000枚/分钟的速度要求,并且可以进行多方位的数据采集,增加信息量,提高检测的准确程度。
如果仅用一个DSP来实现,或者是由于处理能力所限不能完成包括数字信号处理在内的所有功能,或是使硬件系统过于复杂。
方案二:
从电涡流传感器的原理和特性出发,根据中国硬币体系中各币种的尺寸、材质等特征,设计了由高频反射式和低频透射式组成的双路电涡流传感器来分别检测硬币的不同特征参数,并设计了相应的传感器电路。
在整个硬币识别系统的系统硬件机构设计上,采用由数据采集、数据处理和人机接口三个系统模块构成的多CPU结构设计,三个系统模块分工明确,各自独立工作,同时又通过双端口RAM传递命令和数据的方式进行相互协调,密切配合。
此方案价格便宜,硬件系统和软件系统简单。
2.2系统总框图
图2-1 系统总框图
3 硬币清分系统的硬件设计
硬件是系统的重要组成部分,它负责将被测信号转换为便于计算处理的数字信号,并提供了进行信号传送、处理和显示所需的物质基础。
图3-1是硬币清分系统的系统结构图。
系统采用基于DSP的主从式系统,其中DSP进行数据采集和处理,单片机对系统进行控制,提供显示、操作、人机接口等服务。
图3-1 系统硬件结构图
其基本工作过程为:
硬币先后通过高频和低频传感器而产生涡流效应,信号调理电路通过适当变换将涡流效应信息转换成数字量供DSP采集和实时处理,将鉴别结果通过HPI接口送入单片机,单片机则负责将鉴别结果以合适的方式显示在LCD上,同时,剔除不符合要求的被测对象。
3.1DSP子系统的硬件设计
3.1.1DSP子系统的总体设计方案
1.确定DSP模块总体设计目标
DSP系统的设计步骤如图3-2所示,首先确定设计目标,然后定义性能指标,选择DSP芯片,进行硬件设计,硬件调试及软件设计,软件调试,最后进行系统集成和调试,完成整个设计步骤。
使DSP能对经过调理的传感器信号(频率、幅值、相位)进行实时采集和处理,并且能与作为主机的单片机通信。
图3-2 DSP系统设计步骤
3.1.2硬件设计
1、A/D转换
在本系统中选用采样速率最高可达330K的MAX125,数据精度14位。
芯片内部包括一个14bit,转换时间为3μs的逐次逼近型模拟数字转换器,一个+2.5V的内部电压基准,一个经过缓冲的内部电压输入端,一个内部16MHz时钟。
一组可以同时对4路-5V~+5V输入的模拟信号进行同步采样/保持(Track/Holds)的电路。
MAX125的并行接口数据访问和总线释放的定式特性,与绝大部分数字信号处理器及6bit/32bit微处理器的特性兼容,故MAX125可以与这些处理器直接连接而不需等待状态。
图3-3 DSP子系统硬件框图
实际应用中,MAX125的采样速率由软件控制引脚CONVST的状态来决定。
当转换结束时,系统自动给INT端一个低电平信号,DSP在查询到此低电平信号后,读取数据后延时,再次启动转换。
由于MAX125一个通道的转换时间为3μs,所以系统的采样频率为300K左右。
采集1024个数据需3ms左右,远大于完成一次算法所需的最长时间1.5ms。
实时信号处理是指系统必须在有限的时间内对外部输入信号完成指定的功能,即信号处理速度应大于信号更新(传输)速度。
所以本模块设计可以满足实时性的要求。
AX125的输出数据线为5V的逻辑电平,54xxDSP外部I/O引脚逻辑电平为3.3V。
MAX125输出高电平一般在4.5V以上,而54xx系列DSP允许输入高电平的最大值为3.6V。
所以MAX125的输出不能直接接到DSP的数据线上,需要做电平转换,这里选用TI74LVC16245A芯片来进行电平转换。
74LVC16245A是TI公司的一种16位双向总线收发器。
它可以接收高达5.5V的高电平,而输出的高电平可以达到3.3V左右。
可以用做2个8位或1个16位收发器。
输出使能控制线(/OE)可用来使器件有效或无效(双侧相互隔离)。
DIR为方向控制端,高电平A→B,低电平B→A。
另外要注意,74LVC16245A的操作电压引脚VCC应该接3.3V。
2、扩展的片外FLASH
TMS320VC5402系列DSP芯片设计具有丰富的内部快速存储器,使用内部存储器可以全速运行,达到芯片的最高速度。
因此,充分利用内部存储器可以使DSP系统的整体性能达到最佳。
存储器接口包括ROM接口和RAM接口两种。
RAM有两种形式,单寻址RAM(SRAM)和双寻址RAM(DRAM)。
ROM主要指PROM和EPROM。
RAM既可以构成数据空间,也可以构成程序空间,ROM一般安排到程序空间。
在TMS320VC5402中,具有16K字的片内DARAM和4K字的掩膜ROM,掩膜ROM需要由用户将程序代码提交德州仪器(TI)来完成。
因此,设计一个TMS320VC5402硬件系统一般应包括PROM/EPROM,并根据需要是否扩展SRAM。
TMS320VC5402有16根数据线,20根地址线,可构成64K的数据空间,1M的程序空间,每页空间大小为64K。
程序存储器空间存放要执行的指令和执行中所用到的系数表。
数据存储器存放执行指令所要用的数据。
前面的分析中我们可以看到,在本系统中,程序和数据空间都可放在片内,所以只需扩展一片EPROM。
目前市场上的EPROM工作电压一般为5V,与3.3VDSP芯片相接时需要考虑电平转换问题,而且体积都较大。
FLASH存储器与EPROM相比,具有更高的性能价格比,而且体积小、功耗低、可电擦写,使用比较方便,3.3VFLASH可直接与DSP相接。
FLASH选用SST39VF400,工作电压3.3V256K×16bit。
由于TMS320VC5402与SST39VF400均采用3.3V供电,无需驱动电路;且SST39VF400的数据线和地址线都具有锁存功能,所以它们的接口比较简单。
由于本系统采用8位并行引导方式来加载程序,因此FLASH必须映射到数据空间,此外TMS320VC5402最大可扩展64K数据存储空间,因此这里只使用了SST39VF400的32K的存储空间。
3、DSP对外围器件的逻辑控制
在从机系统中由于扩展了一片FLASH,还外接了A/D转换器件,它们都有各自的片选和读写控制逻辑,为了正确的对各个器件进行正确的访问,有必要对这些芯片进行惟一的片选和读写控制。
在这里采用双列直插的GAL16V8D代替常用的逻辑门来对这些芯片进行片选和读写控制。
GAL16V8D是一种门阵列芯片,可以由设计者自己定义输入输出的逻辑关系,在调试电路时可以根据需要来改变逻辑编程简单而且灵活。
由于GAL16V8D的供电电压为5V,其输入高电平可以为3.3V,但输出高电平为5V,因此不适合和3.3V的存储器直接接口,必须进行电平转换,同样采用74LVC16245A来实现(如前所叙)。
电路接口如图3-4,DSP的控制信号由GAL译码输出,GAL的输出作为74LVC16245A的输入,74LVC16245A的输出作为片外存储器的片选和读写控制的输入。
A15(高)和DS用来片选SST39VF400,其读写信号由DSP的读写进行控制;GAL16V8D的输出可以直接作为MAX125的输入,A0(低)和IS用来片选MAX125。
图3-4 TMS320VC5402与外部器件连接图
4、时钟电路
图3-5 时钟电路1
在TMS320VC5402内部,时钟信号由时钟发生器提供。
时钟发生器由内部振荡器和锁相环(PLL)电路两部分组成。
为时钟发生器提供参考时钟输入一般有两种方法:
(1)利用DSP芯片内部所提供的晶振电路,在DSP芯片的X1和X2/CLKIN之间连接一晶体可启动内部振荡器,如图3-5所示;
图3-6 时钟电路2
(2)另一种方法是采用外部时钟,将一个外部时钟信号直接加到X2/CLKIN引脚(X1空着不接)。
采用封装好的晶体振荡器,只要在4脚加上5V电压,2脚接地,就可在3脚得到所需时钟,如图3-6所示,图中所画的晶体振荡器为顶视图,其中1脚悬空。
TMS320VC5402满负荷工作时需要100M的时钟,从外部产生这样的时钟困难,所以通常的设计是采用第一种方式。
C54xx内部的PLL兼有频率放大和信号提纯的功能,用高稳定的参考振荡器锁定,可以提供稳定的频率源。
这种外部频率源的频率低于CPU机器周期(CLKOUT)的工作方式,能降低因高速开关时钟造成的高频噪声。
复位以后,时钟模式是由三个外部引脚的值决定的,分别为CLKMD1,CLKME2,CLKMD3,见表3-1。
表3-1 TMS320VC5402DSP复位时钟模式
本系统设计中采用CLKMD(1-3)=001的方式。
图3-6中晶体为10MHz,如表3-2所示,所以TMS320VC5402时钟主频为10×10=100MHz。
5、复位电路
图3-7所示为一个简单实用的手动复位电路。
电源刚加上电时,TMS320VC5402处与复位状态,RS为低使芯片复位。
为使芯片初始化正确,一般应保证RS为低至少持续3个CLKOUT周期。
但是,在上电后,系统的晶体振荡器往往需要几百毫秒的稳定期,一般为100ms~200ms。
图中所示的复位电路时间主要由R和C确定。
A点电压V=Vcc(et/τ),τ=RC。
设V1=1.0V为低电平与高电平的分界点,则:
选择R=100K,C=4.7μF,可得t1=361ms。
保证了低电平的持续时间,从而满足复位要求。
图3-7 复位电路
6、电源电路
TMS320VC5402工作电压为3.3V和1.8V,其中1.8V主要为器件的内部逻辑提供电压,包括CPU和其他外设逻辑。
与3.3V相比,1.8V供电可以降低功耗。
外部接口引脚仍然采用3.3V电压,这样可以直接与外部低压器件接口,而无需额外的电平变换电路。
在本系统中,采用TI公司提供的TPS767D318芯片,对电压进行转换。
TPS767D318是一款双路、固定正输出、低压差线形稳压器,可把一路5V电压转换成3.3V和1.8V两路输出,最大输出电流高达1A。
同时在电源上电时可产生200ms宽度的RESET信号,可作为DSP以及外围器件的上电复位信号。
电路图如图3-8所示。
3.1.3DSP与单片机的接口电路
在本设计中,以单片机作为主机,DSP作为从机,用单片机来控制整个系统,所以单片机和DSP之间的主从式连接是本设计的重点,在这里采用了TMS320VC5402中的片内外设增强型主机接口(HPI)。
主机接口(HPI)是一个8-bit的并口,提供了C5402和主处理机的接口。
1、主机接口的传统解决方案
解决主机和目标系统的数据交换是一个非常复杂的问题。
传统方式是采用DMA(DirectMemoryAccess)或全局存储器(GlobalMemory)完成多机系统中的数据共享。
但是在DMA方式下,读写共享内存必须要求另一个处理器处于停止工作的状态。
所以DMA的共享存储器方式往往不为人所用。
图3-8 电源电路
TMS320C5x是传统DSP芯片,不但有传统的DMA接口,而且使用了全局存储器(GlobalMemory)的方法为解决该问题提供了2种选择。
所谓全局存储器即是由多个处理器所共享的存储器。
在使用全局存储器的应用系统中,DSP处理器的地址空间被分成局部块(LocalSection)和全局块(GlobalSection)。
局部块用于完成处理器自己的工作,而全局块则用来完成与其他处理器的通信工作。
在TMS320C5x器件中,使用全局存储器分配寄存器GREG完成对全局内存的管理工作。
全局存储器分配寄存器制定部分DSP内存为全局内存(范围从256~32K)。
TMS320C5x器件能够分配全局数据内存空间并通过总线请求(BusRequest)和控制信号实现与该内存的通信。
当某个DSP需要对全局内存的控制权时,需要通过外部逻辑进行全局内存控制权的裁决,然后将裁决的结果通知某个TMS320C5x,于是该DSP就拥有对全局内存的控制权。
显然,使用全局内存的方式来完成多DSP的共享数据通信是非常方便的。
但是,应用系统中往往使用单片机作为主机,DSP作为目标系统构成。
而当前使用最多的单片机往往是8位机。
于是,使用16位的共享内存完成主机与DSP的数据交换不是处理太复杂就是资源利用不充分。
为了解决DSP与低档8位主机的数据交换问题,德州仪器公司在TMS320C5x系列的’LC57和’C57S中使用了HPI端口,而且该HPI端口在德州仪器公司最新推出的TMS320C54x系列的器件中得到了保持。
本系统就是采用TMS320VC5402的HPI端口来实现DSP和单片机的通信。
2、HPI的管脚说明
下面详细介绍一下HPI的各个管脚的功能。
HAS:
地址选通输入。
HAS和具有复合的地址和数据总线的主机的ALE或者等效管脚相连。
HBIL:
Byte指示输入。
可与主机的地址或者控制信号相连。
表明传送的数据是第一或是第二字节:
HBIL=0表明是第一字节;HBIL=1表明是第二字节。
HCNTL0、HCNTL1:
主机控制输入。
主机通过这两个信号寻址HPIA寄存器、HPI数据锁存(带地址增选择)或者HPIC寄存器。
HCS:
片选信号。
HPI的使能输入端,在存取操作时它必须为低电平。
HD0-HD7:
并行双向三态数据总线。
直接与主机的8位数据总线相连接。
未输出的情况下为高阻态。
HDS1、HDS2:
数据选通输入。
在主机的存取周期中用来控制数据的传输。
HINT:
主机中断输出。
由HPIC中的HINT位来控制,DSP通过写HPIC寄存器改变该引脚的输出,进而中断主机的工作。
HRDY:
HPI准备输出。
为高电平时,表明HPI准备好传输数据;为低电平时表明HPI正在忙于传输以前的数据。
HR/W:
读/写输入。
当主机读DSP时,HR/W为高电平;而当主机写DSP时,HR/W为低电平。
3、接口硬件电路设计
54xxDSP的外部I/O引脚用的是3.3V的逻辑电平,而大部分51单片机用的是5V的逻辑电平。
前者输出高电平,最小值为2.4V;后者输入高电平,最小值为2.0V。
所以前者的输出可以直接接到后者的输入。
但是前者允许输入高电平最大值为3.6V,而后者的输出高电平一般都在4.5V以上。
所以前者的输入和后者的输出不能直接连接,需要做电平转换,这里同样选用TI74LVC16245A芯片来进行电平转换。
硬件连接示意图如图3-9所示
图3-9 HPI硬件连接图
4 系统软件设计
4.1DSP系统的软件设计
DSP系统的软件设计包括对DSP的初始化、A/D采样和信号处理等,主程序很简单,图4-1是其流程图。
系统上电复位或热启动后,先初始化各变量、寄存器为系统正常执行各项功能做准备,准备完毕后,等待来自主机的指令进入相应的工作,工作完毕后,继续等待。
图4-1 DSP主程序流程图
4.1.1系统的初始化
初始化一方面是设置DSP的工作环境,另一方面是为后面的信号处理做准备,具体地说主要包括以下功能。
1、设置寄存器
TMS320VC5402DSP芯片上电复位之后处于预先设定的状态,无论是状态寄存器还是控制寄存器都有一个确定的数值。
例如,复位之后,控制寄存器PMST中的IPTR均为1,从而将矢量映射到程序存储空间的第511页,这意味着复位矢量总是驻留在程序空间的FF80H处。
DSP芯片复位之后,需要对芯片的堆栈指针(SP)、存储器映射的外设控制寄存器(SWWSR和BSCR)、状态寄存器(ST0和ST1)及模式控制寄存器(PMST)等进行初始化以适应不同的要求。
同时中断矢量表示每个DSP系统必须用到的,对中断矢量表进行初始化是DSP初始化的一个重要组成部分。
在本系统中设置DSP的工作方式为微处理器方式;将OVLY位置1,使DARAM既映射到数据空间,又映射到数据空间;在C54x里中断矢量可映射到程序空间任何一个非保留的128字长的页,这样可以很方便地改变中断的入口地址。
IPTR就是存放中断入口的页面地址的。
在本设计中,将中断向量表映射到了第一页,所以在初始化PMST时IPTR应为000000001。
2、设置定时器
在系统中,定时器用来对信号的脉宽计数。
C54x定时中断的周期为CLKOUT×(TDDR+1)×(PRD+1),并且定时控制寄存器(TCR)中的TSS位可以停止或者启动片内定时器。
本系统中,并不需要发生定时中断,而是利用定时器对脉宽进行计数。
在此,设置TDDR为9,PRD为2499,CLKOUT为10ns,则定时中断周期为0.01×(9+1)×(2499+1)=250μs,大于需要定时的脉冲宽度,因此在计数过程中不会发生中断。
3、中断设置
在系统中,数据的采集是在中断服务程序中进行的,用到了3个外部中断INT0~INT3,为了在触发信号到来时,中断能得到正确响应,必须对中断进行设置,包括对屏蔽寄存器IMR的设置和对PMST中的INTM的设置。
4.1.2数据采集单元程序设计
数据采集系统是整个系统的关键环节,能否正确实时地采集数据关系到整个系统的成败。
本系统要对三个通道的数据进行采集:
频率通道、幅值通道和相位通道,其中幅值通道的数据采集通过A/D转换芯片进行,对频率通道和相位通道的数据采集则通过在中断服务程序中启动定时器计数、读数进行。
一、频率通道数据采集
在频率通道和相位通道的数据采集中,使用了TMS320VC5402的2个16位定时器。
片内定时器是一个软件可编程的计数器,它包括以下3个存储器映射寄存器:
定时寄存器(TIM)。
16位的存储器映射寄存器,Timer0的位于数据空间的0024h单元,Timer1的位于数据空间的0030h单元。
复位或定时器中断(TINT)时,TIM内装入PRD的值,并进行自减操作。
定时周期寄存器(PRD)。
16位的存储器映射寄存器,Timer0的位于数据空间的0025h单元,Timer1的位于数据空间的0031h单元。
每次复位或TINT中断时将内容装入TIM寄存器。
定时控制寄存器(TCR)。
16位的存储器映射寄存器,Timer0的位于数据空间