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