一种嵌入式纸币特征采集系统的设计与实现.doc

上传人:吴起龙 文档编号:1592136 上传时间:2018-12-26 格式:DOC 页数:9 大小:18.87KB
返回 下载 相关 举报
一种嵌入式纸币特征采集系统的设计与实现.doc_第1页
第1页 / 共9页
一种嵌入式纸币特征采集系统的设计与实现.doc_第2页
第2页 / 共9页
一种嵌入式纸币特征采集系统的设计与实现.doc_第3页
第3页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《一种嵌入式纸币特征采集系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《一种嵌入式纸币特征采集系统的设计与实现.doc(9页珍藏版)》请在三一文库上搜索。

1、一种嵌入式纸币特征采集系统的设计与实现纸币识别系统已经广泛应用于金融、商业、交通、电信、公用事业、文化娱乐等各个领域的自动存款机、自助信息亭、自动充值机、自动售货机、自动售卡机、自动售票机、纸硬币兑换机、自动缴费机等。经过几十年的发展,纸币识别技术已经发展到了比较成熟的阶段,能够达到比较高的识别水平。识别器的机械、电机控制方面也已比较完善。但目前国内外主要厂商的主流产品都是基于单片机(无操作系统),在功能、扩展性等方面比较有限。随着技术的革新和自助服务在国内的迅速兴起,基于单片机的纸币识别系统已经越来越不能满足市场需求。 ?于单片机的纸币识别系统中,由于处理器处理能力和系统资源的限制,采集系统

2、在采集时独占处理器,其他系统只有等采集结束后才能处理采集到的数据,这样使得整个处理时间延迟了不少。并且单片机本身功能简单,对现在很多新增功能不能很好地支持。 ?疚拇?uClinux操作系统1和S3C4510B2的特点出发,通过对uClinux的改进,结合纸币识别系统采集系统的要求,采用中断方式实现采集。本采集系统将采集到的数据送往非实时程序与采集系统共享的内存区,缩短了其他模块的访问时间,这样将提高整个纸币识别系统的并发处理能力,充分利用处理器的强大处理能力和系统资源。由于uClinux免费,而且操作系统功能强大,使得纸币识别系统能够支持更多功能,并降低其成本,可扩展性大大增强。 1采集系统

3、11硬件简介 ?厥夤夥?/接收电路是纸币识别系统的关键信号收集电路,具体结构如图1所示。在纸币通道上、下设有特殊光发光部件和接收部件,S3C4510B对发光部件进行强度控制。当有纸币通过时,接收部件将检测到的特殊光信号传给模数转换器TLC1543。共有三路类似的特殊光发光/接收电路,这三路信号通过TLC1543后由SPI串行总线传回S3C4510B。 仅有以上特殊光发光/接收电路还是不够的,要采集多个不同点的信息还要借助其他的硬件设备,码盘光耦信号收集电路和马达电机驱动电路必不可少。 马达电机的作用是带动传动装置将放入纸币通道的纸币卷进纸币器。在纸币通道上下都有特殊的发光部件和接收部件,它们在

4、纸币被卷入纸币器时是保存不动的,那么纸币上的多个点就能被特殊的发光部件扫描,这样就实现了对纸币上多个点的数据采集。马达电机驱动电路如图2所示。S3C4510B通过大电流电机驱动芯片L298驱动步进电机,电机的过载信号也由L298传回。 码盘是安装在电机旁对电机进行测速的角度传感器,码盘光耦是测速光信号的发生器和接收器。码盘光耦将接收到的信号经施密特触发器整形后,传送到S3C4510B的I/O口。这个电路对实现采集系统的意义重大。而本文所设计的采集系统也是依赖这一电路产生的反馈信号,形成中断,从而实现对采集数据的读取。码盘光耦信号收集电路如图3 所示。 以上的硬件电路再加上传动装置等,就构成了采

