FPGA模拟电话计费器设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《可编辑器件及应用》期末综合设计报告

题目:电话计费系统

学号:

姓名:

完成时间:

摘要

FPGA芯片的集成度越来越高,极大地满足用户的要求,可以用到生活中的各个领域。现在的可编程逻辑器件稳定性高,代码容易编写和修改。如verilog HDL代码程序(硬件描述语言),verilog的部分语法是参照C语言的语法设立的(但与C有本质区别),因此,具有很多C语言的优点,从形式表述上来看,verilog代码简明扼要,使用灵活,且语法规定不是很严谨,容易上手。本系统采用50MZH的脉冲作为内部时钟脉冲,因此要进行分频作为秒脉冲(1HZ)用于计时;本系统还涉及到按键问题,因此要进行按键消抖,我们采用延时的方法作为简单的消抖处理。

关键字:可编程逻辑器件;verilog HDL;脉冲;消抖

目录

第一章绪论 (1)

1.1 FPGA发展及现状 (1)

1.2 电话计费器相关背景 (1)

1.3 基于FPGA实现电话计费器的方案设计基本原则 (1)

1.4 论文主要完成的工作 (1)

第二章系统的硬件设计 (2)

2.1电话计费器的控制要求 (2)

2.2方案设计 (3)

2.2.1按键分配 (3)

2.2.2按键消抖原理 (3)

2.2.3按键消抖原方法 (3)

2.3各功能的设计和实现 (4)

2.3.1控制与计费模块 (4)

2.3.2模块的设计 (5)

2.4 控制系统的实现 (6)

第三章系统的软件设计 (7)

3.1 软件整体设计 (7)

3.2 主要模块软件设计 (7)

3.3 引脚分配 (10)

第四章总结 (11)

第五章源程序代码 (12)

参考文献 (17)

第一章绪论

1.1 FPGA发展及现状

随着先进科技的发展,计算机仿真与应用技术也在发生着日新月异的变化。在计算机技术实现重大飞跃的同时,复杂可编程逻辑器件(FPGA)的应用逐步渗透到生产与生活各个方面,给人们生活带来了极大方便。因其性能的不断提高,应用范围也越来越广。

1.2 电话计费器相关背景

在商品经济迅猛发展中,人们对电话的需求日益增长,大力发展和普及公用电话,以满足人们日常生活以及流动人口办理业务之需已成为当前市场趋势。在公用电话业务发展中,由于诸多原因,计费不准的现象屡见不鲜,相关管理混乱,给人们生活带来极大不便。为了使电话计费更加准确,本文将介绍一种采用FPGA 设计实现电话计费器的方法。

1.3 基于FPGA实现电话计费器的方案设计基本原则

本文将针对自动计费电话机为例,给出方案设计基本原则如下:

能够通过选择充值金额的方式快速增加卡内的余额;能够设计通话的种类(如按1键选择),并能够根据打电话的种类和通话时间进行金额的扣除:1为市话(0.15元/分钟),2为国内长途(1.5元/分钟),3为国际长途电话(3元/分钟);能进行余额不足的报警:市话低于0.3元、国内长途低于3元报警、国际电话低于6元报警,led闪烁报警;当余额不足以通话一分钟即停止通话,并且蜂鸣器拉响。因为在设计中只对电话机的计费系统进行设计,而没有涉及到电话通话的信令过程,因此通话类型必须由外部输入。

1.4 论文主要完成的工作

本文主要完成对电话计费系统的FPGA设计,其中包括系统组成框图、相关程序设计、系统仿真三大部分。设计语言采用Verilog_HDL硬件描述语言。

第二章系统的硬件设计

2.1电话计费器的控制要求

为了使电话计费器能够正常稳定运行,在设计时应考虑到如下几点:

在插入电话卡的同时,电话计费器的控制模块开始工作;电话计费控制器与正常通话计费、计时模块相连,以实现整个系统的计费计时功能;如果卡内余额不足,报警模块将实现报警功能,报警模式采用声光报警;计费计时模块与显示模块相连,显示模块应实现对通话时间以及对话费余额的显示功能。

其计费一般过程可概括为:用户插入电话卡(按键)→整个系统开始运行→显示卡内余额。由于没有信号接受器,该系统将由按键设置输入通话类型(市话、国内/国际长途)。如果选择通话,计费系统将话费余额与所选通话类型计费率进行比较。如果话费余额小于费率值,则禁止通话且报警提示;如果话费余额大于等于通话二分钟门限, 是正常通话状态, 通话指示灯亮;如果话费余额大于或等于费率值并且小于通话二分钟门限,则进入通话指示灯闪烁;通话时间不足一分钟,通话指示灯闪烁且声音报警。

根据电话计费器的工作过程,本系统采用分层次化、分模块的方式设计,本系统设计的系统组成框图如图1所示三个模块:控制与计费模块、显示模块和报警模块。如图中虚线框所示。控制与计费模块完成计费功能并产生控制信号,控制另外两个模块。显示模块动态显示通话时间与通话余额计费等信息。报警模块是根据通话中出现的报警信息,及时给出声、光或者声光同时报警。

2.2方案设计

2.2.1按键分配

本系统采用按键对插入电话卡、选着充值金额、确认充值、通话类型、拨打/挂断、接通/挂断的模拟,这里时间和费用计数器均采用十进制表示。

按键分配如下:

key[0]:有卡或无卡

key[1]:选择充值金额(5元、10元、50元)

key[2]:查余额(check=0)/上次通话时间(check=1)

key[3]:选择通话模式(市话、国内长途、国际长途)

key[4]:确定充值(在key[1]选择后)/拨打或挂断(在key[3]选择后)

key[5]:接通/挂断

2.2.2按键消抖原理

键盘分编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘。而靠软件编程来识别的称为非编码键盘。

在一般嵌入式应用中,用的最多的是非编码键盘,也有用到编码键盘的。非编码键盘有分为:独立键盘和行列式(又称为矩阵式)键盘。

如图 2.1 所示,按键在闭合和断开时,触点会存在抖动现象。在按键按下或者是释放的时候都会出现一个不稳定的抖动时间,如果不处理好这个抖动时间,我们就无法处理好按键编码,所以我们的设计中必须有效消除按键抖动。

图 2.1按键波形

相关文档
最新文档