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