5、集系统的硬件基础设备。 12程序设计 ?疚纳杓频牟杉?系统,所采集的数据是纸币上等距离点上的数据,采集到的数据通过一些算法3,4,与预先取得的保存在面额数据特征库中的数据对比,判断纸币的真假,从而使纸币识别系统决定是否接受被检测的纸币。 ?杉?,能正确地取得纸币的数据对这些算法来说是非常重要的。当纸币的一端进入纸币通道时,位置传感器提示系统,纸币进入预定的开始进入位置,而后通过马达和传动装置,纸币就被卷入纸币器中。马达转过相同的角度,纸币也就移动相同的距离,而码盘光耦电路每产生一个反馈信号,马达转过的角度是一个固定值,纸币移动距离也就是一个固定值,则根据这个反馈信号就能实现固定等距离点的采集,

6、 所以硬件的设计是能保证的。当纸币上的定点到达纸币识别系统特殊光发光部件和接收部件中间时,通知采集程序此时数据有效。马达转过多少角度码盘光耦产生反馈信号,是由码盘光耦的规格决定。 ?据采集系统的程序部分要解决的问题就是能够及时根据码盘光耦电路的反馈信号,实时地将特殊光传感器中的数据读出,而后保存。由于uClinux操作系统本身的限制,纸币识别系统中只有一个实时任务采集,考虑采用中断的方式解决这个问题。 ?诒鞠低持校?根据采样定理,每6 ms采集一次数据,选用了适合本采集系统规格的马达和码盘光耦。为了使基于S3C4510B和uClinux的纸币识别系统充分发挥同时采集和处理数据的能力,可以从S3

7、C4510B的内存中开辟一个独立的区域。该区域是用来提供给非实时程序和采集系统共享的内存,专门用来存储采集数据,这样非实时程序无须调用系统或驱动程序去访问采集到的数据,从而大大提高了将采集数据送给非实时程序的速度,提高了处理速度。由于间隔6 ms,很有可能用户程序还没有用到上个中断保存的数据,下个中断就来了,那个区间需要有足够的空间缓冲数据,使未处理的数据不至于丢失。在中断处理程序5中,所进行的操作是将传感器的数据放入共享的内存区。 ?捎诖?感器中的数据是动态变化的,如果中断不能及时地响应并取出数据,则得到的数据就不是纸币对应点上的数据,在进行数据比对时,面额数据特征库中的数据与实际采集得到的

8、数据不是同一位置的数据,这样就会导致算法得到的结果与实际的不相符。 2实验结果 ?罱糜布?平台,写好采集程序,就可以进行采集的实验。 ?阅持种奖医?行了多次实验,实验的结果并不是很好,误判率比较高,不能达到实际应用的程度。 ?笛椴杉?到的数据与面额数据特征库中数据进行对比,可以得到特征对比曲线图,如图4所示。 将采集到的数据与面额数据特征库中数据对比发现,一些数据有比较大的抖动,在图中用点标记出来。比较相似度,欧式距离如下: ?扑愕玫降呐肥骄嗬胧?64.792 0,这个值对于本纸币识别系统已经是相当大了,超出了允许的范围。 ?分析,中断处理程序相对比较简单,取得数据的时间非常之小可以忽略不计,

9、所以延迟的时间主要就用在了中断延迟上。将每次采集的多个中断延迟时间读出,发现uClinux的中断延迟时间6普遍还是比较小,只是在某些时候才比较大,而这些点也正是数据抖动比较大的点,即偏差比较大的点,所以只有通过缩短最大中断延迟时间,才能获得正确的数据,减少偏差,达到比较好的实际效果。 3uClinux中断延迟时间改进方法 uClinux操作系统的中断延迟时间不能完美满足本模块的要求。但考虑到uClinux的强大功能,大量可以利用的资源、可以免费使用以及发展的潜力,使用这一操作系统将有助于纸币识别系统的开发与维护,所以缩短其中断延迟7 (interrupt latency)很有价值。 ?卸涎映偈

10、奔涫侵复又卸戏?到系统获知中断,并开始执行中断服务子程序所需要的最大滞后时间。 ?低吃诮?入临界区代码段之前都要关中断,执行完临界代码之后再开中断。关中断的时间越长,中断延迟就越长。中断延迟由式(2)给出: ?卸涎映?=关中断的最长时间+开始执行中断服务子程序的 第一条指令的时间(2) 现在已经有很多比较成熟的技术来解决uClinux的这个问题,如增加内核抢占点、双内核等8。在众多方案中决定使用RTAI8的双内核机制来改进uClinux。 RTAI是由意大利米兰理工学院航天工程系发起开发的一个遵循GPL的开源项目。 uClinux改进方案结构图如图5所示。当RTAI没有加载时,与普通的uCli

