婁嵐+王亞輝+孫祥凱
【摘要】 本設計采用Verilog硬件描述語言編程,基于Quartus II平臺進行編譯和仿真。采用Altera公司的FPGA芯片PE1C6Q240C8來設計該出租車計費器系統,闡述了該計費器的主要組成單元—車輪大小選擇模塊、計程模塊、計時模塊及計費模塊、數據分配模塊、分頻模塊、譯碼模塊的設計方法,同時給出了詳細的仿真波形,實現了出租車按行駛里程自主收費,還能模擬汽車啟動,停止,暫停等狀態,同時提高了計費系統的可靠性、通用性。
【關鍵詞】 FPGA Verilog Quartus II 出租車計費器
大城市里出租車已經相當普及,但是在中小城市出租車依然處于快速發展的階段。出租車的計費方式也在發生變化,由只能顯示里程的方式變為現在的自主計費和打印發票及語音提示的智能化方式。根據出租車行業的發展需求,國內許多生產廠商也制造出不同類型的計價器。
一、國內外的研究現狀
針對出租車計費器這方面,傳統計費器利用MCU如89C51單片機實現汽車計費器的設計,大部分的功能可以用單片機來實現。但是單片機程序是不通用的,不同的芯片有不同的指令集,因此設計研發比較困難,周期長,如果系統設計的不好,則系統不是很穩定,而且靈活度不夠,不易實現功能復雜的設計,很多人已經做出了許多不同的設計,使用的方式也各式各樣,有FPGA,單片機,ARM以及可編程的邏輯器件等。
對于這類的設計,我們不僅可以做在線仿真和測試,還可以將所有的設計都集中在統一的自頂向下的設計方案下,根據系統需求,設計不同的模塊,最后經過對不同的模塊進行系統性綜合,從而我們就可以完成整個系統設計。很多人都將基于EDA技術的CPLD/FPGA的設計方案作為首選方案去完成相關課題的設計,很大程度是基于EDA的這些技術優勢。
二、FPGA的基本結構
在本設計中選用了Altera公司的EP1C6Q240型號的FPGA芯片。其資源比較豐富,且性價比極高。其內部有5980個邏輯單元,92160b的RAM容量, 2個PLL(鎖相環模塊),185個用戶I/O。內核電壓1.5V,每個用戶I/O都支持1.5V、1.8V、2.5V、3.3V接口。
三、Verilog設計優點
利用Verilog語言設計數字邏輯硬件系統具有多方面的優點。
(1) 具有很廣闊的覆蓋面,行為描述能力也相當強大,是一個多層次的硬件描述語言。
(2) 可讀性強,一方面計算機容易接受,讀者也容易理解。
(3)可以長期使用,行為級描述不會隨著工藝改變而過時。生產工藝與Verilog的硬件描述無關。當工藝發生變化時,只需對屬性參數做相應的修改即可。
(4) 可移植性強,可以將大規模設計進行分解,同時可以使用已有的設計模塊。一個人不可能獨立完成大規模的設計,必須由多人共同協同完成設計,設計的分解和設計的再利用在Verilog的支持下變得容易。
四、Quartus II設計流程
對于電子設計的各個階段、各個層次的操作都在Altera公司提供QuartusII平臺上進行編譯、仿真測試,在設計實驗過程中需要注意以下幾點:
首先,在進行編程操作時,時要注意區分信號與變量,同時對信號和變量的正確定義和應用也很重要;
其次,在創建工程時,要保證文件名和實體名完全一致,否則,編譯無法完成,工程名可以與之不一致;
再次,注意結束時間的設置,最好將其設置為時間周期的15倍,否則可能會出現時序混亂的現象;
最后,仿真中,靈活的進行進制的轉換,觀察者可以更明顯地看出來時序圖的功能。
五、出租車計費器的設計要求
本設計要求設計日常生活所需要功能的基于CPLD/ FPGA的出租車計費器,其設計要求:費用的計算是按行駛的里程收費,設出租車的起價為7.00元,當里程小于2km時,按起價計算費用;當里程大于2km時每公里按2.5元計費。等待累計時間超過4min,按每分鐘2.0元計費。所以總費用按下式計算: 總費用=起費用+(里程-2km)×里程單價+(等候時間-4min)×等候單價,能夠實現顯示的功能:
(1)顯示汽車行駛里程:用兩位數字顯示,顯示方式為“××”,單位為km。計程范圍為0~99km,計程分辨率為1km。
(2)顯示等候時間:用兩位數字顯示分鐘,顯示方式為“××”。計時范圍為0~59min,計時分辨率為1min。
(3)顯示總費用:用四位數字顯示,顯示方式為“×××.×”,單價為元。計價范圍為0~999.9元,計價分辨率為0.1元。
三、結語
設計采用Verilog硬件描述語言,按自頂向下的方法,將設計的系統分成七個相對獨立的模塊分別設計,包括速度信號產生,計時模塊,計程模塊,計費模塊,譯碼顯示模塊,用Quartus II軟件進行各模塊仿真得其波形,直到各個模塊功能仿真都通過后,再將其合成整體,最后進行綜合仿真。
參 考 文 獻
[1]周淑閣 編著 FPGA/CPLD系統設計與應用開發[M].電子工業出版社 2011.