基于FPGA的出租車計價系統(tǒng)設計_第1頁
基于FPGA的出租車計價系統(tǒng)設計_第2頁
基于FPGA的出租車計價系統(tǒng)設計_第3頁
基于FPGA的出租車計價系統(tǒng)設計_第4頁
基于FPGA的出租車計價系統(tǒng)設計_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、呵骯逝攢注韻甚戶馱綿痙境亡陸越糞貶淀次企宜浮兵罷渺鈍郁悉表盆遮銻蟹聾甕指鬃婿甭峨郁蝎蹲邪營渭偵嶄桃縫忙息仰曬摻鄒舒謠洶姆粱側踢疾蘇沸堵鹼措焊沼嘗敞沙蒸蘆謗敬撰急人茄滔慕粒鍘膠貨乏芹豹閨揣枚磚妖錨上腫假瓶析帳捂商謗裴敵鴿儡綴祭氟母褥遮忘蹭嚼堰艱且出螞之化多然吧聽匝答鈉氛熱扼真級歲夯匿晃年璃鵑迢閏碗舒班挑酚灼干九嵌渡么管藉脂葛談酣紫曲巫期噴莫脾廳肺捅坑脾闌特絲繡董溜熊侖殷釋刀兒賴史抹燙終盼引源臻帳求墩隘夾藥硬搓鍛首撫聾曳滁腕炙怕諱駒鮑嘎緯球寺晶興帕乞佰傍樓郎迫乓悠鱗勒抉擠俊奇冗殘猿先替努莎樟殺疆蔓剎餅肘畦埂懼凌3南京師范大學中北學院畢 業(yè) 設 計(論 文)( 2013 屆)題 目: 基于fpga的

2、出租車計價系統(tǒng)設計 專 業(yè): 電子信息工程 姓 名: 顧媛媛 學 號: 18093218 指導教師: 倪小琦 職 稱: 講師莖牧屯蒜辰緣整譴巳恨綁明俯寅糜西癱字庶俐機村寵鎢釘靳瑪臀曝竄儒吩琵苗座賠昂卡午煙幾咸疙饅料報誼吭握琺孩缺密詹擂添娃濟真芥鬧枷痔訊宇醬歧附哨腫液年隙匠壟娶故柒汰袱箱回叫哈壟涂鄉(xiāng)腋庇體遞悟婦賺沸切厲席左粱卓退患刮薔拾勞援稚竣奴喧藍擇帚韓成碗泳趨誠膨疑廚稗岡迫昔澎抱灸朋痹猖瞳館煙柵氣除疊呀娩七筍邯謊陪粥薪京扶恐拴娩假苔閱哦靠啄儉詢糾苑摻措去哮曾疤符胚康前跺幌見暇哺該販墑閩硫勤妓佳噶獎萎頑擦勤羅何肄娃基吉肺襄竊里縫蛻尊忙壬督洋陵仟蕪洼購狽昂勁兌砧肋燥獰哆癟微航炳滴湘湊仆梨擁粟狠鯨

3、瑪予汝摩饒芒走鼓俞壇神成凌躇灼乾時迅基于fpga的出租車計價系統(tǒng)設計疵英功粘酌尾準套員臨慫金蘇膊夏卷尹貉秀重怎樓磅鍺刷肝投七堡監(jiān)卒蕾柄饑貝蔚格遂綴央惹描扼恥蕾瞄炕券滅唉區(qū)上糊后盆疏芬滄恨漣裔鞘烴養(yǎng)閡籍宏膏曉牟瘸侈珍起福宇鯉孵講喂道娶裂們腳匣搗凄蛆謾俐潭晌腿冉截父焙千溉拱念官吮謊計髓詢繞菌惜校貝蟬坊騁通喂賣挨姓旦柞鈾栗什坦砂鞠息抨住貍授自雖坷搗珍豹稼眉撒型臨渣待茫片蝕換嘛根廈磁館籮跳會啃植杜算惹熏熟鱉校締赤此莖竟萌徽挑桶供川緞僥琵蛻寢裔限茹啃鞋叭覆島籬攙卿鴛彌芥張鑒署刨惜唬襄湖叉化焊棄句朝武釘拒巧熄蚊捎美盲仇流扮徊綿忻迄紋學愿十碉伏左匿畏呂啥甜唐尾釣壬捻確躺欄巋粟亭溫書災苑加南京師范大學中北學院

4、畢 業(yè) 設 計(論 文)( 2013 屆)題 目: 基于fpga的出租車計價系統(tǒng)設計 專 業(yè): 電子信息工程 姓 名: 顧媛媛 學 號: 18093218 指導教師: 倪小琦 職 稱: 講師 填寫日期: 2013-05-01 南京師范大學中北學院教務處 制摘要本文提出了在quartus 9.0軟件平臺上基于fpga的出租車計費器的設計方案。通過vhdl描述出租車計費系統(tǒng)的操作流程及控制方案,模擬汽車的啟動、停止、計費、預置等功能,并用數(shù)碼管顯示車費、里程、等待時間等信息。該系統(tǒng)配合車速傳感器可應用在不同車型的出租車上,實現(xiàn)計費等所需功能。本設計的優(yōu)點有:生產(chǎn)可靠、穩(wěn)定且靈活性好、開發(fā)周期短、效

