【出租車計費器的設計與實現(xiàn)10000字(論文)】_第1頁
【出租車計費器的設計與實現(xiàn)10000字(論文)】_第2頁
【出租車計費器的設計與實現(xiàn)10000字(論文)】_第3頁
【出租車計費器的設計與實現(xiàn)10000字(論文)】_第4頁
【出租車計費器的設計與實現(xiàn)10000字(論文)】_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

I出租車計費器的設計與實現(xiàn)目錄70471前言 168562開發(fā)環(huán)境及相關技術概括 1322802.1QUARTUSII軟件 1156412.1.1QuartusII軟件的工具及功能簡介 2247592.1.2QuartusII軟件的用戶界面 3168132.2VHDL語言 3128732.2.1VHDL語言的功能特點 43022.2.2VHDL語言的設計特點 4247712.3EDA技術 545813出租車計費系統(tǒng)的整體設計和模塊設計 6124963.1設計原理 659643.2設計內(nèi)容 7193433.1設計框圖 890423.4設計模塊 8315764基于VHDL的出租車計費系統(tǒng)的設計 9241974.1車輪脈沖計數(shù)模塊 960664.2里程計數(shù)模塊 1058214.3計費模塊 12250474.4動態(tài)掃描模塊 1441004.5譯碼模塊 15241885基于VHDL的出租車計費系統(tǒng)的實現(xiàn) 1645535.1車輪脈沖計數(shù)模塊 16242475.2里程計數(shù)模塊 17150095.3計費模塊 18146485.4動態(tài)掃描模塊 20141175.5譯碼模塊 21323085.6綜合設計模塊 2273465.6.1出租車計費系統(tǒng)的頂層設計原理圖 229425.6.2出租車計費系統(tǒng)的頂層設計仿真波形圖 23284226結(jié)論 2321765參考文獻 251前言出租車計價器由如計量組件,稅控組件等不同的組件組成,整個計價器包括里程傳感器、空車待租標志、單片機、顯示屏、打印機這五個部件。當出租車開始行駛時,里程傳感器將出租汽車變速器輸出的轉(zhuǎn)動信號轉(zhuǎn)換成電脈沖信號,然后輸入計價器,根據(jù)脈沖信號,計價器中微處理器(單片機)可以測量行駛時間、行駛車速和行駛里程,并計算得出乘客應付的車費,最后將金額通過計價器的顯示屏顯示出來,還可通過打印機將本次行駛的實際路程及應付金額打印出來,將小票交給乘客,完成本次行駛交易。不同時間不同行駛狀態(tài)都會對出租車計價器輸出的結(jié)果產(chǎn)生影響,需要有一套嚴格的計費標準才能讓出租車計價器成為乘客與司機雙方的交易準則。當出租汽車運營候客時豎起空車待租標志,計價器處于空車狀態(tài);當乘客上車起步后,應壓下空車待租標志,計價器處于乘車狀態(tài),此時計價器主機單價顯示屏顯示單價,金額屏顯示基價,計程和計時屏顯示本次運營累計的行駛里程和等候時間;夜間運營時空車待租標志和頂燈同時熄滅,計價器開始按距離、時間并計式的計費方式進行計費;當車速低于切換速度或者停車時計價器開始計時,高于切換速度時只計行駛時程;在出租車到達目的地后,司機按下暫停鍵停止計費,乘客需支付儀表上顯示的金額;完成行駛交易后,豎起空車待租標志,計價器處于空車狀態(tài),計價器顯示屏顯示歸零。本文主要針對出租車計費系統(tǒng)進行設計,將實際操作過程轉(zhuǎn)化為仿真模擬。2開發(fā)環(huán)境及相關技術概括2.1QUARTUSII軟件QuartusII軟件基于開發(fā)環(huán)境FDGA/CPLD,它支持VHDL,VeriloGHDL和AHDL等不同設計的輸入形式,以及完成從輸入設計到硬件配置的完整PLD電源,該軟件擁有自己的合成器和模擬器,也可以在不同的操作系統(tǒng)如XP,Linux和UNIX上使用。TCL腳本可以用于用戶圖形界面的設計,它具有快速輔助操作,保持界面風格一致,功能綜合,易于學習和易于使用等特點。QuartusII支持Altera的IP內(nèi)核,包括LPM庫,允許用戶充分利用已經(jīng)記錄的模塊,這樣可以簡化設計的復雜性并加快設計速度。QuartusII軟件集成了AlteraFDGA/CPLD開發(fā)過程中涉及的所有工具和第三方軟件接口,通過這個開發(fā)工具,設計師可以方便的創(chuàng)建,組織和管理他們自己的設計,QuartusII軟件開發(fā)過程如圖2-1所示設計輸入設計輸入綜合布局布線時序分析仿真編程和配置功耗分析調(diào)試工程更改管理時序逼近圖2-1QuartusII軟件的開發(fā)流程2.1.1QuartusII軟件的工具及功能簡介QuartusII軟件提供了完整的多平臺設計環(huán)境,可輕松滿足特定的設計要求,并且是SOPC設計的集成環(huán)境,此外,QuartusII軟件允許用戶在設計過程的每個階段使用其軟件圖形用戶界面,EDA工具界面或命令行。1.設計輸入:輸入模式采用QuartusII軟件模塊,輸入模式,輸入模式和中央輸入EDA設計工具來表達用戶電路的概念,并通過任務編輯器設置初始設計約束。2.合成:將所述HDL語言,示意性設計,并且所述第二輸入邏輯鏈路(網(wǎng)表),一個基本的邏輯單元(例如NAND,RAM,觸發(fā)等),并根據(jù)所生成的邏輯優(yōu)化目標和要求Link和輸出標準格式的網(wǎng)表文件,如.EDF或.VQM,用于路由設備的部署和布局。3.布局:綜合布局分析結(jié)果,布局優(yōu)化,增量布局反向指示類似。4.時序分析:允許用戶分析所有邏輯設計的時序性能,布局并幫助引導分析,以滿足設計的時間要求。5.仿真:分為功能仿真和時序仿真。仿真功能是檢查電路的功能是否滿足結(jié)構(gòu)要求,包括仿真時序延遲信息,最好是反應芯片的設計工作。6.編程和配置:將器件,邏輯器件和布局引腳分配轉(zhuǎn)換為器件分配文件到芯片進行測試。2.1.2QuartusII軟件的用戶界面QuartusII是Altera公司的FPGA設計軟件,與FPGA片內(nèi)的硬件相關的設計都在這個軟件工具中完成。啟動軟件后,其默認界面如圖2-2所示。由標題欄、菜單欄、工具欄、資源管理窗、編輯狀態(tài)顯示窗、信息顯示窗和工程工作區(qū)等組成部分。圖2-2QuartusII軟件的用戶界面2.2VHDL語言VHDL的全稱是VHSIC硬件描述語言,VHSIC創(chuàng)建于20世紀80年代,當時美國國防部的背景令人懷疑,并最終導致了VHDL語言的出現(xiàn)。在1987年底,VHDL被IEEE和美國國防部確認為標準的硬件描述語言,它主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口,除了許多具有硬件特性的陳述之外,VHDL的語言形式和描述類型與高級語言中的普通計算機非常相似,其結(jié)構(gòu)特征是工程設計或設計單元(其可以是一個組件,電路模塊或系統(tǒng))被分成外部(或可見部分和端口)和內(nèi)部(或不可見的部分),這兩個它涉及該設備的內(nèi)部運作和算法的完成部分。為設計設備定義外部接口后,其他設計一旦完成內(nèi)部開發(fā),可直接調(diào)用該設備,這種將設計單元分為內(nèi)部和外部兩部分的概念是VHDL系統(tǒng)設計的基本點。2.2.1VHDL語言的功能特點VHDL語言主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。與其他硬件描述語言相比,VHDL具有以下優(yōu)點:1)VHDL語言支持自頂向下(自頂向下)和基于庫的設計方法。它還支持同步電路,異步電路,F(xiàn)PGA和其他隨機電路的設計。2)VHDL語言能夠從系統(tǒng)的數(shù)學模型到不同層次描述系統(tǒng)的硬件功能門級電路及其高級描述可與低級別的RTL描述和結(jié)構(gòu)描述結(jié)合使用。他們還可以定制數(shù)據(jù)類型,為程序員提供更大的自由和便利。3)VHDL相對獨立于設計描述。設計人員無法理解硬件結(jié)構(gòu),也不需要關閉硬件。4)VHDL具有可確保設計精度的電路仿真和驗證功能。用戶甚至不必寫。如何測試可以在源代碼級別進行測試,設計人員可以輕松比較它們。該解決方案的可行性和優(yōu)點和缺點不需要任何實際的電路測試。VHDL語言可以在沒有技術的情況下編程;VHDL的語言標準和規(guī)范很容易共享和重用。2.2.2VHDL語言的設計特點當電路系統(tǒng)采用VHDL語言進行硬件設計時,與傳統(tǒng)電路設計方法相比,具有以下特點:采用自頂向下的設計方法。換句話說,從系統(tǒng)的總體要求進行設計,以完善從頂部內(nèi)容底部,整個系統(tǒng)的硬件設計的最終完成,系統(tǒng)可以分為三個級別進行設計:1、第一級是行為描述,它是描述整個系統(tǒng)的數(shù)學模型,以便識別在被在系統(tǒng)設計的初始階段通過行為仿真所描述的系統(tǒng)的設計的問題。2、第二個層次是RTL路線圖,即注冊轉(zhuǎn)移描述,實現(xiàn)硬件的具體實現(xiàn),VHDL語言程序行為描述的方式應改寫為RTL描述,換句話說,系統(tǒng)使用RTL描述導出系統(tǒng)邏輯表達式并執(zhí)行邏輯綜合。3、第三個層次是邏輯綜合,即利用邏輯綜合工具,在RTL文件(柵級網(wǎng)表)與由結(jié)果輸出邏輯示意表示的基本邏輯元件,模擬上的柵極電平中所公開的轉(zhuǎn)換器,并且控制所述定時關系。(2)主設計文件是用VHDL語言編寫的源程序,與傳統(tǒng)的接線圖相比,使用VHDL源代碼有很多優(yōu)點:①數(shù)據(jù)少,易于保存。另一種是世襲的,在設計其他硬件電路時,可以在該過程中使用某些庫文件,其他過程描述了一些本地硬件電路。第三個是簡單的閱讀,閱讀程序比閱讀電路圖更容易,讀者可以很容易地看到程序中電路的工作原理和邏輯,為了從原理圖中了解它的工作原理,更多的硬件需要知識和經(jīng)驗。2.3EDA技術EDA是電子設計自動化的縮寫,這是新技術的快速發(fā)展,硬件表達式語言是在設計欄系統(tǒng)上表達邏輯的最重要的方式,它是由大型可編程邏輯器件的計算機,開發(fā)軟件和實驗開發(fā)系統(tǒng)設計而成,它可以自動完成。其設計方法是在電子系統(tǒng)中為硬件系統(tǒng)設計新技術,可以實現(xiàn)邏輯編譯,邏輯簡化,邏輯劃分,邏輯綜合和優(yōu)化,邏輯布局和邏輯仿真,完成特定目標芯片的匹配和編譯,邏輯映射,編程和下載,最終形成集成電子系統(tǒng)或ASIC芯片。EDA代表了電子設計技術的最新發(fā)展,這意味著電子設計師可以從概念,算法,協(xié)議等設計電子系統(tǒng)。許多工作都可以通過電腦完成,電子產(chǎn)品可以從電路設計,性能分析,IC布局或PCB布局設計。整個過程在計算機上自動處理,設計人員采用的設計方法是一種新的高層次自上而下的設計方法,從系統(tǒng)設計開始,在頂層進行功能框圖的分區(qū)和結(jié)構(gòu)設計。仿真和糾錯在程序框圖級執(zhí)行,高級系統(tǒng)行為用硬件描述語言描述,設計師的工作僅限于使用軟件,即使用硬件描述語言和EDA軟件來完成系統(tǒng)硬件功能的實現(xiàn)。由于設計的主要仿真和調(diào)試過程在高層完成,不僅有利于早期發(fā)現(xiàn)結(jié)構(gòu)設計錯誤,而且避免了設計工作的浪費,減少了邏輯功能仿真的工作量,并提高了設計的一次性成功率。隨著現(xiàn)代電子產(chǎn)品復雜性和集成度的不斷提高,中小規(guī)模集成電路的普遍組合已不能滿足要求。嵌入式處理器軟核的成熟使SOPC進入了一個大規(guī)模的應用階段,除了成熟的數(shù)字技術之外,電路系統(tǒng)的傳統(tǒng)設計建模概念在EDA領域發(fā)生了很大變化。同時,EDA使得電子領域各個學科的界限更加模糊和更具包容性,這對于設計人員使用EDA技術進行電子系統(tǒng)設計(例如全定制或半定制ASIC設計,F(xiàn)PGA/CPLD開發(fā)和印刷電路板)是有益的。根據(jù)EDA技術的特點,與傳統(tǒng)的數(shù)字電子系統(tǒng)或IC設計相比,EDA技術具有獨特的優(yōu)勢。手動設計在傳統(tǒng)數(shù)字電子系統(tǒng)或IC的設計中占較大的比例。所以也有很多缺點。例如,設計和調(diào)試復雜的電路是非常困難的;如果沒有硬件系統(tǒng)仿真,如果在某個過程中出現(xiàn)錯誤,發(fā)現(xiàn)和修改是非常不方便的;在設計中很難管理和管理大量文檔。相比之下,EDA技術則非常不同。它使用HDL來描述數(shù)字系統(tǒng)的抽象行為和功能,以詳細描述內(nèi)部線路結(jié)構(gòu),可以用來驗證設計過程的正確性,這可以大大降低設計成本,縮短設計周期。由于各種圖書館的支持,我們可以完成各種自動設計流程,它極大地簡化了設計文檔的管理,邏輯設計,仿真和測試變得越來越強大,VHDLEDA是目前EDA設計中應用最廣泛的,并且?guī)缀踔С炙兄髁鞴ぞ摺?出租車計費系統(tǒng)的整體設計和模塊設計3.1設計原理計價器系統(tǒng)已被廣泛使用在生活中,通常由微控制器控制,但結(jié)構(gòu)簡單,故障率高,和現(xiàn)場可編程門陣列(FPGA),其具有高密度可編程軟件和強大的支撐特性,為什么所設計的產(chǎn)品功能強大,功能強大,可靠性高,靈活性強。本文詳細說明了出租車會計系統(tǒng)設計的總體框圖和各系統(tǒng)模塊的詳細設計過程。該系統(tǒng)是EPM1270T144C5芯片(見圖3-1)根據(jù)出租車的計費系統(tǒng),采用VHDL編程,用的QuartusⅡ軟件為仿真和驗證程序的開發(fā)平臺,以獲得相關計價器功能。系統(tǒng)分為五個模塊,包括輔助計數(shù)器模塊,里程表模塊,計費模塊,動態(tài)掃描和解碼模塊。每個軟件模塊提供內(nèi)核代碼及其模擬波形圖。本文采用VHDL語言,采用先進的FPGA技術設計電子產(chǎn)品的稅收系統(tǒng),實現(xiàn)稅表最重要的功能。操作穩(wěn)定可靠。EDA技術是計算機數(shù)字系統(tǒng)意味著完成邏輯綜合,仿真,布局和設計工作,電路設計人員不需要該系統(tǒng)的唯一完整描述的作品,可以通過被設計為一個計算機軟件系統(tǒng)處理給出設計的結(jié)果和改變該方案與改變軟件一樣舒適。例如。如果沒有硬件支持電路可以開始繳費系統(tǒng)的價格,公里等待收費標準和VHDL源程序中的預設的延遲直接變化。圖3-1本設計采用EPM1270T144C5芯片3.2設計內(nèi)容本實驗具體要求如下:1、能夠?qū)崿F(xiàn)計費功能

