[畢業論文]基于FPGA的電話計費器設計_第1頁
[畢業論文]基于FPGA的電話計費器設計_第2頁
[畢業論文]基于FPGA的電話計費器設計_第3頁
[畢業論文]基于FPGA的電話計費器設計_第4頁
[畢業論文]基于FPGA的電話計費器設計_第5頁
已閱讀5頁,還剩13頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、信息學院eda技術及應用課程論文題目:基于fpga的電話計費器設計 作 者 班 級 系 別 信息學院 專 業 自動化 完成時間 2010年12月20日 1 緒論1.1 fpga發展及現狀隨著先進科技的發展,計算機仿真與應用技術也在發生著日新月異的變化。在計算機技術實現重大飛躍的同時,復雜可編程邏輯器件(cpld)的應用逐步滲透到生產與生活各個方面,給人們生活帶來了極大方便。因其性能的不斷提高,應用范圍也越來越廣。1.2 電話計費器相關背景在商品經濟迅猛發展中,人們對電話的需求日益增長,大力發展和普及公用電話,以滿足人們日常生活以及流動人口辦理業務之需已成為當前市場趨勢。在公用電話業務發展中,由

2、于諸多原因,計費不準的現象屢見不鮮,相關管理混亂,給人們生活帶來極大不便。為了使電話計費更加準確,本文將介紹一種采用fpga設計實現電話計費器的方法。1.3 基于fpga實現電話計費器的方案設計基本原則本文將針對自動計費電話機為例,給出方案設計基本原則如下:1. 金能夠通過選擇增減的方式快速設定卡內的余額(最大顯示定為200元);2. 能夠設計通話的種類(如按13鍵選擇),并能夠根據打電話的種類和通話時間進行金額的扣除:1為市話(0.1元/分鐘),2為國內長途(1元/分鐘),3為特殊種類電話(1.6元/分鐘);3. 能進行余額不足的報警:市話低于0.5元報警;國內長途低于5元報警;國際長途低于

3、10元報警;特殊電話低于8元報警;并且當余額不足以通話一分鐘即停止通話。因為在設計中只對電話機的計費系統進行設計,而沒有涉及到電話通話的信令過程,因此通話類型必須由外部輸入。1.4 論文主要完成的工作本文主要完成對電話計費系統的fpga設計,其中包括系統組成框圖、相關電路設計(包括控制與計費模塊、顯示模塊、報警模塊、頂層電路圖)、系統仿真三大部分。設計語言采用verilog_hdl硬件描述語言。2 系統的硬件設計2.1電話計費器的控制要求為了使電話計費器能夠正常穩定運行,在設計時應考慮到如下幾點:1. 在插入電話卡的同時,電話計費器的控制模塊開始工作;2. 電話計費控制器與正常通話計費、計時模

4、塊相連,以實現整個系統的計費計時功能;3. 如果卡內余額不足,報警模塊將實現報警功能,報警模式采用聲光報警;4. 計費計時模塊與顯示模塊相連,顯示模塊應實現對通話時間以及對話費余額的顯示功能。其計費一般過程可概括為:用戶插入電話卡整個系統開始運行顯示卡內余額。由于沒有信號接受器,該系統將由外部輸入通話類型(市話、國內/國際長途、特殊電話等)。如果選擇通話,計費系統將話費余額與所選通話類型計費率進行比較。如果話費余額小于費率值,則禁止通話且報警提示;如果話費余額大于等于通話二分鐘門限, 是正常通話狀態, 通話指示燈亮;如果話費余額大于或等于費率值并且小于通話二分鐘門限,則進入通話報警狀態,表示通

5、話時間不足一分鐘,通話報警燈亮,通話指示燈閃爍且聲音報警。根據電話計費器的工作過程,本系統采用分層次化、分模塊的方式設計,本系統設計的系統組成框圖如圖1所示三個模塊:控制與計費模塊、顯示模塊和報警模塊。如圖中虛線框所示。控制與計費模塊完成計費功能并產生控制信號,控制另外兩個模塊。顯示模塊動態顯示通話時間與通話余額計費等信息。報警模塊是根據通話中出現的報警信息,及時給出聲、光或者聲光同時報警。圖1電 話 計費 控 制器時 鐘正 常 通 話計 費 計 時模 塊顯 示方 式通話計時顯示話費余額顯示余 額 不 足 聲 光報 警插入電話卡2.2方案設計和功能分割本系統采用層次化、模塊化的設計方法,設計順

