摘 要:本文著重介紹了ATM出鈔機(jī)的基本結(jié)構(gòu)和工作原理,并對控制系統(tǒng)的硬件和軟件設(shè)計(jì)進(jìn)行了詳盡的描述,給出了ATM出鈔機(jī)控制系統(tǒng)的軟、硬件結(jié)構(gòu)框圖。
關(guān)鍵詞:嵌入式系統(tǒng);ATM;出鈔機(jī)
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的核心部件是出鈔機(jī),它是集電子、機(jī)械于一體的自動(dòng)化裝置,到現(xiàn)在為止,只有幾個(gè)發(fā)達(dá)國家可以研發(fā)和制造,但隨著我國機(jī)械制造和自動(dòng)控制技術(shù)的提高,完全有能力研制出適合中國國情的ATM出鈔機(jī)。
2 出鈔機(jī)的機(jī)械結(jié)構(gòu)
ATM出鈔機(jī)一般由上、下兩功能模塊組成:上層為驗(yàn)鈔、送鈔、廢鈔回收模塊;下層為鈔箱及挖鈔塊(由1~4個(gè)結(jié)構(gòu)相同的挖鈔單元成),其結(jié)構(gòu)示意圖如圖1所示。驗(yàn)鈔及送鈔模塊的作用是對由鈔模塊挖出的每張鈔票進(jìn)行高度以及傾斜度進(jìn)行檢測,通過控制揀器把不合格的鈔票送進(jìn)廢鈔箱合格的鈔票則送到疊鈔器,最后由鈔機(jī)械手把整疊的鈔票送到出鈔,完成一次出鈔操作。如客戶超時(shí)取款,則把鈔票收回并放到回鈔箱挖鈔模塊的作用是放置鈔箱并根據(jù)指令把鈔票從鈔箱中一張一張地挖出來,挖鈔方式有兩種:真空吸鈔和摩擦出鈔。這兩種方式各有千秋,真空吸鈔精確可靠,容易維護(hù),但出鈔速度較慢(1~2張/秒),目前只有NCR公司使用。而摩擦出鈔技術(shù)的優(yōu)點(diǎn)是出鈔速度快(5~7張/秒),為絕大部分ATM廠商所采用。
3 系統(tǒng)的硬件設(shè)計(jì)
整個(gè)系統(tǒng)的采用嵌入式處理器LPC2212作為系統(tǒng)主要功能就是通過各種電子電路驅(qū)動(dòng)電磁閥、單、雙向電機(jī)和步進(jìn)電機(jī),以實(shí)現(xiàn)對整個(gè)出鈔模塊的所有機(jī)械部件的動(dòng)作,并對各種開關(guān)量輸入(如光電傳感器、微動(dòng)開關(guān)等)和各種物理參數(shù)測量電路的直流電壓信號(如單張、整疊鈔票厚度)做實(shí)時(shí)、連續(xù)的檢測,根據(jù)檢測結(jié)果及時(shí)調(diào)整機(jī)械部件的動(dòng)作,保障顧客在取鈔過程中的正確、安全穩(wěn)定運(yùn)行。同時(shí),在運(yùn)行過程中出現(xiàn)故障時(shí)能夠記錄故障狀態(tài),給出錯(cuò)誤代碼,并進(jìn)行相應(yīng)的故障處理,為維護(hù)人員提供準(zhǔn)確的參考數(shù)據(jù)。控制系統(tǒng)的硬件結(jié)構(gòu)如圖2所示。
3.1 LPC2212嵌入式處理器電路
LPC2212是基于一個(gè)支持實(shí)時(shí)仿真和跟蹤的32位ARM7TDMI-STM CPU的微控制器,并帶有128KB嵌入的高速片內(nèi)Flash存儲器。片內(nèi)128位寬度的存儲器接口和獨(dú)特的加速結(jié)構(gòu)使32位代碼能夠在最大時(shí)鐘頻率下運(yùn)行。對代碼規(guī)模進(jìn)行嚴(yán)格控制可以使用16位Thumb模式將代碼規(guī)模降低超過30%,而性能的損失卻很小。LPC2212功耗極低,其具有的多個(gè)32位定時(shí)器、8路10位ADC以及9個(gè)外部中斷使它特別適用于工業(yè)控制、醫(yī)療系統(tǒng)、訪問控制和POS機(jī)。
3.2 電源電路
電源部分采用DC/DC變換線性電源,提供5V、3.6V、3.3V和1.8V各等級的電壓,并采用大容量鋰電池作為后備電源以及存儲器掉電電池,在系統(tǒng)斷電的情況下,保證所存儲的鈔票相關(guān)的信息和出鈔模塊的故障記錄不丟失。
3.3 通信接口和在線編程電路
為了方便與控制主機(jī)的連接,系統(tǒng)的通信接口包括RS232和USB接口,接收從主機(jī)發(fā)送來的控制命令;在線編程電路完成系統(tǒng)程序的下載使系統(tǒng)具有ISP的功能。
3.4 鈔票厚度信號采集電路
本系統(tǒng)采用電渦流傳感器對鈔票的厚度進(jìn)行采集,電渦流傳感器能靜態(tài)和動(dòng)態(tài)的非接觸、高線性度、高分辨率地測量被測金屬導(dǎo)體表面與探頭表面的距離,將位置信號轉(zhuǎn)換成模擬電壓信號,然后通過CPU內(nèi)部的10位高精度ADC進(jìn)行轉(zhuǎn)換,檢測精度可以達(dá)到0.005mm。
3.5鍵盤和顯示電路
鍵盤和顯示電路的主要功能是在沒有外部主機(jī)的情況下,維護(hù)人員也可以對出鈔模塊進(jìn)行相應(yīng)的操作,通過鍵盤輸入相應(yīng)的命令,并將執(zhí)行結(jié)果在LED上顯示出來。LED顯示采用靜態(tài)方式,通過CPU的串口和74LS164串行移位來實(shí)現(xiàn),大大節(jié)省了CPU資源。
3.6 FPGA電路
為了簡化硬件電路結(jié)構(gòu),提高統(tǒng)的集成度和可靠性,減輕應(yīng)用系統(tǒng)中處理器的負(fù)擔(dān),采用了基于FPGA的步進(jìn)電機(jī)控制電路;同時(shí)在FPGA
4 系統(tǒng)的軟件設(shè)計(jì)
出鈔模塊系統(tǒng)的軟件設(shè)計(jì)引入實(shí)時(shí)操作系統(tǒng)(RTOS)概念,采用μC/OS-Ⅱ?qū)崟r(shí)嵌入式操作系統(tǒng)作為系統(tǒng)軟件的核心。本系統(tǒng)的軟件基于3層設(shè)計(jì),包括硬件驅(qū)動(dòng)層、操作系統(tǒng)層和用戶應(yīng)用層。
4.1硬件驅(qū)動(dòng)層
驅(qū)動(dòng)程序是硬件和軟件之間的橋梁,任何一個(gè)硬件設(shè)備都需要加載驅(qū)動(dòng)程序才能被系統(tǒng)正常識別和支持,這種固化在了硬件中的軟件被稱為Firmware,也叫固件。它存儲著系統(tǒng)中硬件設(shè)備最基本的參數(shù),為系統(tǒng)提供最底層、最直接的硬件控制。本設(shè)計(jì)中所采用的硬件驅(qū)動(dòng)主要有存儲驅(qū)動(dòng)、通信接口驅(qū)動(dòng)、I/O驅(qū)動(dòng)以及鍵盤和顯示驅(qū)動(dòng)。
4.2 操作系統(tǒng)層
μC/OS-Ⅱ是由世界著名嵌入式專家Jean Labrosse編寫的嵌入式實(shí)時(shí)操作系統(tǒng)[3],具有源碼公開、可移植、可固化、可裁剪、穩(wěn)定性和可靠性高及占先式的特點(diǎn)。實(shí)際上μC/0S-Ⅱ可以簡單的看作是一個(gè)多任務(wù)調(diào)度器,在這個(gè)任務(wù)調(diào)度器上完善地添加了與多任務(wù)操作系統(tǒng)相關(guān)的一些系統(tǒng)服務(wù),如信號量、郵箱等。其90%的代碼是用C語言編寫的,可以直接移植到有C語言編譯器的處理器上。移植工作主要都集中在多任務(wù)切換的實(shí)現(xiàn)上,因?yàn)檫@部分代碼用來保存和恢復(fù)CPU現(xiàn)場(即寫/讀相關(guān)寄存器),不能用C語言,只能用匯編語言完成。將μC/OS-Ⅱ移植到ARM處理器上,需要修改三個(gè)與ARM體系結(jié)構(gòu)相關(guān)的文件,這三個(gè)文件是:OS_CPU.H、OS_CPU_C.C、OS_CPU_A.S。
4.3 用戶應(yīng)用程序?qū)?BR>
嵌入式系統(tǒng)中,最重要的就是應(yīng)用程序,只有開發(fā)出好的應(yīng)用程序,整個(gè)系統(tǒng)才有價(jià)值。根據(jù)出鈔模塊所要實(shí)現(xiàn)的功能,本文設(shè)計(jì)了通信任務(wù)、挖鈔任務(wù)、送鈔任務(wù)、未取鈔回收任務(wù)、通道清理與復(fù)位任務(wù)、獲取鈔箱信息任務(wù)、出鈔口檢測任務(wù)、拒絕任務(wù)、顯示任務(wù)、故障記錄任務(wù)。
通信任務(wù)
出鈔模塊通信任務(wù)負(fù)責(zé)系統(tǒng)和上位機(jī)控制機(jī)的通信,接收控制機(jī)發(fā)送來的命令包,將命令進(jìn)行解析,分發(fā)。出鈔模塊在執(zhí)行命令后,將以一定格式將命令的執(zhí)行結(jié)果返回到PC主機(jī),在執(zhí)行命令過程中出鈔模塊不接收命令,直到命令返回。
挖鈔任務(wù)
此任務(wù)的功能是執(zhí)行控制主機(jī)所分配的各個(gè)鈔箱的出鈔數(shù)量在對每個(gè)通道鈔箱進(jìn)行挖鈔操作時(shí)都要對鈔票進(jìn)行檢測,如果有尺寸或者厚度不合格的,則打開分揀器將其送入廢鈔箱中,將合格的鈔票送到疊鈔板上,整個(gè)命令執(zhí)行完成后將各個(gè)鈔箱的出鈔數(shù)量和廢鈔數(shù)量返回到主機(jī)。
送鈔任務(wù)
此任務(wù)的主要功能是把疊鈔板的鈔票通過機(jī)械手送到閘門口,取款人就可以將鈔票拿走。在送鈔過程中,隨時(shí)根據(jù)各個(gè)傳感器的狀態(tài),控制傳送的位置,給出相應(yīng)的提示,保證鈔票在傳送過程中的安全。
出鈔口檢測任務(wù)
此任務(wù)的主要功能是檢測閘門口的鈔票是否被拿走,并將信息返回到主機(jī),如果檢測到鈔票已經(jīng)拿走,機(jī)械手將回到原始位置。
未取鈔回收任務(wù)
如果在銀行規(guī)定的時(shí)間內(nèi)(一般是30秒,時(shí)間由主機(jī)控制軟件控制)閘門口的鈔票都未拿走,控制主機(jī)將發(fā)送此命令,通知出鈔模塊將閘門口鈔票回收,送入回收箱中。
拒絕任務(wù)
拒絕任務(wù)的功能是在挖鈔過程中出現(xiàn)了故障,整個(gè)挖鈔未成功執(zhí)行,或者是挖鈔執(zhí)行成功,但由于某些原因,不能進(jìn)行送鈔操作,此時(shí)將出鈔模塊將疊鈔板上的鈔票送入回收箱中。
通道清理與復(fù)位任務(wù)
此任務(wù)的主要功能是復(fù)位出鈔內(nèi)部寄存器、清理挖鈔通道和通道,如果有殘余鈔票在通道則將其送入回收箱,同時(shí)檢測部件是否正常。ATM主機(jī)軟件動(dòng)時(shí),首先要啟動(dòng)此任務(wù)對出鈔模塊進(jìn)行通道清理和復(fù)位,出鈔模塊將相應(yīng)的執(zhí)行結(jié)果返回到控制主機(jī),如果出鈔模塊有故障返回碼,表示出鈔模塊不能正常工作,ATM主機(jī)控制軟件需要停止取款的功能,并給出相應(yīng)的故障提示,等待維護(hù)。
5 結(jié)束語
由于篇幅所限,本文只能從出鈔模塊系統(tǒng)的功能著手對整個(gè)系統(tǒng)的結(jié)構(gòu)、硬件和軟件組成做一個(gè)簡單的介紹。本文所介紹的出鈔模塊系統(tǒng)已應(yīng)用于ATM機(jī)中,實(shí)踐證明,系統(tǒng)可靠穩(wěn)定。
參考文獻(xiàn)
1. 羅永道.羅徽.廖寧放.基于uC/OS的嵌入式系統(tǒng)通信接口設(shè)計(jì).微處理機(jī),2000.8.
2.周立功等編著. ARM嵌入式系統(tǒng)軟件開發(fā)實(shí)例. 北京航空航天大學(xué)出版社,2004
3.艾克武等譯. 嵌入式系統(tǒng)的C程序設(shè)計(jì).機(jī)械工業(yè)出版社,2002