出租車計(jì)費(fèi)器的EOA設(shè)計(jì)與實(shí)現(xiàn)
摘要:以現(xiàn)場(chǎng)可編程邏輯器件(FPGA)為設(shè)計(jì)載體,以硬件描述語言(VHDL)為主要表達(dá)方式,以QuartusⅡ開發(fā)軟件和GW48EDA開發(fā)系統(tǒng)為設(shè)計(jì)工具,給出了一種出租車計(jì)費(fèi)器的工作原理和軟硬件實(shí)現(xiàn)方法。同時(shí)對(duì)該出租車計(jì)費(fèi)器進(jìn)行時(shí)序仿真和硬件驗(yàn)證。
關(guān)鍵詞:出租車計(jì)費(fèi)器;FPGA;VHDL;QuartusⅡ
O 引言
隨著人民生活水平的提高。以車代步已成為很多人的出行方式;而在選擇交通工具時(shí),很多人傾向于方便快捷的出租車?;贓DA技術(shù)設(shè)計(jì)的出租車計(jì)費(fèi)器,以其價(jià)格便宜、安全可靠、使用方便等優(yōu)點(diǎn),而受到人們的普遍關(guān)注。本文以現(xiàn)場(chǎng)可編程邏輯器件(FPGA)為設(shè)計(jì)載體,以硬件描述語言(VHDE)為主要表達(dá)方式,以QuartusⅡ開發(fā)軟件和GW48EDA開發(fā)系統(tǒng)為設(shè)計(jì)工具設(shè)計(jì)的出租車計(jì)費(fèi)器,能夠?qū)崿F(xiàn)起步定價(jià)、行駛計(jì)費(fèi)和等待計(jì)費(fèi)等功能,完全能夠滿足出租車計(jì)費(fèi)的要求。
l 出租車計(jì)費(fèi)器的主要功能
出租車計(jì)費(fèi)器能夠?qū)崿F(xiàn)的功能主要包括計(jì)費(fèi)和顯示兩項(xiàng)功能。
一般費(fèi)用的計(jì)算是按行駛的里程和等待時(shí)間收費(fèi)。設(shè)出租車的起價(jià)為7.00元,當(dāng)里程小于3km時(shí),按起價(jià)計(jì)算費(fèi)用;當(dāng)里程大于等于3 km時(shí)按每公里2.5元計(jì)費(fèi)。等待累計(jì)時(shí)間大于等于4min時(shí),按每分鐘1.8元計(jì)費(fèi)。所以,總費(fèi)用應(yīng)按下式計(jì)算:
總費(fèi)用=起始費(fèi)用+(里程-3 km)×里程單價(jià)+(等候時(shí)間-4 min)×等候單價(jià)
顯示功能的主要顯示行驅(qū)里程、等候時(shí)間和總費(fèi)用。其中顯示汽車行駛里程用兩位數(shù)字顯示,顯示方式為“××”,單位為km。計(jì)程范圍為0~99 km,計(jì)程分辨率為1 km;而顯示等候時(shí)間用兩位數(shù)字顯示分鐘,顯示方式為“XX”。計(jì)時(shí)范圍為0~59 min,計(jì)時(shí)分辨率為1 mi-n;最后顯示總費(fèi)用用四位數(shù)字顯示,顯示方式為“XXX.X”,單價(jià)為元。計(jì)價(jià)范圍為0~999.9元。計(jì)價(jià)分辨率為0.1元。
2 計(jì)費(fèi)器結(jié)構(gòu)和工作原理
2.1 出租車計(jì)費(fèi)器的整體結(jié)構(gòu)
出租車計(jì)費(fèi)器的整體結(jié)構(gòu)如圖1所示,它包括分頻器模塊、計(jì)量模塊、計(jì)價(jià)模塊和整數(shù)轉(zhuǎn)換BCD模塊等。
2.2 分頻模塊的設(shè)計(jì)
鑒于GW48EDA開發(fā)系統(tǒng)僅有兩個(gè)時(shí)鐘輸入端口,而系統(tǒng)需要三個(gè)時(shí)鐘,且各個(gè)時(shí)鐘信號(hào)的頻率不同,故需要對(duì)已有的時(shí)鐘信號(hào)進(jìn)行分頻操作。
圖2所示為分頻得到的秒信號(hào)仿真圖,其輸入信號(hào)是整數(shù)轉(zhuǎn)換為BCD碼的轉(zhuǎn)換信號(hào)。該轉(zhuǎn)換信號(hào)頻率要求非常高,這樣可保證整數(shù)轉(zhuǎn)換BCD
碼時(shí)輸出與輸入不會(huì)產(chǎn)生太大的延時(shí)。仿真結(jié)果證明,該設(shè)計(jì)是正確的。
圖3給出了分頻得到的車輪走100米的輸出信號(hào),其輸入信號(hào)為驅(qū)動(dòng)車輪轉(zhuǎn)動(dòng)信號(hào)。因?yàn)閷?duì)不同車輪直徑,車輪走100米所需圈數(shù)不同,所以,對(duì)不同車輪進(jìn)行分類討論。圖3所示的仿真波形為車輪直徑是520 mm的分頻結(jié)果。
2.3 計(jì)量模塊設(shè)計(jì)
根據(jù)出租車計(jì)費(fèi)器的功能設(shè)計(jì)要求,費(fèi)用的計(jì)算是按行駛的里程和等待時(shí)間來收費(fèi)。當(dāng)行駛里程小于3 km時(shí),按起價(jià)計(jì)算費(fèi)用;當(dāng)里程大于等于3 km時(shí)每公里按2.5元計(jì)費(fèi)。另外,等待累計(jì)時(shí)間大于等于4 min時(shí),應(yīng)按每分鐘1.8元計(jì)費(fèi)。因此應(yīng)按要求設(shè)計(jì)行駛計(jì)費(fèi)使能信號(hào)clk_length和等待計(jì)費(fèi)使能信號(hào)clk_time。圖4所示是這兩種信號(hào)的仿真波形圖。由圖4可知,當(dāng)出租車啟動(dòng)信號(hào)start為高電平有效,而等待信號(hào)stop為低電平無效時(shí),出租車處于行駛狀態(tài),當(dāng)行駛的里程數(shù)大于等于3公里時(shí),系統(tǒng)將產(chǎn)生有效的行駛計(jì)費(fèi)使能信號(hào);而當(dāng)出租車啟動(dòng)信號(hào)start為高電平有效,且等待信號(hào)stop也為高電平有效時(shí),出租車處于等待狀態(tài),當(dāng)?shù)却龝r(shí)間大于等于4分鐘時(shí),即可產(chǎn)生有效的等待計(jì)費(fèi)使能信號(hào)。
在此要特別說明的是,因?yàn)镼uartusⅡ綜合器不支持小數(shù),因此,在設(shè)計(jì)出租車費(fèi)用的時(shí)候,應(yīng)將人民幣角這個(gè)單位放在個(gè)位,元放在十位。依次類推,這樣便于綜合器進(jìn)行綜合。
2.4 轉(zhuǎn)換模塊的設(shè)計(jì)
由于出租車最終的價(jià)格要由7段數(shù)碼管來顯示,而7段數(shù)碼管的輸入信號(hào)為高電平‘l’或低電平‘0’:且該設(shè)計(jì)的前面部分將價(jià)格的數(shù)據(jù)類型定義為整數(shù),因而需要附加整數(shù)到BCD碼的轉(zhuǎn)換電路。圖5所示為整數(shù)轉(zhuǎn)換BCD碼的仿真波形。由圖5可以看出,當(dāng)整數(shù)類型的價(jià)格(pri-ce)為8時(shí),經(jīng)過8個(gè)時(shí)鐘周期,BCD碼的個(gè)位就變?yōu)?;而當(dāng)價(jià)格(price)為54時(shí),經(jīng)過54個(gè)時(shí)鐘周期,BCD碼的個(gè)位變?yōu)?,BCD碼的十位變?yōu)?。在此需要說明的是,圖5中的整數(shù)轉(zhuǎn)變?yōu)锽CD碼需要一段時(shí)間的延時(shí),整數(shù)數(shù)據(jù)越大,轉(zhuǎn)化輸出產(chǎn)生的延時(shí)就越大。為了實(shí)時(shí)的實(shí)現(xiàn)整數(shù)到BCD碼的轉(zhuǎn)化,需要提高轉(zhuǎn)換的時(shí)鐘信號(hào)頻率(clk_convert)。在圖2中設(shè)計(jì)的100分頻的頻率計(jì),目的就是減小這一時(shí)間。在實(shí)際的應(yīng)用中,還可以考慮提高clk_convert的頻率,設(shè)計(jì)更高的分頻倍數(shù)。
3 出租車計(jì)費(fèi)器的硬件驗(yàn)證
本設(shè)計(jì)選用杭州康芯電子有限公司生產(chǎn)的GW48EDA系統(tǒng)作為硬件驗(yàn)證系統(tǒng),同時(shí)選用Altera公司的EPlK30TCl44-3作為主控芯片。該主控芯片是一種基于查找表結(jié)構(gòu)的現(xiàn)場(chǎng)可編程邏輯器件,它的基本邏輯單元是可編程的查找表。它能夠?qū)崿F(xiàn)組合邏輯的運(yùn)算,而可編程寄存器則可實(shí)現(xiàn)時(shí)序邏輯運(yùn)算。因此,只要對(duì)出租車計(jì)費(fèi)器整體設(shè)計(jì)中的輸入輸出引腳作引腳鎖定,然后重新編譯和下載,就可以進(jìn)行出租車計(jì)費(fèi)器的硬件驗(yàn)證。實(shí)驗(yàn)表明:本設(shè)計(jì)能夠?qū)崿F(xiàn)出租車計(jì)費(fèi)器的全部功能,從而證明設(shè)計(jì)是正確的。
4 結(jié)束語
本文以現(xiàn)場(chǎng)可編程邏輯器件(FPGA)為設(shè)計(jì)載體,以硬件描述語言(VHDL)為主要表達(dá)方式,以QuartusⅡ開發(fā)軟件和GW48EDA開發(fā)系統(tǒng)為設(shè)計(jì)工具,從而設(shè)計(jì)出具有起步定價(jià)、行駛計(jì)價(jià)和等待計(jì)價(jià)功能的出租車計(jì)費(fèi)器。結(jié)果表明,本設(shè)計(jì)能夠?qū)崿F(xiàn)所要求的全部功能。同時(shí),因?yàn)?br />
FPGA芯片體積小,功耗低,價(jià)格便宜,安全可靠,稍加修改就可以改變起步的價(jià)格、每公里行駛的價(jià)格和等待時(shí)間的價(jià)格等,而且維護(hù)和升級(jí)比較方便,也很容易做成ASIC芯片,因而具有較好的應(yīng)用前景。