6、序采用自底向上設計。首先實現系統總體框圖(圖1)中各子模塊然后由頂層模塊調用各子模塊實現整個系統。為了便于bcd碼顯示,這里時間和費用計數器均采用十進制表示。2.3各功能模塊的設計和實現2.3.1 控制與計費模塊 該模塊的主要功能是控制電話的計費和報警,是整個設計的核心。控制與計費模塊輸入信號有:插卡輸入信號enable(準備通話)、mode2:0(通話類型選擇與充值信號)、clk(系統工作的秒脈沖時鐘信號)。具體工作過程為:初始化顯示上次卡內的余額,且enable為無效電平,當用戶按下enable鍵,使之成為有效電平時電路進入工作狀態。首先判斷通話類型mode2:0(國內長途,市話,特殊電話

7、)。若mode2:0=3b0xx,表示進入通話狀態。計費系統將余額與所選取的通話類型計費率(每分鐘所收取的費用)進行比較。如果話費余額balance小于費率fee值,則禁止通話且聲音報警;如果話費余額balance 大于等于門限limit(只能通話二分鐘門限),是正常通話狀態,通話指示燈亮;如果話費余額balance大于等于費率fee值并且balance小于limit,則進入通話報警狀態,表示通話時間不足二分鐘。通話報警燈亮,通話指示燈閃爍且聲音報警。計費過程:當下一分鐘到來且電路工作在限制通話或正常工作狀態,則在秒脈沖的下降沿余額發生改變,并將改變后的值輸出至顯示模塊。2.3.2 顯示模塊該

8、模塊的主要功能是實時顯示通話時間和話費余額。余額顯示采用數據流方式描述;時間顯示由于采用bcd 碼顯示,每一位的有效狀態為09;同時存在60分頻問題,所以采用行為級描述比較簡單。2.3.3 報警模塊該模塊的功能是產生聲光報警信號,提示用戶卡內余額不足。控制與計費模塊允許輸出信號on,報警輸出warn及整個系統的輸入允許信號enable作為該模塊的控制信號,當報警條件滿足時,通話指示燈閃爍或聲音提示。2.4 控制系統的實現整個系統各模塊設計仿真實現后,分別創建成元件符號,將各個模塊用verilog_hdl語言或者圖形的方法連接起來,形成頂層模塊。然后創建工程,經過輸入、調試、綜合、適配、仿真后,

9、確認能夠實現系統所有功能后,進行編程下載,最終實現對整個系統的控制。3 系統的軟件設計3.1 軟件整體設計本系統設計的系統組成框圖如圖1 所示。包括三個模塊:控制與計費模塊、顯示模塊和報警模塊。如圖中虛線框所示。控制與計費模塊完成計費功能并產生控制信號,控制另外兩個模塊。顯示模塊動態顯示通話時間與通話余額計費等信息。報警模塊是根據通話中出現的報警信息, 及時給出聲、光或者聲光同時報警。本系統采用verilog_hdl硬件描述語言進行設計。3.2 主要模塊軟件設計3.2.1 控制與計費模塊流程圖充值模塊0on=0,state=0,warn=0enablemode2=0?balfee?ballim

10、it?on=0,state=0,warn=1on=1,state=1,warn=1on=1,state=1,warn=10101110圖23.2.2 顯示模塊流程圖0now(當前狀態)state=1?disp_times=0disp_timem=0disp_times+count+initial statenext statecount=60?disp_times+disp_times+disp_timem+;balance=balnext statenext state011圖33.2.3 報警模塊流程圖圖4alarm=xindicator=0enablewarnalarm=0indicat

11、or=0alarm=0indicator=1alarm=clk1indicator=clk201013.2.4 頂層電路圖各模塊設計仿真實現后,分別創建成元件符號。頂層就是將各分模塊用verilog_hdl語言或者是圖形的方法連接起來。下圖5所示是采用圖形的方法新建一電路圖,在圖中添加各模塊元件符號,連接實現系統電路。圖53.3 系統仿真 圖6是正常通話過程中特殊電話類計費的情形。圖7是仿真國內長途計費中出現不足一分鐘通話時間聲光報警。圖8是仿真余額不足自動禁止通話聲音報警的情形。圖6圖7圖84 結束語本文介紹了一種全新的電話計費系統的fpga 設計方法, 如果結合到實際改變設計中計費要求,

12、就可以應用到各種自動電話計費系統中。5 總結通過對本學期數字系統設計與verilog hdl這門課的學習,我初步了解了eda和數字系統設計的相關知識,其中包括eda技術、fpga/cpld器件、verilog hdl硬件描述語言等。此門課以quartus 、synplify pro/synplify軟件為平臺,以verilog-2001和verilog-1995為語言標準,以可綜合的設計為重點,并通過老師對已經過大量實踐驗證的數字設計實例的講解,使我們在學習過程中培養了興趣,增長了知識,并且能夠對簡單的系統進行設計與實現。隨著計算機技術和微電子技術工藝的發展,現代數字系統的設計和應用進入了新的

