1 引 言
在我國,公交系統(tǒng)實(shí)行投幣箱代替售票員以來,大幅提高了公交公司的運(yùn)營效率。但司機(jī)盜竊投幣箱內(nèi)的票款和乘客使用假硬幣乘車的事情時(shí)有發(fā)生,使公司蒙受巨大的經(jīng)濟(jì)損失。
除個(gè)人素質(zhì)因素外,主要的原因是投幣箱的安全性能差、功能單一。針對(duì)此問題,這里設(shè)計(jì)了一款智能公交投幣箱:系統(tǒng)以AT89S52單片機(jī)為控制核心,采用Dallas公司的信息紐扣DS1991構(gòu)成密碼鎖控制電路,用DS1991的密鑰開啟投幣箱的密碼鎖。每個(gè)分區(qū)都具有64位密碼和識(shí)別區(qū)、安全性能非常高、可以避免因密碼鎖安全性能差而導(dǎo)致車票失竊的事件發(fā)生。信息鈕扣DS1991與單片機(jī)之間的數(shù)據(jù)傳遞采用單總線協(xié)議,數(shù)據(jù)傳遞只需將DS1991的數(shù)據(jù)線與單片機(jī)的I/O口短暫接觸即可完成。根據(jù)真、假硬幣使用的合金材料不相同,系統(tǒng)采用電渦流傳感器檢測(cè)硬幣的真假,可有效地防止乘客使用假硬幣乘坐公交車。
2 系統(tǒng)結(jié)構(gòu)框圖和組成原理
基于DS1991的智能公交投幣箱的結(jié)構(gòu)框圖如圖1所示:
系統(tǒng)的工作原理:若使用合法授權(quán)的DS1991與單片機(jī)的I/O口短暫接觸,單片機(jī)將存儲(chǔ)器的數(shù)據(jù)和時(shí)鐘數(shù)據(jù)寫入DS1991密鑰子存儲(chǔ)區(qū),然后單片機(jī)開啟投幣箱的電子密碼鎖。若使用非授權(quán)的DS1991或其他的單總線器件,單片機(jī)拒絕開啟投幣箱的電子密碼鎖。當(dāng)系統(tǒng)檢測(cè)到有假硬幣投入,啟動(dòng)假硬幣剔除電路,使假硬幣從假硬幣通道流出投幣箱,與此同時(shí)蜂鳴器發(fā)聲。
2.1 DS1991接口電路
本系統(tǒng)采用信息紐扣DS1991,每個(gè)DS1991工廠刻入檢測(cè)過的64位注冊(cè)碼,沒有任何兩個(gè)器件的注冊(cè)碼相同。前8位是1-Wire產(chǎn)品的家族碼,接下來的48位是每個(gè)器件惟一的序列號(hào),最后8位是前面56位碼的CRC校驗(yàn)碼。它內(nèi)部有安全可靠的1152位的密碼保護(hù)存儲(chǔ)器和512位的非密碼保護(hù)存儲(chǔ)器。1152位的密碼保護(hù)存儲(chǔ)器被分成3個(gè)分區(qū),每分區(qū)包含384位,每個(gè)密鑰子區(qū)都具有64位密碼和識(shí)別區(qū),對(duì)密鑰子存儲(chǔ)區(qū)的讀/寫操作均需進(jìn)行密碼驗(yàn)證。512位的非密碼保護(hù)存儲(chǔ)器主要用于加密數(shù)據(jù)的拷貝,以保證數(shù)據(jù)的完整性。DS1991存儲(chǔ)器圖如圖2所示:
DS1991封裝于直徑為16 mm、厚約6 mm的不銹鋼外殼中。它具有雙向通訊功能,數(shù)據(jù)傳輸使用單總線協(xié)議,按照單總線協(xié)議,僅用1根數(shù)據(jù)線和地線即可與外界進(jìn)行信息交換。DS1991屬于漏極開路的單總線器件,DS1991的連接I/O必須是雙向的,而且必須在I/O口外接一個(gè)4.7 kΩ的上拉電阻。單片機(jī)與DS1991的傳輸速率可達(dá)16.3 kb/s,所以信息鈕扣DS1991與單片機(jī)之間的信息傳遞,只需將DS1991的數(shù)據(jù)線和單片機(jī)的I/O口短暫接觸(輕輕一碰)即可完成。DS1991接口電路如圖3所示:
信息鈕扣DS1991充當(dāng)投幣箱系統(tǒng)、公交公司后臺(tái)管理系統(tǒng)之間數(shù)據(jù)傳遞的橋梁。信息鈕扣DS1991與單片機(jī)進(jìn)行信息交換,必須先進(jìn)行初始化和ROM操作,之后才能進(jìn)行存儲(chǔ)器的讀寫操作。
初始化:DS1991初始化時(shí)序如如圖4所示:
單總線上所有的傳輸操作均從初始化過程開始。初始化過程由單片機(jī)發(fā)出的復(fù)位脈沖和單片機(jī)收應(yīng)答脈沖組成。若DS1991在I/O線上,則在TPDL時(shí)將數(shù)據(jù)線拉低,產(chǎn)生應(yīng)答負(fù)脈沖。
ROM功能命令:如果單片機(jī)檢測(cè)到應(yīng)答負(fù)脈沖,就可以發(fā)出4條DS1991支持的ROM功能命令。本系統(tǒng)I/O線只有1個(gè)信息鈕扣,初始化之后,可跳過64位ROM系列碼的匹配,而直接進(jìn)行存儲(chǔ)器的讀寫操作。
存儲(chǔ)器的讀寫操作:這里只分析數(shù)據(jù)寫入密鑰子存儲(chǔ)區(qū)的操作。首先單片機(jī)發(fā)寫密鑰子存儲(chǔ)區(qū)命令,發(fā)密鑰子存儲(chǔ)區(qū)區(qū)號(hào)和數(shù)據(jù)目標(biāo)地址,然后收密鑰子存儲(chǔ)區(qū)識(shí)別碼,驗(yàn)證64位識(shí)別碼。若64位的識(shí)別碼是非授權(quán)的識(shí)別碼,系統(tǒng)存儲(chǔ)該信息鈕扣的識(shí)別碼及接入系統(tǒng)的時(shí)間,之后單總線器件復(fù)位;若64位識(shí)別碼是公交公司合法授權(quán)的識(shí)別碼,單片機(jī)將E2PROM存儲(chǔ)器的64位密碼發(fā)送給DS1991的密鑰子存儲(chǔ)區(qū)。若單片機(jī)發(fā)送的64位密碼和DS1991密鑰子存儲(chǔ)區(qū)的64位密碼不相同,DS1991的密鑰子存儲(chǔ)區(qū)拒絕寫入數(shù)據(jù),單片機(jī)P1.3口拒絕輸出開鎖電壓,從而不能開啟投幣箱的電子密碼鎖;若單片機(jī)發(fā)送的64位密碼和DS1991密鑰子存儲(chǔ)區(qū)的64位密碼相同,單片機(jī)將存儲(chǔ)器的數(shù)據(jù)和時(shí)鐘數(shù)據(jù)寫入DS1991的密鑰子存儲(chǔ)區(qū),單片機(jī)P1.3口輸出開鎖電壓,從而開啟投幣箱的電子密碼鎖。
從分析可知:只有使用有合法授權(quán)的DS1991(DS1991的識(shí)別碼合法,DS1991密鑰子存儲(chǔ)區(qū)的64位密碼和投幣箱E2PROM存儲(chǔ)器中的密碼相同)接觸I/O口,才能開啟投幣箱的電子密碼鎖;DS1991不僅具有開啟電子密碼鎖的功能,還具備數(shù)據(jù)采集功能。DS991采集公交車全部數(shù)據(jù)包括投幣箱合法開啟記錄和非法試開記錄。公司后臺(tái)管理系統(tǒng)讀取DS1991獲取的數(shù)據(jù),結(jié)合公交車輛信息對(duì)公交車輛投幣箱開啟情況進(jìn)行統(tǒng)計(jì)分析,并可作為公交管理的重要依據(jù)。
信息鈕扣DS1991配發(fā)一般采用多級(jí)配發(fā),各級(jí)信息鈕扣DS1991具有不同的開鎖權(quán)限。最高級(jí)為總公司級(jí),可以打開公司所有的公交投幣箱門鎖,最高級(jí)的DS1991權(quán)限最大,應(yīng)當(dāng)非常安全地保管和使用。第低級(jí)為車輛級(jí),只能打開某臺(tái)公交投幣箱門鎖。中間級(jí)信息鈕扣則根據(jù)總公司的管理模式靈活分配信息鈕扣DS1991的開鎖權(quán)限。
2.2 硬幣處理電路
硬幣處理的結(jié)構(gòu)框圖如圖5所示:
硬幣檢測(cè)采用電渦流傳感器獲得檢測(cè)信號(hào),工作原理為:當(dāng)給線圈施加高頻正弦信號(hào),將被測(cè)硬幣放人磁場(chǎng)中,當(dāng)線圈產(chǎn)生的變化磁場(chǎng)通過硬幣表面時(shí),硬幣的表面上會(huì)產(chǎn)生渦流。該渦流會(huì)產(chǎn)生反向變化磁場(chǎng),從而削弱原線圈產(chǎn)生出來的磁場(chǎng),導(dǎo)致線圈的電感量發(fā)生變化。在本系統(tǒng)中,真、假硬幣分別通過線圈L1時(shí),由于2種硬幣的合金材料不相同,在硬幣表面產(chǎn)生的渦流不相同,從而使得線圈L1的電感量的變化量不相同。將該線圈作為電感接入電容三點(diǎn)式振蕩電路,振蕩電路輸出的正弦信號(hào)的頻率不相同,所以只需測(cè)量該電容三點(diǎn)式振蕩電路的輸出正弦頻率,就可以精確鑒別硬幣的真假。系統(tǒng)在工作前,需要預(yù)先學(xué)習(xí):預(yù)先將所有的真硬幣在振蕩電路中的振蕩頻率存入單片機(jī)的E2PROM存儲(chǔ)器。在實(shí)際的鑒別過程中,由于各種原因引起的誤差,使得單片機(jī)計(jì)數(shù)的頻率與該種硬幣在存儲(chǔ)器中存儲(chǔ)的頻率有一定的誤差。對(duì)此,可以設(shè)定一個(gè)允許誤差范圍,使系統(tǒng)能有效地鑒別硬幣的真假。
當(dāng)乘客投入硬幣時(shí),硬幣通過光電耦合器處,硬幣遮擋光束,經(jīng)轉(zhuǎn)換電路產(chǎn)生下降沿,送人單片機(jī)AT89S52的P3.2口,INTO產(chǎn)生中斷,系統(tǒng)執(zhí)行硬幣鑒別。電容三點(diǎn)式振蕩電路輸出的正弦信號(hào),通過施密特觸發(fā)電路,轉(zhuǎn)換成方波信號(hào),送入單片機(jī)P3.4口內(nèi)的T1計(jì)數(shù)器計(jì)數(shù)。若計(jì)數(shù)器計(jì)數(shù)的頻率在存儲(chǔ)器存儲(chǔ)的某個(gè)頻率的允許誤差范圍之內(nèi),就認(rèn)為被檢測(cè)硬幣的是真硬幣;若計(jì)數(shù)器計(jì)數(shù)的頻率不在存儲(chǔ)器存儲(chǔ)的任何一個(gè)頻率的允許誤差范圍之內(nèi),就認(rèn)為被檢測(cè)硬幣的是假硬幣。此時(shí)單片機(jī)啟動(dòng)假硬幣剔除電路,P1.4口輸出高電位,錢幣切換電磁鐵通電,切換錢幣通道,使假硬幣從假硬幣通道流出投幣箱,同時(shí)P1.5口輸出高電位,蜂鳴器發(fā)聲。本系統(tǒng)為防止錢幣阻塞錢幣通道,設(shè)置了打板電路。在錢幣通道阻塞時(shí),司機(jī)打開打板開關(guān),P1.6口輸出高電位,通電的電機(jī)對(duì)錢幣通道進(jìn)行打板操作,從而使錢幣通道暢通。
2.3 實(shí)時(shí)時(shí)鐘電路
本系統(tǒng)實(shí)時(shí)時(shí)鐘芯片采用DS1302。DS1302是DAL-LAS公司推出的涓流充電時(shí)鐘芯片,內(nèi)含有1個(gè)實(shí)時(shí)時(shí)鐘/日歷和31 B靜態(tài)RAM,通過簡單的串行接口與單片機(jī)進(jìn)行通信。實(shí)時(shí)時(shí)鐘/日歷電路提供秒、分、時(shí)、日、月、年的信息,每月的天數(shù)和閏年的天數(shù)可自動(dòng)調(diào)整。DS1302與單片機(jī)之間采用同步串行的方式進(jìn)行通信,DS1302和單片機(jī)之間需用3個(gè)I/O:分別連接DS1302的復(fù)位腳RES、串行數(shù)據(jù)I/O和串行時(shí)鐘SCLK。DS1302為系統(tǒng)提供精確的時(shí)鐘,當(dāng)有信息紐扣與I/O口接觸,系統(tǒng)就會(huì)自動(dòng)記錄接入系統(tǒng)的時(shí)間,為以后的查詢提供依據(jù)。
2.4 E2PROM存儲(chǔ)器
本系統(tǒng)采用E2PROM存儲(chǔ)器AT24C32,它是一個(gè)32 kb串行CMOS E2PROM,內(nèi)部含有4096個(gè)字節(jié),支持I2C總線數(shù)據(jù)傳送協(xié)議。AT24C32和單片機(jī)之間需用2個(gè)I/O口:一個(gè)接串行時(shí)鐘SCL,另一個(gè)接串行數(shù)據(jù)/地址SDA。E2PROM存儲(chǔ)器主要存儲(chǔ)各種幣值的真硬幣在振蕩電路中的振蕩頻率和信息鈕扣的密碼、識(shí)別碼及接入系統(tǒng)的時(shí)間。
3 系統(tǒng)的軟件設(shè)計(jì)
本系統(tǒng)的軟件流程圖如圖6所示:
4 結(jié) 語
本文設(shè)計(jì)智能公交投幣箱有3個(gè)優(yōu)點(diǎn):
(1)安全性能高。只有使用合法授權(quán)的DS1991,才能開啟投幣箱的電子密碼鎖。每個(gè)分區(qū)都具有64位的密碼和識(shí)別碼,安全性能非常高,可以避免因投幣箱密碼鎖安全性能差而導(dǎo)致車票失竊的事件發(fā)生。
(2)提高了公交公司的運(yùn)營效率。采用電渦流傳感器檢測(cè)硬幣的真假,可有效地防止乘客使用假硬幣乘坐公交車。
(3)使用方便。DS191體積小、攜帶方便,信息鈕扣DS1991與單片機(jī)的信息傳遞只需輕輕一碰即可完成。
本智能公交投幣箱的電子密碼鎖開啟后,再開啟智能公交投幣箱的機(jī)械鎖,投幣箱的門鎖才能被打開。在公交系統(tǒng)中,兩次開鎖的工作人員不相同,再次確保投幣箱內(nèi)票款的安全。用信息紐扣開啟電子密碼鎖的技術(shù),應(yīng)用在公交投幣箱中,從很大程度上解決了長期困擾公交公司票款被盜的問題。