[毕业论文]基于FPGA的电话计费器设计.doc

上传人:文库蛋蛋多 文档编号:3932696 上传时间:2023-03-28 格式:DOC 页数:18 大小:313KB
返回 下载 相关 举报
[毕业论文]基于FPGA的电话计费器设计.doc_第1页
第1页 / 共18页
[毕业论文]基于FPGA的电话计费器设计.doc_第2页
第2页 / 共18页
[毕业论文]基于FPGA的电话计费器设计.doc_第3页
第3页 / 共18页
[毕业论文]基于FPGA的电话计费器设计.doc_第4页
第4页 / 共18页
[毕业论文]基于FPGA的电话计费器设计.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《[毕业论文]基于FPGA的电话计费器设计.doc》由会员分享,可在线阅读,更多相关《[毕业论文]基于FPGA的电话计费器设计.doc(18页珍藏版)》请在三一办公上搜索。

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待添加的隐藏文字内容2 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; st

18、ate=1; warn=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; time

19、s11:8=times11: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

20、balance11:8=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

21、=balance11: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;

22、 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) begin if (state) begin time1=8d0; time2=8d0; end else begin time1=times7

23、:0; time2=times15:8; end endalways(posedge Clk3) balance2=balance1;endmodule6.4 报警模块module warning(enable, clk1, clk2, warn, on, indicator, alarm);/ 报警模块input enable, clk1, clk2, warn, on; /clk1 高频, clk2 低频output indicator, alarm; / 声光报警信号reg alarm, indicator;always (enable or warn or on) begin / 控制

24、信号发生变化时if(enable=1&warn=1) alarm=clk1; / 声音报警else alarm=0;if(on=1) / 通话指示灯if(warn=1) indicator=clk2;else indicator=1;else indicator=0; end endmodule参考文献1谢自美等.电子线路设计实验测试(第三版)M.华中科技大学出版社,2006.2陈赜,朱如琪.在系统可编程技术实践教程M.科学出版社,2001.3江世明,刘湘涛.基于单片机的智能电话控制系统的研制J. 船电技术,2006,(2).4刘猛.基于桑达程控交换机的电话计费系统实现J.计算机与信息技术,2007,(17).45王金明.数字系统设计与Verilog HDL(第三版).北京.电子工业出版社.2009.1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号