随着生活节奏的加快,以休闲娱乐而发展的动漫游戏已成为人们生活中减压的方式。动漫游戏机中使用的出币机是一种广泛应用于数币和出币的装置。目前,出币机多由人工手动的方式控制,操作人员收取顾客的现金后设置出币机将代币数给顾客。但对于某些游戏机(如推币机)一定要使用实物代币,换币量大,人工售币不但工作量大,还存在易出错、顾客等候时间长等问题,更重要的是人工换币的过程无数据记录,极易带来一定的经济损失及不必要的纠纷。为提高效率,杜绝此类问题的出现,换币过程需要智能化和网络化。为此,我们设计开发了基于IC卡管理的智能化代币出币系统。
该系统采用RS-485串行通信方式,通过网络实现与中心管理服务器的快速数据交换,实现IC卡管理的智能化客户自助换币。既方便了顾客,又能对交易数据实时记录和处理,从根本上杜绝了不利因素的出现,使动漫游戏场所的运作与管理更上一个台阶。
1 系统总体设计
本系统主要由电源模块、出币信号采集模块、控制信号输出模块、微处理器、LED数码管显示模块、键盘输入模块、IC卡读写模块、通讯模块及光电报警电路等组成,系统总体设计的框图如图1所示。电源部分采用交流220V降压式开关电源供电,出币信号采用中断计数方式把信号通过光耦器件引入,控制信号通过光耦信号模拟人工操作出币机的键盘来实现控制。IC卡存储用户的简单资料,如卡内结存与支出等,通过IC卡的读写及RS-485的串行通信,实时与终端服务器更新数据,并在数码管中显示相关信息,实现智能化自助出币。
2 系统硬件设计
在硬件设计方面,充分考虑动漫游戏机场所存在的多种干扰信号,尽可能利用已有条件,采取硬件抗干扰措施,合理分配和扩展单片机的接口。
2.1开关电源
为了能够适应动漫游戏场所复杂的环境对电压的要求,电源的设计应符合较大的电压变化范围且抗干扰能力要强,因此,我们采用了1.5A单片可调开关型稳压器L4962E/A器件设计开关电源,该器件具有高效率(高达90%)、大电流(1.5A)、高精度(2%)和高频率(150kHz)等特点,内部具有过流、过热等完善的保护电路,开关电源电路图如图2所示,该电路满足动漫游戏场所对电源可靠性的要求。图中考虑电网对系统的干扰,加入磁珠FB1和FB2来抵御电网中快速脉冲群的干扰,肖特基二极管1N5822作为续流二极管,为电感L提供电流通路。二极管P6KE为瞬态电压抑制管(TVS管),能抑制由于电磁干扰、静电或电机等在电路板上出现瞬间高压时的尖峰脉冲。
2.2出币机控制电路
出币机的自动控制是使微处理器的P0口通过74HC574连接2个四路光耦器件TLP521-4,将光耦的集电极和发射极分别接出币机按键的两个引脚,以控制光耦内部三极管的导通和截止模拟出币机按键的闭合和释放,从而控制出币机的工作,电路图如图3所示。
当单片机向该电路发出低电平时,由数据锁存器锁存后致使光耦器件TLP521-4的控制端所接的发光二极管正向导通发光,光耦中的光敏三极管导通,因光耦输出端的集电极和发射极分别接出币机按键的两个引脚,此时模拟出币机按键的闭合状态;当单片机向该接口电路发出高电平时,由数据锁存器锁存后致使光耦器件TLP521-4的控制端所接的发光二极管截止,光耦的感光器件随之截止,此时模拟出币机按键的释放状态。
2.3出币信号采集电路
出币机每出一个币就会发出一个负脉冲计数信号,将该信号经过光耦4N33接入微处理器处理并采用光电隔离和快速瞬变脉冲群抑制措施,利于软件上对出币机的出币脉冲信号进行筛选,排除非出币信号的干扰,接口电路如图4所示。
当出币机无出币信号时,T-2端处于高电位,三极管导通,集电极因三极管导通接地变为低电平,光耦器件4N33的输入端1、2脚所接的发光二极管正向导通发光,4N33感光器件感光导通,使外部高电平通过4、5脚将单片机/INT0置为高电平。当出币机有出币信号时,T-2端处于低电位,三极管截止,使光耦器件4N33的输入端1、2脚所接的发光二极管截止,4N33光敏感器件随之截止,单片机的/INT0被置为低电平。
出币机连续出币时,在4N33的输出端4脚输出计币脉冲信号,送至单片机的/INT0脚进行出币计数。
图5 IC卡接口电路
2.4 IC卡接口电路
IC卡接口电路是按照I2C总线接口原理来设计,利用单片机的P1.0判断有无IC卡,P1.5、P1.6、P1.7分别用于连接IC卡的CLK、DATA和RST,电路图如图5所示。
2.5 RS-485串行通信电路
考虑系统的兼容性,本设计选择基于串行接口芯片MAX487的半双工总线通讯系统。因动漫游戏机房的通讯网络采用了令牌技术,因此该系统需要本机开机时处于接收状态,让MAX487的收发使能端经过非门接至单片机的P3.5,确保MAX487在最初上电时处于接收状态。同时,采用磁珠FB1和FB2来抵御通讯网络中快速脉冲群干扰信号,在电源地线与大地之间接入一个电容,使线路上的快速脉冲群经由此电容进入大地,有效地解决了既需要不直接接地又能将干扰信号入地的问题,确保了通讯的可靠,RS-485串行通信电路如图6所示。
2.6缺币光电报警电路
缺币报警不应在完全没有代币时才报警,而应该适度提前报警(如剩余代币数约为400个时报警)。出币机的出币是以“沙漏”形式出币的,因此在漏斗底部可以安装一对红外传感器,当代币足够多时,代币会遮挡红外传感器,缺币信号为高电平。当代币数较少时,红外传感器没有遇到障碍物,缺币信号为低电平,此时单片机控制报警电路报警并提醒服务员及时向出币机加币。红外传感器安装的位置,可通过实际测试来确定。
3 系统软件设计
IC卡智能化自助出币系统的软件主流程图如图7所示。系统上电初始化设置,与上位机通讯握手后,首先检测是否有IC卡,如有IC卡,则对IC卡进行身份识别,校验IC卡的密码及用户密码,及时将读取的信息通过串口通讯将数据传到计算机终端服务器。若数据校验成功,则读取卡内结存币数并显示。当判断到有取币信号时,则控制出币机出币,直至出币结束,最后将数据再次传回终端服务器。
3.1通讯流程
系统开机初始化,上位机向下位机(出币机)发送握手命令,下位机接收数据正确后回送握手成功信息,否则回送出错信息,上位机据此确定下位机的状态(是否已联
机)。握手命令设定为:0xc0,其通讯格式为:“命令+校验标志+结束符”,如“0xc0,0xee,0x0a”。
当通讯握手成功后,再按以下流程与上位机通讯:
1)插入IC卡,请求上位机接收IC卡卡号,校验IC卡信息。
2)IC卡信息正确后,请求上位机接收并校验卡内结存币数,确认币数后发送可出币命令给出币机。
3)当用户输入出币数后,判断出币数是否小于或等于卡内结存币数,是则开始出币。出币结束,请求上位机接收已出币数并校验,包括正常出币数及异常出币数。
3.2通讯协议及数据校验
为了保证系统数据传送的可靠性,避免通讯过程中数据出错,需要约定通讯协议及对通讯数据进行校验。
通讯协议中,约定的格式为“命令+数据(高位)+数据(低位)+校验和+结束符”的形式。其中,“校验和=命令+数据高位+数据低位”,校验和只取低字节校验,高字节舍弃不用,如“0xd0,00,00,0xd0,0x0a”。
同时,为防止出现网络意外而造成终端装置出币数量与客人换币数不一致而造成经济损失,除了通讯要进行数据校验外,在终端装置出币机也要进行数据的校验,检验的具体方法为:
1)记录客人的卡内结存和客人请求的拟出币数。
2)将上位机传送回来的卡内结存和拟出币数相加。
3)检查相加结果是否等于原卡内结存。
4)检查上位机传送来的拟出币数是否等于客人请求的拟出币数。
5)正确:出币;
错误:点亮客人请求出币数对应的按键并报警通知服务员处理。
3.3出币机出现故障时的信号处理
当出现缺币、卡币故障时,出币机会空转8秒后自动停下来。如果此时不对出币机处理,系统将无法识别出币机的状态。因此,需要对出币机出现故障时的各信号进行采集。
当出现缺币时,出币机空转8秒后会处于停机状态,此时无出币信号;当出现卡币时,出币信号为低电平且会随机出现一些干扰脉冲,造成系统计数不准。因此,除了在硬件上采用光电隔离和快速瞬变脉冲群抑制措施,保证出币机出现故障时的信号区别于其它信号外,在软件上也要对出币信号进行软件滤波处理,若在一定时间内检测不到出币信号,则要提示出币机出现故障并报警处理。
4 结束语
本文介绍了一个基于RS-485通讯的智能化游戏机代币出币机的系统设计,经过测试与调试,已实际应用在动漫游戏场。该自动出币机避免了人工出币机出现的低效、易出错、管理成本高等问题,实现终端出币机与上位机管理系统的网络化、智能化的连接,配以IC卡的自助管理,简化了动漫游戏场所的管理。随着各地动漫场所的兴起,本系统具有广泛的市场前景。
参考文献:
[1] 李江全,刘荣.单片机数据通信及测控应用技术详解[M].北京:电子工业出版社,2011.
[2] 张萌,和湘,姜斌.单片机应用系统开发综合实例[M].北京:清华大学出版社,2007.
[3] 杨振野.IC卡技术及其应用[M].北京:科学出版社,2006.