1、南京师范大学中北学院南京师范大学中北学院南京师范大学中北学院毕毕毕 业业业 设设设 计(论计(论计(论 文)文)文)( 2013 届)届)届)题 目: 基于 FPGA 的出租车计价系统设计 专 业: 电子信息工程 姓 名: 顾媛媛 学 号: 18093218 指导教师: 倪小琦 职 称: 讲师 填写日期: 2013-05-01 南京师范大学中北学院教务处 制1摘 要本文提出了在 Quartus 9.0 软件平台上基于 FPGA 的出租车计费器的设计方案。通过 VHDL 描述出租车计费系统的操作流程及控制方案,模拟汽车的启动、停止、计费、预置等功能,并用数码管显示车费、里程、等待时间等信息。该系
2、统配合车速传感器可应用在不同车型的出租车上,实现计费等所需功能。本设计的优点有:生产可靠、稳定且灵活性好、开发周期短、效率高、维护简单等。关键词:出租车计价器;VHDL2AbstractWhat 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 VH
3、DL, simulating vehicles start, stop, pricing, provisioning, 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
4、of this design are: reliable production, stable and good flexibility, short development cycle, high efficiency, simple maintenance and so on.Key words:taxi meter system;VHDL3目录摘 要 .1Abstract .21 绪论 .11.1 设计背景.11.2 国内外研究现状.11.3 课题研究的目的和意义.22 开发工具和关键技术 .32.1 QuartusII 的介绍.32.2 VHDL 语言的优点.33 系统的设计 .53.
5、1 设计基本要求.53.2 分析及步骤.53.3 实验方案及预计实现的功能.53.4 方案设计与论证.64 相关原理图及设计文件 .94.1 分频模块.94.2 计量模块.104.3 控制模块.114.4 计费模块.114.5 数码模块.125 总体仿真 .156 设计总结 .176.1 设计结果.176.2 不足之处.17致谢 .18参 考 文 献 .19附 录 .2011 绪论1.1 设计背景汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计
6、价器的研究也是具有一定意义的。随着生活水平的提高,人们已不再满足于衣食住的享受,出行的舒适已受到越来越多人的关注。于是,出租车行业以低价高质的服务给人们带来了出行的享受。但是总存在着买卖纠纷困扰着行业的发展。而在出租车行业中解决这一矛盾的最好方法就是改良计价器,用更加精良的计价器来为乘客提供更加方便快捷的服务。多年来国内普遍使用的计价器只具备单一的计量功能。最早的计价器全部使用机械齿轮结构,只能简单的计程功能,可以说,早期的计价器就是个里程表。随着科学技术的发展,产生了第二代计价器。它采用手摇计算机与机械结构相结合的方式实现了半机械半电子化。此时它在计程的同时还完成计价的工作。大规模集成电路的
7、发展又产生了第三代计价器,也就是全电子化的计价器。它的功能也在不断完善。出租车计价器是一种专用的计量仪器,它安装在出租车上,能够连续累加,并只是出行中任意时刻乘客应付费用。随着电子技术的发展以及对计价器的不断改进和完善,便产生了能够自主计费,以及现在的能够打印发票和语音提示、按时间自主变动单价等功能 9。1.2 国内外研究现状我国第一家生产计价器的是重庆市起重机厂,最早的计价器全部采用机械齿轮结构,只能完成简单的计程功能,可以说,早期的计价器就是个里程表。随着科学技术的发展,产生了第二代计价器。它采用了手摇计算机与机械结构相结合的方式,实现了半机械半电子化,在计程的同时还可完成计价的工作。大规
8、模集成电路的发展产生了第三代计价器,也就是全电子化的计价器,其功能在不断完善中。出租车计价器在最初使用时具备的主要功能是根据行驶里程计价,要求精度高,可靠性好。随着电子技术的发展以及对计价器的不断改进和完善,便产生了诸多的附加功能。例如:(1)LED 显示功能,数码管的使用让计价器实现多屏显示的功能,可同时显示各项营运数据,使乘客一目了然;(2)永久时钟功能,在非营运状态下,日历时钟芯片的使用使计价器可以显示永久时钟;(3)存储功能,可存储多项营运数据,便于查询。新型数据存储器的应用使得计价器的营运数据在掉电情况下还可以保存 10 年。随着集成电路和计算机技术的飞速发展,提高系统的可靠性与通用
9、性,生产体积小、重量轻、功耗低、速度快、成本低、保密性好的产品将成为未来行业的主流 8。21.3 课题研究的目的和意义随着电子技术的不断发展与进步,集成电路的设计方法也在不断地更新。时至今日,传统的手工设计过程已经被先进的电子设计自动化(EDA)工具所代替。只有以硬件描述语言和逻辑综合为基础的子项下的电路设计方法才能满足日趋复杂的集成电路系统设计需求,才能缩短设计周期以满足设计对集成电路系统日益急迫的需求。在这种情形下,传统的出租车计费器设计方法已不能跟上现在的节奏,以往的出租车计费器在功能上也远不能满足现实的需求。以往的出租车计费器的不稳定性,功能稍等缺点是的大家开始寻求更新的,功能更强大,
10、性能更稳定,价钱更低廉的新型出租车计费器。而大规模可编程逻辑器件的出现,VHDL 硬件描述语言的出现,使得这一切成为可能。本设计的研究目标和意义也就是要使用价钱低廉、性能稳定、可扩性强、适应目前出租车市场需求的出租车计费器,以解决目前出租车计费器存在的一系列问题 12。32 开发工具和关键技术2.1 QuartusII 的介绍Quartus II 是 Altera 公司的综合性 PLD 开发软件,支持原理图、VHDL、VerilogHDL 以及 AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入
11、到硬件配置的完整PLD 设计流程。 Quartus II 可以在 XP、 Linux 以及 Unix 上使用,除了可以使用 Tcl 脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。 Quartus II 支持 Altera 的 IP 核,包含了 LPM/MegaFunction 宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方 EDA 工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方 EDA 工具。 此外,Quartus II 通过和 DSP Builder 工具与 Matlab/S
12、imulink 相结合,可以方便地实现各种 DSP 应用系统;支持 Altera 的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。 Maxplus II 作为 Altera 的上一代 PLD 设计软件,由于其出色的易用性而得到了广泛的应用。目前 Altera 已经停止了对 Maxplus II 的更新支持, Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera 在 Quartus II 中包含了许多诸如SignalTap II、 Chip Editor 和 RTL Viewer 的设计辅助工具,集成
13、了 SOPC 和 HardCopy设计流程,并且继承了 Maxplus II 友好的图形界面及简便的使用方法。 Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎 1。2.2 VHDL 语言的优点(1) VHDL 语言功能强大,设计方式多样VHDL 语言具有强大的语言结构,只需采用简单明确的 VHDL 语言程序就可以描述十分复杂的硬件电路。同时,它还具有多层次的电路设计描述功能。此外,VHDL 语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。(2) VHDL 语言具有
14、强大的硬件描述能力VHDL 语言具有多层次的电路设计描述功能,既可描述系统级电路,也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。同时,VHDL 语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。VHDL 语言的强大描述能力还体现在它具有丰富的数据类型。VHDL 语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。(3) VHDL 语言具有很强的移植能力VHDL 语言很强的移植能力主要体现在: 对于同一个硬件电路的 VHDL 语言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综
15、合器移植到另一个综合器4上或者从一个工作平台移植到另一个工作平台上去执行。(4) VHDL 语言的设计描述与器件无关采用 VHDL 语言描述硬件电路时,设计人员并不需要首先考虑选择进行设计的器件。这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑其他的问题。当硬件电路的设计描述完成以后,VHDL 语言允许采用多种不同的器件结构来实现。(5) VHDL 语言程序易于共享和复用VHDL 语言采用基于库 ( library) 的设计方法。在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计,而是一些模块的累加。这些模块可
16、以预先设计或者使用以前设计中的存档模块,将这些模块存放在库中,就可以在以后的设计中进行复用。由于 VHDL 语言是一种描述、模拟、综合、优化和布线的标准硬件描述语言,因此它可以使设计成果在设计人员之间方便地进行交流和共享,从而减小硬件电路设计的工作量,缩短开发周期 3。53 系统的设计3.1 设计基本要求费用的计算,出租车起价为 8.00 元,当里程小于 3km 时,按起价费用计算;当里程大于 3km 时每公里按 2.8 元计算;等待累计时间超过 2 分钟,按每分钟 1.5 元计费;里程,即汽车行驶里程,用两位数字显示,显示方式为“XX”,单位为 km;等候时间,用两位数字显示,显示方式为“X
17、X”,等候时间的定义是:当汽车行驶速度小于或等于 12km/h 时为“等候”;费用=8+(里程-3 )*2.8+(等候时间-2)*1.5,单位:元;费用显示,用四位数字显示,显示方式为“XXX.X” ,单价为元。3.2 分析及步骤第一步,选好实验题目后,首先对实验要求做了逻辑上的理性分析,明确了实验目的。第二步,画出实验系统框图,将大实验分成小模块,明确各个小目标,以待各个击破。第三步,将各个小模块实验流程图画出来,便于各个模块程序编写。第四步,按顺序,编出各个模块的小程序,进行软件编译,纠错。第五步,将各个小模块生成的元件图连接成整体原理图。第六步,仿真,分析实验结果的实现效果。第七步,针对
18、实验结果的不合理性,进行程序、原理图纠错;第八步,到实验室,利用电子综合设计实验箱,将软件与硬件相结合,看实际效果。3.3 实验方案及预计实现的功能通过可编程逻辑器件和 VHDL 硬件描述语言来实现出租车的计费系统的基本设计要求。对于本设计来说,设计的主体是外部输入模块、控制模块和显示模块,对输入的频率进行分频,得到超出公里数的单价对应的频率,按照车辆行驶公里数,对最终费用进行控制,再通过译码显示模块,最终在数码管上显示出计费数额。本设计采用的是共阴极七段数码管,根据十六进制数和七段显示段码表的对应关系,数码管控制及译码显示模块将十进制的输入信号用七段数码管显示,由七段发光二极管组成数码显示器
19、,利用字段的不同组合,可分别显示09。本设计中,要求输出的段信号为高电平有效。根据课题要求,系统设计采用自顶向下的设计方法,设计流程图如下:6设计输入编译仿真与分析编程系统测试制作原理图修改图 3-1 出租车计费系统设计流程图出租车计费系统由外部输入模块、控制模块和显示模块三部分组成。控制模块是整个系统的核心,它由分频模块、控制模块、计量模块和译码显示模块构成。分频模块:它是对系统时钟频率进行分频。控制模块:主要完成对计价器状态的控制。计量模块:完成计价、计时和计程功能。译码模块:完成计价、计时和计程数据的显示。预计实现的功能: 出租车计费起价为 8.00 元,当里程小于 3km 时,按起价费
20、用计算;当里程大于 3km 时每公里按 2.8 元计算;等待累计时间超过 2 分钟,按每分钟 1.5元计费。(1)计价范围: 0999.9 元;计价分辨率: 0.1 元;(2)计程范围: 099 元;(3)计时范围: 59 分;计时分辨率: 1 分钟;3.4 方案设计与论证方案一:主要目的是为了实现:出租车起始计价为 8.00 元,当里程小于 3km 时,按起价费用计算;当里程大于 3km 时每公里按 2.8 元计算;等待累计时间超过 2 分钟,按每分钟 1.5 元计费; 费用=8+(里程-3)*2.8+(等候时间-2)*1.5,单位:元。系统有两个脉冲输入信号 clk_420、fin,两个控制输入开关 start、stop;控制过程为:start 作为计费开始开关,当 start 为高电平时,系统开始根据输入的情况计费。系