




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.摘要硬币在人们的日常生活中扮演着重要角色,同时随着人口的增加和社会文明程度的提高,硬币的需求量会日益增加。硬币代替小面额纸币流通给人们带来许多方便,同时也带来了一些问题。银行等一些特殊部门要对大量的硬币进行高效的处理如计数、分类、包装等以使其再流通,无人售票车、投币电话等需要对硬币进行实时识别,自动售货机除了识别之外,还要提供找零功能等。随着假币的出现,在线识伪也成为了一个急需解决的问题。硬币清分系统应运而生。本文从对硬币进行清分的必要性出发,针对当前国内外硬币清分的现状,提出了一种实用可靠的解决方案。本系统采用 DSP 与单片机构成的主从式系统,实现了对硬币高速、准确地清分。 关键词:硬币清分; DSP;单片机;数据采集;数据处理AbstractCoins play a very important role in peoples life,and with the increase of the population and the improvement of social civilization,the amount of coins needed will increased greatly.As the substitute of papermoney,coins bring our life much convenience,and many problems as well.Some special departments,such as banks,have to deal with coins efficiently so as to put coins into circulation again,for example,counting the numbers of coins,dividing coins and packaging coins.Automatic ticket cars,public telephones,etc,which need coins,must discern coins in-time,and automatic teller machines have to fulfill the function of automatic charging.Furthermore,with the appearing of fake coins,the task of discerning fake coins in-time becomes an urgent problem.And then the coins counting and discerning system comes into existence.The article put forward a practical and reliable project for coins counting and discerning system at the base of essentiality of coins counting and discerning,and aiming at the current situation of coins counting and discerning in the world.The system,arguing in the article,adopts the multi-CPU system composed of DSP and MPU,and realizes coins counting and discerning with high speed and high accuracy. Key Words:Coins Detection and Differentiation;DSP;SingleChip Microprocessor;Data Gathering;Data Processing目录1 绪论11.1硬币与识别系统11.2本系统的研制目标12 硬币识别方案的设计22.1方案论证22.2系统总框图23 硬币清分系统的硬件设计33.1DSP子系统的硬件设计33.1.1DSP子系统的总体设计方案33.1.2硬件设计43.1.3DSP与单片机的接口电路94 系统软件设计134.1DSP系统的软件设计134.1.1系统的初始化134.1.2数据采集单元程序设计144.1.3数据处理单元程序设计184.1.4单片机和DSP通信程序的设计214.2单片机系统的软件设计214.2.1按键输入的软件设计214.2.2液晶显示程序设计224.2.3 I2C总线读写串行E2PROM的子程序25致谢28参考文献29 精选范本.1绪论1.1硬币与识别系统硬币在日常生活中扮演着重要角色。硬币在漫长的货币史中占据重要地位,并且与其他形式的货币相伴而流通而发展。因人口的增加和社会文明程度的提高,硬币的需求量仍在日益增加,各国的造币厂尚在日夜兼程制造各种面值的硬币(如美国每年要生产200 亿美元的硬币)。面对庞大的硬币流通量,硬币的高效检测是一项非常有意义的工作:银行等一些特殊部门要对大量的硬币进行高效的处理如计数、分类、包装等以使其再流通;无人售票车、投币电话等需要对硬币进行实时识别;自动售货机除了识别之外,还要提供找零功能等;随着假币的出现,在线识伪也成为了一个急需解决的问题。硬币识别系统应运而生。硬币识别系统是对高速通过的硬币进行识别、计数,同时对伪币、残币进行剔除的系统。它是分类机、计数机、包装机、销毁机等众多硬币处理器具的基础。由于国情和货币体系不同,研制统一的硬币识别系统不现实,因此,需要针对不同的货币体系研制相应的识别系统。1.2本系统的研制目标综上所述,我国的硬币体系与其他国家的相比具有材质差异大、币种多、版本多且各版本的同种硬币的铸造参数差异大等特点,从而对我国的硬币自动化识别系统的提出了更高的要求。硬币的高效实时批量鉴别在国内尚未很好地解决。 研制硬币智能系统的目的在于给出完整的硬币识别与处理方案:实现动态、快速、精确地对硬币进行识别、计数,对出现的假币和残币进行准确判别并将其剔除;便于操作,能够以友好界面对识别情况进行实时显示或打印;具备学习功能,可以适应新发行的硬币品种。2硬币识别方案的设计2.1方案论证方案一:方案是采用专用的数字处理芯片DSP 来实现。同样进行数据采集,以速度可达100MPIS 以上的TMS320VC5402 芯片为例。对于高速硬币清分系统,硬币速度达到6000 枚/分钟,每枚硬币采集100 个点,则硬币将用C 语言编写的数据采集程序在Code Composer Studio(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-2DSP系统设计步骤3.1.2硬件设计1、A/D转换在本系统中选用采样速率最高可达330K的MAX125,数据精度14位。芯片内部包括一个14bit,转换时间为3s的逐次逼近型模拟数字转换器,一个+2.5V的内部电压基准,一个经过缓冲的内部电压输入端,一个内部16MHz时钟。一组可以同时对4路-5V+5V输入的模拟信号进行同步采样/保持(Track/Holds)的电路。MAX125的并行接口数据访问和总线释放的定式特性,与绝大部分数字信号处理器及6bit/32bit微处理器的特性兼容,故MAX125可以与这些处理器直接连接而不需等待状态。图3-3DSP子系统硬件框图实际应用中,MAX125的采样速率由软件控制引脚CONVST的状态来决定。当转换结束时,系统自动给INT端一个低电平信号,DSP在查询到此低电平信号后,读取数据后延时,再次启动转换。由于MAX125一个通道的转换时间为3s,所以系统的采样频率为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为方向控制端,高电平AB,低电平BA。另外要注意,74LVC16245A的操作电压引脚VCC应该接3.3V。2、扩展的片外FLASHTMS320VC5402系列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.3V FLASH可直接与DSP相接。FLASH选用SST39VF400,工作电压3.3V256K16bit。由于TMS320VC5402与SST39VF400均采用3.3V供电,无需驱动电路;且SST39VF400的数据线和地址线都具有锁存功能,所以它们的接口比较简单。由于本系统采用8位并行引导方式来加载程序,因此FLASH必须映射到数据空间,此外TMS320VC5402最大可扩展64K数据存储空间,因此这里只使用了SST39VF400的32K的存储空间。3、DSP对外围器件的逻辑控制在从机系统中由于扩展了一片FLASH,还外接了A/D转换器件,它们都有各自的片选和读写控制逻辑,为了正确的对各个器件进行正确的访问,有必要对这些芯片进行惟一的片选和读写控制。在这里采用双列直插的GAL16V8D代替常用的逻辑门来对这些芯片进行片选和读写控制。GAL16V8D是一种门阵列芯片,可以由设计者自己定义输入输出的逻辑关系,在调试电路时可以根据需要来改变逻辑编程简单而且灵活。由于GAL16V8D的供电电压为5,其输入高电平可以为3.3,但输出高电平为5,因此不适合和3.3的存储器直接接口,必须进行电平转换,同样采用74LVC16245A来实现(如前所叙)。电路接口如图3-4,DSP的控制信号由GAL译码输出,GAL的输出作为74LVC16245A的输入,74LVC16245A的输出作为片外存储器的片选和读写控制的输入。A15(高)和DS用来片选SST39VF400,其读写信号由DSP的读写进行控制;GAL16V8D的输出可以直接作为MAX125的输入,A0(低)和IS用来片选MAX125。图3-4TMS320VC5402与外部器件连接图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-1TMS320VC5402 DSP复位时钟模式本系统设计中采用CLKMD(1-3)=001的方式。图3-6中晶体为10MHz,如表3-2所示,所以TMS320VC5402时钟主频为1010=100MHz。5、复位电路图3-7所示为一个简单实用的手动复位电路。电源刚加上电时,TMS320VC5402处与复位状态,RS为低使芯片复位。为使芯片初始化正确,一般应保证RS为低至少持续3个CLKOUT周期。但是,在上电后,系统的晶体振荡器往往需要几百毫秒的稳定期,一般为100ms200ms。图中所示的复位电路时间主要由R和C确定。A点电压V =Vcc(et/),=RC。设V 1=1.0V为低电平与高电平的分界点,则:选择R=100K,C=4.7F,可得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(Direct Memory Access)或全局存储器(Global Memory)完成多机系统中的数据共享。但是在DMA方式下,读写共享内存必须要求另一个处理器处于停止工作的状态。所以DMA的共享存储器方式往往不为人所用。图3-8电源电路TMS320C5x是传统DSP芯片,不但有传统的DMA接口,而且使用了全局存储器(Global Memory)的方法为解决该问题提供了2种选择。所谓全局存储器即是由多个处理器所共享的存储器。在使用全局存储器的应用系统中,DSP处理器的地址空间被分成局部块(Local Section)和全局块(Global Section)。局部块用于完成处理器自己的工作,而全局块则用来完成与其他处理器的通信工作。在TMS320C5x器件中,使用全局存储器分配寄存器GREG完成对全局内存的管理工作。全局存储器分配寄存器制定部分DSP内存为全局内存(范围从25632K)。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-9HPI硬件连接图4系统软件设计4.1DSP系统的软件设计DSP系统的软件设计包括对DSP的初始化、A/D采样和信号处理等,主程序很简单,图4-1是其流程图。系统上电复位或热启动后,先初始化各变量、寄存器为系统正常执行各项功能做准备,准备完毕后,等待来自主机的指令进入相应的工作,工作完毕后,继续等待。开始系统初始化等待主机对DSP的中断取得主机指令进入相应工作模式图4-1DSP主程序流程图4.1.1系统的初始化初始化一方面是设置DSP的工作环境,另一方面是为后面的信号处理做准备,具体地说主要包括以下功能。1、设置寄存器TMS320VC5402 DSP芯片上电复位之后处于预先设定的状态,无论是状态寄存器还是控制寄存器都有一个确定的数值。例如,复位之后,控制寄存器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)=250s,大于需要定时的脉冲宽度,因此在计数过程中不会发生中断。3、中断设置在系统中,数据的采集是在中断服务程序中进行的,用到了3个外部中断INT0INT3,为了在触发信号到来时,中断能得到正确响应,必须对中断进行设置,包括对屏蔽寄存器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的位于数据空间的0026h单元,Timer1的位于数据空间的0032h单元。包含了定时器的控制位和状态位。TCR的比特分配见图4-2。图4-2TCR的比特分配在程序设计中用到的位介绍如下:PSC:定时器预定标计数器。定义片内定时器数目。当PSC减到0或复位时,PSC内装入TDDR值。TRB:定时器重置。复位片内定时器。TSS:定时器停止状态。停止或者启动片内定时器。复位时,TSS=0启动定时器,TSS=1停止定时器。频率通道数据采集流程图如图4-3所示。INT0TSS等于1终止定时器0读出PRD和TDDR的值将读出的数存入DARAM设置TSS=0,TRB=1来重载定时器周期启动定时器0返回图4-3频率通道数据采集流程图二、幅值通道数据采集幅值通道数据采集部分的软件主要是对A/D转换芯片MAX125的操作,启动A/D转换之后,MAX125开始对数据进行采样并转换,DSP以查询方式确定A/D转换结束后,再从MAX125中读出数据并存储,同时置未处理标志。MAX125的输入指令(A0A3)与数据输出(D0D3)在低4位通过三态门实现复用,与DSP接口容易。CS、WR、RD控制读写操作。CS是标准的片选信号,它能控制MAX125作为地址线的I/O端口。当CS为高电平时,所有I/O呈现高阻,读写操作无效。时序如图4-4所示。1、选择通道MAX125有8个转换方式并通过对A0A3地址线编程实现。在上电时,芯片自动选择CH1A为转换通道。用户可以选择CH1ACH4A或CH1BCH4B这两组中的任何4个同步采样通道。如要对MAX125输入转换指令,应将CS拉低,对A0A34根地址线编程(编程的方式见表4-1)。然后,给WR一个低脉冲,编程指令在WR或CS的上升沿被锁存。这时模数转换器作好了转换的准备。一旦转换程序执行,模数转换器就在指定方式下连续执行转换,直到重新编程或断电为止。图4-4MAX125的操作时序图2.模数转换表4-1MAX125通道选择编程方式YN开始启动A/D转换转换结束从A/D转换器中读取数据存储数据延时启动A/D转换。图4-5幅值通道数据采集流程图选择了转换通道之后,给CONVST一个低脉冲就可进行一个转换顺序。在CONVST的上升沿,模拟信号被采样。在转换进行时不能进行新的转换。随时检测INT输出,一旦出现下降沿就表明一个转换顺序结束(见图4-4)。3、读数据在读周期,向RD引脚提供连续脉冲,通过并行接口可连续访问片内RAM中的数据。接收到INT信号后,可执行4个读操作来访问4个转换数据。CS低电平,转换结果从CH1开始。在每个RD的上升沿,内部地址指针指向下一个通道。如果只转换单个通道,只需一个RD脉冲,地址指针重新指向CH1。4、程序流程图在本系统中,MAX125只对幅值通道一路信号进行转换,默认CH1A为转换通道。DSP读取MAX125的数据采用查询方式,流程图如图4-5所示。由于采样间隔是否均匀对于系统影响不大,所以在此采用延时来控制MAX125的采样频率。三、相位通道数据采集INT1返回TSS=0启动定时器0返回INT2TSS=1停止定时器1读出PRD1和TDDR1的值将读出的数存入DARAM图4-6相位通道数据采集流程图对相位差的测量与频率信号的测量原理相似,也使用在相位差的时间内通过的DSP时钟个数来表示相位的差别。具体做法如下:将相位差信号作为DSP的INT1的触发信号,相位差信号取反后作为INT 2的触发信号,在各自的中断服务程序中分别启动和停止定时器计数,图4-6为中断服务程序的流程图。信号示意图如图4-7所示。4.1.3数据处理单元程序设计1、存储器分配在本系统中TMS320VC5402的存储器分配如图4-8所示,DSP工作在微处理模式,即不使用DSP内部的ROM。程序和数据都使用的是在片RAM,安排如下:最前面的Memory Map Registers(00h60h)是存储器映像寄存器;system_stack(60h7Fh)是系统堆栈区;Defined Variables(80hFFh)是变量区,用于存放计算的临时变量,Frequency Data(0100h0500h)、AmplitudeData(0500h0900h)、PhaseData(0900h1300h)分别用来存储频率通道、幅值通道、相位通道的采集的数据;Coins num(1300h1320h)和Coins feature(1320h1420h)用来存放各种面值硬币的硬币数量与特征值;Coins kind和command(14201430)中则存放的是由主机传送过来的命令与用户选择的币种。在本设计中,通过设置寄存器PMST中的IPTR,将中断向量表映射到了程序空间的1440h1520h。2、实时数据处理硬币通过传感器时,所采集的信号会按照由弱到强,再由强到弱的规律变化。极值反映了硬币的综合特征。因此,信号的实时处理的关键问题就是如何实时捕获高速数据率下的极值。幅值和相位信号工作于低频透射模式,极值变化迅速,信噪比高,其信号如图4-9所示。为此,我们采用了跳跃比较法。YYYNNNN预设阀值Wx(j)是否递减且当前值小于W采集数据,每若干个点中去一个点构成数列x(j)表示下降的点数加1与已取得的极小值比较,取其小,存入极小值变量,赋极小值标志结束上升点数加1连续n个点下降?重设部分标记性变量极小值标记?连续m个点上升?取得极小值开始图4-10跳跃法寻求极值的流程图跳跃比较法的思想是:如果具有极小值的序列y(n)在极值点前是不升的,在极值点后是不降的,则可以用逐次比较的思想来获取极值。当噪声较小时,如能在原序列x(n)的基础上构造新序列Xn ) 具备y(n)的单调性,则可以沿用这种思想。具体做法是:(1 )在序列x(n) 的每m 个点中取一个点组成新序列 ( Xn xn ) ,使其基本满足y(n)的单调性;(2)以经验选定合适的阈值 ,当()0 且为常量)。如果小于B的点的不少于l个, B=A-S,同时作逐次比较取较小值。若有连续m个点超越门限A, 则极小值已经出现,且是已经记录的极小值。 4.2单片机系统的软件设计单片机系统的软件设计主要包括按键输入的软件设计、液晶显示的软件设计和IC2总线读写串行E2PROM的子程序软件设计。4.2.1按键输入的软件设计系统采用8255扩展I/O口组成的55行列式键盘,用户通过它来完成选择工作模式,控制液晶屏的显示内容,启停电机等工作。在单片机系统中,键盘的工作方式有编程扫描方式、定时扫描方式和中断扫描方式三种,在此采用中断扫描方式,即在有键按下时,才执行键盘扫描,执行该键功能程序。这样做,提高了CPU的效率。在本系统中,绝大部分按键的输入是由用户根据屏幕的提示在需要的时候进行,所以按键程序的设计应该能够识别什么时候的按键输入是有效的,什么时候的输入是无效的。在具体实现时,设置了一个标志位keyflag,该标志位被初始化为0,在需要按键输入时,将其置为1,当有键按下产生外部中断时,在中断服务程序中通过判断标志位keyflag来决定是否进行计算键码的子程序,当keyflag为1时,说明该按键输入有效,否则程序返回。YN初始化HPIC初始化HPIA采用地址增量方式读取数据数据读完否?结束图4-12采用地址自动增量方式单片机读DSP程序流程图当键盘有键按下时,要逐行或逐列扫描,以判定是哪一个键按下。通常扫描方式由两种,即扫描法和反转法。在此,采用扫描法。扫描法是在判定有键按下后逐列(或行)置低电平,同时读入行(或列)状态,如果行(或列)状态出现非全1状态,这时0状态的行、列交点的键就是所按下的键。图4-13中甲图为按键主程序的流程图。在主程序中,首先初始化CPU,开外部中断0,然后对8255进行初始化,设PB口为输出口,PA口为输入口。在需要按键输入时,置初始化为0的标志位keyflag为1,等待按键输入后转中断服务程序(流程图见图4-13乙图)。在中断服务程序中,延时10ms消除机械抖动后,如果仍有键按下,就调用键扫描子程序,然后置按键标志为0,返回主程序,根据键码执行相应的任务。4.2.2液晶显示程序设计1、字模结构MGLS-12864(MGLS-19264)显示1616点阵汉字四行,任一个被显示的汉字字模结构如图4-14所示。图中可知,一个汉字分为上部16个字节和下部16个字节。这种字模结构与标准字模结构不同,若使用标准字模的汉字库中汉字,则需要转换。按图4-14结构逐个汉字手工画点并编码,或运行程序调用汉字库文件中的汉字字模,再转换成图4-14所示的结构,并产生汉字代码文件。由于所选用的HD61202中的RAM共有64行,分为8页,每页8行,这样就必须向两页中的对应列送数据。写每个汉字时,先取字模的上十六个字节,写在一页中,再取字模的下十六个字节,写在下一页中即可。字符和数据的显示与汉字相似,所不同的是,字符的字模为88点阵结构。图4-14汉字字模结构1.一般显示过程在读写有关数据时,首先要把HD61202指令写入指令寄存器中(D/I=0),开显示并清屏,并且设置数据在液晶屏上的显示位置,然后读写数据。由于液晶显示器是一种慢速显示器件,所以CPU向液晶显示控制器发送每条指令或者写每个数据之前,一定要确认显示器的忙标志为0,即非忙状态,否则此指令将失效。在液晶显示驱动器HD61202内有一个忙标志寄存器,当BUSY=1,表示内部操作正在运行,不能接收外部数据,这是HD61202向CPU发出的唯一联络信号。在D/I=0,R/W=1的条件下,CPU可以从DB7上读出BUSY信号。根据硬件部分的介绍,可知单片机对液晶显示模块的操作可以分为4类:写指令、写数据、读忙、读数据,对应的口地址也已经由硬件连接所决定了。在写指令和写数据时,必须首先读忙状态,确定不忙时,将指令和数据写入对应的口地址。读忙和读数据时,则直接将对应口地址的数据读出即可,程序相对比较简单,在此不作介绍,在后面的介绍对这些子程序直接调用。液晶显示的一般流程图如图4-15所示。2.在硬币清分中的应用由于要显示的汉字数目有限,在系统中编写了一个汉字代码提取程序,输入要提取的汉字,则输出该汉字的1616点阵编码,每个要显示的汉字编码形成系统的小字库,字库作为一个5008的二维数组存放在程序空间。由于字符采用88的点阵结构,而汉字采用的是1616的点阵结构,所以一个数组元素即表示一个字符,而每个汉字则需要4个元素来表示。将所有的字符和汉字编码,前80个为字符,后面为汉字。这样就可以在当前页任意位置显示任意字符串,字符串元素为字符和汉字在字库中的编号。NNYYNY开始读忙“BUSY”信号BUSY=1?开显示并清屏设置显示的起始位置写入显示数据并显示数据显示完?结束读忙“BUSY”信号BUSY=1?图4-15一般显示流程图4.2.3 I2C总线读写串行E2PROM的子程序基于I2C总线的串行AT24C256用于存储硬币的特征值和用户密码。在训练模式结束时要将训练得的硬币特征值进行加载,以存储在AT24C256中;当系统每次进行清分和点数模式时,再将特征值从AT24C256中读出。同时,用户可以设置用户密码存储在AT24C256,只有输入密码正确的用户才能进行训练模式。要对AT24C256进行正确的读写,必须了解I2C总线时序以及E2PROM的各种读写方式的实现。1、一般工作过程在AT24C256工作时,首先由CPU发出启动信号“S”(SDA在SCL高电平期间由高电平跳变为低电平),然后由CPU发送一个字节
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大海啊故乡说课稿和课件简
- 2025年锌银蓄电池合作协议书
- 商业计划书撰写协议
- 大林和小林课件
- 屋顶上的小猫咪解析课件
- 网约车司机服务协议
- 屈原课件教学课件
- 油泵架加工工艺及钻φ32孔夹具设计
- 园艺养护保养协议
- 成都分行征信查询管理系统培训图文33
- 透析中的监测及护理常规
- 小学生学习与发展课件
- 特种设备安全风险辨识与评估分级
- 股东代持合同模板
- 2025年山东省东营市经济技术开发区辅警岗位招聘30人历年高频重点提升(共500题)附带答案详解
- 2025-2030全球水飞蓟素原料药行业调研及趋势分析报告
- 2025年江苏无锡宜兴市高塍镇招聘专职网格员36人历年高频重点提升(共500题)附带答案详解
- GB/T 44947-2024机器状态监测与诊断性能诊断方法
- 2024-2025成都各区初二年级下册期末数学试卷
- 激励与奖惩机制
- 2024年考研英语核心词汇
评论
0/150
提交评论