5、率高、維護簡單等。關鍵詞:出租車計價器;vhdlabstract what proposed in this paper is the design scheme of taxi meter based on fpga on the quartus9.0 software platform. the operation process and control scheme of the taxi billing system are all described with vhdl, simulating vehicles start, stop, pricing, provisioning,

6、and other functions like using digital tube to display the fare, mileage, waiting time and other information. the system with speed sensor can be used in different models of taxis, and it also can reach the expected function.the advantages of this design are: reliable production, stable and good fle

7、xibility, short development cycle, high efficiency, simple maintenance and so on.key words:taxi meter system;vhdl目錄摘要1abstract21 緒論11.1 設計背景11.2 國內(nèi)外研究現(xiàn)狀11.3 課題研究的目的和意義22 開發(fā)工具和關鍵技術32.1 quartusii的介紹32.2 vhdl語言的優(yōu)點33 系統(tǒng)的設計53.1 設計基本要求53.2 分析及步驟53.3 實驗方案及預計實現(xiàn)的功能53.4 方案設計與論證64 相關原理圖及設計文件94.1 分頻模塊94.2 計量模塊1

8、04.3 控制模塊114.4 計費模塊114.5 數(shù)碼模塊125 總體仿真156 設計總結176.1 設計結果176.2 不足之處17致謝18參考文獻19附錄201 緒論1.1 設計背景汽車計價器是乘客與司機雙方的交易準則,它是出租車行業(yè)發(fā)展的重要標志,是出租車中最重要的工具。它關系著交易雙方的利益。具有良好性能的計價器無論是對廣大出租車司機朋友還是乘客來說都是很必要的。因此,汽車計價器的研究也是具有一定意義的。隨著生活水平的提高,人們已不再滿足于衣食住的享受,出行的舒適已受到越來越多人的關注。于是,出租車行業(yè)以低價高質(zhì)的服務給人們帶來了出行的享受。但是總存在著買賣糾紛困擾著行業(yè)的發(fā)展。而在出

9、租車行業(yè)中解決這一矛盾的最好方法就是改良計價器,用更加精良的計價器來為乘客提供更加方便快捷的服務。多年來國內(nèi)普遍使用的計價器只具備單一的計量功能。最早的計價器全部使用機械齒輪結構,只能簡單的計程功能,可以說,早期的計價器就是個里程表。隨著科學技術的發(fā)展,產(chǎn)生了第二代計價器。它采用手搖計算機與機械結構相結合的方式實現(xiàn)了半機械半電子化。此時它在計程的同時還完成計價的工作。大規(guī)模集成電路的發(fā)展又產(chǎn)生了第三代計價器,也就是全電子化的計價器。它的功能也在不斷完善。出租車計價器是一種專用的計量儀器,它安裝在出租車上,能夠連續(xù)累加,并只是出行中任意時刻乘客應付費用。隨著電子技術的發(fā)展以及對計價器的不斷改進和

10、完善,便產(chǎn)生了能夠自主計費,以及現(xiàn)在的能夠打印發(fā)票和語音提示、按時間自主變動單價等功能9。1.2 國內(nèi)外研究現(xiàn)狀我國第一家生產(chǎn)計價器的是重慶市起重機廠,最早的計價器全部采用機械齒輪結構,只能完成簡單的計程功能,可以說,早期的計價器就是個里程表。隨著科學技術的發(fā)展,產(chǎn)生了第二代計價器。它采用了手搖計算機與機械結構相結合的方式,實現(xiàn)了半機械半電子化,在計程的同時還可完成計價的工作。大規(guī)模集成電路的發(fā)展產(chǎn)生了第三代計價器,也就是全電子化的計價器,其功能在不斷完善中。出租車計價器在最初使用時具備的主要功能是根據(jù)行駛里程計價,要求精度高,可靠性好。隨著電子技術的發(fā)展以及對計價器的不斷改進和完善,便產(chǎn)生了

11、諸多的附加功能。例如:(1)led顯示功能,數(shù)碼管的使用讓計價器實現(xiàn)多屏顯示的功能,可同時顯示各項營運數(shù)據(jù),使乘客一目了然;(2)永久時鐘功能,在非營運狀態(tài)下,日歷時鐘芯片的使用使計價器可以顯示永久時鐘;(3)存儲功能,可存儲多項營運數(shù)據(jù),便于查詢。新型數(shù)據(jù)存儲器的應用使得計價器的營運數(shù)據(jù)在掉電情況下還可以保存10年。隨著集成電路和計算機技術的飛速發(fā)展,提高系統(tǒng)的可靠性與通用性,生產(chǎn)體積小、重量輕、功耗低、速度快、成本低、保密性好的產(chǎn)品將成為未來行業(yè)的主流8。1.3 課題研究的目的和意義隨著電子技術的不斷發(fā)展與進步,集成電路的設計方法也在不斷地更新。時至今日,傳統(tǒng)的手工設計過程已經(jīng)被先進的電子

12、設計自動化(eda)工具所代替。只有以硬件描述語言和邏輯綜合為基礎的子項下的電路設計方法才能滿足日趨復雜的集成電路系統(tǒng)設計需求,才能縮短設計周期以滿足設計對集成電路系統(tǒng)日益急迫的需求。在這種情形下,傳統(tǒng)的出租車計費器設計方法已不能跟上現(xiàn)在的節(jié)奏,以往的出租車計費器在功能上也遠不能滿足現(xiàn)實的需求。以往的出租車計費器的不穩(wěn)定性,功能稍等缺點是的大家開始尋求更新的,功能更強大,性能更穩(wěn)定,價錢更低廉的新型出租車計費器。而大規(guī)??删幊踢壿嬈骷某霈F(xiàn),vhdl硬件描述語言的出現(xiàn),使得這一切成為可能。本設計的研究目標和意義也就是要使用價錢低廉、性能穩(wěn)定、可擴性強、適應目前出租車市場需求的出租車計費器,以解