成本是根據(jù)行駛里程計算的。出租車的起步價是7元。駕駛不到3公里時,價格按起始價格計算。當行程大于3公里時,賬單收費為每人1.6元千米??偨痤~超過30元時,按2.4元收費公里,汽車停止和結(jié)束計費。(總費用=起價費用+(里程-3km)*1.6,總額〈30元或總費用=起價費用+(里程-3km)*2.4,總額〉30元)2、能夠?qū)崿F(xiàn)顯示的功能

1)顯示汽車行駛的里程,用4位數(shù)字顯示,顯示的方式為“XX.X”.單位為km。計程范圍為0~99.9km。

2)顯示總費用:用3位數(shù)字顯示,顯示的方式為“XX.X”.單位為元。計價范圍為0~99.9元。3、重點要求*車費總額可顯示最大值99.9元,能同步顯示對應行駛里程。*要求所設計的系統(tǒng)能模擬滑行開始,暫停,停止等,并設計動態(tài)掃描電路以顯示動態(tài)掃描電路完成的總里程和總票價。臨時停車不收費,票價保持不變;如果汽車停止,票價將被清除并等待下一個計費開始。3.1設計框圖出租車計費系統(tǒng)的整體設計框圖如3-2所示,主要模塊包括:車輪脈沖計數(shù)、路程計數(shù)、價格計算、動態(tài)掃描以及譯碼模塊。圖3-2出租車計費系統(tǒng)的整體設計框圖3-2出租車計費系統(tǒng)的整體設計框3.4設計模塊1、車輪脈沖計數(shù):用于接收啟動,暫停和停止出租車操作信號等信號,并接收來自輪椅的脈沖信號。計數(shù)器對發(fā)送的脈沖信號(每轉(zhuǎn)一圈)和車輪型號進行計數(shù)。不同型號的車輪直徑可能不一樣。通過設置編程代碼(此實驗是為520毫米直徑的車輪設計的)進行車輪型號選擇,最后轉(zhuǎn)換100米的驅(qū)動信號。2、公里計數(shù)器:負責計數(shù)100m的驅(qū)動信號并獲取驅(qū)動數(shù)據(jù)信號;計數(shù)器對百米脈沖進行累加并輸出實際行駛里程數(shù),計數(shù)結(jié)果以3組4位的BCD碼輸出給動態(tài)掃描及譯碼模塊,計數(shù)范圍由0-99.9km。3、計費模塊:根據(jù)行駛里程以及車費規(guī)則,得到車費總金額數(shù)據(jù)信號;計數(shù)器實現(xiàn)步長可變(即單價可調(diào))的累加計數(shù),通過編程代碼設置用來完成起步價初值7元,超價30元后每千米加費到2.4元等。4、動態(tài)掃描模塊及譯碼模塊:接收行駛里程和車費總金額數(shù)據(jù)的信號并送入供外部譯碼管顯示;動態(tài)掃描模塊利用視覺持續(xù)性并使用動態(tài)掃描電路,顯示數(shù)字管的8位數(shù)轉(zhuǎn)換距離和4位十進制數(shù)值,節(jié)省了硬件資源和能源。模塊通過八進制掃描模塊再次顯示距離和票價。解碼模塊將模塊4位BCD碼轉(zhuǎn)換為7段數(shù)碼管顯示的二進制數(shù)據(jù),輸入端口d[3..0]輸入掃描模塊選擇要顯示的BCD碼,數(shù)碼管的顯示碼為Seg[6..0]輸出。這種設計中的數(shù)碼管是一個普通的陰極數(shù)碼管。4基于VHDL的出租車計費系統(tǒng)的設計4.1車輪脈沖計數(shù)模塊車輪脈沖模塊接收來自車輪傳感器的脈沖信號。由于車輪種類不同,直徑不同,每行駛100米行車輪數(shù)不同,即輪孔發(fā)出的脈沖信號數(shù)量不同,因此需要區(qū)分不同的車輪。處理后,車輪直徑與每轉(zhuǎn)匝數(shù)的比率。公里如表4-1所示。表4-1車輪直徑與每千米所轉(zhuǎn)圈數(shù)對應表車輪直徑500mm520mm540mm560mm580mm圈數(shù)/千米637612590569549本設計中以車輪直徑為520mm進行討論車輪脈沖計數(shù)模塊IFreset='1'THENs_state<=s0;temp<="000000";ELSIF(clk'EVENTANDclk='1')THENCASEs_stateISWHENs0=>temp<="000000";IFstart='1'THENs_state<=s1;ELSEs_state<=s0;WHENs1=>temp<="000000";IFstart='1'THENs_state<=s1;ELSEtemp<=temp+1;s_state<=s1;ELSEs_state<=s0;在程序設計中,當復位鍵復位=1時,模塊進入停止計數(shù)模式(s0),復位鍵復位=0,同時啟動/暫停鍵啟動=1,模塊進入計數(shù)頻率定界模式(s1)。當暫停鍵開始=0時,模塊返回停止計數(shù)模式(s0)并停止分時倒計時。車輪脈沖計數(shù)模塊設計框圖如4-2所示停止信號停止信號啟動/暫停信號時鐘信號clk百米脈沖信號開始計數(shù)開始計數(shù)送入61個脈沖送入61個脈沖圖4-2計數(shù)分頻狀態(tài)實驗圖以上框圖為模塊處于計數(shù)分頻狀態(tài)時,即按下出租車計價器的啟動鍵,此時開始計數(shù),時鐘信號clk會送入61個脈沖即產(chǎn)生一個百米脈沖信號clk_out。4.2里程計數(shù)模塊里程計數(shù)模塊的主要功能是統(tǒng)計來自脈沖計數(shù)模塊的百米信號,計算行駛路程,計數(shù)結(jié)果以BCD碼的形式輸出給下一級模塊。(BCD碼即用4位二進制數(shù)來表示1位十進制數(shù)中的0~9這10個數(shù)碼。是一種二進制的數(shù)字編碼形式,用二進制編碼的十進制代碼。)里程計數(shù)模塊主要為實現(xiàn)統(tǒng)計百米脈沖信號,結(jié)果以產(chǎn)生三組4位BCD碼的形式輸出,計數(shù)范圍由0-99.9km。在系統(tǒng)進入停車狀態(tài),停止信號reset=1時,模塊停止計數(shù)并清零;在非停車狀態(tài),啟動/暫停信號sp=0時,系統(tǒng)進入暫停等待狀態(tài)(s0),模塊不計數(shù)且輸出鎖存;若啟動/暫停信號sp=1時,則系統(tǒng)進入里程計數(shù)狀態(tài)(s1),模塊接收百米脈沖信號且計算,并對二進制計算結(jié)果進行BCD碼的轉(zhuǎn)換,將得到的12位BCD碼分成三組4位BCD碼輸出給下一級模塊。ifreset='1'THENtemp:="000000000000";elsif(clk'EVENTANDclk='1')THENCASEkm_stateISWHEN'0'=>IFsp='0'THENkm_state<='0';ELSEkm_state<='1';ENDIF;WHEN'1'=>IFtemp(3DOWNTO0)+"0001">"01001"THENtemp:=temp+"000000000110"+1;ELSEtemp:=temp+1;endif;IFtemp(7DOWNTO4)>"1001"THENtemp:=temp+"000001100000";ENDIF;IFtemp(11DOWNTO8)>"1001"THENtemp:=temp+"011000000000";ENDIF;IFsp='0'THENkm_state<='0';2、里程計數(shù)模塊設計框圖如4-3所示:百米信號百米信號千米信號十千米信號停止信號啟動/暫停信號時鐘信號clk里里程計數(shù)以BCD碼形式輸出以BCD碼形式輸出接收并計算百米脈沖接收并計算百米脈沖圖4-3里程計數(shù)狀態(tài)實驗框圖以上框圖為模塊處于里程計數(shù)狀態(tài)(s1),時鐘信號clk需要接收并計算來自上一個模塊的百米脈沖信號,即當出租車啟動后,出租車計價器按下啟動鍵,會產(chǎn)生行駛里程,若遇到紅燈等待狀態(tài),即可暫停信號,不繼續(xù)產(chǎn)生行駛里程,最終輸出信號以三組4位BCD碼輸出給計費模塊。4.3計費模塊計費模塊中設置行駛范圍為3千米,車費初始值為7元,若當行駛里程超過3千米后,開始按每千米收費,當車費總值大于30元后,每千米收費標準由1.6元變?yōu)?.4元,計費總數(shù)以BCD碼形式送入下一級。計費模塊在程序中,主要部分是兩個過程kmcharge1和kmcharge2,其中kmcharge1過程是一個激活信號,每公里產(chǎn)生一個里程為3公里,單位價格信號為1.6元。公里;過程kmcharge2計算停車信號復位時的車票價格=1時,車票計算停止,票價被移除以進入停車模式。如果停止信號復位=0,則根據(jù)接收的100m脈沖接收輸出信號clk_s和激活信號。然后計算里程并輸出結(jié)果以三組四位BCD碼的形式發(fā)送到下一級。IFcash>="001100000000"THENprice<="00100100";ELSEprice<="00010110";ENDIF;IFkmc2>"0011"ORkmc3>"0000"THENen<='1';ELSEen<='0';IFreset='1'THENreg2:="000001110000";ELSIF(clk'EVENTANDclk='1')THENIF(clk_s='1'ANDen='1')THENclk_cnt:=kmc1;IFclk_cnt="0000"THENreg2:=cash;IFreg2(3DOWNTO0)+price(3DOWNTO0)>"01001"THENreg2:=reg2+"000000000110"+price;ELSEreg2:=reg2+price;ENDIF;IFreg2(7DOWNTO4)>"1001"THENreg2:=reg2+"000001100000";ENDIF;IFreg2(11DOWNTO8)>"1001"THENreg2:=reg2+"011000000000";ENDIF;2、計費模塊實設計圖如4-4所示:停止信號停止信號啟動/暫停信號百米脈沖信號使能信號單價信號角元十元脈沖計數(shù)模塊新計費標準開始計費開始計費以BCD碼形式輸出以BCD碼形式輸出里程達到3km后,1.6元/km;里程達到3km后,1.6元/km;計費達到30元后,2.4元/km時鐘信號clk時鐘信號clk圖4-4計費狀態(tài)實驗框圖以上框圖為停止信號為零,模塊處于計費狀態(tài),根據(jù)脈沖計數(shù)模塊接收到的百米脈沖輸出信號和來自程序中的進程1里描述的計費標準(即使能信號和單位定價信號)計算里程成本,并且使用BCD碼將計費結(jié)果輸出到動態(tài)掃描和解碼模塊。4.4動態(tài)掃描模塊該模塊利用人為現(xiàn)象現(xiàn)象,對外部8位數(shù)字顯示電路進行快速位選擇,實現(xiàn)動態(tài)掃描效果。8位數(shù)碼管可精確顯示公里數(shù)和總成本。動態(tài)掃描模塊在接收到外部時鐘信號clk,公里計數(shù)公里公里hm,km,tkm和計費模塊圖像信號J,Y時,由芯片選擇信號Sel分別選通外部8個數(shù)字管。字母,數(shù)字和小數(shù)可以正確顯示。數(shù)字化數(shù)碼管從左至右顯示字母“L”,10公里,1公里(十進制),100米,字母“F”,十位數(shù)字和元標記。(小數(shù)點)和角度位置。IF(clk'EVENTANDclk='1')THENIFsel<"111"THENsel<=sel+1;ELSEsel<="000";WHEN"000"=>qout<="1010";dp<='0';WHEN"001"=>qout<=tkm;dp<='0';WHEN"010"=>qout<=km;dp<='1';WHEN"011"=>qout<=hm;dp<='0'; WHEN"100"=>qout<="1011";dp<='0';WHEN"101"=>qout<=sy;dp<='0';WHEN"110"=>qout<=y;dp<='1';WHEN"111"=>qout<=j;dp<='0';WHENOTHERS=>NULL;2、動態(tài)掃描模塊設計框圖如4-5所示:時鐘信號clk時鐘信號clk里程信號車費信號里程計數(shù)模塊計費模塊外部譯碼模塊小數(shù)點信號位選信號BCD信號圖4-5動態(tài)掃描模塊實驗框圖以上框圖為動態(tài)掃描模塊的實現(xiàn)流程,輸入端口有接收來自外部或其他模塊的三個信號,為時鐘信號、里程信號和車費信號,將這些信號通過位選信號sel向外部8個數(shù)碼管一一選通,并能顯示字母、小數(shù)點和數(shù)字,最終輸出結(jié)果以BCD碼的形式傳遞給譯碼模塊。4.5譯碼模塊譯碼模塊根據(jù)7段式數(shù)碼管的電路編碼原理,設計出適合出租車計費系統(tǒng)的譯碼程序,并且能夠正確顯示出字母和十進制數(shù)字。譯碼模塊從動態(tài)掃描模塊接收4位BCD碼d[3..0],并將其轉(zhuǎn)換為適合7段顯示的二進制數(shù)據(jù)段[6..0]。seg<="0111111"WHENd="0000"ELSE"0000110"WHENd="0001"ELSE"1011011"WHENd="0010"ELSE"1001111"WHENd="0011"ELSE"1100110"WHENd="0100"ELSE"1101101"WHENd="0101"ELSE"1111101"WHENd="0110"ELSE"0000111"WHENd="0111"ELSE"1111111"WHENd="1000"ELSE"1101111"WHENd="1001"ELSE"0111000"WHENd="1010"ELSE"1110001"WHENd="1011"ELSE"0000000";2、譯碼模塊設計框圖如4-6所示:動態(tài)掃描模塊動態(tài)掃描模塊BCD碼二進制數(shù)據(jù)轉(zhuǎn)換轉(zhuǎn)換圖4-6譯碼模塊實驗框圖以上框圖是在譯碼模塊中將4位BCD碼轉(zhuǎn)換成二進制數(shù)據(jù)的過程,才能符合出租車計費系統(tǒng)中的7段數(shù)碼管電路顯示。5基于VHDL的出租車計費系統(tǒng)的實現(xiàn)5.1車輪脈沖計數(shù)模塊1、下圖所示的是車輪脈沖計數(shù)模塊的仿真波形圖圖5-1車輪脈沖計數(shù)模塊的仿真波形圖從上圖中可以看出,首先設時鐘信號clk的周期為10ns,占空比為50%,設百米脈沖信號clk_out的周期為2.5,占空比為0.01的輸入信號;當reset為高電平時,進入停止狀態(tài),不進行計數(shù)和信號輸出;當reset為低電平,start為高電平時,進入計數(shù)分頻狀態(tài),開始計數(shù)和信號輸出,此時車輪傳感器輸入信號,時鐘信號clk每送入61個脈沖,輸出信號clk_out就產(chǎn)生一個百米脈沖信號;當start為低電平時,又回到停止狀態(tài),整個車輪脈沖模塊停止計數(shù)和輸出。2、下圖所示的是車輪脈沖計數(shù)模塊的符號圖5-2車輪脈沖計數(shù)模塊的符號輸入端口有:車輪脈沖信號clk;停止信號reset;啟動/暫停信號start。輸出端口有:百米脈沖信號clk_out。5.2里程計數(shù)模塊1、下圖所示的是里程計數(shù)模塊的仿真波形圖圖5-3里程計數(shù)模塊的仿真波形圖kmc1—百米計數(shù)值;kmc2—千米計數(shù)值;kmc3—十千米計數(shù)值。從里程計數(shù)模塊的仿真波形圖中可以看出,首先設時鐘信號clk的周期為2.5,占空比為0.01的輸入信號;當reset為低電平,sp為高電平時,整個模塊處于里程計數(shù)狀態(tài),開始計算百米脈沖信號;當reset為高電平時,模塊停止計數(shù),且里程結(jié)果清零;當reset為低電平,sp同為低電平時,模塊處于暫定等待狀態(tài),整個模塊也將暫停計數(shù)。從圖中可以看到kmc1、kmc2、kmc3按照十進制加法計數(shù)的方式計數(shù),仿真結(jié)果滿足里程計數(shù)模塊的設計要求。2、里程計數(shù)模塊的符號如圖5-4所示圖5-4里程計數(shù)模塊的符號輸入端口有:停止信號reset;百米脈沖信號clk;啟動/暫停信號sp。輸出端口有:百米信號輸出端kmc1[3..0];千米信號輸出端kmc2[3..0];十千米信號輸出端kmc3[3..0]。5.3計費模塊1、計費模塊的仿真波形圖如圖5-5所示圖5-5計費模塊的仿真波形圖從計費模塊的仿真波形圖中可以看出,首先設時鐘信號clk的周期為10ns,占空比為50%,設百米脈沖信號clk_s及百米里程信號kmc1的周期為3,占空比為50%的輸入信號;cnt1—計費金額的“角”位;cnt2—計費金額的“元”位;cnt3—計費金額的“十元”位。當reset為低電平時,開始計費,行駛里程小于3千米,車費為初始值7元,超過3千米按每千米標準1.6元收費;當車費總金額超過30元后按每千米2.4元收費。當reset為高電平時,模塊停止計費,車費顯示初始值為7元。從圖中可以看到cnt1、cnt2、cnt3按照十進制加法計數(shù)的方式計數(shù),仿真結(jié)果滿足計費模塊的設計要求。2、計費模塊的符號如圖5-6所示圖5-6計費模塊的符號輸入端口是:時鐘脈沖信號clk;100m脈沖信號clk_s,停止信號復位;100m里程信號輸入端kmc1[3..0],公里公里信號輸入端kmc2[3..0],十公里里程輸入端kmc3[3..0]。輸出端口為:計費量角度輸出端子cnt1[3..0],元位輸出端子cnt2[3..0]。5.4動態(tài)掃描模塊1、動態(tài)掃描模塊的仿真波形圖如圖5-7所示圖5-7動態(tài)掃描模塊的仿真波形圖從動態(tài)掃描模塊的仿真波形圖中可以看出,首先設時鐘信號clk的周期為3,占空比為50%的輸入信號;2、動態(tài)掃描模塊的符號如圖5-8所示圖5-8動態(tài)掃描模塊的符號輸入端口是:時鐘信號clk;100米里程信號輸入端hm[3..0];km公里信號輸入端km[3..0];十公里里程信號輸入端tkm[3..0]票價信號輸入端J[3..0];元件位置信號輸入端子y[3..0];十位信號輸入端子s[3..0]。輸出端口為:小數(shù)點輸出端子Dp;位置選擇器輸出端子sel[3..0];BCD信號輸出端子Qout[3..0]。5.5譯碼模塊1、譯碼模塊的仿真波形圖如圖5-9所示圖5-9動態(tài)掃描模塊的仿真波形圖當d-輸入是0110B,即十進制值6時,簽名輸出“1111101”,然后是數(shù)字管g,f,e,d,c,b,a的7段分別為1,1,1,1,1,0,1,高電平指示燈,顯示值“6”;當d輸入為1011B(十進制值11)時,顯示輸出“1110001”和字母“F”。2、譯碼模塊的符號如圖5-10所示圖5-10譯碼模塊的符號輸入端口為d[3..0];輸出端口為seg[6..0]。5.6綜合設計模塊5.6.1出租車計費系統(tǒng)的頂層設計原理圖如圖5-11所示,設置時鐘信號clk2、啟動/暫停信號start/sp、停止信號stop、車輪傳感器脈沖信號clk1,經(jīng)過仿真輸出數(shù)碼管位選信號sel[2..0];段選信號seg[6..0];以及小數(shù)點信號dp,經(jīng)檢驗仿真結(jié)果符合出

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論