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