新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一種出租車計(jì)價(jià)器的FPGA設(shè)計(jì)方案及應(yīng)用

一種出租車計(jì)價(jià)器的FPGA設(shè)計(jì)方案及應(yīng)用

作者: 時(shí)間:2010-01-06 來源:網(wǎng)絡(luò) 收藏

  O 引 言

  (Field Programmable Gate Array,現(xiàn)場可編程門陣列)是一種高密度可編程邏輯器件,它支持系統(tǒng)可編程,通過寫入不同的配置數(shù)據(jù)就可以實(shí)現(xiàn)不同的邏輯功能。使用來設(shè)計(jì)電子系統(tǒng),具有設(shè)計(jì)周期短、易于修改等明顯特點(diǎn),特別適合于進(jìn)行科學(xué)實(shí)驗(yàn)、樣機(jī)研制和電子產(chǎn)品的小批量生產(chǎn)。

  本文針對器件,用EDA工具軟件Max+P1usⅡ,設(shè)計(jì)了一種出租車的計(jì)價(jià)器,它可以以十進(jìn)制數(shù)的形式,直觀地顯示出租車行駛的里程和乘客應(yīng)付的費(fèi)用,具有一定的實(shí)際應(yīng)用價(jià)值。

  1 系統(tǒng)設(shè)計(jì)要求

  所要設(shè)計(jì)的,要求能夠顯示里程數(shù)和乘客應(yīng)付的費(fèi)用,其中里程數(shù)精確到0.1km,乘客應(yīng)付的費(fèi)用精確到O.1元,顯示必須以十進(jìn)制的形式來進(jìn)行。出租車的計(jì)費(fèi)標(biāo)準(zhǔn)為:起步價(jià)6元,里程在3 km以內(nèi)均為起步價(jià);里程在3~7 km之間時(shí),每行駛1 km增加1.6元;超過7 km時(shí),每行駛1 km增加2.4元。

  2 系統(tǒng)設(shè)計(jì)方案

  該系統(tǒng)的設(shè)計(jì)可以采用分立元件來搭建,也可以通過單片機(jī)來設(shè)計(jì),而使用可編程FPGA來設(shè)計(jì),具有設(shè)計(jì)周期短、易于修改等明顯特點(diǎn),而且隨著可編程邏輯器件和EDA軟件的飛速發(fā)展,越來越多的電子系統(tǒng)采用FPGA來設(shè)計(jì),一旦該系統(tǒng)達(dá)到一定的量產(chǎn)規(guī)模,也比較容易轉(zhuǎn)化為ASIC芯片設(shè)計(jì)。因此,基于FPGA來設(shè)計(jì)一個(gè)出租車的計(jì)價(jià)器。本系統(tǒng)在EDA工具軟件MAX+plusⅡ中,采用硬件描述語言Verilog HDL和原理圖設(shè)計(jì)相結(jié)合的方法,進(jìn)行各個(gè)模塊的設(shè)計(jì),最終將各個(gè)模塊組成整個(gè)系統(tǒng)。

  出租車能夠顯示行駛的里程,可以通過車輪的轉(zhuǎn)動(dòng)產(chǎn)生脈沖,然后通過計(jì)數(shù)器對脈沖進(jìn)行計(jì)數(shù)來實(shí)現(xiàn)。假設(shè)出租車每行駛2 m就產(chǎn)生一個(gè)脈沖。由于里程數(shù)要精確到O.1 km,也就是100m,因此每經(jīng)過50個(gè)脈沖就要輸出一個(gè)新的脈沖信號,這里稱為100 m脈沖信號,作為里程計(jì)數(shù)器的時(shí)鐘信號,可以通過一個(gè)模為50的計(jì)數(shù)器進(jìn)行分頻而得到。

  里程計(jì)數(shù)器可以用一個(gè)三位BCD碼計(jì)數(shù)器來實(shí)現(xiàn),最大能顯示到999。以前兩位為整數(shù),第三位為小數(shù),也就是最大能顯示里程99.9 km,因?yàn)槌鲎廛嚩荚谑袇^(qū)和近郊活動(dòng),三位BCD碼計(jì)數(shù)器是可以實(shí)現(xiàn)里程計(jì)數(shù)的。里程計(jì)數(shù)器每計(jì)數(shù)1 km還會(huì)周期性地輸出一個(gè)脈沖信號,稱為1 km脈沖信號,可以通過一定的組合電路來實(shí)現(xiàn)。

  系統(tǒng)最核心的部分就是計(jì)費(fèi)如何實(shí)現(xiàn)。這里就需要設(shè)計(jì)一個(gè)BCD碼的加法器,在起步價(jià)的基礎(chǔ)上,根據(jù)行駛里程的不同,依據(jù)計(jì)費(fèi)標(biāo)準(zhǔn),每增加1 km加上一個(gè)單價(jià),單價(jià)的產(chǎn)生可以用Verilog HDL編寫程序來實(shí)現(xiàn)。系統(tǒng)的總體設(shè)計(jì)框圖如圖1所示。

系統(tǒng)的總體設(shè)計(jì)框圖

  2.1 單價(jià)產(chǎn)生模塊

  單價(jià)產(chǎn)生模塊的Verilog HDL源程序如下:

程序

  其中輸入信號bai和shi就是里程計(jì)數(shù)器輸出的兩位整數(shù)里程,輸出信號jia就是根據(jù)計(jì)費(fèi)標(biāo)準(zhǔn)而產(chǎn)生的單價(jià),以三位BCD碼的形式輸出,以前兩位為整數(shù),第三位為小數(shù)。即里程在3 km以內(nèi)時(shí),jia=0;里程在3~7 km之間時(shí),jia=016(1.6元);超過7 km時(shí),jia=024(2.4元)。

  用Verilog HDL編寫程序來實(shí)現(xiàn)模塊功能的優(yōu)點(diǎn)在于,當(dāng)出租車的計(jì)費(fèi)標(biāo)準(zhǔn)發(fā)生變化時(shí),可以很容易地通過改寫程序來完成新的設(shè)計(jì),比起硬件電路的修改要方便得多,這也是用Verilog HDL來實(shí)現(xiàn)模塊功能的重要優(yōu)勢。


上一頁 1 2 3 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