資源描述:
《出租車計價器設計》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學術(shù)論文-天天文庫。
1、綜合實驗——出租車計價器設計前言隨著微電子技術(shù)的發(fā)展,現(xiàn)代電子技術(shù)的核心已日趨轉(zhuǎn)向基于計算機的電子設計自動化技術(shù),即EDA(ElectronicDesignAutomation)技術(shù)。EDA技術(shù)就是依賴功能強大的計算機,在EDA工具軟件平臺上,對以硬件描述語言HDL(HardwareDescriptionLanguage)為系統(tǒng)邏輯描述手段完成的設計文件,自動地完成邏輯編譯、化簡、分割、綜合、布局布線以及邏輯優(yōu)化和仿真測試,直至實現(xiàn)既定的電子線路系統(tǒng)功能。EDA技術(shù)使得設計者的工作僅限于利用軟件的方式,即利用硬件描述語言和EDA軟件來完成對系統(tǒng)硬件功能的實現(xiàn),這是電子設計技術(shù)的
2、一個巨大進步。本學期,學校開設了EDA和VHDL課程的學習,而學習一門編程語言,最好的方法莫過于在一個完整的系統(tǒng)開發(fā)過程中進行。因此,EDA綜合實驗就是一個最好的學習實踐機會。隨著我國社會經(jīng)濟的全面發(fā)展,各大中小城市的出租車營運事業(yè)發(fā)展迅速,出租車已經(jīng)成為人們?nèi)粘3鲂羞x擇較為普遍的交通工具。出租車計價器是出租車營運收費的專用智能化儀表是出租車市場規(guī)范化、標準化以及減少司機與乘客之間發(fā)生糾紛的重要設備。一種功能完備、簡單易用、計量準確的出租車計價器是加強出租車行業(yè)管理、提高服務質(zhì)量的必備品。本實驗就是采用VHDL硬件描述語言作為設計手段,采用自頂向下的設計思路,得到一種出租車計價
3、系統(tǒng)的軟件結(jié)構(gòu),通過在QuartusII軟件下進行模擬仿真,并進行相應的硬件下載調(diào)試,證明所設計的電路系統(tǒng)完成了出租車計價器的功能,各技術(shù)指標符合預定標準,具有一定實用性。一、實驗任務及要求1.能實現(xiàn)計費功能,計費標準為:按行駛里程收費,起步費為10.00元,并在車行3公里后再按1.6元/公里,車暫停時,停車一分鐘之后開始加價,每分鐘增加2.5元。2.實現(xiàn)預置功能:能預置起步費、每公里收費、車行加費里程。3.實現(xiàn)模擬功能:能模擬汽車啟動、停止、暫停等狀態(tài)。4.設計動態(tài)掃描電路:將車費及暫停時間顯示出來。5.用VHDL語言設計符合上述功能要求的出租車計費器,并用層次化設計方法設計
4、該電路。6.綜合仿真驗證,并通過有關(guān)波形確認電路設計是否正確。7.完成電路全部設計后,通過GW48系統(tǒng)實驗箱下載驗證設計的正確性。二、實驗原理圖1出租車計價器流程圖圖2系統(tǒng)結(jié)構(gòu)圖接口部分定義如下:輸入:clk_240,系統(tǒng)時鐘,頻率為240Hz;Start,啟動信號,當start=1時,汽車啟動,開始計價;當start=0時,清零;Stop,暫時計時信號,當stop-1時,中途暫停,開始計時;當stop=0時,再次出發(fā);Fin,汽車車速脈沖信號,是一個與隨著車速變化而變化的脈沖信號。輸出:cha2,cha1,cha0,分別為價錢的十位,個位和角位;Km1,km0,分別為行駛公里
5、數(shù)的十位,個位;Min0,暫時分鐘數(shù)輸出。接口部分源程序如下:port(clk_240:instd_logic;--頻率為240Hz的時鐘start:instd_logic;--計價使能信號stop:instd_logic;--等待信號fin:instd_logic;--公里脈沖信號cha2,cha1,cha0:outstd_logic_vector(3downto0);--費用數(shù)據(jù)km1,km0:outstd_logic_vector(3downto0);--公里數(shù)據(jù)min0:outstd_logic_vector(3downto0));--等待時間計價部分原理如下:起步價1
6、0元,3公里內(nèi)10元,超出3公里部分,每公里1.6元,車暫停時,2分鐘內(nèi)不加價,超出2分鐘部分,每分鐘2.5元;計費部分源程序如下:feipin:process(clk_240,start)beginifclk_240'eventandclk_240='1'thenifstart='0'thenq_15<=0;q_16<=0;f_15<='0';f_16<='0';f_1<='0';f<='0';elseifq_15=15thenq_15<=0;f_15<='1';--此IF語句得到頻率為15Hz的信號elseq_15<=q_15+1;f_15<='0';endif;ifq_1
7、6=14thenq_16<=0;f_16<='1';--此IF語句得到頻率為16Hz的信號elseq_16<=q_16+1;f_16<='0';endif;ifq_1=239thenq_1<=0;f_1<='1';--此IF語句得到頻率為1Hz的信號elseq_1<=q_1+1;f_1<='0';endif;ifen1='1'thenf<=f_15;--此IF語句得到計費脈沖felsifen0='1'thenf<=f_16;elsef<='0';endif;endif;endif;endpr