ATM知识培训.docx
- 文档编号:7914174
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:20
- 大小:109.19KB
ATM知识培训.docx
《ATM知识培训.docx》由会员分享,可在线阅读,更多相关《ATM知识培训.docx(20页珍藏版)》请在冰豆网上搜索。
ATM知识培训
WOSA/XFS培训讲稿
⏹WOSA(全称是Windows开放式系统体系结构WindowsOpenSystemArchitecture),是微软公司提出的一种在Windows操作系统下的软件架构。
⏹WOSA/XFS是基于WOSA的扩展金融服务(WindowOpenSystemArchitecture/ExtensionsforFinancialServices),是微软公司为全球金融行业软件提出的一种软件架构,它在WOSA软件架构的基础上针对全球金融行业进行了一些相应的修改。
⏹作为与个人电脑相似的银行金融外设行业(以ATM为例),银行希望能够象个人电脑一样购买多个厂商的产品,然后组装成一台ATM机。
这样一来,银行的ATM机就不会受制于某一家厂商,银行只需要一台ATM机的各个厂商维护各自的设备,整机可以由某个厂商维护,也可由专门维护ATM机的专业公司来维护。
最终,会有更多原来没有能力生产整台ATM的厂商或代理公司进入到金融行业,它们只销售ATM机中的几个硬件,从而银行拥有更多的选择,会得到更多更好的服务,得到更便宜的价格,它是各个厂商互相竞争中的最大受益者。
所以,国外银行现在都要求各个厂商的设备能够互相连接起来,从而组成一台完整的ATM机。
⏹因为银行作为WOSA的最大受益者,所以国外银行购买的金融设备都要求符合WOSA规范,其中ATM首当其冲的被要求必须符合WOSA规范。
当然,WINCOR、NCR、Diebold等大的ATM厂商都很快迎合这种需要,相继对原有的软件进行了彻底的改造,推出了自己的符合WOSA规范的ATM软件。
⏹近几年,随着WOSA的优点越来越被肯定,所以国内银行相继要求各个厂商提供符合WOSA标准的硬件驱动程序,并且Wincor、NCR、Diebold等国外厂商也在大力的向国内银行推广它的WOSA软件,灌输WOSA的概念,相信随着时间的推移,国内各个银行一定也会走国外银行同样的道路,最终要求各个厂商的金融外设全部符合WOSA的规范。
一台完整的ATM构成
⏹为了使不同厂商的金融外设能够组合成一台完整的ATM,需要在两方面考虑,一方面是硬件的互连,一方面是软件的互连。
⏹由于硬件的发展有很多年的历史,也有许多已有的技术规范能够使不同的硬件在物理上连接起来,所以硬件的互连基本都可以做到。
但是软件的发展历史相对于硬件来讲时间比较短,还没有现成的技术规范能够使不同硬件上的控制软件能够互相连接起来。
⏹为了处理金融行业的软件互连问题,微软公司、几个大的金融外设厂商和几个大的银行机构在一起讨论,最终定下来了一套软件技术规范。
只要任何一个厂商自己硬件的软件驱动程序符合这套规范,那么它的硬件就可以无缝连接到其他同样符合这套规范的ATM机上,而不需要做任何的软件改动。
同时WOSA也规定了硬件驱动程序和ATM上层控制流程的程序之间的接口规范,从而银行可以购买非厂商提供的ATMC上层程序,比较典型的是KAL公司,它可以不卖硬件,只卖软件,提供给银行更多的选择和更专业的软件服务。
⏹这一套软件技术规范就被称为WOSA/XFS规范,一般简称WOSA/XFS
⏹我们总是在说WOSA/XFS,那到底它包含什么内容?
⏹一、 一组文档,可以认为是个软件概要设计说明书,只是设计,没有代码实现
⏹二、 XFSManager的三个DLL
⏹三、 每个厂商按照文档实现的一组DLL,叫过SP
⏹WOSA/XFS3.0规范文档大概分为四十多个pdf文档,都可以免费下载到
⏹其中第一份文档最重要,是讲整个WOSA/XFS的架构、配置信息、API/SPI、内存管理等内容,稍微难懂了些,如果能看看则对整个WOSA/XFS有所了解。
⏹第二份文档讲WOSA/XFS规范都涉及到了哪些模块等信息,对每个模块进行了简单的综述。
⏹从第三份文档开始,依次介绍每种设备的命令,其实都是在讲WFSGetInfo和WFSExecute,只是参数不同。
每份文档的结构大同小异,先是讲WFSGetInfo的各个命令及其参数、注意事项等;接着讲WFSExecute的各个命令及其参数、注意事项等;接着讲该设备可能发生的Events;最后是C语言的头文件。
⏹从大概第16份文档开始,是讲怎样从WOSA/XFS2.0规范迁移到WOSA/XFS3.0规范,主要是提供给旧版本的SP用的,可以不看它们。
⏹从大概第29份文档开始,是讲关于SNMP监控的,目前可以不看它们。
⏹那么目前只看前十五份文档即可。
WOSA/XFS规范文档下载
http:
//www.cen.eu/CENORM/Sectors/sectors/isss/activity/xfs_cwas.asp
为有关WOSA/XFS的文档下载地址,其中"CWA13449"为WOSA/XFS的2.0版本,"CWA14050"为WOSA/XFS的3.03版本。
⏹WOSA/XFS规范文档目前没有中文的,并且也不要指望CEN/XFS会出中文文档,因为翻译过程中会丢掉很多重要信息,毕竟是一个严密的规范,不是小说,漏掉点内容问题不大,这个翻译错了,就会有误解。
但是,也不是不可能翻译成中文版的,前提是必须非常熟悉WOSA/XFS规范,才能高屋建瓴的来翻译这些文档。
国内也有几个厂家翻译过WOSA/XFS规范,只是没有对外公开其翻译的内容。
⏹当你看到了这么多文档后,就会理解为什么不同的厂家对WOSA/XFS规范会有不同的理解。
因为硬件是多样性的,能够在一份规范中把所有硬件都统一进来是非常不容易的事情。
可能有些细节是没有考虑到的,但是我们看到WOSA/XFS规范也是在不断的进步和完善,不断随着市场的变化推出新的规范版本。
⏹WOSA/XFS规范不久会因为微软推出.NET平台受到一些影响,但是其本质上是不会改变的,至多是XFSManager和SP的代码会重写,那些关于ATM硬件的命令是暂时不会过时的。
⏹WOSA/XFS规范目前使用广泛的版本有1.0、1.11、2.0、3.0、3.01、3.02、3.03一共7个版本,
⏹其中常说谁的SP(ServiceProvider)符合WOSA/XFS2.0还是3.0规范,就是指上面提到的WOSA/XFS本身的规范版本。
⏹如果你见到某些厂家的SP版本并没有上面提到的几个版本,那说明厂家的SP版本是自己厂家内部定的版本号,与WOSA/XFS规范的版本没有必然联系,但是厂家的SP版本一定可以对应到符合上面几个版本中的一个版本。
⏹目前最新的是WOSA/XFS3.03规范。
(WOSA/XFS3.10)
查看本机WOSA/XFS版本
我们上面提到的7个版本,可以通过找到MSXFS.DLL文件,然后右键查看其文件属性,里面有个版本号,从而就知道某台机器运行的SP符合哪个版本的WOSA/XFS规范,这是个判断WOSA/XFS版本的一个有效办法。
WOSA/XFS内部构成
XFSManager构成
⏹对于WOSA/XFS,XFSManager是一定要提到的。
我们简单看看WOSA/XFS的架构,这个大家应该都比较熟悉了。
中间是XFSManager,上面是ATMC,下面是SP,其中XFSManager对上面有API(ApplicationProgrammingInterface)接口,对下面有SPI(ServiceProviderInterface)接口。
⏹XFSManager是WOSA/XFS规范的核心,它规定了API和SPI接口,从而达到统一上面的ATMC和下面的SP的功能,ATM软件能够实现所谓的跨平台是靠它来主要实现的。
⏹XFSManager实际上是三个DLL组成,在系统目录\Windows\System32下面,分别是MSXFS.DLL(基本的XFSAPIandSPI函数,在Include目录下的XFSAPI.H和XFSSPI.H中定义)、XFS_SUPP.DLL(一些支持函数,在Include目录下的XFSADMIN.H中定义)、XFS_CONF.DLL(配置函数,在Include目录下的Xfsconf.h中定义)。
XFSManager的开发商
⏹XFSManager的这三个DLL是公开免费使用的,
⏹在WOSA/XFS2.0以前,XFSManager是由微软公司开发的,
⏹从WOSA/XFS3.0以后转到CEN/XFS来开发,
⏹实际上是NEXUS公司做为主导在维护开发。
⏹如果是CEN/XFS的会员,则可以获得XFSManager的源代码,目前几大厂商都是会员,所以基本都有XFSManager的源代码。
⏹跟WOSA/XFS有关的注册表配置,
⏹对于WOSA/XFS2.0,所有的配置在HKEY_CLASSES_ROOT\WOSA/XFS_ROOT
⏹对于WOSA/XFS3.0,配置分到两个地方,HKEY_LOCAL_MACHINE\SOFTWARE\XFS和HKEY_USERS\.DEFAULT\XFS。
⏹WOSA/XFS3.0把注册表分为两个部分,是考虑安全性,不同的登录用户看到的设备可能是不一样的。
⏹不管版本的差别,注册表主要的内容有三项,
⏹一项是XFS_MANAGER,属于XFSManager本身的配置项;
⏹一项是LOGICAL_SERVICES,是给ATMC应用用的,区别每种设备;
⏹一项是SERVICE_PROVIDERS,具体对应到某个硬件设备;另外一般有PHYSICAL_SERVICES,存放厂商的硬件配置。
⏹对于具体的每一项的说明,请参考文档《cwa14050-01-2000-Nov.pdf》的22页到25页内容。
建议看看这份文档,对于从事ATM工作有很大帮助,它的细节可以不用管,只要知道一些大概的概念即可。
⏹WOSA/XFS规定SP必须是基于DLL形式的,不管你做成什么样子,对于XFSManager向下看,必须是看到导出SPI接口的SPDLL。
ATM机常用模块
⏹CIM存款模块控件
⏹CDM取款模块控件
⏹ALM警报模块控件
⏹CAM摄像头模块控件
⏹CEU发卡模块控件
⏹CHK支票模块控件
⏹DEP金库模块控件
⏹IDC读卡器模块控件
⏹PIN密码键盘模块控件
⏹PTR打印设备模块控件
⏹SIU传感指示设备模块控件
⏹TTU显示终端模块控件
⏹VDM厂商模式模块控件
⏹一般一个厂家的SP,只需要十几个文件即可,内容比较少,但是象NCR、Diebold等的SP,安装起来会花上一些时间,因为里面包含了硬件诊断工具、配置工具等实际上跟SP没有关系的东西。
⏹因为SP的接口是统一的,所以我们会看到很多厂家提供的有XFS测试工具,能够测试多个厂家的SP,比如Wincor的WosaTest,Diebold的XTG等,这些工具可以互换使用的,反正接口都是符合一个标准的。
⏹因为很多硬件工程师可能需要用到这些SP测试工具,这里简单说一下怎样使用这些工具,当然,如果想完全使用该工具的每个功能,不仅仅需要测试工具本身的说明,熟悉WOSA/XFS的规范是必要的,所以基本上能操作即可。
六款符合WOSA/XFS标准的ATMC软件
Diebold(USA):
Agilis
Fujitsu(JAPAN):
Prism
NCR(USA):
APTRA
KAL(UK):
Kalignite
PhoenixInteractive(CANADA):
VISTAatm
Wincor-Nixdorf(GERMANY):
ProTopas
一个完整的SP测试操作流程
下面的操作一般可以在SP测试工具的菜单或者工具栏中直接找到,一些步骤中出现的参数选择,基本可以采用默认的参数即可):
⏹一、在SP测试工具中调用WFSStartUp,目的是把整个SP的环境启起来,包括把XFSManager装载到测试工具的进程空间中。
⏹二、在SP测试工具中调用WFSOpen,目的是打开某个硬件模块,SP测试工具一般一次只能打开一种类型的硬件设备。
其中要注意的是有个参数叫过LogicalName“逻辑名”,这个一定要填对,一般的厂家都有固定的习惯,比如Diebold会叫NT_IDC、NT_CDM等,打开哪个设备就填上对应的名字。
所有可能的名字在上面提到的注册表项LOGICAL_SERVICES下面,如果不清楚,你可以看看哪个名字象你要测试的设备,填上这个名字一般错不了。
⏹三、在SP测试工具中调用WFSRegister,目的是注册一下,以便能够接收到SP传上来的事件。
⏹四、在SP测试工具中调用WFSLock,这步基本可以省略。
目的是锁定设备,主要是防止同时还有其他程序在访问该设备,达到独占设备的目的。
⏹五、然后调用WFSGetInfo来获取设备的信息,相当于Read设备;也可以调用WFSExecute来对设备发命令,相当于Write设备,这两个是一个对应。
基本所有的命令都是通过这两个接口来完成的,其他步骤都是准备工作而已。
对于WFSGetInfo和WFSExecute是各自包含一组命令,可以选择单独的命令来执行。
至于每个命令的意思,要看WOSA/XFS的那些规范文档了,每个命令都有详细的描述。
⏹六、所有测试完成后,调用WFSUnLock,用来解锁,如果第四步有锁定设备。
⏹七、在SP测试工具中调用WFSUnRegister,目的是反注册一下,表明不再接收SP传上来的事件了。
⏹八、在SP测试工具中调用WFSClose,目的是关闭设备,比如关闭串口通讯等。
⏹九、在SP测试工具中调用WFSCleanUp,目的是释放整个SP的运行环境,把使用的相关文件和资源全部恢复。
至此,一个完整的SP测试流程已经完成了,可以经过这几步对设备进行测试,多熟悉下一个SP测试工具,就会明白每个命令是干什么的了。
目前最好的SP测试工具应该是Wincor的测试工具,使用的比较广泛,其他厂商的各有特点。
ATMC统一平台系统的安装
⏹首先必须保证ATM设备的各硬件模块支持CEN/XFS标准,ATM硬件厂商能提供基于WindowsXP的操作系统、支持CEN/XFS标准的设备驱动软件SP。
ATMC统一平台系统的安装有一定的配置要求,必须满足WindowsXP安装所要求的基本配置,如果想要获得更快的运行速度,还要求更高一些的硬件配置。
⏹以下是ATMC统一平台安装的基本步骤。
(1)安装WindowsXPProfessional操作系统。
(2)安装硬件厂商的SP软件(一般都已包含XFSManager)
(3)通过安装菜单选择厂商和机型进行ATMC统一平台应用系统的安装。
ATMC统一平台系统的配置
(1)网络配置和系统设置
进行ATM本机网络地址的配置,包括本机IP、子网掩码和默认网关等。
某些ATM机型可能还要检查设备驱动安装情况,进行必要的驱动安装和系统设置。
(2)厂商SP配置
有的厂商SP对不同机型的ATM需要根据其配置的设备类型进行配置。
(3)ATM参数设置
应用安装完毕,进入管理员方式对本台ATM进行ATMID、网点号、ATMP等参数的设置。
(4)钞箱设置
ATM连接综合前置系统成功后,即可进入客户服务功能。
只有在管理员方式进行钞箱配置和加钞操作后,ATM才能提供现金取款服务。
ATMC如何来操作硬件
⏹硬件指令――指ATMC向硬件发送的指令。
我们以读卡器IDC来做例子,对于读卡器厂商来说,它会提供一个硬件手册,里面有一部分涉及到硬件指令编程。
读卡器一般通过串口、USB或其他方式连接到主机箱,如果ATMC向USB口发送一串字节流,即可达到操作读卡器的目的。
该串字节流有一定的格式,是由硬件来定义的,比如开头为一个起始符、接着是命令的种类、接着是对应命令的传入信息、最后是校验码。
只要ATMC按照读卡器的要求,组织好一串字节流发送到USB口,则一个硬件指令就完成了。
读卡器硬件收到该串字节流后,会自己解析,然后进行相应的硬件动作。
⏹SP――符合WOSA/XFS规范的设备驱动程序。
ATM机开机运行过程
⏹打开ATM后,机器上电,然后进入Windows操作系统,这个过程跟普通的PC机差别不是很大。
一般厂家会将ATMC放到Windows的“自启动”里面,当Windows启动完成后,ATMC就会自动启动了。
⏹ATMC首先会调用SP的WFPOpen接口,依次打开各个设备,相当于ATMC与各个设备连接起来,同时向各个设备发送初始化的指令字符。
你将会在ATM的界面上看到类似画面“系统正在启动,请稍候”,此时你会听到机器的读卡器、机芯等设备在不停的响,这就是硬件在上电启动做初始化动作了。
等到所有的机器硬件初始化动作完了后,机器进入下一个流程。
⏹在ATM的各种硬件设备中,有几个设备被称为“必需设备”,一般是读卡器、流水打印机、凭证打印机、键盘,但是可能不同的银行要求的“必需设备”有所不同,或多或少都有可能。
到底该ATMC的“必需设备”是哪几种,一般ATMC都会对所有的硬件进行编号,在配置信息里面配置哪几个编号是的,从而不会将“必需设备”写死,只需改动配置信息就可以改动“必需设备”了。
⏹为什么对“必需设备”特别强调呢?
因为ATMC要想进入正常服务的欢迎画面,一般必须满足下列条件:
1、网络是通的。
ATMC会在硬件初始化完后,向主机发送第一个数据包,该数据包可以理解为“网络状态测试包”,如果收到主机的回复,则网络是好的。
2、所有的“必需设备”都是好的。
ATMC会在硬件初始化完后,依次调用SPI接口WFSGetInfo,获取“必需设备”的硬件状态,如果所有的“必需设备”都是好的,则ATM可以使用;只要任何一个“必需设备”的硬件状态返回值为不正常,ATM就不能进入正常服务画面。
⏹如果ATMC程序写的完善些,你可以看到ATMC启动会停在暂停服务状态,画面不停的提示因为网络故障或硬件故障导致不能进入服务。
看了上面的,你就知道为什么ATM启动后进入不了正常服务了。
当然,不同的ATMC还有其他一些判断条件,不过跟硬件没什么关系。
ATM机的几种状态
⏹当所有的条件都好了后,ATMC会进入正常服务状态,显示“欢迎插卡”画面。
一进入该画面,ATMC首先向读卡器发送硬件指令,打开读卡器口的闸门,等待进卡,接着向读卡器上面的指示灯发送指令,让其发亮闪烁,提醒客户插卡。
如果打开读卡器闸门失败,则读卡器会在返回信息中填上相应的错误提示,SP发送完开闸门命令后,会等待自己发送命令的返回,分析返回数据来确定本次的硬件操作是否成功。
如果发现不成功,ATMC就会转到“暂停服务”。
这种处理贯穿于整个ATMC,即如果ATMC向某个硬件发送一条指令后,发现其返回错误,则跟进情况会进行处理,如果是“必需设备”错,就要转到“暂停服务”。
此时,ATMC一直在欢迎画面循环,等待一个客户插卡。
在没卡插入时,键盘是没有打开的,即你按键是没反应的。
当卡插入后,SP向键盘发送命令,通知其打开,等待接收客户的按键。
键盘分为两种处理,一种是每按一个键,就向ATMC返回一个按键值;另外一种是一直按几个键后,才一次性返回给AMTC(典型的是输入密码),这些在SP中分别被称为GetData和GetPin。
客户按一个键,硬件马上将按键传回SP,也是通过返回字节流的方式,将按键的信息放在字节流中,从而软件才知道客户按了什么键。
至于你在功能选择画面,选择是“查询”、“转帐”、“取款”、“存款”还是“改密”,ATMC是怎样知道呢?
其实ATM上面的那几个功能键在软件上看,和数字键盘都没有区别,如果客户按了某个功能键,则按键的硬件返回字节流中可能包含一个“F1”,如果客户按了数字键盘1,则按键的硬件返回字节流中可能包含一个“1”,从而软件就可以区分出是按了功能键还是数字键。
简单些,就是功能键和数字键都有唯一的编码返回给SP。
如果你要是迷惑我按了“F1”,软件是怎么知道我选择了“查询”,而不是“取款”呢?
这个问题简单,既然“查询”的按钮是ATMC显示在屏幕上那个位置,ATMC当然会知道哪个功能键对应那个位置的按钮的。
如果有个客户插卡进来后,读卡器传感器检测到了,就会通知SP,有卡进来了。
接着SP向读卡器发送一个关闭闸门命令,将闸门关掉,防止其他的卡再插进来。
同时SP会发送一个关闭指示灯的指令,将指示灯关闭。
接着SP发送一个读卡的指令,读卡器硬件开始读卡,接着将读出的结果放在一串字节流中,返回给SP,SP会分析该返回字节流,因为其格式都是硬件手册里面定义好的,哪一位表示什么都是固定的。
SP根据各个位的意思进行分析,从而知道是否成功,并且该字节流里面还包括1、2、3磁道的数据,SP根据字节流的位置可以将磁道依次取出,放到一个变量中存起来,以便ATMC中使用。
读完卡后,读卡器就先停下来,卡保留在里面,该其他硬件工作了。
⏹接着,用户进入功能选择画面,“查询”、“转帐”和“改密”没什么好说的,纯粹跟主机通讯,属于纯软件的事,跟硬件没关系。
在所有的交易中,我们要记住流水和凭条打印机是要不停的动作的。
如果ATMC觉得需要打印流水了,它只是简单的将要打印的内容按照打印机硬件要求的格式组织一下,形成字节流,然后通过串口发送给流水打印机,流水打印机收到这串字节流,会根据开头的几位知道这是个打印命令,打印的内容在紧接着的后面,从而流水就会移动打印头,不停的来回打印,同时打印机的进纸机械模块会配合向前进纸,以便换行。
至于打印头怎样移动这些控制,不是SP的事情,是纯粹打印机硬件的事情,SP只管把打印指令扔给打印机,剩下的工作就是打印机硬件的事情了,要知道打印机里面也有控制板和简单的逻辑处理。
SP只关心发送打印命令后,打印机是否返回打印成功给SP。
这里面还有个异步和同步打印的概念,不过跟硬件关系不大,可以将异步处理放到打印机硬件中,也可以放在SP中。
凭条跟流水差不多,一般只是多了个切纸、送纸命令而已。
对于象FORM等概念跟打印机硬件没有半点关系。
取款流程
⏹我们来看看“取款”和“存款”吧。
当客户选择了“取款”后,客户输入取款金额,ATMC会先向主机发送一个报文,将客户的钱扣掉,ATMC等待主机返回报文,如果返回的信息是一切OK,则ATM开始出钞了(我们不考虑是先发报文还是先挖钞的问题,以及逻辑配钞,对于我们讲的内容来说都一样)。
⏹ATMC先向机芯硬件发送挖钞指令,指令中包括每个钞箱需要挖几张的信息。
这些信息是SP算出来的,SP会根据自己保存的钞票信息,象剩余张数、钱箱面额,钱箱币种等,进行相应的配钞算法,即算出哪个钱箱应该出几张钱,接着将这些信息组合成机芯要求的字节流送给机芯。
机芯收到指令后,开始在对应的钱箱里面挖钞,至于挖钞过程中发现有不合格钞票,是单张回收还是整叠回收、真空挖钞摩擦挖钞之类的特性,跟SP没关系,纯粹是机芯自己的事情,SP不管这些,它只管机芯最后返回的信息是挖钞成功还是挖钞失败,每个钱箱分别挖了几张,回收了几张。
接着SP向机芯发送送钞指令,钞票一般会送到机芯堆叠器先放起来,接着SP发送打开出钞闸门命令,打开出钞闸门,以便客户能够拿到钱,同时SP发送命令将钞票从堆叠器送到门口,等待客户把钱拿走。
当钱到门口时,ATMC会有个超时,等待钱被拿走。
SP会不断发送硬件指令,该指令用于检测钱是否被拿走,硬件接收到该指令后,会利用传感器检测钱是否还在门口。
如果某次SP发送硬件指令后,机芯返回信息表明钱已经被取走了,说明机芯的传感器已经检测到钱不在门口了,这时SP会发送一个事件给上层的ATMC,ATMC会调用关闭出钞闸门的命令,该命令传入到底层的SP中,SP直接通过串口向机芯发送关闭闸门指令,闸门关闭,接着SP发送结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ATM 知识 培训