摘 要:本文著重介紹了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作為系統主要功能就是通過各種電子電路驅動電磁閥、單、雙向電機和步進電機,以實現對整個出鈔模塊的所有機械部件的動作,并對各種開關量輸入(如光電傳感器、微動開關等)和各種物理參數測量電路的直流電壓信號(如單張、整疊鈔票厚度)做實時、連續的檢測,根據檢測結果及時調整機械部件的動作,保障顧客在取鈔過程中的正確、安全穩定運行。同時,在運行過程中出現故障時能夠記錄故障狀態,給出錯誤代碼,并進行相應的故障處理,為維護人員提供準確的參考數據??刂葡到y的硬件結構如圖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