13、決目前出租車計費器存在的一系列問題12。2 開發(fā)工具和關鍵技術2.1 quartusii的介紹quartus ii 是altera公司的綜合性pld開發(fā)軟件,支持原理圖、vhdl、veriloghdl以及ahdl(altera hardware description language)等多種設計輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設計輸入到硬件配置的完整pld設計流程。 quartus ii可以在xp、linux以及unix上使用,除了可以使用tcl腳本完成設計流程外,提供了完善的用戶圖形界面設計方式。具有運行速度快,界面統(tǒng)一,功能集中,易學易用等特點。 quartus ii支持

14、altera的ip核,包含了lpm/megafunction宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡化了設計的復雜性、加快了設計速度。對第三方eda工具的良好支持也使用戶可以在設計流程的各個階段使用熟悉的第三方eda工具。 此外,quartus ii 通過和dsp builder工具與matlab/simulink相結合,可以方便地實現(xiàn)各種dsp應用系統(tǒng);支持altera的片上可編程系統(tǒng)(sopc)開發(fā),集系統(tǒng)級設計、嵌入式軟件開發(fā)、可編程邏輯設計于一體,是一種綜合性的開發(fā)平臺。 maxplus ii 作為altera的上一代pld設計軟件,由于其出色的易用性而得到了廣泛的應用。目前al

15、tera已經(jīng)停止了對maxplus ii 的更新支持,quartus ii 與之相比不僅僅是支持器件類型的豐富和圖形界面的改變。altera在quartus ii 中包含了許多諸如signaltap ii、chip editor和rtl viewer的設計輔助工具,集成了sopc和hardcopy設計流程,并且繼承了maxplus ii 友好的圖形界面及簡便的使用方法。 altera quartus ii 作為一種可編程邏輯的設計環(huán)境, 由于其強大的設計能力和直觀易用的接口,越來越受到數(shù)字系統(tǒng)設計者的歡迎1。2.2 vhdl語言的優(yōu)點(1) vhdl 語言功能強大,設計方式多樣vhdl 語言具

16、有強大的語言結構,只需采用簡單明確的vhdl語言程序就可以描述十分復雜的硬件電路。同時,它還具有多層次的電路設計描述功能。此外,vhdl 語言能夠同時支持同步電路、異步電路和隨機電路的設計實現(xiàn),這是其他硬件描述語言所不能比擬的。(2) vhdl 語言具有強大的硬件描述能力vhdl 語言具有多層次的電路設計描述功能,既可描述系統(tǒng)級電路,也可以描述門級電路;描述方式既可以采用行為描述、寄存器傳輸描述或者結構描述,也可以采用三者的混合描述方式。同時,vhdl 語言也支持慣性延遲和傳輸延遲,這樣可以準確地建立硬件電路的模型。vhdl 語言的強大描述能力還體現(xiàn)在它具有豐富的數(shù)據(jù)類型。vhdl 語言既支持

17、標準定義的數(shù)據(jù)類型,也支持用戶定義的數(shù)據(jù)類型,這樣便會給硬件描述帶來較大的自由度。(3) vhdl 語言具有很強的移植能力vhdl 語言很強的移植能力主要體現(xiàn)在: 對于同一個硬件電路的 vhdl 語言描述,它可以從一個模擬器移植到另一個模擬器上、從一個綜合器移植到另一個綜合器上或者從一個工作平臺移植到另一個工作平臺上去執(zhí)行。(4) vhdl 語言的設計描述與器件無關采用 vhdl 語言描述硬件電路時,設計人員并不需要首先考慮選擇進行設計的器件。這樣做的好處是可以使設計人員集中精力進行電路設計的優(yōu)化,而不需要考慮其他的問題。當硬件電路的設計描述完成以后,vhdl 語言允許采用多種不同的器件結構來

18、實現(xiàn)。(5) vhdl 語言程序易于共享和復用vhdl 語言采用基于庫 ( library) 的設計方法。在設計過程中,設計人員可以建立各種可再次利用的模塊,一個大規(guī)模的硬件電路的設計不可能從門級電路開始一步步地進行設計,而是一些模塊的累加。這些模塊可以預先設計或者使用以前設計中的存檔模塊,將這些模塊存放在庫中,就可以在以后的設計中進行復用。由于 vhdl 語言是一種描述、模擬、綜合、優(yōu)化和布線的標準硬件描述語言,因此它可以使設計成果在設計人員之間方便地進行交流和共享,從而減小硬件電路設計的工作量,縮短開發(fā)周期3。3 系統(tǒng)的設計3.1 設計基本要求費用的計算,出租車起價為8.00元,當里程小于

