劉春梅+高香梅+汪金金+王徐+王翔
摘 要
本文提出一種基于EDA技術(shù)的出租車計費系統(tǒng)的設(shè)計方案。該方案包含車速模塊、計程模塊、計費模塊和顯示模塊。所有程序采用VHDL語言編程并在Quartus II 9.0下實現(xiàn)編譯、仿真。
【關(guān)鍵詞】計費器 EDA VHDL
隨著EDA技術(shù)的飛速發(fā)展,大規(guī)??删幊踢壿嬈骷﨏PLD/FPGA應(yīng)用越來越廣泛,不僅簡化了數(shù)字系統(tǒng)設(shè)計過程,降低了系統(tǒng)的體積和成本,也提高了系統(tǒng)的可靠性和保密性,使各種邏輯功能的實現(xiàn)變得靈活、方便。
1 設(shè)計要求
白天起步價為3千米范圍內(nèi)5元,晚上起步價為3千米范圍內(nèi)6元。白天車行3千米后按1.8元/千米計費,晚上車行3千米后按2.2元/千米計費。當(dāng)按下復(fù)位鍵時,出租車計費器回復(fù)為初始狀態(tài),若為白天則顯示費用5元,晚上則顯示費用6元。當(dāng)按下開始行駛鍵時,出租車則按上述收費標(biāo)準(zhǔn)進行計費。
2 各模塊設(shè)計
2.1 車速模塊
出租車行走的里程數(shù)是根據(jù)裝在車輪上傳感器確定,由于汽車輪子轉(zhuǎn)一圈的周長確定,汽車每轉(zhuǎn)一圈就輸出一個脈沖。用clk表示傳感器輸出脈沖,reset表示復(fù)位信號,stop表示出租車停止按鍵,start表示出租車開始行駛按鍵,sp表示出租車暫停按鍵,出租車每走100m,就輸出一個脈沖clkout以便于里程的計算和顯示。
2.2 計程模塊
計程模塊主要是用于記錄出租車行駛的里程數(shù),通過對車速模塊輸出的clkout信號計數(shù),可以算出出租車行駛的距離。在一般情況下,每行駛0.5km開始計價一次,由而輸出一個計程脈沖co。kcnt3、kcnt2、kcnt1、kcnt0分別代表里程輸出十分位、個位、十位、百分位。
2.3 計費模塊
計費模塊主要用于記錄出租車啟動后所產(chǎn)生的總費用。choose高電平時表示白天,低電平時表示晚上,m0、m1、m2、m3分別表示總費用輸出的十分位、個位、十位、百分位。
2.4 顯示模塊
顯示模塊用來顯示出租車行駛的里程數(shù)與總費用。利用FPGA/CPLD來控制LCD1602模塊,需要定義lcdrs、lcden、lcdrw幾根線,用來控制其基本操作。data用于對LCD1602的數(shù)據(jù)輸出。
2.5 頂層模塊設(shè)計
將以上4個例化元件,按圖1連接,組成基于EDA技術(shù)的出租車計費系統(tǒng)頂層圖。
3 系統(tǒng)仿真
車速模塊的仿真波形如圖2所示,有圖可知:每25個傳感器脈沖就輸出一個100米脈沖clkout。
計程模塊的仿真波形如圖3所示,滿足設(shè)計要求。
計費模塊的仿真波形如圖4所示,在白天,每增加0.5千米的路程,費用增加0.9元。
4 結(jié)論
本文采用EDA技術(shù)的層次化設(shè)計方法設(shè)計出租車計費器,用VHDL編寫各個功能模塊,實現(xiàn)底層設(shè)計;用原理圖輸入方式描述各模塊間的關(guān)系,實現(xiàn)頂層設(shè)計。仿真結(jié)果表明,該設(shè)計方法簡單快捷,所設(shè)計的系統(tǒng)性能可靠。
參考文獻(xiàn)
[1]徐飛.EDA技術(shù)與實踐[M].北京:清華大學(xué)出版社,2011.
[2]姚利彬,許勇,潘明.基于FPGA的出租車計費系統(tǒng)的設(shè)計與實現(xiàn)[J].電子設(shè)計工程,2011,19(23):166-170.
[3]焦敏.FPGA在出租車計費器上的應(yīng)用研究[J].中國科技信息,2009(09):145-146.
[4]王正勇,尹洪劍,霍福翠.EDA技術(shù)與應(yīng)用教程[M].北京:高等教育出版社,2014.
作者單位
安徽農(nóng)業(yè)大學(xué)經(jīng)濟技術(shù)學(xué)院信息與計算機系 安徽省合肥市 230011endprint