基于CPLD的出租車計(jì)費(fèi)器系統(tǒng)的研究與設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
隨著科學(xué)技術(shù)的發(fā)展,出租車計(jì)費(fèi)器也經(jīng)歷了一個(gè)從低級(jí)到高級(jí)的發(fā)展階段。傳統(tǒng)的計(jì)費(fèi)器一般由單片機(jī)實(shí)現(xiàn),它有諸如硬件電路復(fù)雜,外圍可擴(kuò)展的資源有限,可靠性低,功能升級(jí)繁瑣,需要硬件重組和軟件更新同步進(jìn)行,成本高等缺點(diǎn)。而用戶對(duì)計(jì)費(fèi)器的要求越來越高,對(duì)于出租車計(jì)費(fèi)器而言,用戶不僅要求其性能穩(wěn)定,計(jì)費(fèi)準(zhǔn)確,有防作弊功能,同時(shí)還要求其具有車票打印、刷卡付費(fèi)、語(yǔ)音播報(bào)提示、電腦串行通信及稅控等功能。由于具體情況不同,不同國(guó)家和地區(qū)的出租車收費(fèi)方式存在差異,即使相同地區(qū),不同車型的出租車收費(fèi)方式也是有差別的。傳統(tǒng)的單片機(jī)已經(jīng)很難滿足這些越來越高的功能和性能上的要求虬為此,我們?cè)O(shè)計(jì)了一款以可編程邏輯器件(CPLD)為設(shè)計(jì)載體,以硬件描述語(yǔ)言(VHDL)為主要表達(dá)方式,以QuartusII9.0開發(fā)軟件為設(shè)計(jì)工具的出租車計(jì)費(fèi)器。這種計(jì)費(fèi)器在實(shí)際中不僅成本低、周期短,而且具有設(shè)計(jì)靈活、修改方便、易于調(diào)試、系統(tǒng)可靠性高等一系列優(yōu)點(diǎn)。1系統(tǒng)功能描述不同區(qū)域的出租車計(jì)費(fèi)標(biāo)準(zhǔn)不盡相同,對(duì)于本文以基于CPLD的方式設(shè)計(jì)的計(jì)費(fèi)器,如果要適用某個(gè)區(qū)域的出租車,只需要修改計(jì)費(fèi)標(biāo)準(zhǔn)就可以了,靈活方便而容易實(shí)現(xiàn)。本計(jì)費(fèi)器能夠?qū)崿F(xiàn)的功能主要包括自動(dòng)顯示路程和自動(dòng)計(jì)費(fèi)。具體要求如下:
(1)實(shí)現(xiàn)計(jì)費(fèi)功能。按行駛里程計(jì)費(fèi),起步價(jià)為7.00元,并在車行駛3km后按1.2元/km計(jì)費(fèi);當(dāng)計(jì)費(fèi)器達(dá)到或超過20元時(shí),每千米加收50%的車費(fèi);車停止和暫停時(shí)不計(jì)費(fèi)。
⑵現(xiàn)場(chǎng)模擬汽車的啟動(dòng)、停止、暫停和換擋等狀態(tài)。
(3)設(shè)計(jì)數(shù)碼管動(dòng)態(tài)掃描電路,將車費(fèi)和路程顯示出來,各有兩位小數(shù)o
2系統(tǒng)總體設(shè)計(jì)
基于CPLD的出租車計(jì)費(fèi)系統(tǒng)可分為三大模塊,即外部輸入模塊、控制模塊和譯碼顯示模塊。各部分主要功能如下:數(shù)模塊、計(jì)費(fèi)模塊等子模塊組成。計(jì)費(fèi)時(shí)鐘脈沖信號(hào)模塊提外部輸入模塊對(duì)車輪傳感器傳送的脈沖信號(hào)進(jìn)行計(jì)數(shù)(每千米送1000個(gè)脈沖),并用高低脈沖模擬出租車的啟動(dòng)、停止、暫停和擋位輸入等??刂颇K是三大模塊中的核心模塊,它實(shí)現(xiàn)了出租車的計(jì)費(fèi)和路程的計(jì)數(shù),并且通過不同的擋位控制車速。譯碼顯示模塊則將車費(fèi)和行駛的里程由十進(jìn)制轉(zhuǎn)換成4位的十進(jìn)制,譯碼后用動(dòng)態(tài)掃描的方式驅(qū)動(dòng)數(shù)碼管將車費(fèi)和行駛的里程數(shù)實(shí)時(shí)顯示(均為兩位整數(shù)、兩位小數(shù))。
三大模塊相互依賴,相互配合,協(xié)調(diào)工作,最終實(shí)現(xiàn)出租車計(jì)費(fèi)器系統(tǒng)的功能。其系統(tǒng)總體設(shè)計(jì)框圖如圖1所示。
圖1 出租車計(jì)費(fèi)器系統(tǒng)總體設(shè)計(jì)框圖
3單元模塊設(shè)計(jì)
此計(jì)費(fèi)器系統(tǒng)采用自頂向下、模塊化設(shè)計(jì)的理念。整個(gè)系統(tǒng)的核心模塊有兩個(gè),分別為控制模塊(taxi)和譯碼顯示模塊(decoder)。最底層子模塊用VHDL編寫,在QuartusII9.0環(huán)境下對(duì)每個(gè)底層模塊程序進(jìn)行編寫、編譯和仿真。最后再將各個(gè)模塊連接起來,用圖形法逐級(jí)形成頂層模塊,最終形成的系統(tǒng)頂層原理圖如圖2所示。
3.1taxi模塊
taxi模塊由計(jì)費(fèi)時(shí)鐘脈沖信號(hào)模塊、控制模塊、里程計(jì)數(shù)模塊、計(jì)費(fèi)模塊等子模塊組成。計(jì)費(fèi)時(shí)鐘脈沖信號(hào)模塊提供基本的時(shí)鐘標(biāo)準(zhǔn)給里程計(jì)數(shù)子模塊和計(jì)費(fèi)子模塊使用??刂颇K是系統(tǒng)的核心部分,根據(jù)啟動(dòng)信號(hào)(start)、停止信號(hào)(stop)、暫停信號(hào)(pause)和擋位控制(speedup)等信號(hào)對(duì)計(jì)費(fèi)器和里程計(jì)數(shù)器的狀態(tài)進(jìn)行控制。啟動(dòng)信號(hào)為一個(gè)脈沖觸發(fā)信號(hào),當(dāng)它為一個(gè)脈沖時(shí),表示汽車已經(jīng)啟動(dòng),并根據(jù)車速的選擇和基本車速發(fā)出響應(yīng)頻率的脈沖(計(jì)費(fèi)脈沖)開始實(shí)現(xiàn)路程的計(jì)數(shù)和車費(fèi),同時(shí)顯示路程計(jì)數(shù)和車費(fèi)的起步價(jià);當(dāng)停止信號(hào)為高電平時(shí),表示汽車熄火,同時(shí)停止發(fā)出脈沖,此時(shí)車費(fèi)和路程計(jì)數(shù)清零;當(dāng)暫停信號(hào)為高電平時(shí),表示汽車暫停并停止發(fā)出脈沖,此時(shí)車費(fèi)和路程的計(jì)數(shù)暫停;擋位控制信號(hào)用來改變車速,不同的擋位對(duì)應(yīng)著不同的車速,同時(shí)路程計(jì)數(shù)的速度也不同。里程計(jì)數(shù)模塊根據(jù)計(jì)費(fèi)脈沖信號(hào)的輸入實(shí)現(xiàn)實(shí)時(shí)里程計(jì)數(shù),其計(jì)數(shù)量程為99.99km。計(jì)費(fèi)模塊根據(jù)脈沖輸入實(shí)現(xiàn)實(shí)時(shí)計(jì)費(fèi)功能,其計(jì)費(fèi)量程為99.99元。
3.2decoder譯碼和顯示模塊
顯示模塊由七段LED數(shù)碼管譯碼和動(dòng)態(tài)掃描顯示兩部分組成,采用的是共陰極七段數(shù)碼管。根據(jù)十六進(jìn)制數(shù)和七段顯示段碼表的對(duì)應(yīng)關(guān)系,其中要求路程和車費(fèi)都要用2位小數(shù)點(diǎn)來表示,所以在程序中設(shè)置了一個(gè)控制小數(shù)點(diǎn)的變量%。在顯示時(shí)需要注意的是,如果選擇的掃描頻率不合適,可能會(huì)出現(xiàn)數(shù)字和小數(shù)點(diǎn)閃動(dòng)的情況。在本設(shè)計(jì)中,進(jìn)行譯碼的時(shí)鐘頻率必須比汽車的計(jì)費(fèi)時(shí)鐘高得多才能實(shí)時(shí)顯示出車費(fèi)和路程的變化,這里采用時(shí)鐘頻率為20MHz可取得較好的效果。
4系統(tǒng)調(diào)試和仿真
系統(tǒng)調(diào)試是分模塊進(jìn)行的,即先把每一模塊的功能調(diào)試完成后,再把整個(gè)系統(tǒng)連接起來進(jìn)行調(diào)試。系統(tǒng)仿真是EDA技術(shù)的重要組成部分,也是對(duì)設(shè)計(jì)的電路進(jìn)行功能和性能測(cè)試的有效手段。本設(shè)計(jì)利用QuartusII9.0自帶的仿真工具對(duì)每個(gè)模塊分別進(jìn)行了仿真。限于篇幅,此處只給出核心模塊taxi的仿真,其結(jié)果如圖3所示。
觀察仿真波形可知,當(dāng)啟動(dòng)鍵(start)為一個(gè)脈沖時(shí),表示汽車已啟動(dòng),車費(fèi)(money)顯示起步價(jià)7.00元,同時(shí)路程(distance)隨著計(jì)費(fèi)脈沖開始計(jì)數(shù);當(dāng)停止鍵(stop)為1時(shí),表示汽車熄火停止,車費(fèi)(money)和路程(distance)均為0;當(dāng)暫停鍵(pause)為1時(shí),車費(fèi)和路程停止計(jì)數(shù);當(dāng)擋位分別取0、1、2、3時(shí),路程的計(jì)數(shù)逐漸加快,表示車速逐漸加快。在路程超過3km后車費(fèi)按照設(shè)定標(biāo)準(zhǔn)逐步遞增。仿真圖結(jié)果與期望結(jié)果相符,實(shí)現(xiàn)了出租車計(jì)費(fèi)器的功能。最終的電路設(shè)計(jì)完成后,若總體電路編譯無錯(cuò),且時(shí)序仿真成功,即可進(jìn)行硬件測(cè)試。
5結(jié)論
本文介紹了一種全新的出租車計(jì)費(fèi)器系統(tǒng)的CPLD的設(shè)計(jì)方法。實(shí)驗(yàn)表明,該計(jì)費(fèi)器實(shí)現(xiàn)了預(yù)置參數(shù)的自動(dòng)計(jì)費(fèi)和自動(dòng)記程等功能,且預(yù)置參數(shù)的可調(diào)范圍廣如果將該設(shè)計(jì)結(jié)合到實(shí)際應(yīng)用中,那么只需要改變?cè)O(shè)計(jì)中的計(jì)費(fèi)標(biāo)準(zhǔn)就可以了,升級(jí)方便。設(shè)計(jì)中采用了大規(guī)??删幊踢壿嬈骷瓜到y(tǒng)整體具有抗干擾能力強(qiáng)、功耗小、系統(tǒng)穩(wěn)定、工作可靠等優(yōu)點(diǎn)叫此外,從系統(tǒng)綜合后生成的報(bào)告可知器件資源尚有較大擴(kuò)展空間,故可根據(jù)實(shí)際需要擴(kuò)展一些功能。比如,通過器件內(nèi)部編程增加時(shí)間顯示功能;還可以通過CPLD的輸出弓線控制打印機(jī)打印發(fā)票;也可以通過CPLD的輸出弓線控制語(yǔ)音器件,對(duì)顧客發(fā)出問候語(yǔ),提醒其所要收繳的費(fèi)用等。
20211021_61711c7b9f54d__基于CPLD的出租車計(jì)費(fèi)器系統(tǒng)的研究與設(shè)計(jì)