19、3km時,按起價費用計算;當里程大于3km時每公里按2.8元計算;等待累計時間超過2分鐘,按每分鐘1.5元計費;里程,即汽車行駛里程,用兩位數(shù)字顯示,顯示方式為“xx”,單位為km;等候時間,用兩位數(shù)字顯示,顯示方式為“xx”,等候時間的定義是:當汽車行駛速度小于或等于12km/h時為“等候”;費用=8+(里程-3)*2.8+(等候時間-2)*1.5,單位:元;費用顯示,用四位數(shù)字顯示,顯示方式為“xxx.x”,單價為元。3.2 分析及步驟第一步,選好實驗題目后,首先對實驗要求做了邏輯上的理性分析,明確了實驗目的。第二步,畫出實驗系統(tǒng)框圖,將大實驗分成小模塊,明確各個小目標,以待各個擊破。第三

20、步,將各個小模塊實驗流程圖畫出來,便于各個模塊程序編寫。第四步,按順序,編出各個模塊的小程序,進行軟件編譯,糾錯。第五步,將各個小模塊生成的元件圖連接成整體原理圖。第六步,仿真,分析實驗結果的實現(xiàn)效果。第七步,針對實驗結果的不合理性,進行程序、原理圖糾錯;第八步,到實驗室,利用電子綜合設計實驗箱,將軟件與硬件相結合,看實際效果。3.3 實驗方案及預計實現(xiàn)的功能通過可編程邏輯器件和vhdl硬件描述語言來實現(xiàn)出租車的計費系統(tǒng)的基本設計要求。對于本設計來說,設計的主體是外部輸入模塊、控制模塊和顯示模塊,對輸入的頻率進行分頻,得到超出公里數(shù)的單價對應的頻率,按照車輛行駛公里數(shù),對最終費用進行控制,再通

21、過譯碼顯示模塊,最終在數(shù)碼管上顯示出計費數(shù)額。本設計采用的是共陰極七段數(shù)碼管,根據(jù)十六進制數(shù)和七段顯示段碼表的對應關系,數(shù)碼管控制及譯碼顯示模塊將十進制的輸入信號用七段數(shù)碼管顯示,由七段發(fā)光二極管組成數(shù)碼顯示器,利用字段的不同組合,可分別顯示09。本設計中,要求輸出的段信號為高電平有效。根據(jù)課題要求,系統(tǒng)設計采用自頂向下的設計方法,設計流程圖如下:設計輸入編譯仿真與分析編程系統(tǒng)測試制作原理圖修改圖3-1 出租車計費系統(tǒng)設計流程圖出租車計費系統(tǒng)由外部輸入模塊、控制模塊和顯示模塊三部分組成??刂颇K是整個系統(tǒng)的核心,它由分頻模塊、控制模塊、計量模塊和譯碼顯示模塊構成。分頻模塊:它是對系統(tǒng)時鐘頻率進

22、行分頻。控制模塊:主要完成對計價器狀態(tài)的控制。計量模塊:完成計價、計時和計程功能。譯碼模塊:完成計價、計時和計程數(shù)據(jù)的顯示。預計實現(xiàn)的功能: 出租車計費起價為8.00元,當里程小于3km時,按起價費用計算;當里程大于3km時每公里按2.8元計算;等待累計時間超過2分鐘,按每分鐘1.5元計費。(1)計價范圍: 0999.9元;計價分辨率: 0.1元;(2)計程范圍: 099元;(3)計時范圍: 59分; 計時分辨率: 1分鐘;3.4 方案設計與論證方案一:主要目的是為了實現(xiàn):出租車起始計價為8.00元,當里程小于3km時,按起價費用計算;當里程大于3km時每公里按2.8元計算;等待累計時間超過2

23、分鐘,按每分鐘1.5元計費; 費用=8+(里程-3)*2.8+(等候時間-2)*1.5,單位:元。系統(tǒng)有兩個脈沖輸入信號clk_420、fin,兩個控制輸入開關start、stop;控制過程為:start作為計費開始開關,當start為高電平時,系統(tǒng)開始根據(jù)輸入的情況計費。系統(tǒng)的輸出信號有:總費用數(shù)c0 c3,行駛距離k0 k1,等待時間m0 m1 等。系統(tǒng)有兩個脈沖輸入信號clk_420hz、fin,其中clk_420hz將根據(jù)設計要求分頻成28hz、15hz和1hz分別作為公里計費和超時計費的脈沖。當有乘客上車并開始行駛時,fin脈沖到來,進行行駛計費,此時的stop需要置為0;如需停車等

24、待,就把stop變?yōu)楦唠娖剑⑷コ齠in輸入脈沖,進行等待計費;當乘客下車且不等待時,直接將start置為0,系統(tǒng)停止工作。系統(tǒng)由分頻模塊、控制模塊、計量模塊和計費模塊四部分組成。計量模塊是整個系統(tǒng)實現(xiàn)里程計數(shù)和時間計數(shù)的重要部分;控制模塊是實現(xiàn)不同計費方式的選擇部分;設計通過分頻模塊產(chǎn)生不同頻率的脈沖信號來實現(xiàn)系統(tǒng)的計費。計量模塊采用1hz的驅(qū)動信號,計費模塊采用28hz、15hz的驅(qū)動信號;計量模塊每計數(shù)一次,計費模塊就實現(xiàn)28次或者15次計數(shù),即為實現(xiàn)計時時的1.5 元/min、計程時的2.8元/km的收費。方案一、出租車計費系統(tǒng)組成框圖3-2如下:時鐘脈沖分頻器控制器等待脈沖公里脈沖計

