摘 要:設計出租車計價系統,運用自頂向下的設計思想,以芯片Cyclone Ⅱ EP2C8T144C8為設計核心,采用Quartus Ⅱ仿真軟件,對設計電路的各模塊及整個系統進行了EDA仿真驗證。結果表明,該計價系統具有計時、計費、計程和動態顯示的功能,符合設計要求,修改VHDL語言源程序,可完成更多的出租車計價系統的擴展功能。
關鍵詞:出租車計價; 自頂向下; VHDL; FPGA
中圖分類號:
TN911.7-34
文獻標識碼:A
文章編號:1004-373X(2012)05
-0179
-03
Design of taximeter based on FPGA
WANG Cui
(Department of Experimental Teaching, Yancheng Institute of Technology, Yancheng 224051, China)
Abstract:
A taximeter based on Quartus Ⅱ simulation software was designed by using FPGA chip cyclone Ⅱ EP2C8T144C8, which is of top-down design idea. The circuit of each module and the entire system were simulated. The simulation results prove that the taximeter system is of counting time, billing, metering and dynamic display function. To modify the VHDL language source code, it can complete more taximeter extended functions.
Keywords: taximeter; top-down; VHDL; FPGA
收稿日期:2011-09-13
0 引 言
隨著電子技術的發展,出租車計價器的設計也從傳統的全部由機械元器件組成的機械式設計到半電子式(即用電子線路代替部分機械器件的出租車計價器[1]),再從集成電路式到目前基于FGPA芯片為核心的系統的設計共經歷了四個階段,利用FPGA芯片,用較少的外部硬件和適當的軟件相互配合,可以通過軟件編程來完成更多的附加功能,設計比較靈活,并且還具有功耗小,體積小、低成本、安全可靠、使用方便[2]等優點。因此,使用FPGA來設計出租車計價系統已受到人們的關注,也能更好地發揮其優點。
本文以FPGA為設計載體,通過VHDL語言編程,采用Quartus Ⅱ 仿真軟件,設計了一種能動態顯示出租車計時、計費、計程的系統,具有一定的實際應用價值。
1 出租車計價系統的設計要求
1.1 實現計費功能
車起步開始計費,首先顯示起步價(本次設計為8.0元),行程在3 km以內,按起步價收費;當行駛超過3 km,1.6元/km,車暫時停車(如遇紅綠燈或中途暫時停車),當等待時間超過3 min,按1元/min收費。
1.2 實現顯示功能
能動態顯示出租車行駛的里程,范圍為00~99 km(考慮到出租車就在市區或近郊附近活動),同時顯示等待時間,范圍為00~59 min,顯示總計價值,范圍為00~999.9元,計價分辨率為0.1元。
2 出租車計價系統的設計體系
圖1為整個系統的頂層框圖,根據層次化設計理論[3],將出租車自動計價系統自頂向下可分為分頻模塊、控制模塊、計量模塊、譯碼和動態掃描顯示模塊。
(1) 分頻模塊。
通過分頻[4]產生不同頻率的脈沖信號用來實現系統的計費,本次設計中通過對240 Hz的輸入脈沖進行15次,24次和240次分頻,得到16 Hz,10 Hz和1 Hz的三種頻率,分別用于1.6元,1元和0.1元的計費。
(2) 計量控制模塊。
計量控制模塊是出租車自動計費器系統的主體部分[5],該模塊主要完成出租車的計時、計價、計程功能。計時器的量程為59 min,滿量程自動歸零。計程器的量程為99 km,滿量程自動歸零。行程在3 km內,且等待累計時間在3 min內,起步價費為8元;3 km外以1.6元/km計費,等待累計時間超過3 min按1元/min計費。
(3) 譯碼顯示模塊。
該模塊經過8選1數據選擇器將計費數據(4位BCD碼)、計時數據(2位BCD碼)、計程數據(2位BCD碼)動態顯示輸出。其中計費數據最大顯示為999.9元;計時數據最大顯示為59 min;計程數據最大顯示為99 km。
3 出租車計價系統的實現
系統的頂層原理圖如圖2所示,出租車計價器系統由主體FPGA電路taxi模塊和動態掃描顯示部分(8選1選擇器mux8_1模塊、模8計數器mo8模塊、七段數碼顯示譯碼器di_LED模塊、生成動態掃描顯示片選信號的3-8譯碼器模塊74138)[6]組成。
3.1 系統各功能模塊
3.1.1 taxi模塊
Taxi模塊是系統中十分重要的模塊,模塊設計中,系統的輸入信號為clk_240(240 Hz)、計價開始信號start、等待信號stop、里程脈沖信號fin。系統的輸出信號有總費用數cha3(百),cha2(拾),cha1(元),cha0(角),行駛距離信號為km1,km0,等待時間信號為m1,m0。
Taxi模塊的控制過程為:start作為計費開始開關,當start為高電平時,系統開始跟據輸入情況計數,有乘客上車并開始行駛時,fin脈沖到來,進行行駛里程計數,這時的stop應為0,中途若停車等待,就需把stop置為1,同時fin為0,進行等待計費,當乘客下車時,直接將start置為0,系統停止工作。taxi模塊又可分為分頻(fenpin)、計量(jiliang)、kongzhi(控制)和計費(jifei)四個子模塊[3,7],taxi模塊的內部結構如圖3所示。
圖3 taxi模塊的內部結構圖
Fenpin模塊是將輸入端clk_240(240 Hz)的時鐘信號進行分頻,分別得到f_16(16 Hz),f_10(10 Hz),f_1(1 Hz)的信號,用于計量時的1.6元,1元,0.1元。
Jiliang模塊用來計時和計程,fin為汽車的里程脈沖信號,當 fin為高電平時,以記錄的f_1的脈沖個數作為行駛的公里里程數,start是汽車計量開始信號,stop為等待信號。f_1是計量驅動信號,當f_1的脈沖到來,如果fin=1,記錄f_1的個數(即行駛公里數),當行駛超過3 km,ent0輸出為1。當stop為高電平時,記錄f_1的脈沖個數,60個脈沖為1 min,當超過3 min時,ent1輸出為1。仿真波形如圖4所示。
Kongzhi模塊主要根據jiliang模塊的en1和en0的不同輸出信號選擇不同的輸出頻率供jifei模塊計費,en1=1時f=10 Hz,en0=1時f=16 Hz。
Jifei模塊實際就是一個四位十進制加法器,仿真圖形如圖5所示,在taxi模塊中,它根據不同的輸入脈沖頻率對脈沖個數進行計數。jiliang模塊每計一次數,jifei模塊就實現16次或10次脈沖計數,即實現超時時的1元/min,超里程時的1.6元/km的收費。
對整個taxi模塊進行仿真,結果如圖6所示,由圖中可知,當stop為高電平時,汽車行駛了km1km0=35 km,計費cha3cha2cha1cha0為0592,即59.2元,與8+(35-3)×1.6=59.2元一致,圖中當等待超過3 min時,價格按1元/min計費,仿真結果正確。
3.1.2 動態掃描顯示部分
此模塊包含mo8計數器、mux8_1(8選1選擇器)、di_led七段數碼顯示譯碼器3個子模塊。
mo8計數器:輸入信號clk為系統輸入的240 Hz基準時鐘,輸出a為模8的二進制碼[8]。
mux8_1模塊是根據輸入信號c[2..0]的地址碼000至111分別對應了cha3,cha2,ch1,ch0,km1,km0,min1,min0八個四位BCD碼,dp為小數點指示信號,在計費的第二位數字上帶有小數點,仿真波形如圖7所示。
di_led數碼顯示譯碼模塊,將輸入信號d[3..0]轉換為q[6..0],即g,f,e,d,c,b,a七段譯碼輸出(高電平有效)[9],3F對應為0,仿真波形圖如圖8所示。
由于采用動態掃描,主要是根據人視覺暫留現象,一般影像在人眼中保留0.1~0.5 s左右,74LS138的輸出碼依次選通8個數碼管。只要頻率夠高,依次點亮8個數碼管時,給人視覺是同時點亮[10]。
3.2 總體電路的仿真結果
通過對整個設計系統的仿真分析,結果如圖9所示,輸出依次是3F 7D 27 .5B 66 3F 3F 3F, 其中總價格為3F7D27.5B(即67.2元), 里程數為663F(即40 km),等待時間為3F3F(即0 min),8+(40-3)×1.6=67.2元,仿真結果正確。
4 結 語
通過仿真驗證表明,本文所設計的出租車計價系統能動態顯示行駛的里程、等待時間和計費數目等,符合預定的設計功能要求。但設計中對出租車里程計數精度不高,若要提高精度,需根據設計要求設置取樣里程的脈沖,在計量(jiliang)模塊的輸入頻率中要做相應的修改,當出租車計費標準發生變化時,也可以通過修改VHDL源程序達到要求,另外,還可以擴展語音播報或票據打印等附加功能,此系統的設計體現了FPGA設計的自頂向下的設計思想,基于FPGA的設計靈活性高、功耗低、集成度高,具有廣闊的市場前景。
參 考 文 獻
[1]陳偉宏.基于Proteus的多功能出租車計價器設計[J].重慶工學院學報:自然科學版,2009,23(6):83-86.
[2]潘松,黃繼業.EDA技術實用教程[M].北京:科學出版社,2002.
[3]徐志軍,徐光輝.CPLD/FPGA的開發與應用[M].北京:電子工業出版社,2002.
[4]任愛鋒,初秀琴.基于FPGA的嵌入式系統設計[M].西安:西安電子科技大學出版社,2004.
[5]王誠,吳繼華.Altera FPGA/CPLD設計(基礎篇)[M].北京:人民郵電出版社,2005.
[6]閻石.數字電子技術基礎[M].4版.北京:高等教育出版社,1998.
[7]雷伏容.VHDL電路設計[M].北京:清華大學出版社,2006.
[8]王振紅.VHDL數字電路設計與應用實踐教程[M].北京:機械工業出版社,2003.
[9]劉昌華.數字邏輯EDA設計與實踐[M].北京:國防工業出版社,2006.
[10]蔡明生.電子設計[M].北京:高等教育出版社,2004.
作者簡介:
王 翠 女,1979年出生,江蘇泰興人,碩士,講師。主要研究領域為電子與通信。