1 引 言
在我国,公交系统实行投币箱代替售票员以来,大幅提高了公交公司的运营效率。但司机盗窃投币箱内的票款和乘客使用假硬币乘车的事情时有发生,使公司蒙受巨大的经济损失。
除个人素质因素外,主要的原因是投币箱的安全性能差、功能单一。针对此问题,这里设计了一款智能公交投币箱:系统以AT89S52单片机为控制核心,采用Dallas公司的信息纽扣DS1991构成密码锁控制电路,用DS1991的密钥开启投币箱的密码锁。每个分区都具有64位密码和识别区、安全性能非常高、可以避免因密码锁安全性能差而导致车票失窃的事件发生。信息钮扣DS1991与单片机之间的数据传递采用单总线协议,数据传递只需将DS1991的数据线与单片机的I/O口短暂接触即可完成。根据真、假硬币使用的合金材料不相同,系统采用电涡流传感器检测硬币的真假,可有效地防止乘客使用假硬币乘坐公交车。
2 系统结构框图和组成原理
基于DS1991的智能公交投币箱的结构框图如图1所示:
系统的工作原理:若使用合法授权的DS1991与单片机的I/O口短暂接触,单片机将存储器的数据和时钟数据写入DS1991密钥子存储区,然后单片机开启投币箱的电子密码锁。若使用非授权的DS1991或其他的单总线器件,单片机拒绝开启投币箱的电子密码锁。当系统检测到有假硬币投入,启动假硬币剔除电路,使假硬币从假硬币通道流出投币箱,与此同时蜂鸣器发声。
2.1 DS1991接口电路
本系统采用信息纽扣DS1991,每个DS1991工厂刻入检测过的64位注册码,没有任何两个器件的注册码相同。前8位是1-Wire产品的家族码,接下来的48位是每个器件惟一的序列号,最后8位是前面56位码的CRC校验码。它内部有安全可靠的1152位的密码保护存储器和512位的非密码保护存储器。1152位的密码保护存储器被分成3个分区,每分区包含384位,每个密钥子区都具有64位密码和识别区,对密钥子存储区的读/写操作均需进行密码验证。512位的非密码保护存储器主要用于加密数据的拷贝,以保证数据的完整性。DS1991存储器图如图2所示:
DS1991封装于直径为16 mm、厚约6 mm的不锈钢外壳中。它具有双向通讯功能,数据传输使用单总线协议,按照单总线协议,仅用1根数据线和地线即可与外界进行信息交换。DS1991属于漏极开路的单总线器件,DS1991的连接I/O必须是双向的,而且必须在I/O口外接一个4.7 kΩ的上拉电阻。单片机与DS1991的传输速率可达16.3 kb/s,所以信息钮扣DS1991与单片机之间的信息传递,只需将DS1991的数据线和单片机的I/O口短暂接触(轻轻一碰)即可完成。DS1991接口电路如图3所示:
信息钮扣DS1991充当投币箱系统、公交公司后台管理系统之间数据传递的桥梁。信息钮扣DS1991与单片机进行信息交换,必须先进行初始化和ROM操作,之后才能进行存储器的读写操作。
初始化:DS1991初始化时序如如图4所示:
单总线上所有的传输操作均从初始化过程开始。初始化过程由单片机发出的复位脉冲和单片机收应答脉冲组成。若DS1991在I/O线上,则在TPDL时将数据线拉低,产生应答负脉冲。
ROM功能命令:如果单片机检测到应答负脉冲,就可以发出4条DS1991支持的ROM功能命令。本系统I/O线只有1个信息钮扣,初始化之后,可跳过64位ROM系列码的匹配,而直接进行存储器的读写操作。
存储器的读写操作:这里只分析数据写入密钥子存储区的操作。首先单片机发写密钥子存储区命令,发密钥子存储区区号和数据目标地址,然后收密钥子存储区识别码,验证64位识别码。若64位的识别码是非授权的识别码,系统存储该信息钮扣的识别码及接入系统的时间,之后单总线器件复位;若64位识别码是公交公司合法授权的识别码,单片机将E2PROM存储器的64位密码发送给DS1991的密钥子存储区。若单片机发送的64位密码和DS1991密钥子存储区的64位密码不相同,DS1991的密钥子存储区拒绝写入数据,单片机P1.3口拒绝输出开锁电压,从而不能开启投币箱的电子密码锁;若单片机发送的64位密码和DS1991密钥子存储区的64位密码相同,单片机将存储器的数据和时钟数据写入DS1991的密钥子存储区,单片机P1.3口输出开锁电压,从而开启投币箱的电子密码锁。
从分析可知:只有使用有合法授权的DS1991(DS1991的识别码合法,DS1991密钥子存储区的64位密码和投币箱E2PROM存储器中的密码相同)接触I/O口,才能开启投币箱的电子密码锁;DS1991不仅具有开启电子密码锁的功能,还具备数据采集功能。DS991采集公交车全部数据包括投币箱合法开启记录和非法试开记录。公司后台管理系统读取DS1991获取的数据,结合公交车辆信息对公交车辆投币箱开启情况进行统计分析,并可作为公交管理的重要依据。
信息钮扣DS1991配发一般采用多级配发,各级信息钮扣DS1991具有不同的开锁权限。最高级为总公司级,可以打开公司所有的公交投币箱门锁,最高级的DS1991权限最大,应当非常安全地保管和使用。第低级为车辆级,只能打开某台公交投币箱门锁。中间级信息钮扣则根据总公司的管理模式灵活分配信息钮扣DS1991的开锁权限。
2.2 硬币处理电路
硬币处理的结构框图如图5所示:
硬币检测采用电涡流传感器获得检测信号,工作原理为:当给线圈施加高频正弦信号,将被测硬币放人磁场中,当线圈产生的变化磁场通过硬币表面时,硬币的表面上会产生涡流。该涡流会产生反向变化磁场,从而削弱原线圈产生出来的磁场,导致线圈的电感量发生变化。在本系统中,真、假硬币分别通过线圈L1时,由于2种硬币的合金材料不相同,在硬币表面产生的涡流不相同,从而使得线圈L1的电感量的变化量不相同。将该线圈作为电感接入电容三点式振荡电路,振荡电路输出的正弦信号的频率不相同,所以只需测量该电容三点式振荡电路的输出正弦频率,就可以精确鉴别硬币的真假。系统在工作前,需要预先学习:预先将所有的真硬币在振荡电路中的振荡频率存入单片机的E2PROM存储器。在实际的鉴别过程中,由于各种原因引起的误差,使得单片机计数的频率与该种硬币在存储器中存储的频率有一定的误差。对此,可以设定一个允许误差范围,使系统能有效地鉴别硬币的真假。
当乘客投入硬币时,硬币通过光电耦合器处,硬币遮挡光束,经转换电路产生下降沿,送人单片机AT89S52的P3.2口,INTO产生中断,系统执行硬币鉴别。电容三点式振荡电路输出的正弦信号,通过施密特触发电路,转换成方波信号,送入单片机P3.4口内的T1计数器计数。若计数器计数的频率在存储器存储的某个频率的允许误差范围之内,就认为被检测硬币的是真硬币;若计数器计数的频率不在存储器存储的任何一个频率的允许误差范围之内,就认为被检测硬币的是假硬币。此时单片机启动假硬币剔除电路,P1.4口输出高电位,钱币切换电磁铁通电,切换钱币通道,使假硬币从假硬币通道流出投币箱,同时P1.5口输出高电位,蜂鸣器发声。本系统为防止钱币阻塞钱币通道,设置了打板电路。在钱币通道阻塞时,司机打开打板开关,P1.6口输出高电位,通电的电机对钱币通道进行打板操作,从而使钱币通道畅通。
2.3 实时时钟电路
本系统实时时钟芯片采用DS1302。DS1302是DAL-LAS公司推出的涓流充电时钟芯片,内含有1个实时时钟/日历和31 B静态RAM,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、月、年的信息,每月的天数和闰年的天数可自动调整。DS1302与单片机之间采用同步串行的方式进行通信,DS1302和单片机之间需用3个I/O:分别连接DS1302的复位脚RES、串行数据I/O和串行时钟SCLK。DS1302为系统提供精确的时钟,当有信息纽扣与I/O口接触,系统就会自动记录接入系统的时间,为以后的查询提供依据。
2.4 E2PROM存储器
本系统采用E2PROM存储器AT24C32,它是一个32 kb串行CMOS E2PROM,内部含有4096个字节,支持I2C总线数据传送协议。AT24C32和单片机之间需用2个I/O口:一个接串行时钟SCL,另一个接串行数据/地址SDA。E2PROM存储器主要存储各种币值的真硬币在振荡电路中的振荡频率和信息钮扣的密码、识别码及接入系统的时间。
3 系统的软件设计
本系统的软件流程图如图6所示:
4 结 语
本文设计智能公交投币箱有3个优点:
(1)安全性能高。只有使用合法授权的DS1991,才能开启投币箱的电子密码锁。每个分区都具有64位的密码和识别码,安全性能非常高,可以避免因投币箱密码锁安全性能差而导致车票失窃的事件发生。
(2)提高了公交公司的运营效率。采用电涡流传感器检测硬币的真假,可有效地防止乘客使用假硬币乘坐公交车。
(3)使用方便。DS191体积小、携带方便,信息钮扣DS1991与单片机的信息传递只需轻轻一碰即可完成。
本智能公交投币箱的电子密码锁开启后,再开启智能公交投币箱的机械锁,投币箱的门锁才能被打开。在公交系统中,两次开锁的工作人员不相同,再次确保投币箱内票款的安全。用信息纽扣开启电子密码锁的技术,应用在公交投币箱中,从很大程度上解决了长期困扰公交公司票款被盗的问题。