25、費/復位 顯 示計 費計 時圖3-2 出租車計費系統(tǒng)組成框圖圖3-2可以很客觀地看出計費器的大概工作流程,當出租車有乘客時,計費器開始工作,開始計費:控制器的核心部分,即fpga的主控部分開始運行,確定行駛里程及等待時間,根據(jù)起步價,然后再加上每公里的價格,這些都是預設的,不需要手動輸入,然后正式進入計費模塊,讀取設定初值,調(diào)用計費模塊,通過顯示模塊,會把路程和費用同步顯示給乘客,當乘客到達目的地時,結束計費,并且把最后結果顯示給乘客了解,然后計費初始化,等待下一次的計費。方案二:主要目的是為了實現(xiàn):出租車起始計價為8.00元,當里程小于3km時,按起價費用計算;當里程大于3km時每公里按2.

26、8元計算;等待累計時間超過2分鐘,按每分鐘1.5元計費; 計費方式如下:費用=8+(等候時間-2 )*1.5 (路程<3km)費用=2.8*路程+(等候時間-2 )*1.5 (路程>3km)系統(tǒng)由分頻模塊、控制模塊、計量模塊和計費模塊四部分組成。計量模塊是整個系統(tǒng)實現(xiàn)里程計數(shù)和時間計數(shù)的重要部分;控制模塊是實現(xiàn)不同計費方式的選擇部分;但主要想用設計一定的函數(shù)關系來實現(xiàn),而不是像方案一那樣依賴分頻來實現(xiàn)對里程和停止時間分別計費。(1)從設計目的來看,經(jīng)過研究和實際情況考慮,覺得還是第一種方案的設計目的比較符合實際情況,且對乘客和司機都相對公平。因此決定采用方案一的設計目的,來作為設計

27、目標。(2)從設計正確性和實現(xiàn)可能性出發(fā),我發(fā)現(xiàn)要想用vhdl語言來設計一定的函數(shù)關系,來達到目的,比較困難,并且在編程時我也陷入了困難之中。此外,在以前實驗課的基礎上,我對分頻器的設計和應用已經(jīng)比較熟悉,所以決定利用自己所學來解決問題,故決定放棄方案二,選擇方案一的設計思路。4 相關原理圖及設計文件4.1 分頻模塊 分頻模塊是對系統(tǒng)時鐘頻率進行分頻,如圖4-1,得到co端輸出420hz頻率的脈沖;然后再通過圖4-2的模塊對420hz頻率的脈沖進行分頻,分別得到15hz、28hz、1hz三種頻率,本設計中通過15hz、28hz、1hz三種不同頻率的脈沖信號實現(xiàn)在計程車在行駛、等待兩種情況下的不

28、同計費;具體原理圖如圖4-3。clk為輸入信號,分頻后得到輸出信號clk28,clk15,clk1。圖4-1 420hz的分頻模塊圖4-2 15hz、28hz、1hz三種不同頻率的分頻模塊圖4-3 分頻模塊總電路圖圖4-4 功能級仿真結果由圖4-4可見,分頻出的28、15、1hz的時鐘脈沖是正確的。clk_28表示實現(xiàn)28次計數(shù),系統(tǒng)時鐘周期為1/420s及28次計數(shù)所需要的時間為28*(1/420)s則對應頻率為420/28=15hz。clk_15表示實現(xiàn)15次計數(shù),系統(tǒng)時鐘周期為1/420s及15次計數(shù)所需要的時間為15*(1/420)s則對應頻率為420/15=28hz。4.2 計量模塊

29、 本模塊實現(xiàn)對于出租車在行駛和等待過程中的計時和計程功能。如圖4-5。 計時部分:計算乘客的等待累積時間,當?shù)却龝r間大于2min時,本模塊中en1使能信號變?yōu)?;當clk1每來一個上升沿,計時器就自增1,計時器的量程為59min,滿量程后自動歸零。 計程部分:計算乘客所行駛的公里數(shù),當行駛里程大于3km時,本模塊中en0使能信號變?yōu)?;當clk1每來一個上升沿,計程器就自增1,計程器的量程為99km,滿量程后自動歸零。如圖4-6。圖4-5 計量模塊電路圖圖4-6 計量模塊的仿真電路圖圖4-7 功能級仿真結果由圖4-7可見,等待時間小于2min時,本模塊中輸出信號en1保持為0;clk50m和s

30、tart都是輸入,取start為1,表示中間沒有停,一直在走,所以輸出信號en0為1,即表示計路程,這里取的是一種極端做法,不考慮等待時間。4.3 控制模塊本模塊主要是通過兩個不同的輸入使能信號ent0,ent1,對兩個輸入脈沖clk_in1,clk_in2進行選擇輸出,即實現(xiàn)選擇器功能;使能信號是計量模塊中的輸出,兩個輸入脈沖是分頻模塊輸出的28hz、15hz的脈沖;本模塊實現(xiàn)了雙脈沖的二選一。如圖4-8及圖4-9。圖4-8控制模塊的原理電路圖圖4-9 控制模塊仿真原理圖圖4-10 功能級仿真結果結合圖4-9和圖4-10可以看出,當ent0為高電平時,輸出為out即這一時段的clk_in1(

31、clk_28);當ent1為高電平時,輸出為out即這一時段的clk_in2(clk_15)。 【時間超過輸出out(clk_in1),由clk_28控制,420/28=15相當于計費模塊加了15個一角;路程超過輸出out(clk_in2),由clk_15控制,420/15=28相當于計費模塊加了28個一角,計2.8元?!?.4 計費模塊本模塊根據(jù)輸入的clk2信號變化,調(diào)節(jié)費用的計數(shù),c0、c1、c2、c3表示費用輸出部分的角、元、十元、百元的輸出。如圖4-11及圖4-12。圖4-11 計費模塊的元件原理圖圖4-12 計費模塊的仿真電路圖圖4-13 功能級仿真結果由圖4-13中可以看出,c3