11、nux系统没什么两样。当RTAI模块被uClinux加载时,就会将uClinux系统作为RTAI的一个最低优先级的任务来执行;只有当没有实时任务运行时,uClinux才能获得执行的时间,uClinux中的一些非实时任务才能执行。RTAI定义了一个硬件抽象层(HAL)。硬件抽象层是用来截取硬件中断的,提供了一个最核心部分即中断处理机制。当外部产生中断时,它判断中断,将不同实时要求的中断分派给uClinux或RTAI来处理。HAL中包括了一个关键组件:中断描述符表IDT,它定义了一套指针来处理中断例程,通过改写指针指向的值就可以改变处理函数。RTAI还提供了细粒度的定时器管理和实时任务调动。 RT

12、AI面对的主要是Linux操作系统,而对uClinux和S3C4510B没有现成的代码包,所以必须遵循这个RTAI的原理,自行移植。 S3C4510B的处理器是ARM7。RTAI有针对ARM处理器上的版本,所以可以参照以前版本进行移植。由于没有现成的代码,HAL就必须针对现有的S3C4510B进行改写。HAL主要包括指向IDT的指针。打开/关闭中断函数,控制中断mask/unmask函数、中断状态的数据描述符。RTAI要为每个中断源定义一个全局的数据结构,它的主要结构就是链表指针、中断号、用于中断屏蔽的标志位和用于中断悬挂的标志位。S3C4510B不能使用MMU(memory manageme

13、nt unit,内存管理单元)6,所以在内存方面进行移植时要特别小心。由于uClinux的时钟中断是10ms,它不能适应实时性的要求,而RTAI是需要有细粒度的时钟,考虑到S3C4510B上有两个定时器,定时器0已被用于uClinux的时钟中断,于是利用定时器1为RTAI提供时钟。还需要对uClinux的源代码进行必要修改,使用函数替换uClinux的关中断和开中断函数,这样当uClinux关中断后,仍然能被需要实时处理的任务给中断。 ?捎谏杓频牟杉?中断处理程序相对比较简单,不会占用很多处理的时间,决定将采集放到RTAI的中断处理程序中。为了使纸币识别系统充分发挥同时采集和处理数据的能力,开

14、辟一个独立的内存区,用来提供给uClinux程序和采集系统共享的内存,专门用于存储采集数据,这样uClinux程序就可以很方便快速地访问采集到的数据,从而大大提高了并发处理速度。 4改进后的实验结果 ?对uClinux中断延迟时间的改进,再次进行了实验。 ?酝?一种纸币进行了多次实验,采集出来的数据与面额数据特征库中的数据吻合度比较好。特征曲线对比图如图6所示。 同样计算欧式距离,得到的值为18.138 4,这个值在允许的范围内达到了纸币特征实时采集系统的要求。 5结束语 ?疚纳杓屏艘恢只?于S3C4510B和uClinux的纸币特征实时采集系统,考虑到uClinux操作系统本身的特点,将采集

15、的实现放在中断处理子程序中。通过实验,将得到的纸币数据与面额特征数据库中的数据进行比对,采集到的数据在某些点有较大的波动,研究发现是由于uClinux的中断延迟在某些时候比较长,采集系统在uClinux操作系统中的实现有困难。由于uClinux免费,而且操作系统功能强大,使得纸币识别系统能够支持更多功能,降低其成本,大大增强可扩展性。考虑到uClinux的种种优点,提出了改进中断延迟时间的方案。经过实施RTAI双内核的改进后,仍然采集中断实现,将采集系统中断放在RTAI核中实现,并开辟了一个独立的内存区用来存储数据,方便uClinux上的程序快速读取采集的数据,大大提高了纸币识别系统的并发处理能力。经过改进后的uClinux可以满足纸币特征实时采集系统要求。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1