摘 要: 出租車在交通出行中起到十分重要的作用,司機(jī)與消費(fèi)者都迫切需要能夠科學(xué)合理地顯示出租車費(fèi)用的計價器。在總結(jié)以往設(shè)計不足的基礎(chǔ)上,實(shí)現(xiàn)了基于430單片機(jī)的出租車計價器。該計價器主體以觸摸式液晶顯示器取代機(jī)械按鍵,以MSP430F149單片機(jī)為核心,實(shí)現(xiàn)參數(shù)設(shè)定、狀態(tài)選擇以及多重信息顯示等。實(shí)驗(yàn)測試結(jié)果表明,該系統(tǒng)實(shí)用可靠,能準(zhǔn)確顯示模擬小車信息,可投入到實(shí)際應(yīng)用中去。
關(guān)鍵詞: 出租車計價器;單片機(jī);觸摸式液晶
0 引言
隨著城市化進(jìn)程的加快,出租車需求量不斷增加、車型逐漸多樣化[1];隨著司機(jī)對自身權(quán)益的要求,針對夜間出車、堵塞等待,分模式計費(fèi)是必然趨勢;物價升高以及附加燃油費(fèi)的變動,引起出租車收費(fèi)調(diào)整,計價器計價算法卻不能及時更新[2]。出租車計價器的計費(fèi)方式以及準(zhǔn)確性與司機(jī)、乘客的利益息息相關(guān)。
傳統(tǒng)出租車計價器的設(shè)計是采用普通液晶顯示加機(jī)械按鍵控制,機(jī)械按鍵頻繁使用之后易發(fā)生故障[3];計價器依賴硬件,易被篡改,計價頁面信息單一,不利于乘客監(jiān)督和保障自身利益;計價器更新麻煩,不能及時跟上市場變化。針對這些不足,本文基于低功耗的MSP430單片機(jī)設(shè)計了一款出租車計價器,采用觸摸液晶顯示器,電路單元簡單,調(diào)整方便,模式、單價、車速等信息一目了然,很好地彌補(bǔ)了已有出租車計價器的不足。
1 設(shè)計思路
傳統(tǒng)計價器利用外部芯片的定時器捕捉脈沖信號實(shí)現(xiàn)測速、測里程的功能,同時通過使用外部ROM芯片進(jìn)行掉電保護(hù)。MSP430F149單片機(jī)集成了這些硬件條件,同時F149單片機(jī)內(nèi)部定時器還具有捕獲上升或下降沿的工作方式[4],結(jié)果更精確。計價器正常工作時,點(diǎn)擊觸摸式液晶屏上選項(xiàng),將觸點(diǎn)坐標(biāo)送給單片機(jī),單片機(jī)識別出用戶指令,選擇相應(yīng)狀態(tài);光電傳感器將機(jī)械轉(zhuǎn)動信號轉(zhuǎn)為電脈沖信號送入單片機(jī)處理;單片機(jī)通過定時中斷獲取脈沖周期,根據(jù)車輪半徑等實(shí)際參數(shù)算出速度、里程等信息送液晶更新顯示;單片機(jī)通過SPI方式連接SD卡,送入液晶的數(shù)據(jù)同時緩存在其中,起到掉電保護(hù)的作用;根據(jù)市場對起步價及單價的調(diào)整,出租車公司可隨時更新系統(tǒng)程序。
2 硬件設(shè)計
整個出租車計價器設(shè)計包括四個部分:單片機(jī)模塊、掉電保護(hù)模塊、液晶顯示模塊和光電傳感器測速模塊。整個系統(tǒng)由8節(jié)干電池供電,整體結(jié)構(gòu)如圖1所示。
2.1 單片機(jī)單元電路設(shè)計
單片機(jī)MSP430F149的單元電路圖如圖2所示。16位超低功耗MSP430F149單片機(jī)包括時鐘模塊、定時器A、定時器B、串行通信接口、比較器以及多個I/O口等。單片機(jī)的定時器有比較/捕獲模式,工作時鐘可以由對內(nèi)部時鐘分頻得到或者外接時鐘提供,定時器工作在捕獲模式,設(shè)置為上升沿捕獲,可以獲得脈沖周期間隔內(nèi)的主計數(shù)器的計數(shù)差值。為了提高系統(tǒng)的防作弊能力[5],可以從變速箱的輸入齒輪以及輸出齒輪處獲取脈沖信號,按固有齒輪比編寫的程序,比較兩者計數(shù)值,允許極小誤差。如果改換變速箱齒輪,出租車運(yùn)行之后,兩處脈沖不滿足確定關(guān)系,計價器不會進(jìn)行計費(fèi)。
計價器的時間顯示可以不需要外部的實(shí)時時鐘芯片,利用單片機(jī)的定時器的定時中斷,由司機(jī)根據(jù)實(shí)際時間設(shè)定初值,當(dāng)定時中斷觸發(fā)時,時間加上1 s,并更新液晶顯示的日期時間。
2.2 測速單元電路設(shè)計
以往出租車計價器中檢測脈沖的霍爾傳感器易受磁鐵干擾,有一種作弊方式:增加磁鐵個數(shù)導(dǎo)致電脈沖信號增加[5],使得計價器多計費(fèi)。采用光電傳感器能有效地避免電磁干擾?;诠怆妭鞲衅鱗6]的原理設(shè)計測速電路:將機(jī)械轉(zhuǎn)動信號轉(zhuǎn)變?yōu)楣饷}沖信號,再轉(zhuǎn)變?yōu)殡娒}沖信號送入單片機(jī)處理,電路原理圖如圖3所示。為了避免可見光的影響同時提高響應(yīng)速度,選用GaAlAs紅外對管;為保護(hù)紅外發(fā)光管和光敏接收管,兩管通過電阻接地,起限流作用;用三極管對光強(qiáng)變化引起的電位升降信號進(jìn)行放大;最后通過反相器74HC04對三極管集電極的電脈沖信號進(jìn)行消抖整形,避免單片機(jī)誤判造成顯示不穩(wěn)定。
2.3 液晶顯示單元電路設(shè)計
液晶顯示單元電路[7]包括控制電路(圖4)、輸入輸出接口電路(圖5)。液晶屏采用DMTFT-28型TFT彩色觸摸屏,觸摸屏的結(jié)構(gòu)[8]包括三個部分:導(dǎo)體層之間的隔離層、電極以及兩層透明的阻性導(dǎo)體層。如果有外力使上下兩層在某個點(diǎn)接觸,控制電路通過觸摸屏控制芯片XPT2046分別采集觸點(diǎn)在X軸和Y軸上產(chǎn)生的數(shù)字電壓量,運(yùn)用公式計算觸摸點(diǎn)坐標(biāo),根據(jù)坐標(biāo)位置對應(yīng)的指令,單片機(jī)對液晶顯示做出狀態(tài)更改或者頁面切換。輸入輸出接口電路中,第35~40腳為觸摸控制接口;第26~33腳為液晶數(shù)據(jù)口高8位;第21~24腳是SD卡的控制接口;第17腳為I/O擴(kuò)展控制位LE腳(74HC573鎖存芯片的LE腳);第4~16腳與控制器之間增加了限流電阻,可以在使用5 V控制器驅(qū)動液晶時,保護(hù)液晶避免過流而損壞,限流電阻阻值1 k、2 k均可。
2.4 掉電保護(hù)單元電路設(shè)計
掉電保護(hù)電路設(shè)計的關(guān)鍵是選用合適的外部存儲器以及相應(yīng)的通信方式。Flash寫入速度比較慢,而且即使速度能跟上,內(nèi)部的Flash寫入次數(shù)也有限,很快就不能工作了,給程序空間帶來很多風(fēng)險。這里采用SD卡以及SPI串行通信協(xié)議[9],接口電路如圖6所示。由SCLK提供時鐘脈沖,SDI、SDO基于此脈沖完成數(shù)據(jù)傳輸。串行數(shù)據(jù)通過SDO線送入到單片機(jī),數(shù)據(jù)在時鐘下降沿或上升沿時改變,在緊接著的上升沿或下降沿被讀取。輸入數(shù)據(jù)時原理類似。
3 軟件設(shè)計
軟件部分程序采用模塊化的設(shè)計方法,主要是液晶顯示程序、定時器中斷測速程序和掉電存儲程序,其中液晶顯示程序包括定時中斷計時程序、觸點(diǎn)坐標(biāo)判斷程序以及預(yù)先設(shè)置的3個界面。
當(dāng)車啟動時,出租車自身的電氣系統(tǒng)給計價器供電,MSP430單片機(jī)對定時器、液晶初始化。當(dāng)電機(jī)開始轉(zhuǎn)動時,會產(chǎn)生光脈沖由光電傳感器轉(zhuǎn)換為電脈沖送入單片機(jī)的定時器捕捉相鄰上升沿,根據(jù)定時器所使用的時鐘頻率可以算出脈沖頻率,繼而算出電機(jī)的轉(zhuǎn)動速度,再根據(jù)齒輪比等參數(shù)即可得到里程數(shù)。由里程數(shù)以及計費(fèi)規(guī)則,單片機(jī)會自動算出總車費(fèi)并顯示在屏幕上。當(dāng)司機(jī)點(diǎn)觸屏幕時,單片機(jī)會根據(jù)點(diǎn)觸的坐標(biāo)位置,選擇相應(yīng)的指令,或是更新數(shù)據(jù)或是切換到預(yù)先配置的界面中。如果電路系統(tǒng)供電突然中斷,單片機(jī)在下次上電啟動時,將儲存在SD卡中的數(shù)據(jù)、狀態(tài)取出繼續(xù)運(yùn)行。
源程序中已經(jīng)設(shè)定了白天、黑夜兩種模式,對應(yīng)了兩種不同的計費(fèi)規(guī)則,由單片機(jī)根據(jù)系統(tǒng)時間自行選擇模式,乘客能在液晶屏上看到此時的時間、模式。當(dāng)有乘客上車時,司機(jī)只需點(diǎn)擊“載客”,系統(tǒng)就會進(jìn)行計費(fèi);未載客時,點(diǎn)擊“空閑”即可。計費(fèi)規(guī)則綜合考慮了起步價、每公里車費(fèi)、燃油附加費(fèi),只需要根據(jù)最終顯示的總車費(fèi)付費(fèi)即可。當(dāng)需要對起步價或單價或燃油附加費(fèi)進(jìn)行調(diào)整時,只需要修改源程序的參數(shù),再將新程序裝載到MSP430單片機(jī)中即可。主程序框圖如圖7所示。
4 測試及分析
設(shè)計完成后,編寫了相關(guān)功能的程序燒入單片機(jī),通過在小車模型上模擬出租車運(yùn)行,觀察計價器工作情況。小車通過4個LM298N芯片驅(qū)動直流電機(jī)轉(zhuǎn)動;在某兩個電機(jī)轉(zhuǎn)軸處用光電傳感器取脈沖分別送入單片機(jī)比較,誤差在運(yùn)行范圍內(nèi)即可正常計價(模擬真實(shí)出租車系統(tǒng)變速箱的兩個齒輪,防作弊措施);整個小車系統(tǒng)以8節(jié)干電池供電,主要用于驅(qū)動直流電機(jī)工作,計價器部分功耗很低,在出租車系統(tǒng)中完全能穩(wěn)定工作;計價器頁面清晰顯示載客狀態(tài)、時間、模式、單價、里程數(shù)以及車費(fèi)。表1是模擬運(yùn)行顯示的信息,實(shí)物見圖8。
5 結(jié)束語
經(jīng)過實(shí)驗(yàn)測試,本系統(tǒng)能很好地工作,改善了已有出租車計價器的不足之處:機(jī)械按鍵易故障;計價器依賴硬件,易被篡改,計價頁面信息單一;計價器更新麻煩。新的設(shè)計具有易于系統(tǒng)更新、多處防作弊措施、分模式綜合計費(fèi)、系統(tǒng)穩(wěn)定精簡、低功耗等優(yōu)點(diǎn)。
參考文獻(xiàn)
[1] 趙巧珍.形形色色的出租汽車車型[J].交通與運(yùn)輸,2013(4):74-76.
[2] 陳寒青.新型出租車計價器軟件功能分析與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2011,34(10):35-38.
[3] 王立忠,王薏林,賀五洋,等.基于單片機(jī)的出租車計價器檢定裝置的設(shè)計[J].吉林大學(xué)學(xué)報(信息科學(xué)版),2014,32(6):624-631.
[4] 曹浩彤,劉艷.基于430單片機(jī)的簡易頻率計設(shè)計[J].微型機(jī)與應(yīng)用,2014,33(21):92-94.
[5] 葉建針.出租車計價器防作弊技術(shù)與預(yù)防措施[J].科技信息,2011(19):79,82.
[6] 喬勇惠.光電傳感器原理及應(yīng)用[J].可編程控制器與工廠自動化,2008(5):103-106,123.
[7] 藍(lán)曉柯,陳朋.基于TFT彩屏的便攜式智能車手持調(diào)試平臺[J].計算機(jī)系統(tǒng)應(yīng)用,2013(6):57-59,101.
[8] 周波.TFT液晶顯示原理[J].科技資訊,2006(35):9-12.
[9] 劉景文.測量儀器基于SD卡的數(shù)據(jù)導(dǎo)出接口系統(tǒng)設(shè)計[D].天津:天津大學(xué),2009.