公交車的遠(yuǎn)卡自動(dòng)收費(fèi)系統(tǒng)設(shè)計(jì)
引言
本文引用地址:http://m.butianyuan.cn/article/201610/306934.htm隨著社會(huì)的發(fā)展,城市公共交通已變成我們生活中不可或缺的一部分。目前,公交收費(fèi)主要有人工售票和刷卡投幣收費(fèi)兩種方式。人工售票雖然具有監(jiān)督性強(qiáng)、能有效防止偷票漏票現(xiàn)象的優(yōu)點(diǎn),但是每月需要給售票員發(fā)放工資,進(jìn)而使得成本提高。刷卡和投幣收費(fèi)能解決成本問題,但是乘客上下車非常不便,特別是高峰期,大大減緩了上下車速度。當(dāng)前國內(nèi)外公交車收費(fèi)采用的射頻卡與收費(fèi)機(jī)操作距離不超過0.1 m(下面簡稱這種射頻卡為“近卡”),乘客繳費(fèi)需要從衣袋,包內(nèi)取卡,貼近收費(fèi)機(jī)刷卡,再將卡放回衣袋、包內(nèi),這些動(dòng)作減緩了乘客上車速度,特別對雙手?jǐn)y帶東西的乘客,刷卡操作會(huì)很不方便。
本文研究的公交車自動(dòng)收費(fèi)系統(tǒng)使用有源標(biāo)簽完成公交卡的設(shè)計(jì),在保證較長使用壽命的基礎(chǔ)上,使感應(yīng)距離增大到1 m左右。將車載系統(tǒng)放置在距離公交車上客門口約1 m左右的距離,乘客上車時(shí)經(jīng)過車載系統(tǒng)就能夠成功刷卡,同時(shí)使用的防碰撞算法保證了在乘客上車擁擠的情況下也能夠成功刷卡,成本低且效率高。近年來,地鐵交通的大力發(fā)展也為人們的出行帶來極大的方便,本系統(tǒng)經(jīng)過修改后同樣可以用于地鐵的自動(dòng)收費(fèi),應(yīng)用空間比較廣闊。
1 系統(tǒng)的整體構(gòu)成
公交車遠(yuǎn)卡自動(dòng)收費(fèi)系統(tǒng)總體分為兩大部分:公交卡和車載系統(tǒng)。公交卡主要由nRF24LEl射頻模塊和喚醒電路組成;車載系統(tǒng)主要由主處理器STM32、GPS定位模塊、液晶顯示電路、存儲(chǔ)電路、語音報(bào)站電路、喚醒電路等構(gòu)成。系統(tǒng)總體結(jié)構(gòu)如圖1所示。
當(dāng)乘客攜帶公交卡上車經(jīng)過車載系統(tǒng)時(shí),公交卡的ATA5283喚醒電路接收到車載系統(tǒng)讀卡器端ATA5276芯片發(fā)送的125 kHz電磁波后,激活處在睡眠模式下的公交卡,公交卡進(jìn)入發(fā)送模式,將自己的ID號(hào)、卡內(nèi)金額發(fā)送給車載系統(tǒng)。車載系統(tǒng)給公交卡發(fā)送信息,蜂鳴器響一下表示刷卡成功,并在液晶屏顯示成功信息。同時(shí),車載系統(tǒng)將此公交卡的ID號(hào)、金額、上車位置保存在AT24C512存儲(chǔ)器里,當(dāng)乘客要下車將公交卡再次靠近讀卡器時(shí),公交卡再次被喚醒并向車載系統(tǒng)發(fā)送數(shù)據(jù)。車載系統(tǒng)的處理器根據(jù)此公交卡的ID號(hào)找到上車時(shí)刷卡的信息來計(jì)算所需要扣費(fèi)的金額,并向公交卡發(fā)送扣費(fèi)數(shù)據(jù);同時(shí),會(huì)將本次乘車信息保存在數(shù)據(jù)庫中,以備查詢使用。公交車到達(dá)終點(diǎn)站后將會(huì)進(jìn)行復(fù)位操作,如果有乘客下車時(shí)未能感應(yīng)上,則按照到達(dá)終點(diǎn)站的路程進(jìn)行扣費(fèi)。
2 系統(tǒng)主要部分硬件實(shí)現(xiàn)
2.1 公交卡的硬件設(shè)計(jì)
采用nRF24LE1作為標(biāo)簽芯片,ATA5283作為喚醒芯片組成公交卡的硬件電路。nRF24LE1是一款帶有處理器的2.4 GHz收發(fā)芯片,在一個(gè)很小的芯片上集成了51內(nèi)核和nRF24L0 1收發(fā)內(nèi)核,與nRF24L01采用相同的內(nèi)嵌協(xié)議和GFSK調(diào)制方式,具有串口、SPI、I2C、PWM發(fā)生器、隨機(jī)函數(shù)發(fā)生器等豐富的外設(shè)資源,該芯片功耗極低且具有非易失性數(shù)據(jù)存儲(chǔ)器。
ATA5283是一款檢測靈敏度高和功耗超低的125kHz無線喚醒芯片,具有1 mV的靈敏度,在待機(jī)偵聽125kHz數(shù)據(jù)狀態(tài)時(shí),功耗僅為1~2μA,在接收125 kHz數(shù)據(jù)的過程中,功耗為2~4μA。在接收125 kHz數(shù)據(jù)時(shí),至少檢測到125 kHz載波持續(xù)時(shí)間為5.64 ms才進(jìn)入正常工作模式。其中,前1.54 ms的載波周期的時(shí)間用于喚醒此芯片,后4.1 ms的載波周期用于進(jìn)行自增益調(diào)整,把接收信號(hào)的放大增益調(diào)整到合適的值。兩者再加上紐扣電池等外圍電路構(gòu)成了有源式公交卡,能實(shí)現(xiàn)遠(yuǎn)距離的信號(hào)發(fā)射與接收。公交卡硬件電路如圖2所示。
在沒有檢測到125 kHz信號(hào)時(shí),ATA5283芯片以非常低的功耗處于待機(jī)模式。在此模式下,COIL引腳的天線端一直在檢測是否有載波信號(hào)到來,N_DATA和N_WAKEUP引腳為高電平,復(fù)位引腳RESET處在低電平狀態(tài)。當(dāng)COIL引腳的天線端接收至少704個(gè)載波序列后,ATA5283芯片進(jìn)入工作模式,N_DATA開始接收載波數(shù)據(jù),N_WAKEUP變?yōu)榈碗娖?,喚醒nRF24L E1。由于只需要喚醒功能,無需有效的載波數(shù)據(jù)傳輸,因此,只需將N_WAKEUP與nRF24LE1的P0.6引腳相連。最后,nRF24LE1的P0.0引腳給ATA5283的RESET引腳一個(gè)高電平,使ATA5283復(fù)位,讓芯片重新回到待機(jī)監(jiān)聽模式。
2.2 車載系統(tǒng)射頻模塊電路設(shè)計(jì)
采用的nRF24L01射頻模塊與nRF24LE1的射頻部分是相互兼容的,也工作在2.4GHz頻率段,是通用ISM頻段的無線收發(fā)芯片。內(nèi)置射頻發(fā)送接收器、數(shù)據(jù)緩沖器、GFSK調(diào)制/解調(diào)器、增強(qiáng)模式控制單元及與處理器連接的SPI接口。nRF24L01采用SPI總線方式與處理器通信,STM32處理器自帶SPI接口。
本設(shè)計(jì)將時(shí)鐘控制信號(hào)SCK、串行數(shù)據(jù)輸出MISO、串行數(shù)據(jù)輸入MOSI、芯片使能引腳CSN、中斷信號(hào)IRQ、射頻使能引腳CE分別與處理器的PA5、PA6、PA7、PC4、PB0、PC5引腳直接相連,具體電路如圖3所示。同時(shí),該芯片的增強(qiáng)模式具有自動(dòng)重發(fā)和自動(dòng)應(yīng)答功能,中斷信號(hào)IRQ用來告訴處理器其接收和發(fā)送數(shù)據(jù)的狀態(tài),使處理器及時(shí)根據(jù)狀態(tài)來做出相應(yīng)的處理,這些功能大大減少了MCU的工作量。
2.3 車載系統(tǒng)低頻喚醒發(fā)射電路設(shè)計(jì)
采用不斷發(fā)射低頻125 kHz電磁波的形式去激活有源標(biāo)簽,發(fā)射芯片采用ATA5276,它能發(fā)射頻率為125kHz的信號(hào),該芯片驅(qū)動(dòng)天線線圈的峰值電流是可調(diào)的,輸出的最大峰值電流可以達(dá)到1.5 A,調(diào)制方式是ASK調(diào)制,波特率可達(dá)4Kps,芯片工作電壓范圍為8~24 V。處在待機(jī)模式時(shí)電流消耗小于50 μA,傳輸?shù)?25 kHz電磁波傳給相應(yīng)的接收器,通過STM32的PD0引腳可以控制該芯片工作。
設(shè)置DIO腳與STM32的唧引腳連接,如圖4所示,PD0引腳平時(shí)處于低電平狀態(tài),當(dāng)PD0發(fā)出高電平時(shí),三極管導(dǎo)通,DIO引腳變?yōu)榈碗娖?,ATA 5276從待機(jī)模式轉(zhuǎn)為工作發(fā)射模式;此時(shí),DIO為低電平,L1和C4組成的串聯(lián)諧振電路開始起振,125 kHz能量通過電感以磁場的形式傳播出去,當(dāng)DIO引腳檢測到低電平時(shí)停止諧振。
3 系統(tǒng)軟件實(shí)現(xiàn)
軟件設(shè)計(jì)主要包括車載系統(tǒng)程序設(shè)計(jì)和公交卡程序設(shè)計(jì),車載系統(tǒng)程序包括舡24C512存儲(chǔ)器的I2C總線程序、GPS的串口通信程序、nRF24L01和ISD4004的SPI總線程序以及CD 12864的并口程序設(shè)計(jì)。公交卡程序主要包括nRF24LE1低功耗和防碰撞程序設(shè)計(jì),采用的編程語言為C語言,靈活方便。軟件開發(fā)平臺(tái)是MDK,其集成度高,具有在線仿真和調(diào)試功能,非常適合嵌入式開發(fā)。
3.1 公交卡軟件設(shè)計(jì)
公交卡軟件設(shè)計(jì)要確保標(biāo)簽信息準(zhǔn)確及時(shí)地發(fā)送出去,并及時(shí)接收讀卡器處理完的數(shù)據(jù)。主要包括三部分:標(biāo)簽的發(fā)射與接收、低功耗設(shè)計(jì)、防碰撞算法的設(shè)計(jì)。軟件流程如圖5所示。
3.2 車載系統(tǒng)射頻模塊軟件設(shè)計(jì)
車載系統(tǒng)射頻模塊nRF24L01的功能是:接收卡片的數(shù)據(jù)信息,交給處理器處理。與STM32通信采用SPI總線協(xié)議,STM32帶SPI口,并且使用STM32庫函數(shù)開發(fā),大大簡化了程序設(shè)計(jì),只要對接口函數(shù)做出相應(yīng)配置,就可以操作SPI寄存器。nRF24L01有多種工作模式,本設(shè)計(jì)主要使用基本的發(fā)送和接收模式,為了實(shí)現(xiàn)自動(dòng)應(yīng)答、自動(dòng)處理字頭和CRC校驗(yàn)碼,采用 Enhanced ShockBurstTM 增強(qiáng)型的模式,這樣簡化了程序設(shè)計(jì),減小了處理器的負(fù)擔(dān),而且使接收和發(fā)送數(shù)據(jù)更及時(shí)準(zhǔn)確。軟件實(shí)現(xiàn)流程如圖6所示。
結(jié)語
本設(shè)計(jì)的車載系統(tǒng)需要在前門和后門各設(shè)置一個(gè)感應(yīng)裝置,要求乘客前門上車,后門下車。當(dāng)前門的讀卡器檢測到乘客上車時(shí),公交卡發(fā)送信息給車載系統(tǒng),車載系統(tǒng)做出回應(yīng)并記錄公交卡發(fā)送來的信息。車輛運(yùn)行時(shí),不發(fā)送125 kHz的喚醒信號(hào),因此公交卡不能被喚醒,只有在車門被打開、乘客靠近讀卡器時(shí),才能被喚醒。當(dāng)乘客下車、被后門感應(yīng)器檢測到時(shí),將接收到的公交卡信息與上次檢測到的信息比較,做出相應(yīng)扣費(fèi)處理。模擬程序設(shè)計(jì)是每隔1分鐘,站數(shù)加1,表示公交車走了1站,扣費(fèi)標(biāo)準(zhǔn)為每10站扣1元。采用10張公交卡進(jìn)行了測試。測試結(jié)果表明,該系統(tǒng)能及時(shí)完成對卡片的數(shù)據(jù)讀取和數(shù)據(jù)處理。
- STM32單片機(jī)中文官網(wǎng)
- STM32單片機(jī)官方開發(fā)工具
- STM32單片機(jī)參考設(shè)計(jì)
評論