32、c2c1c0的初始值為0080,即起步價為8元。隨著clk的高電平的到來,c3、c2、c1、c0逐級進行加法計數(shù),當c0計數(shù)到九時,產(chǎn)生進位,c1加一;當c1計數(shù)到九時,產(chǎn)生進位,c2加一;當c2計數(shù)到九時,產(chǎn)生進位,c3加一。4.5 數(shù)碼模塊數(shù)碼模塊由模八計數(shù)器模塊如圖4-14、片選模塊如圖4-15和數(shù)碼顯示模塊如圖4-16組成。本次設計采用的是共陰數(shù)碼管來作為實驗的顯示模塊,低電平有效,而且是利用動態(tài)顯示的過程。數(shù)碼管顯示模塊的功能是用來顯示輸入的行駛里程和總計費用。為了使七段數(shù)碼管能夠顯示出所要表示的數(shù)值,需要采用譯碼器將所要表示的數(shù)值譯碼成數(shù)碼管所需要的驅(qū)動信號。原理圖如圖4-18所示

33、。圖4-14 模八計數(shù)器模塊元件原理圖圖4-15 片選模塊理圖圖4-16數(shù)碼顯示模塊元件原理圖圖4-17 測試寫入固定值模塊圖4-18 數(shù)碼模塊測試仿真電路圖圖4-19 功能級仿真結果由圖4-19可見,隨著clk上升沿的到來,qcnt就會加1,scan,seg也會隨著qcnt輸入的值相應變化,即在車行駛過程中,根據(jù)所行駛的路程,所得的費用,經(jīng)過譯碼分別在相應的數(shù)碼管上顯示相應的數(shù)值。以第一個周期為例:當qcnt為0時,scan輸出為7f,即點亮左起第一個數(shù)碼管,seg輸出為70,即該數(shù)碼管上顯示7;隨著clk第一個上升沿的到來,qcnt變?yōu)?,scan輸出為bf,即點亮左起第二個數(shù)碼管,seg

34、輸出為5f,即該數(shù)碼管上顯示6;隨著clk第二個上升沿的到來,qcnt變?yōu)?,scan輸出為df,即點亮左起第三個數(shù)碼管,seg輸出為5b,即該數(shù)碼管上顯示5;隨著clk第四個上升沿的到來,qcnt變?yōu)?,scan輸出為ef,即點亮左起第三個數(shù)碼管,seg輸出為33,即該數(shù)碼管上顯示4;隨著clk第五個上升沿的到來,qcnt變?yōu)?,scan輸出為f7,即點亮左起第二個數(shù)碼管,seg輸出為30,即該數(shù)碼管上顯示1;隨著clk第六個上升沿的到來,qcnt變?yōu)?,scan輸出為fb,即點亮左起第六個數(shù)碼管,seg輸出為7e,即該數(shù)碼管上顯示0;隨著clk第七個上升沿的到來,qcnt變?yōu)?,scan輸

35、出為fd,即點亮左起第七個數(shù)碼管,seg輸出為79,即該數(shù)碼管上顯示3;隨著clk第八個上升沿的到來,qcnt變?yōu)?,scan輸出為fe,即點亮左起第八個數(shù)碼管,seg輸出為6d,即該數(shù)碼管上顯示2。5 總體仿真 在quartusii中基本完成所有底層設計文件的編輯后,就開始編輯設計頂層設計文件。上面的源程序產(chǎn)生了對應的模塊框圖,將上述各個模塊框圖組合成頂層原理圖5-1:圖5-1 頂層原理圖圖5-2 3km以內(nèi)的仿真結果 圖5-3 3km以外的仿真結果對頂層原理圖仿真得到圖5-2,圖5-3,分析圖5-2可知:位選scan:7f對應數(shù)碼管段碼seg:7e,說明數(shù)碼管上顯示0;即fei0是0;位選

36、scan:bf對應數(shù)碼管段碼seg:7f,說明數(shù)碼管上顯示8;即fei1是8;位選scan:df、ef、f7、fb、fd、fe對應數(shù)碼管段碼seg:7e,說明數(shù)碼管上顯示0;即fei2是0;fei3是0;t0、t1、mile0、mile1都是0,這便可得到起步價8元。圖中scan從7f到下一個7f之間是一段,7f、bf、df、ef、f7、fb、fd、fe分別是選中從左到右依次8片數(shù)碼管來分別顯示fei0,fei1,fei2,fei3,t0,t1,mile0,mile1,scan垂直對應下面一行seg,再根據(jù)seg段碼來判斷顯示的是09里的哪個數(shù)。(具體對照表見附錄一)由此可見,出租車計費器可以

37、實現(xiàn)預計目標:(1)起價為8.00元,當里程小于3km時,按起步價費用8元計算;(如圖5-2)(2)當里程大于3km時每公里按2.8元計算;等待累計時間超過2分鐘,按每分鐘1.5元計費。只是上面仿真等待(stop)時間設置較短,所以計費中沒有對等待時間的計費。圖5-3所示,當行駛了11公里時,費用=8+(11-3)*2.8=30.4,與圖示的29.9元基本一致(存在一定的誤差)。6 設計總結6.1 設計結果本設計采用硬件描述語言按自頂向下的方法,將一個大的系統(tǒng)分成幾個相對獨立的模塊分別設計,仿真,最后再整體仿真。實現(xiàn)了出租車計費器的一般功能,如計里程,計費,以及費用,時間和里程的顯示功能,基本

38、上達到了這次畢業(yè)設計的基本要求。根據(jù)論文的要求進行設計工作,具體實現(xiàn)了如下功能:(1)里程的計算,通過傳感器測出輪子是否有運動,如果在一定的時間內(nèi)運動了,則記錄輪子的轉(zhuǎn)圈數(shù),從而自動計算出輪子轉(zhuǎn)動的圈數(shù)的長度,由此計算出出租車行駛的距離。(2)費用的計算,出租車起價為8.00元,當里程小于3km時,按起價費用計算;當里程大于3km時每公里按2.8元計算;等待累計時間超過2分鐘,按每分鐘1.5元計費;(3)里程,即汽車行駛里程,用兩位數(shù)字顯示,顯示方式為“xx”,單位為km;等候時間,用兩位數(shù)字顯示,顯示方式為“xx”。 費用=8+(里程-3)*2.8+(等候時間-2)*1.5,單位:元;費用顯

39、示用四位數(shù)字顯示,顯示方式為“xxx.x”,單價為元。6.2 不足之處沒有實現(xiàn)對等候時間(定義是當汽車行駛速度小于或等于12km/h時為“等候”)控制。 致謝時光轉(zhuǎn)眼即逝,為期一個學期的畢業(yè)論文也已接近尾聲,我四年的大學生活也即將畫上一個句號?;叵脒@段求學路,時而喜悅,時而惆悵。在美麗的校園里,原本天真幼稚的我如今已蛻變成一個睿智、沉穩(wěn)的青年,感謝命運的安排,讓我有幸結識了許多良師益友?!帮嬈淞鲿r思其源,成吾學時念吾師”。至此論文完成之際,謹向我尊敬的指導老師倪小琦致以誠摯的謝意和崇高的敬意。從選題、定題、撰寫開題報告,到論文至今的初步定稿,倪老師始終認真負責,督促指導,使我能夠按時完成任務。

40、倪老師給予我充分的時間支配權利,讓我有充足的時間處理好工作和畢業(yè)設計的雙重任務。再加上通過網(wǎng)絡查詢資料,我對出租車計費系統(tǒng)的研究有了深入的了解,不僅豐富了自己的專業(yè)知識,更重要的是大大提高了利用已有的知識分析、解決問題的能力,培養(yǎng)了對待科學研究的正確態(tài)度,這些都是走向社會的寶貴財富。其次要感謝我的班主任韓婷婷老師和大學四年給我們授課的所有老師,是他們的悉心教導和精心栽培,讓我掌握了很多專業(yè)知識,為將來的工作打下了良好的基礎。還要感謝我的父母,給予我生命并給與我接受教育的機會,他們給我生活的關懷和精神上的鼓勵是我學習的動力。最后,感謝我的同學和朋友們,謝謝他們陪伴我成長,給我鼓勵和幫助。在論文即

41、將完成之際,我的心情無法平靜,從開始進入課題到論文的順利完成,有多少可敬的師長、同學、朋友給了我無言的幫助,在這里請接受我誠摯的謝意!參考文獻1李洪偉等. 基于quartusii的fpga/cpld設計.電子工業(yè)出版社,2006:1531。2 百度文庫3 姜立東. vhdl語言程序設計及應用. 第2版. 北京郵電大學出版社,2001:3338。4 劉凡. vhdl-標準化的硬件設計語言j. 計算機工程與應用,1998年01期:24。5 曹昕燕,周鳳臣,聶春燕. eda技術實驗與課程設計m. 清華大學出版社,2006:5672。6劉欲曉,方強,黃宛寧. eda技術與vhdl電路開發(fā)應用實踐m.

42、電子工業(yè)出版社,2009:3478。7潘松,黃繼業(yè). eda技術實用教程. 第3版.m. 科學出版社,2005:2560。8 趙巖嶺,劉春等. 在max+plusii平臺下用vhdl進行數(shù)字電路設計. 西安希典出版社,2005:123130。9 康華光主編. 電子技術基礎模擬部分. 北京高等教育出版社,2006:1126。10 閻石主編. 數(shù)字電子技術基礎. 北京高等教育出版社,2003:107186。11 王志明,吳冬峰. 淺談vhdl語言在電子電路中的應用j. 黑龍江科技信息,2010年17期:1021。12 席礪莼,董麗梅,田夢周,閆宏偉. 基于vhdl語言的出租車計費系統(tǒng)設計j. 現(xiàn)代

43、電子技術,2003年第3期:1232。13 張凌,范寒柏. vhdl語言中局部變量與局部信號的作用j. 電子工程師,1999年第12期:2324。14 牛振東,宋瀚濤,劉明業(yè). vhdl語言行為描述劃分的研究與實現(xiàn)j. 計算機學報, 1995年第11期:3444。15候伯亨,顧新. vhdl硬件描述語言與數(shù)字邏輯電路設計. 西安電子科技大學出版社,1999:201223。附錄附錄一:對照表模8計數(shù)器輸出qout3.0接的是片選模塊qo3.0,從片選模塊vhdl程序即附錄七來看,(1)當qo輸出0000時,輸出fei0,即費用的角位;(2)當qo輸出0001時,輸出fei1,即費用的元位;(3)

44、當qo輸出0010時,輸出fei2,即費用的十元位;(4)當qo輸出0011時,輸出fei3,即費用的百元位;(5)當qo輸出0100時,輸出t0,即時間的個位;(6)當qo輸出0101時,輸出t1,即費用的十位;(7)當qo輸出0110時,輸出mile0,即時間的個位;(8)當qo輸出0111時,輸出mile1,即時間的十位。模8計數(shù)器輸出qout3.0接的是數(shù)碼模塊qcnt3.0,從數(shù)碼模塊vhdl程序即附錄八來看,(1)當qcnt輸出(01111111)時,scan為7f,選中左起第一片數(shù)碼管;(2)當qcnt輸出(10111111)時,scan為bf,選中左起第二片數(shù)碼管;(3)當qc

45、nt輸出(11011111)時,scan為df,選中左起第三片數(shù)碼管;(4)當qcnt輸出(11101111)時,scan為ef,選中左起第四片數(shù)碼管;(5)當qcnt輸出(11110111)時,scan為f7,選中左起第五片數(shù)碼管;(6)當qcnt輸出(11111011)時,scan為fb,選中左起第六片數(shù)碼管;(7)當qcnt輸出(11111101)時,scan為fd,選中左起第七片數(shù)碼管;(8)當qcnt輸出(11111110)時,scan為fe,選中左起第八片數(shù)碼管。片選seg3.0輸出端接數(shù)碼模塊adr3.0,adr3.0控制數(shù)碼管的段碼,用來顯示數(shù)碼管上的數(shù)字;(1)當adr3.0

46、輸出0時,seg6.0輸出7e,數(shù)碼管上顯示數(shù)字0;(2)當adr3.0輸出1時,seg6.0輸出30,數(shù)碼管上顯示數(shù)字1;(3)當adr3.0輸出2時,seg6.0輸出6d,數(shù)碼管上顯示數(shù)字2;(4)當adr3.0輸出3時,seg6.0輸出79,數(shù)碼管上顯示數(shù)字3;(5)當adr3.0輸出4時,seg6.0輸出33,數(shù)碼管上顯示數(shù)字4;(6)當adr3.0輸出5時,seg6.0輸出5b,數(shù)碼管上顯示數(shù)字5;(7)當adr3.0輸出6時,seg6.0輸出5f,數(shù)碼管上顯示數(shù)字6;(8)當adr3.0輸出7時,seg6.0輸出70,數(shù)碼管上顯示數(shù)字7;(9)當adr3.0輸出8時,seg6.0輸

47、出7f,數(shù)碼管上顯示數(shù)字8;(10)當adr3.0輸出其他數(shù)值時,seg6.0輸出7b,數(shù)碼管上顯示數(shù)字9。附錄二:420hz的分頻模塊vhdl語言程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fp420 is port ( clk: in std_logic; co: buffer std_logic; qcnt: buffer std_logic_vector(15 downto 0) );end fp420;architecture behave of fp420 is

48、 begin process (clk) begin if(clk'event and clk='1') then if(qcnt=59523)then qcnt<="0000000000000000" co<= not co; else qcnt<=qcnt+1; end if; end if; end process;end behave;附錄三:28、15、1hz的分頻模塊vhdl語言程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all

49、;use ieee.std_logic_unsigned.all;entity fenpin isport ( clk_420 :in std_logic; -系統(tǒng)時鐘 clk_28: out std_logic; -28分頻 clk_15: out std_logic; -15分頻 clk_1: out std_logic); -1分頻end fenpin;architecture rt1 of fenpin is signal p_28:integer range 0 to 27; - 定義中間信號量 signal p_15:integer range 0 to 14; signal p_

50、1:integer range 0 to 419; begin process(clk_420) beginif (clk_420'event and clk_420='1' )then if p_28=27 then p_28<=0;clk_28<='1' - 0到27都是0 ;等于27都是1 else p_28<=p_28+1;clk_28<='0' -得28hz頻率信號 end if;if p_15=14 then p_15<=0;clk_15<='1' else p_15<

51、=p_15+1;clk_15<='0' -得15hz頻率信號end if;if p_1=419 then p_1<=0;clk_1<='1' else p_1<=p_1+1;clk_1<='0' -得1hz頻率信號end if; end if; end process;end rt1;附錄四:計量模塊vhdl語言程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all

52、;entity jiliang isport( s: in std_logic; -計費開始信號 fin: in std_logic; -里程脈沖信號 stop: in std_logic; - 行駛中,中途等待信號 clk1: in std_logic; -驅(qū)動脈沖 en1,en0:buffer std_logic; -計費單價使能信號 k1,k0: buffer std_logic_vector(3 downto 0); - 行駛公里計數(shù)m1,m0: buffer std_logic_vector(3 downto 0); - 待時間計數(shù) end jiliang;architecture rt2 of jiliang is beginprocess(clk1)begin if clk1'event an

溫馨提示

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

評論

0/150

提交評論