13、階段。電子設計自動化技術(eda)在數字系統設計中起的作用越來越重要,新的工具和新的設計方法不斷推出,可編程邏輯器件不斷增加新的模塊,功能越來越強,硬件設計語言也順應了形勢,推出新的標準,更加好用,更加便捷。為了順應時代潮流的發展,越來越多的數字系統將采用硬件描述語言來進行設計,作為一個從事數字系統設計開發的工程師,必須至少熟練掌握一種hdl語言。為了鞏固學習效果和實踐動手能力,杜絕死記硬背,充分鞏固對在課程學習的相關知識,采用課程設計的方法有利于考查我們綜合應用的能力,提高其動手和分析能力,為今后的學習和就業提供幫助。這次課程設計,不僅使我鞏固了word 2003的用法,同時也鍛煉了我的綜合

14、應用能力。在設計過程中,通過查找相關資料,培養了我搜索信息的能力,提高了動手和分析能力。總之,我在這次課程設計中受益匪淺。6 源程序代碼6.1 頂層模塊module top(enable,clk3,purse,mod,time1,time2,clk1,clk2,indicator,alarm,balance2); input enable,clk3,clk1,clk2;input1:0 mod;input15:0 purse; output indicator,alarm;output7:0 time1,time2;output15:0 balance2; reg indicator,alar

15、m;reg7:0 time2,time1;reg15:0 balance2; wire on,state,warn;wire15:0 times,banlance1; control(enable,clk3,purse,mod,on,state,warn,times,balance1); disp(state,times,balance1,time1,time2,clk3,balance2); warning(enable, clk1, clk2, warn, on, indicator, alarm);endmodule6.2 控制與計費模塊module control(enable,clk

16、3,purse,mod,on,state,warn,times,balance); input enable,clk3; input1:0 mod; input15:0 purse; output on,state,warn; output15:0 times,balance; reg on,state,warn; reg15:0 times,balance; reg7:0 fee; reg11:0 limit;always(negedge clk3)/費率及極限的賦值 begin case (mod) 2b00 : begin fee=16; limit=80; end 2b01 : beg

17、in fee=01; limit=5 ; end 2b10 : begin fee=10; limit=50; end 2b11 : begin fee=20; limit=100;end endcase endalways (negedge clk3)/余額與費率及極限的比較 begin if (enable) begin if (purse7:0fee) begin on=0; state=0; warn=1;end else if (purse11:0limit) begin on=1; state=1; warn=1;end else begin on=0; state=1; warn

18、=1;end end else begin on=0; state=0; warn=0; end endalways(negedge clk3)/計時 begin if (enable) begin if (times=16b0101100101011001) times=16d0; else if (times11:0=12b100101011001) begin times11:0=12d0; times15:12=times15:12+4b0001; end else if (times7:0=8b01011001) begin times7:0=8d0; times11:8=times

19、11:8+4b0001; end else if (times3:0=4b1001) begin times3:0=4b0000; times7:4=times7:4+4b0001; end else times3:0=times3:0+4b0001; end else times=0; endalways (negedge clk3)/剩額的計算 begin if (enable) begin if (balance3:0fee7:4) begin balance7:4=balance7:4-fee7:4-4b0001; balance3:04b0000) begin balance11:8

20、=balance11:8-4b0001; balance7:4=balance7:4+(4b1001-fee7:4); balance3:0=balance3:0+(4b1010-fee3:0); end else begin balance15:12=balance15:12-4b0001; balance11:8=4b1001; balance7:4=balance7:4+(4b1001-fee7:4); balance3:0=balance3:0+(4b1010-fee3:0); end else if (balance7:40) begin balance11:8=balance11:

21、8-4b0001; balance7:4=balance7:4+(4b1010-fee7:4); balance3:0=balance3:0-fee3:0; end else begin balance15:12=balance15:12-4b0001;balance11:8=4b1001; balance7:4=balance7:4+(4b1010-fee7:4); balance3:0=balance3:0-fee3:0; end end else begin balance7:0=balance7:0-fee; end end else balance=purse; endendmodule6.3 顯示模塊module disp(state,times,balance1,time1,time2,clk3,balance2); input state,clk3; input15:0 balance1,times; output15:0 balance2;output7:0 time1,time2; reg7:0 time1,time2; reg15:0 balance2;always (posedge clk3) begi

溫馨提示

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

評論

0/150

提交評論