




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1 出租車計價器的設計概論1.1 概述計費器是以傳感器為紐帶, 對輸入信號進行分析處理, 最后通過顯示器顯示 出來。計費器出現于上世紀的六十年代, 真正應用于我國出租車市場則是八十年 代初期,對于我國來說, 當時也是交通業發展的一個初期, 而計費器的出現無疑 是給出租車行業的發展起到了無可替代的推動作用, 毫不夸張的說, 計費器是出 租車發展的一個最大動力。 現在基本上全國所有的出租車都裝備了計費器, 據調 查現在的出租車計費器大多采用一單片機為核心的計費系統, 這種系統不僅價格 實惠,而且制作方面也相對簡單,但是它也有很多不足之處;而本次設計的一 EDA技術為核心出租車計費器設計,它相對來說
2、根據有優勢,所以以后的出租車 計費器的發展必定有EDA的一席之地,現在的行業發展也正說明了這一點,設計 者們正在不斷尋找一種能克服以單片機為主導的計費器的弊端的新的出租車計 費器,而EDA現在已經成為設計者們設計的首選。出租車計費器開始向數字可編 程器件的方向發展。傳統的出租車計費器的不足點:1. 產品升級時間相對較長:傳統的計費器所采用的是微處理控制器,它的很多 功能都是要借助單片機來實現。 但單片機的程序并不能被很多芯片所接受, 每種 芯片的程序指令都不相同, 因此對于設計者們來說開發較困難, 時間也就相對拉 得過長。2. 計費方式不夠靈活:當使用者每次要更改計費方式的時候都要重新燒錄程序
3、 到芯片中去,這樣就導致計費系統不夠穩定,很難適應出租車行業的發展。現在的基于EDA的出租車計費器的優點:1. 采用自頂向下的設計方法2. 采用系統早期仿真3. 多種設計描述方法4. 高度集成化的EDA開發系統5. PLD 在線系統編程能力6. 可實現單片系統集成,減少產品體積,重量,綜合成本7. 提高產品可靠性8. 提高產品的保密程度和競爭能力9. 降低電子產品的功耗10. 提高電子產品的工作速度這次設計我們所采納的就是以EDA技術為基礎的的出租車計費器設計,它主 要由Altera公司的Cyclone型系列芯片EP1C6Q240C及一些外部控制電路所構 成。我們使用的軟件是 VHDL硬件描述
4、語言實現的出租車計價器的所有功能,使 收費標準更加靈活。使用 Quartus 2 軟件對其進行仿真調試,來模擬出租車計費 器的計費方式。EDA在電子設計領域中價格低廉,有良好的發展趨勢,它的出現 必定會占領大部分數字器件市場。1.2 出租車計費器的發展及研究現狀伴隨著改革開放成果的大豐收, 出租車行業也迎來了它的春天。 在這短短的三十 年間,出租車行業由一個小產業逐步發展成為了今天交通業無可替代中流砥柱, 而促進這一發展的正是計費器廣泛的應用于出租車上, 它不僅解決了顧客與司機 之間的利益糾紛問題, 而且還大大促進了電子行業的發展。 從第一代的機械化計 費器到第二代的半機械化半電子化計費器,最
5、后到現在的第三代電子化的計費 器,計費器不斷地發展與完善,功能也越來越多,除了計費功能,計程功能外, 還加入了諸如時鐘功能,顯示功能,儲存功能等等。出租車計費器是衡量利益的標尺, 是乘客與駕駛員兩者之間交易的準則, 它的出 現標志著出租車行業的發展已經進入深水區。 因次一個具有良好的性能的計費器 將會更受使用者的青睞, 所以,對出租車計費器的研究也將是設計者們不可忽略 的一個重要課題。現在對于我國來說正是電子行業發展的一個黃金時期, 隨著電子產品的不斷 應用于人們的生活中, 越來越多的人投身于電子產品的研究中來, 傳統的計費器 已經不能滿足消費者的需要, 所以要想取得突破, 就必須尋找新的更全
6、面的替代 物,而數字可編程器件的出現, 為出租車計費器的研究迎來了一個新的曙光, 于EDA技術的出租車計費器設計正是這一實踐的例子,EDA技術正以它獨特的魅 力吸引著設計者們的眼球,EDA在電子設計領域中價格低廉,有良好的發展趨勢, 它的出現必定會占領大部分數字器件市場,也必將主導未來的出租車市場。2 出租車計費器的設計說明2.1 設計背景在我國隨著經濟的不斷發展,人們對衣、食、住、行的質量也越來越高,其 中在出行方面尤為突出, 從以前的馬車, 到后面的腳踏車, 最后到現在的出租車, 無不說明人們對出行方便, 快捷的追求。 而在交易的過程中, 公平已經成為了出 租車行業發展的主導, 以前的按機
7、械式的方法計費, 到后來出現的半機械半電子 計費器,發展到現在的電子計費器, 計費的精度越來越高, 計費的方式越來越簡 易,但是其中還是存在著很多的不足。 基于以上所喘述的內容, 本次所設計的出 租車計費器將為解決這些問題提供一個參考的依據。2.2 設計內容計費器無疑就是記錄費用并顯示費用的一個器件,它與出租車行駛的路程, 行駛期間的價格有關。 出租車計費器通過與車子輪胎上的傳感器相連接, 傳感器 通過對輪胎所轉的圈數進行一個相應脈沖的輸出, 而計費器就會對著先脈沖進行 處理,最終轉換為費用,并顯示出來。針對這一點我們來利用ED般術,來設計一款符合我們要求的出租車計費器, 具有計費顯示、 計程
8、顯示等相關功能。 設計 要求如下:這次設計我們所采用的是以EDA技術為核心,其他為輔助來實現計費器的計 費功能,以衡陽為例,出租車起步價為 5元,當出租車行駛距離在3km以內時, 只收取起步價5元,超過3km,則以后每公里收取2.5元,當總費用達到40元時, 以后每公里收取 3元,期間,乘客要求停車等待的時間超過一定時長時, 按特定 標準收取等待費用,可以動態顯示顯示里程與費用。2.3 設計方法在電子設計中,我們通常有兩種設計方法來對電子產品進行設計,分別是自 底向下和自頂向上; 自底向下即是首先確定系統的最基礎, 最底層的模塊, 然后 根據系統的要求設計出其他頂層的模塊及結構, 最終組合在一
9、起, 是他們滿足高 層系統的要求, 這種方法在傳統電子設計中應用的非常廣泛。 而在這個電子行業 尤其是EDA高度發展的今天,自底向下的方法已經不能滿足設計者的要求,因此, 自頂向下的設計方法逐步應用于 EDA技術設計中,自頂向下的設計方法的最顯著 的特點在于它是集中解決系統最基本, 最底層的硬件的可獲得性, 它更加注重細 節方面的問題的解決; 自頂向下的設計方法使系統被分解為各個模塊之后, 可以 對設計的每個獨立模塊進行測試, 最后將不同的模塊集成為最終的系統模型, 比 對其進行綜合測試與評價。2.4 設計方案的比較在出租車計費器的設計中, 存在著多種方案的選擇, 而其中最為突出的方案 有兩種
10、,也是用的最多的方案,方案一是以單片機為基礎的出租車計費器設計, 方案二是以EDA技術為基礎的出租車計費器設計。方案一:在設計中,采用以單片機為中心,多種外圍電路為輔助,用C語言編寫功能程序, 最后通過軟件的仿真調試, 將符合要求的程序代碼下載至硬件電 路中,來實現計費器所需要的功能。 這種設計所帶來的優點是開發與制作成本較 低,在使用中也相對符合我們的使用習慣, 但是有此種方法設計的出租車計費器 系統不夠穩定, 不易實現復雜的功能設計, 外圍電路較多, 而且消費者每次要更 改計費標準時, 都要重新燒寫程序至單片機中, 這樣的話, 對使用者來說就顯得 相當麻煩。方案二:以EDA技術為核心,將其
11、他的各種模塊都集中在一起,采用VHAL語言來編寫程序設計, 最終也是通過軟件的仿真調試, 將程序下載至硬件電路中, 從而實現計費器的功能。 這種設計方法的優點在于它的智能性與自動性, 外圍電 路較少,因此對計費器的功能擴展很有利,不像單片機所采用的軟件實現功能, 它是采用硬件邏輯電路實現的, 所以,系統穩定性有了大大的提高, 但是他也有 它的不足之處,就是花費成本相對過高。以上兩種方案都能對計費器實現計程,計費,顯示等功能,都有其優缺點, 但經過綜合考慮決定,本次設計所采用的是方案二。3出租車計費器的總體設計3.1系統總體設計要求本設計是利用VHDL語言來設計一個出租車計費器的計費系統,具體要
12、求如下:(1)(2)(3)(4)行程三公里之內,起步價5元;三公里之外,每公里2.5元;當總費用達到40元時,以后每公里按3元收費; 能顯示行駛公里數,計費器費用;注:元,出租車在等待紅綠燈時不計費,當乘客要求停車等待時則按每 200s收取0.7 計入總費用。收費的范圍是0-999.9元,費用顯示分辨率是 0.1元,行駛的路程范圍是 0999.9公里,路程顯示分辨率是 0.1公里。3.2 設計思路本設計是利用對時鐘的分頻來模擬出租車行駛的速度, 當時鐘頻率越高時車 速也就越快,再根據時鐘來進行計程和計費,最終,在數碼管上顯示出總行駛路 程和總費用。出租車計費器的內部結構框圖如下所示:圖1出租車
13、計費器的結構框圖1. 速度模塊,接入車速表來進行工作,這里用于模擬車速度。2. 計時模塊,接入車速表實現計時,當車速為零時,開始計時,當計時超過一定時間時,輸出一個脈沖到計費模塊,實現停車等待費用。3. 計程模塊,對速度模塊所產生的脈沖進行一個計數, 通過總計數次實現出租車 所行使的總路程并輸出總路程。4. 計費模塊,對出租車所行使的路程進行一個費用的計算,并輸出總費用。5. 顯示模塊,對輸出的總費用和總路程的一個數碼顯示。3.3出租車計費器系統工作流程圖出租車計費器的工作流程如下所示:卜也心人幵始計g計程V番程是否大于3kiTr>pnCQ為2號元Fkm只收取呂元起步價否_十Y二是否大H
14、喬元"A嚴pricE為 3 元/kmstopl輸出 總費用總路程C 結束圖2出租車計費器工作流程圖當出租車載有乘客時,計費器開始工作,首先是reset至為高電平,系統進入初 始化,各部分都清零,計費模塊顯示起步價 5元,然后啟動start按鈕(將其至 為1),計費器開始計費,在行駛過程中,對輸出路程進行比較,當輸出路程在3km以內時,費用保持5元起步價不變;當路程大于了 3km時,則每公里按2.5 元進行計費的累加,并且輸出總費用;當總費用達到 40 元時,則計費器將按照 每公里 3 元的價格進行計費。 在行駛過程中, 當乘客要求停車等待時, 則計費器 將會進入停車等待計費模式, 超
15、過一定時間, 將收取一定的等待費用, 并計入總 費用。當在計程車行駛過程中出現 stop 有效信號時,則各計數器停止計數;當 乘客下車之后,按下復位鍵 reset 鍵,所有計數器清零復位。134 出租車計費器的軟件仿真分析4.1 硬件描述語言的介紹硬件描繪語言HDL是EDA技術的重要組成部分,目前常常使用的HDL主要有 VHDL Verilog HDL,system C。其中 VHDL,Verilog 在現在 EDA設計中使用最多。 本次設計中所采用的正是基于 VHDL語言的出租車計費器設計。VHDL的英文全名是 VHSICHardware description Ianguage,于 198
16、3年由美 國國防部提議創立,由IEEE進一步發展并在1987年作為“ IEEE標準1076”發 布。后來,VHDL成為業界以此為標準的硬件描述語言。自IEEE發布了 VHDL的標準版本以后,各EDA公司相繼推出了自己的 VHDL設計環境,或宣布自己的設 計工具支持VHDL自那時以來,VHDL已廣泛應用在電子設計領域,結合Verilog 逐步取代其他非標準的硬件描述語言。VHDL作為一個規范語言和建模語言,隨著 VHDL語言的標準化,出現了一些 支持該語言的行為仿真器,因為創立 VHDL的首先目的是用于標準文檔的建立和 電路功能模擬,其基本思想是在高層次上描述系統和元件的行為。1993年, IE
17、EE對VHDL進行了修訂,從更高的抽象層次和系統描述能力上擴 展了 VHDL的內容,公布了新版本 VHDLVHDL具有與具體硬件電路無關和與設計平臺無關的特性,并且具有良好的 電路行為描述和系統描述能力。相對于 Verilog,VHDLM有以下優點:(1)語法比Verilog嚴謹,通過EDA工具自動語法檢測,易排除許多設計 中的疏忽。(2) 有好的行為描述的水平和能力的系統級描述能力,和Verilog 建模和 系統級抽象和描述能力比 VHDL。利用 VHDL 語言設計數字邏輯硬件系統還具有以下多方面的特點。(1)VHDL不太關注具體的邏輯電路實現,設計者主要集中在電路功能的實 現。( 2)語言
18、可以用來描述邏輯設計,邏輯結構設計,如多少子邏輯,而是邏 輯是如何連接。(3)VHDL 所給出的邏輯的模擬與調試功能為設計者提供了最大的空間, 用戶甚至不必編寫任何測試向量即可進行源代碼級的調試。(4) VHDL語言描述的能力非常強,它涵蓋了許多領域的、合乎邏輯的設計, 和許多硬件模型。(5) VHDL選用近似高級語言的語句格式實現對硬件行為的描述,所以我 們就稱VHDL語言為行為描述語言。(6) 設計者可以方便地比較各種方案的優勢和可行性,大大降低設計難度。(7) VHDL語言具有良好的可讀性,用VHDL語言庫的設計(圖書館),設 計單位(設計單位),包(Package)為設計人員提供了可重
19、復使用的其他設計成 果的技術手段。(8) 原有的硬件設計描述是非常簡潔的描述,通過EDA工具進行電路描述 或說明文件布局參數生產處理生成過程。4.2主要的模塊設計4.2.1速度模塊設計如下圖所示,這是一個速度模塊框圖的設計,其中elk為時鐘脈沖輸入,通 過對這個elk的一個計數,來實現出租車所行使的時間和路程,reset則表示的 是復位按鈕,當有復位信號輸入時,所有的計數器都將進行初始化,start按鈕則是一個開始開關,當start信號有效時,則速度模塊進入工作狀態,stoP貝U 是一個停止按鈕,當其有效時,速度模塊停止工作,sp2.0則是一個速度控制 輸入端口,用它可以模擬出租車的行駛速度大
20、小。其模塊框圖如下所示:!1 I曲ut2 I丹spp 0圖3速度模塊框圖4.2.2 計時模塊設計 速度模塊主要是用來進行計程收費的,計時模塊則是主要用來記錄當車速為零時 的時間,也就是乘客要求停車等待的時間。它通過對sp信號的判斷來進行工作,當sp=O (即出租車停車時),開始記錄時間。當時間達到一定長度的時長,它會 產生一個時間計數脈沖輸出,目的是為了向乘客收取一定的等待費用, 然后再重 新計時,從而實現等待期間的計費,設計框圖如下所示: f - T > I If “ = .=£“-; = - ; >.;- . .f 龍=纟洋r ?r纟;纟-r纟 ichmrtstepE
21、inv-KHDit,jf L*B|IIHJIIB|IBB|II llC Illi ”1 I I H III I I" HJ I II*. 尹圖4計時模塊框圖423 計費模塊設計計費模塊設計主要是用于對出租車在行駛過程中所產生的總費用的一個仿真。在這個模塊中,我們設計兩個不同的計費進程,分別為jf1和jf2兩個進程。 其中jf1是用于產生enable和price信號。當集成器所記錄的路程達到3km后, enable信號將自動變為高電平,計費器開始進入每公里收費狀態。當總費用超 過40元時,單價price由原來的2.5元/km,變為3元/km。通過對速度模擬信 號sp信號的判斷,當速度為
22、零時(sp=0)時,開始記錄時間。當時間達到一定 的時間久了,會產生一種時間計數脈沖輸出,并重新啟動的時間。jf2是用來確定的時間計數和 CLKOU的值,當它是1時,總費用加0.7元。最終輸出為總費用。設計框圖如下所示:少j V i 川一 冊一 旳一 Q ir 少一 st 上 M 一 卅一 A- 5- "一 羽一 % FidkMdit13.0resethh>iI2|3.0JttlWDUfllK>Lnt3(3.O)dICQIftCWjnWP 01ktlJ OJhnr23 0kpnenti2. .Oj kprKrt4a. .0圖5計費模塊框圖上100米就有一個脈沖輸出,計程模
23、塊從而達到計程的目的。其中Kmcount1kmcou nt3為路程的十位,分別為十424 計程模塊設計計程模塊的設計主要是用于對出租車所行駛的路程的一個模擬仿真設計。 面我們介紹的速度模塊就是當出租車每行駛 就是對這個脈沖輸出的個數進行一個計數, 為路程的十分位,kmcount2為路程的個位, 進制數。設計框圖如下所示:resetkm&nd侵冏Kmcnt23. .Gl|kmcntSP 0|ikincnt43 01圖6計程模塊框圖425 譯碼顯示模塊譯碼顯示模塊所采用的是共陰極八段數碼管,該模塊經選擇之后將計程數據( 4位)送入譯碼器進行譯碼并且顯示出來,將計費數據(4位)送入譯碼器進行
24、譯碼并且顯示在另外的4位數碼管上。計程數據顯示的是百十個位,十分位, 精確度是0.1,計費數據顯示的是百十個,十分位,精確度也是0.1.其模塊設計框圖如下所示:4tnKrvt1E3.Q|Mgip.DIknvMt2t2 .OJwa2F 01krncrvt2j2.mseazimkn>crtt4f3./tljseg4f7.OC(Hint13.OT-dwunt23.DwwepoiOMnt33.Q|呵gooourit.4S.D«*8ir.ojF;HUH一1S圖7顯示模塊框圖該圖中seg1表示的是路程十分位輸出,seg2表示的是路程個位輸出,seg3 表示的是路程十位輸出,seg4表示的是
25、路程百位輸出;seg5表示的是費用十分 位輸出,seg6表示的是費用個位輸出,seg7表示的是費用十位輸出,seg8表示 的是費用百位輸出。計程數1S怪碼顯示圖8顯示流程框圖4.2.6總體仿真設計出租車計費器總體設計如下圖所示,其中elk信號為輸入時鐘脈沖,當時鐘 為上升沿時有效,reset為復位信號,同樣也是上升沿有效,start為計費開始 信號,stop為計費停止信號,均為高電平時有效,SP2.0表示出租車行駛的 各種狀態,模擬停止或不同形式的速度,kmcnt信號輸出表示出租車行駛的里程, count信號輸出表示出租車行駛的花費。二-Z/嚀.牙注J!;:卩: “ =1 *-圖9總設計原理圖
26、4.3 仿真結果4.3.1速度模塊仿真出租車在行駛的過程中,速度有快有慢。本次設計中我們對速度模塊的仿真所依 據的是出租車行駛過程中的不同速度, 不同狀態來進行仿真的,我們對出租車所 行使的時鐘周期進行一個計數,從而可以的計算得出出租車所行駛的路程,本次設計中我們所采用的是出租車每行駛 100米就有一個脈沖clkout輸出高電平。 仿真波形圖如下所示嘰中 逍匹B牛叫咗 嘰 釘小圖10速度模塊仿真波形圖由上波形圖我們可知,當SP采用不同數值來模擬速度的快慢是,輸出clkout 也有一個快慢的變化,從而達到速度仿真的效果。432 計程模塊仿真計程模塊的仿真無疑就是對出租車所行駛的路程進行一個模擬仿
27、真,仿真 圖如下所示:lO. Du-llI叭一 M莎一蛋獻一業QtLI,;,訃祁曠I飛儷呵阿酈呱灘腳岡駆W勵就麗則騙) i , M 皿飛【2 ; M L_i' iii10圖11計程模塊仿真波形圖從以上我們可以知道,當復位信號輸出有效時,所有的計數系統復位清零, 否則,對輸入信號clkout進行一個十進制的計數,從圖中可以看出每輸入一個 CLKOU信號,kmcnt1就自加(即就是1000)°Kmcnt2表示路程的個位數,kmcnt3 表示路程的十位數。433 計時模塊仿真預設10000個時鐘周期為200s,對時鐘周期進行計數,每計 10000個時鐘 周期輸出高電平,指示計時20
28、0秒。尋jmaicflRfMT fb叫遷阿$州盲 恤訥偏.51珈 $剛輛 Irte'd.1 說rat- yA = 0 一靜 “圖12計時模塊仿真波形圖由上圖我們可以得知,當復位reset有效時且當SP為0時,也就是出租車 停車等待時,timeout每隔一段時間輸出一個高電平,從而達到停車等待時間乘 客所花費的費用。15434 計費模塊仿真計費模塊的仿真是乘客在搭乘出租車期間所用的所有花費,當reset為高電平也即是有效時,系統復位清零,否則,當計時信號的時間計數和出租車計費信 號CLKOU都是高電平時,按照特定的規則的計費。仿真波形圖如下18由上圖我們可以得知,出租車起步價為5元,當圖
29、中出現timeout信號時(乘 客要求停車等待時),則每一個輸入信號就相應有一個 count的變化(以0.7元 自加),當clkout輸出有10個脈沖(代表行使一公里),則count按每公里2.5 元收取費用。435 顯示模塊仿真顯示模塊是計費器的最后一個模塊, 它是將出租車所行使的路程、費用直觀 的表達出來,方便乘客與司機兩者之間的交易,顯示模塊采用的是八段數碼管顯 示,一到四顯示路程,五到八顯示費用,仿真功能圖如下所示:3C夠4f砂三祎乍昏LC5IrH-nil 釀 IrH-nlS 0 IrH-ntJa倫a gs 2 s T s ys .叨 s £滲1 pt'S51X5
30、165;1 y1'01s劃Y01y囹Yiq'門I(61S屈J:41iroli 5foltNS TOI血X聞):血;K常fliFX10'tnlS:l1X時3I帕miI程Xifiis(fi!DoiLtiJ! otioiin J:miiii1 oiimEioDEILtLl 1 Dirmro X OLLCUll i 01Ll1f JOQIUtlLDciLLLt 1Diiop-ioyaininii diilleiDIILtLIl 1DOlltliCL11111IK milllll XDim lOtllEiLtLt I inmniii 1miiJiiiItini:DiiiiDtiL
31、LtiCDLtILlli DLLtllOlJDD11111I)£aiJDCI LODDt1 LinC:LD:1QtQ:QD!D和 “5 9 M汕 g =陽 V KICO pLflO.p 站LlO.p圖14譯碼顯示仿真功能圖從上圖不難得出,當費用十分位為 8時,數碼管第五位seg5的各段二極管的代碼01111111;當費用個位為7時,數碼管第六位seg6的各段二極管的代碼 10000111,其中第一個代表小數點;當費用十位為6時,數碼管第七位seg7的各段二極管的代碼01111101;當費用百位為5時,數碼管第八位seg8的各段二 極管的代碼01101101;當路程十分位為9時,數碼管
32、第一位seg1的各段二極管 的代碼01101111 ;當路程個位為5時,數碼管第二位seg2的各段二極管的代碼 11101101;當路程十位為1時,數碼管第三位 seg3的各段二極管的代碼00000110;當路程百位為8時,數碼管第四位 seg4的各段二極管的代碼01111111;對照共陰極數碼管的顯示表,可知上述仿真完全符合要求。435總體仿真對電路進行總體仿真,仿真波形圖如下所示。在圖中,當復位信號輸出有效 時,系統中所有的計數器,寄存器被清零;當開始計費信號start信號有效時,啟動計費系統,計費器開始顯示初始費用為5元(即起步價),當行駛路程超過kmcnt2達到3km時,以后每公里2.
33、5元,當超過40元時,以后每公里3元計費, 然后再根據出租車行駛的速度信號SP的輸出取值計算所用的花費和行駛的里程;當stoP信號有效時,計費器停止工作。¥4 P殺弓 in納呎15 a st2fl « m邸tQ罕譏¥譏IfU't15.K F 笳 z世s理0 «und H «加? 回M罰3 bend3 HmiZ buil3LT:;冋X7芝眞瑟陰聞(鳩何顧iFM嗣網粥何:顧何幀帰即解聞' MJ : 丫口: X.:仁X気P:窗列:飼麗! ''(oT:Tt1JImTil總的來說, 器的功能。圖14總體仿真波形圖出租車計費
34、器的設計符合本設計要求, 它基本實現了出租車計費4.4芯片管腳鎖定本次設計所采用的是Cyclone型可編程數字實現系統,芯片型號為EP1C6Q240C8 管腳鎖定如下表:表1管腳鎖定表輸入輸出端口任務名稱管腳值啟用elkloeati onPin 28是resetloeati onPin 237是startloeati onPin 240是sto ploeati onPin 239是sp0loeati onPin 233是sp1loeati onPin 234是sp2loeati onPin 235是Cou nt10loeati onPin 13是Cou nt11loeati onPin 14是
35、Cou nt12loeati onPin 15是Cou nt13loeati onPin 16是Cou nt20loeati onPin 17是Cou nt21loeati onPin 18是Cou nt22loeati onPin 19是Cou nt23loeati onPin 20是Cou nt3 0loeati onPin 21是Cou nt31loeati onPin 41是Cou nt3 2loeati onPin 128是Cou nt3 3loeati onPin 132是Kme nt10loeati onPin 161是Kme nt11loeati onPin 162是Kme n
36、t12loeati onPin 163是Kme nt13loeati onPin 164是Kme nt20loeati onPin 137是Kme nt21loeati onPin 138是Kme nt22loeati onPin 139是Kme nt23loeati onPin 140是Kme nt30loeati onPin 141是Kme nt31loeati onPin 158是Kme nt32loeati onPin 159是Kmc nt33locati onPin 160是19結束語在這次設計中,所采用的 VHDL語言在Quartus軟件上的仿真,基本實現了 我們所設計的計費器的功
37、能要求, 在第三章中我們所提到的方案的比較, 使我們 能更加清晰的區別單片機與EDA的優劣所在,在第四章中我們所編寫的程序一開 始不能編譯, 后面才知道程序的實體名必須與工程名一致。 所以通過此次對出租 車計費器的設計以及調試,讓我對原本不太熟悉的EDA技術有了一個深刻的了解,EDA技術作為現代電子設計技術的核心,為提供表達和實現當代電子理論和 設計的可能性做出了不可磨滅的貢獻;另外在VHDL語言的設計方面,讓我對設計有了一個全新的看法, 以前的我只知道自底向上的設計方法, 而這次所采用的 自頂向下的設計方法完全打破了我的傳統觀點,讓我對EDA這門科學技術有了更多的興趣。同時,通過本次設計我還
38、認識到了自身的很多不足, 比如在選擇芯片 管腳鎖定方面,還有就是在仿真時對部分沒用到的管腳的關閉都存在著很多的不 足,導致仿真不能滿足要求, 芯片的負擔加重。 所以不管是在今后的學習中還是 生活中我會更注重自己這方面能力的培養。27參考文獻1 潘松,黃繼業,EDA技術實用教程第四版,科學出版社,2 王振紅,張常年,綜合電子設計與實踐,清華大學出版社,3 邊計年,薛宏熙,VHD設計電子線路,清華大學出版社,4 羅杰,謝子美,電子線路,電子工業出版社, 2008 王振紅,VHD數字電路設計與應用實踐,機械工業出版社,2010200520022003 武玉華,周玉坤,出租車計價系統的FPG設計,計算
39、機技術與發展,2007-12-127 張穎,多功能出租車計價器的設計,計算機與信息技術, 2009-9-9時間過得真快,畢業論文已經接近了尾聲,在這短短的幾個月的設計時間里, 有過太多的歡笑,也有過太多的艱難困苦,但是在老師與同學的幫助之下,我戰 勝了一次次挫折,從中我學到了很多的東西,有的是以前學不到的東西,所以對 于此次對出租車計費器的畢業設計,首先我得最誠摯的感謝我的指導老師一一肖 亞麗老師。從定題,設計、開題報告,整改以及論文的撰寫與成稿過程中,都離 不開老師對我的悉心指導與幫助。也許有的時候老師特別的忙,但是只要是我們 在設計中遇到了問題,老師都會抽出時間來為我解答,肖老師以她嚴謹的
40、治學之 道、兢兢業業的工作作風為我樹立了學習的典范, 老師的每一次教導與鞭策都將 是我人生中最寶貴的財富。謝謝大家為我在這個設計提供的所有的幫助, 沒有你們的幫助和啟發,我將 很難完成本文的寫作。由于本人水平有限,論文中難免有瑕疵與不足之處,懇請各位老師和同學的 批評和指正!附錄VHDL語言程序代碼:速度模塊 :library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sd is /實體表達port(clk :in std_logic; /端口名稱reset:in std_logic;star
41、t:in std_logic;stop :in std_logic;sp :in std_logic_vector(2 downto 0);clkout:out std_logic );end sd;architecture rtl of sd is/結構體表達Begin/程序主體process(clk,reset,start,stop,sp) type state_type is(s0,s1);variable s_state:state_type;variable cnt:integer range 0 to 28;variable kinside:integer range 0 to 3
42、0;begincase sp iswhen"000"=>kinside:=0;/ 賦值when"001"=>kinside:=28;when"010"=>kinside:=24;when"011"=>kinside:=20;when"100"=>kinside:=16;when"101"=>kinside:=12;when"110"=>kinside:=8;when"111"=>kinsi
43、de:=4;end case;if reset='1'thens_state:=s0;elsif clk'event and clk='1'thencase s_state iswhen s0=>cnt:=0;clkout<='0'if start='1'thens_state:=s1;elses_state:=s0;end if;when s1=>clkout<='0'if stop='1'thens_state:=s0;elsif sp="000&quo
44、t;thens_state:=s1;elsif cnt=kinside thencnt:=0;clkout<='1's_state:=s1;elsecnt:=cnt+1;s_state:=s1;end if;end case;end if;end process;end rtl;計時模塊:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity js isport(clk :in std_logic;reset:in std_logic;start:in std_logi
45、c;stop :in std_logic;sp :in std_logic_vector(2 downto 0);timecount:out std_logic );end js;architecture rtl of js isbeginprocess(reset,clk,sp,stop,start)type state_type is(t0,t1,t2);variable t_state:state_type;variable waittime:integer range 0 to 10000;beginif reset='1'thent_state:=t0;elsif(c
46、lk'event and clk='1')thencase t_state iswhen t0=>waittime:=0;timecount<='0'if start='1'thent_state:=t1;elset_state:=t0;end if;when t1=>if sp="000"thent_state:=t2;elsewaittime:=0;t_state:=t1;end if;when t2=>waittime:=waittime+1;timecount<='0
47、9;if waittime=10000 thentimecount<='1'waittime:=0;elsif stop='1'thent_state:=t0;elsif sp="000"thent_state:=t2;elsetimecount<='0't_state:=t1;end if;end case;end if;end process;end rtl; 計程模塊:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.al
48、l;entity jc isport(clkout,reset:in std_logic;kmcnt1:out std_logic_vector(3 downto 0);kmcnt2:out std_logic_vector(3 downto 0);kmcnt3:out std_logic_vector(3 downto 0) );end jc;architecture rtl of jc is beginprocess(clkout,reset)variable km_reg:std_logic_vector(11 downto 0);beginif reset='1'the
49、nkm_reg:="000000000000"elsif clkout'event and clkout='1'thenif km_reg(3 downto 0)="1001"thenkm_reg:=km_reg+"0111"else33km_reg(3 downto 0):=km_reg(3 downto 0)+"0001"end if;end if;kmcnt1<=km_reg(3 downto 0);kmcnt2<=km_reg(7 downto 4);kmcnt3<
50、=km_reg(11 downto 8);end process;end rtl;計費模塊:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jf isport(clk:in std_logic;reset:in std_logic;timecount:in std_logic;clkout :in std_logic;kmcnt2:in std_logic_vector(3 downto 0);kmcnt3:in std_logic_vector(3 downto 0);count1
51、:out std_logic_vector(3 downto 0);count2:out std_logic_vector(3 downto 0);count3:out std_logic_vector(3 downto 0)end jf;);architecture rtl of jf issignal cash:std_logic_vector(11 downto 0);signal enable:std_logic;beginkmmoney1:PROCESS(cash,kmcnt2)beginif cash>="010000000000"thenprice<
52、;="00110000"elseprice<="00100101"end if;if(kmcnt2>="0011")OR(kmcnt3>="0001")thenenable<='1'elseenable<='0'end if;end process;kmmoney2:process(reset,clkout,clk,enable,price,kmcnt2)variable reg2:std_logic_vector(11 downto 0);variab
53、le clkout_cnt:integer range 0 to 10;beginif reset='1'thencash<="000000010000"elsif clk'event and clk='1'thenif timecount='1'thenreg2:=cash;reg2(7 downto 0):=reg2(7 downto 0)+"00000001"elsecash<=reg2;end if;elsecash<=reg2+"0110"end if
54、;elsif clkout='1' and enable='1'thenif clkout_cnt=9 thenclkout_cnt:=0;downtoreg2:=cash;if "0000"®2(3 downto 0)+price(30)>"00001001"thenreg2(7 downto 0):= reg2(7 downto 0)+"00000110"+price;if reg2(7 downto 4)>"1001"thencash<=reg2
55、+"000001100000"elsecash<=reg2;end if;elsecash<=reg2+price;end if;else - 對時鐘計數clkout_cnt:=clkout_cnt+1;end if;end if;end if;end process;count1<=cash(3 downto 0);count2<=cash(7 downto 4);count3<=cash(11 downto 8);end rtl;譯碼顯示模塊代碼:library ieee;use ieee.std_logic_1164.all;use ie
56、ee.std_logic_unsigned.all;entity xs isport(kmcnt1 : in std_logic_vector(3 downto 0);kmcnt2 : in std_logic_vector(3 downto 0);kmcnt3 : in std_logic_vector(3 downto 0);kmcnt4 : in std_logic_vector(3 downto 0);count1 : in std_logic_vector(3 downto 0);count2 : in std_logic_vector(3 downto 0);count3 : in
57、 std_logic_vector(3 downto 0);count4: in std_logic_vector(3 downto 0);sc1 :out std_logic_vector(7 downto 0);sc2 :out std_logic_vector(7 downto 0);sc3 :out std_logic_vector(7 downto 0);sc4 :out std_logic_vector(7 downto 0);sc5 :out std_logic_vector(7 downto 0);sc6 :out std_logic_vector(7 downto 0);sc7 :out std_logic_vector(7 downto 0);sc8 :out std_logic_vector(7 downto 0);end entity xs;architecture b of xs isbeginprocess(kmcnt1,kmcnt2,kmcnt3,kmcnt4,count1,count2,count3,count4,sc1,sc2,sc3,sc4,sc5,sc6,sc7,sc8)begincase kmcnt1 is
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 門窗制作安裝承包合同書
- 行路難主題思想深度解析:九年級語文古詩文閱讀教學教案
- 那場大雨中的溫暖情感作文(8篇)
- 雨天的回憶記一次難忘的雨天經歷作文12篇
- 美容行業皮膚護理知識點測驗題目集
- 農民合作參與農業生產資源整合協議
- 一件感到慚愧的事700字15篇范文
- 八年級籃球比賽活動方案
- 愛你不需要解釋500字11篇
- 公交公司車展活動方案
- 日間手術質量控制管理制度
- 化工企業防火安全管理制度(5篇)
- 基于大數據和云計算技術的電力調度數據采集系統
- 2024年基金應知應會考試試題
- ISO-10358-1993譯文-塑料管材和管件-耐化學性綜合分類表
- 康復進修匯報
- 基于單片機的糧倉環境監測系統設計畢業論文
- 電力行業招投標培訓
- 2024年云南省中考物理試題含答案
- 2024年石家莊市市屬國企業面向社會公開招聘403名管理人員及專業技術人員高頻難、易錯點500題模擬試題附帶答案詳解
- 醫藥代表聘用合同模板
評論
0/150
提交評論