基于嵌入式系统的ATM出钞机设计--控制网



基于嵌入式系统的ATM出钞机设计
企业:控制网 日期:2009-11-27
领域:机器视觉 点击数:2780
    摘  要:本文着重介绍了ATM出钞机的基本结构和工作原理,并对控制系统的硬件和软件设计进行了详尽的描述,给出了ATM出钞机控制系统的软、硬件结构框图。

    关键词:嵌入式系统;ATM;出钞机

    Abstract: This paper decribes the principle and structure of Automatic Teller Machine, and exhaustively introduces its design of software and hardware.

    Keywords: Embedded System   ATM   Dispenser
 
    1 前言

    ATM的核心部件是出钞机,它是集电子、机械于一体的自动化装置,到现在为止,只有几个发达国家可以研发和制造,但随着我国机械制造和自动控制技术的提高,完全有能力研制出适合中国国情的ATM出钞机。
 
    2  出钞机的机械结构

    ATM出钞机一般由上、下两功能模块组成:上层为验钞、送钞、废钞回收模块;下层为钞箱及挖钞块(由1~4个结构相同的挖钞单元成),其结构示意图如图1所示。验钞及送钞模块的作用是对由钞模块挖出的每张钞票进行高度以及倾斜度进行检测,通过控制拣器把不合格的钞票送进废钞箱合格的钞票则送到叠钞器,最后由钞机械手把整叠的钞票送到出钞,完成一次出钞操作。如客户超时取款,则把钞票收回并放到回钞箱挖钞模块的作用是放置钞箱并根据指令把钞票从钞箱中一张一张地挖出来,挖钞方式有两种:真空吸钞和摩擦出钞。这两种方式各有千秋,真空吸钞精确可靠,容易维护,但出钞速度较慢(1~2张/秒),目前只有NCR公司使用。而摩擦出钞技术的优点是出钞速度快(5~7张/秒),为绝大部分ATM厂商所采用。


              
    3  系统的硬件设计

    整个系统的采用嵌入式处理器LPC2212作为系统主要功能就是通过各种电子电路驱动电磁阀、单、双向电机和步进电机,以实现对整个出钞模块的所有机械部件的动作,并对各种开关量输入(如光电传感器、微动开关等)和各种物理参数测量电路的直流电压信号(如单张、整叠钞票厚度)做实时、连续的检测,根据检测结果及时调整机械部件的动作,保障顾客在取钞过程中的正确、安全稳定运行。同时,在运行过程中出现故障时能够记录故障状态,给出错误代码,并进行相应的故障处理,为维护人员提供准确的参考数据。控制系统的硬件结构如图2所示。
 
 
           
 
    3.1 LPC2212嵌入式处理器电路

    LPC2212是基于一个支持实时仿真和跟踪的32位ARM7TDMI-STM CPU的微控制器,并带有128KB嵌入的高速片内Flash存储器。片内128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟频率下运行。对代码规模进行严格控制可以使用16位Thumb模式将代码规模降低超过30%,而性能的损失却很小。LPC2212功耗极低,其具有的多个32位定时器、8路10位ADC以及9个外部中断使它特别适用于工业控制、医疗系统、访问控制和POS机。
 
    3.2 电源电路

    电源部分采用DC/DC变换线性电源,提供5V、3.6V、3.3V和1.8V各等级的电压,并采用大容量锂电池作为后备电源以及存储器掉电电池,在系统断电的情况下,保证所存储的钞票相关的信息和出钞模块的故障记录不丢失。
 
    3.3 通信接口和在线编程电路

   为了方便与控制主机的连接,系统的通信接口包括RS232和USB接口,接收从主机发送来的控制命令;在线编程电路完成系统程序的下载使系统具有ISP的功能。
 
    3.4 钞票厚度信号采集电路

    本系统采用电涡流传感器对钞票的厚度进行采集,电涡流传感器能静态和动态的非接触、高线性度、高分辨率地测量被测金属导体表面与探头表面的距离,将位置信号转换成模拟电压信号,然后通过CPU内部的10位高精度ADC进行转换,检测精度可以达到0.005mm。
 
    3.5键盘和显示电路

    键盘和显示电路的主要功能是在没有外部主机的情况下,维护人员也可以对出钞模块进行相应的操作,通过键盘输入相应的命令,并将执行结果在LED上显示出来。LED显示采用静态方式,通过CPU的串口和74LS164串行移位来实现,大大节省了CPU资源。
 
    3.6 FPGA电路

    为了简化硬件电路结构,提高统的集成度和可靠性,减轻应用系统中处理器的负担,采用了基于FPGA的步进电机控制电路;同时在FPGA
 
    4 系统的软件设计

    出钞模块系统的软件设计引入实时操作系统(RTOS)概念,采用μC/OS-Ⅱ实时嵌入式操作系统作为系统软件的核心。本系统的软件基于3层设计,包括硬件驱动层、操作系统层和用户应用层。
 
    4.1硬件驱动层

    驱动程序是硬件和软件之间的桥梁,任何一个硬件设备都需要加载驱动程序才能被系统正常识别和支持,这种固化在了硬件中的软件被称为Firmware,也叫固件。它存储着系统中硬件设备最基本的参数,为系统提供最底层、最直接的硬件控制。本设计中所采用的硬件驱动主要有存储驱动、通信接口驱动、I/O驱动以及键盘和显示驱动。
 
    4.2 操作系统层

    μC/OS-Ⅱ是由世界著名嵌入式专家Jean Labrosse编写的嵌入式实时操作系统[3],具有源码公开、可移植、可固化、可裁剪、稳定性和可靠性高及占先式的特点。实际上μC/0S-Ⅱ可以简单的看作是一个多任务调度器,在这个任务调度器上完善地添加了与多任务操作系统相关的一些系统服务,如信号量、邮箱等。其90%的代码是用C语言编写的,可以直接移植到有C语言编译器的处理器上。移植工作主要都集中在多任务切换的实现上,因为这部分代码用来保存和恢复CPU现场(即写/读相关寄存器),不能用C语言,只能用汇编语言完成。将μC/OS-Ⅱ移植到ARM处理器上,需要修改三个与ARM体系结构相关的文件,这三个文件是:OS_CPU.H、OS_CPU_C.C、OS_CPU_A.S。
 
    4.3 用户应用程序层

    嵌入式系统中,最重要的就是应用程序,只有开发出好的应用程序,整个系统才有价值。根据出钞模块所要实现的功能,本文设计了通信任务、挖钞任务、送钞任务、未取钞回收任务、通道清理与复位任务、获取钞箱信息任务、出钞口检测任务、拒绝任务、显示任务、故障记录任务。
 
    通信任务

    出钞模块通信任务负责系统和上位机控制机的通信,接收控制机发送来的命令包,将命令进行解析,分发。出钞模块在执行命令后,将以一定格式将命令的执行结果返回到PC主机,在执行命令过程中出钞模块不接收命令,直到命令返回。
 
    挖钞任务

    此任务的功能是执行控制主机所分配的各个钞箱的出钞数量在对每个通道钞箱进行挖钞操作时都要对钞票进行检测,如果有尺寸或者厚度不合格的,则打开分拣器将其送入废钞箱中,将合格的钞票送到叠钞板上,整个命令执行完成后将各个钞箱的出钞数量和废钞数量返回到主机。
 
    送钞任务

    此任务的主要功能是把叠钞板的钞票通过机械手送到闸门口,取款人就可以将钞票拿走。在送钞过程中,随时根据各个传感器的状态,控制传送的位置,给出相应的提示,保证钞票在传送过程中的安全。
 
    出钞口检测任务

    此任务的主要功能是检测闸门口的钞票是否被拿走,并将信息返回到主机,如果检测到钞票已经拿走,机械手将回到原始位置。
 
    未取钞回收任务

    如果在银行规定的时间内(一般是30秒,时间由主机控制软件控制)闸门口的钞票都未拿走,控制主机将发送此命令,通知出钞模块将闸门口钞票回收,送入回收箱中。
 
    拒绝任务

    拒绝任务的功能是在挖钞过程中出现了故障,整个挖钞未成功执行,或者是挖钞执行成功,但由于某些原因,不能进行送钞操作,此时将出钞模块将叠钞板上的钞票送入回收箱中。
 
    通道清理与复位任务

    此任务的主要功能是复位出钞内部寄存器、清理挖钞通道和通道,如果有残余钞票在通道则将其送入回收箱,同时检测部件是否正常。ATM主机软件动时,首先要启动此任务对出钞模块进行通道清理和复位,出钞模块将相应的执行结果返回到控制主机,如果出钞模块有故障返回码,表示出钞模块不能正常工作,ATM主机控制软件需要停止取款的功能,并给出相应的故障提示,等待维护。
 
     5  结束语

    由于篇幅所限,本文只能从出钞模块系统的功能着手对整个系统的结构、硬件和软件组成做一个简单的介绍。本文所介绍的出钞模块系统已应用于ATM机中,实践证明,系统可靠稳定。
 
    参考文献

    1. 罗永道.罗徽.廖宁放.基于uC/OS的嵌入式系统通信接口设计.微处理机,2000.8.

    2.周立功等编著. ARM嵌入式系统软件开发实例. 北京航空航天大学出版社,2004

    3.艾克武等译. 嵌入式系统的C程序设计.机械工业出版社,2002
 
  • 在线反馈
1.我有以下需求:



2.详细的需求:
姓名:
单位:
电话:
邮件: