基于FPGA的出租车计费器的设计毕业论文_第1页
基于FPGA的出租车计费器的设计毕业论文_第2页
基于FPGA的出租车计费器的设计毕业论文_第3页
基于FPGA的出租车计费器的设计毕业论文_第4页
基于FPGA的出租车计费器的设计毕业论文_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大连海事大学毕业论文二0四年六月基于FPGA的出租车计费器的设计专业班级: 电子信息工程 3班姓 名:李宁指导老师:严飞信息科学技术学院摘要随着 EDA 技术的日益成熟的发展趋势, 与电子设计相关的设计技术与开发 平台等也都有了迅猛的发展。 可编程逻辑器件 CPLD/FPGA 的快速发展与深入应 用也为设计人员提供了很大的便利。 本文主要介绍一种基于 FPGA 芯片的出租车 计费器的设计方法,对该设计方法的研究意义和应用价值进行了阐述,描述了 FPGA 芯片的发展历史和主要应用,介绍了 VHDL (硬件描述语言)的主要功能 和算法设计思想及设计流程。本次设计高效利用 FPGA 设计方法的多变性

2、和可编程性等优势, 有效的缩短 研发周期,设计出体积小、功能强的出租车计费系统。能够根据需求简便、快捷 地调整出租车计费价格,并且防止作弊现象等问题的产生。该出租车计费器主要包含五大模块: 分频模块向各模块提供驱动信号; 计量 模块完成等待时间和所行驶路程数据的统计; 计费方式选择模块是对汽车行驶过 程不同计价状态进行判断输出; 计费模块完成总费用统计计算; 动态扫描模块最 后将累计等待计费时间、行驶路程以及计费总数等实时显示出来。本次设计采用VHDL硬件描述语言编写计费器的系统程序, Quarters软件 作为开发平台, 对程序进行了仿真, 最后将生成的目标文件下载到教学实验仪器 ZY11E

3、DA13B 的 FPGA 芯片中,完成了相应的硬件测试和验证,证明了出租车 计费系统的可行性。关键词:EDA; FPGA;出租车计费器;VHDL;Quarters II4ABSTRACTWith the growing maturity of the development trend of EDA technology, and the technologies and the design of the platform which related to the electronic design , also have a very rapid development.The fast

4、development of Programmable logic device and in deepth application also offers a great convenience to designers. This Paper introduces a method for FPGA chip to design a taxi billing system and describes the significance and value of the design methods , describes the history and development of FPGA

5、 chip main application , introduces VHDL ( hardware description language ) main function and algorithm design and design processes.Efficient use of FPGA design method variability and programmability advantagescould effectively shorten the development cycle, and design a small but powerful taxi billi

6、ng system. According to effectively address the needs of simple , it can quick adjust taxi meter rates to prevent cheating and other issues.The taxi meter mainly includes five modules: the divide module module provides drive signal to other module; the metering module works to statistical date about

7、 the wait1ing time and the distance traveled; the control module is used to judge output of the cars with different pricing status; the billing module caculate statistical of the total cost; finally the dynamic scanning module billing will display the wait1 time, total distance traveled and billing

8、in real time.The billing system program is designed by the VHDL hardware description Ianguage. Quarters n software as a development platform to simulate the program .Finally the generated file is downloaded to the teaching laboratory instruments ZY11EDA13B FPGA chip,finish to test and validate the h

9、ardware ,and prove the taxi billing system is feasible.Keywords: EDA ;FPGA ; TAXI ;VHDL ;Quarters n目录第 1 章 绪论 1.1.1 课题研究的背景及意义 1.1.2 出租车计费器的发展现状 1.1.3 课题研究的内容及方法 2.1.4 本章小结 2.第 2 章 相关设计工具介绍 3.2.1 EDA 技术简介 3.2.1.1 EDA 的历史背景 3.2.1.2 EDA 的发展现状 3.2.1.3 EDA 的技术特点 3.2.2 FPGA 简介 4.2.2.1 FPGA 的结构 4.2.2.2 FP

10、GA 的开发流程图 5.2.3 VHDL 简介 5.2.3.1 VHDL 的发展历史 6.2.3.2 VHDL 的优势特点 6.2.3.3 VHDL 的开发流程 7.2.4 QuartusII 简介及开发流程 7.2.5 本章小结 8.第 3 章 课题原理及各模块的设计说明 9.3.1 课题设计原理 9.3.2 分频模块 1.2.3.2.1 分频模块的功能描述 1.23.2.2 分频模块的仿真波形图 1.23.2.3 分频模块器件图 1.23.3 计量模块 1.3.3.3.1 计量模块的功能描述 1.33.3.2 计量模块的流程图 1.43.3.3 计量模块的模块生成符号 1.63.3.4 计

11、量模块的仿真波形图 1.63.4 计费方式选择模块 1.73.4.1 计费方式选择模块的功能描述 1. 73.4.2 计费方式选择模块的流程图 1.73.4.3 计费方式选择模块的模块生成符号 1. 83.4.4 计费方式选择模块的仿真图形 1. 93.5 计费模块 1.9.3.5.1 计费模块功能描述 1.93.5.2 计费模块的流程图 2.03.5.3 计费模块的模块生成符号 2.13.5.4 计费模块的仿真图形 2.23.6 显示模块 2.2.3.6.1 数码管显示电路 2.23.6.2 动态扫描的功能描述 2.43.6.3 动态扫描的模块符号 2.63.7 顶层模块原理图 2.63.8

12、 本章小结 2.8.第 4 章 下载调试与结果验证 2.94.1 下载及调试 2.9.4.2 实验箱硬件验证 2.94.2.1 无乘客上车 3.04.2.2 乘客上车行驶中 3.04.2.3 停车等待 3.14.2.4 停车结算 3.24.2.5 下车复位 3.34.3 本章小结 3.4.总结3.5.参考文献 3.6.致谢3.7.基于FPGA的岀租车计费器的设计第1章绪论1.1课题研究的背景及意义随着我国人民经济水平的不断提高,越来越多的人们选择出租车做为出行最 便捷的交通工具。出租车计价器作为计量器具有其特殊性和专用性,它只用在出 租车汽车上,因此它与出租汽车车辆、 出租汽车的收费办法、出租

13、汽车的管理经 营等密切相关。出租汽车计价器必须随时适应它们的变化和需求。出租车计费 器的使用也使出租车市场更加规范化和标准化,同时直观、快捷的智能化计费方 式也帮助人们节省了时间、创造了更多效益,使乘客与出租车运营者之间的矛盾 得以解决。出租车的设计也更加注重于实用性和功能性,是不可缺少的一种计量 工具。随着越来越多的消费群体乘坐出租车,广大的乘客对计费器的功能也提出了 更多的要求。用户不仅要求计费器性能稳定,计费准确,有防作弊功能;同时还 要求其具有车票资料打印、IC卡付费、语音报话、电脑串行通信及税控等功能 0 大部分地区的收费不都是一样的, 车型不一致使收费也会有区别,随着油价的不 断波

14、动或经济发展的影响,收费方式和收费标准也有可能在不断的变化。这时候, 采用传统的基于单片机设计的出租车计费器已不能满足这些变化的需求,硬件电路复杂功能升级也很繁琐,在运营过程中很容易产生干扰,影响用户的使用;而 且分立器件较多,将导致电源功耗大, 芯片不易散热,从而影响芯片的使用寿命 。基于FPGA的出租车计费器,结合了硬件描述语言(VHDL )和逻辑结合为 基础的自顶向下的电路设计方法,成本投入较低,可靠性高,通用性也比较强; 在不改变硬件电路的情况下,根据需求在 VHDL程序中修改相关参数,既可满 足不同地区、不同用户的需求,同时也可以添加其他功能。本课题所设计的出租车计费器采用软件编程的

15、形式,可以完成多种计费形 式,使用的芯片不仅容量大,体积也比较小巧。而随着电子科技的发展,可使得 保存在芯片中的数据长时间不会丢失,因此本课题所设计的计费器不仅在现代有 着较强的应用性,同时在未来市场中的也有很大的发展前景。1.2出租车计费器的发展现状我国的第一家生产计价器的企业是重庆市起重机厂, 最早的计价器全部采用 机械齿轮结构,只能完成简单的计程功能,可以说早期的计价器就是一个里程表。 随着科学技术的发展,产生了第二代计价器。它采用了手摇计算机与机械结构相 结合的方式,实现了半机械半电子化。此时它在计程的同时还可以完成计价的工作。大规模集成电路的发展又产生了第三代计价器,也就是全电子化的

16、加强。它的功能也在不断完善。当单片机出现并应用于计价器后, 现代出租车计价器的模 型也就基本具备了,它可以完成计程,计价,显示等基本工作。单片机以及外围 芯片的不断发展促进了计价器的发展0随着数字系统的快速发展,FPGA等可编程数字器件的出现,使计费器性能 更趋于稳定,可以实现更为复杂的功能, 实现的功能也也有了多变的选择,同时 提高了计费器的灵活性,改善了其升级的能力。FPGA的多个优质性能使其成为了最具发展潜质的数字器件,结合硬件描述语言可简洁直观的描述复杂的逻辑设 计。因此基于FPGA的出租计费器在未来将会成为很实用的计量工具,它的发展 完全可以代替单片机,成为新一代的计费器发展时代。1

17、.3课题研究的内容及方法通过研究分析相关资料,对国内外出租车计费器的设计方法有了深入的认识 和了解,最终确定本设计方案将采用基于 FPGA开发数字电路,以缩短开发周期, 提高系统的稳定性和可靠性;利用 VHDL硬件描述语言编写程序对系统的功能 进行设计,从而将产品更新换代的能力大大提高。本设计采用计算总行驶路程和累计等待时长的两种状态收费。按照大连市的出租车收费标准进行设定:(1) 出租车起步价设定为10元,当行驶里程小于3km时,只收取起步价; 当行驶的里程数大于3km时,则在起步价的基础上每公里按 2元计费。(2) 停车等待累计时长超过3min时,超出部分每分钟按0.3元计费。(3) 行驶

18、里程显示:显示的范围为 099km。单位为km。分辨率1km(4) 累计等待时间显示:显示的范围为059min。单位为min。分辨率1min(5) 总费用显示:显示的范围为 0999.9,单位为元,分辨率0.1元测量出租车行驶距离的传感器电路由实验箱的开关和时钟信号代替,输出信号由数码管和指示灯同时显示。1.4本章小结本章主要介绍了出租车计费器的发展历史及意义,对出租车在国内的发展现状做了一些概述,通过相关的调研使自己对出租车计费器有了更深刻的认识,并对其未来的的发展趋势也有了自己的看法, 帮助自己在此次出租车计费器的设计 更具实用性和规范性。第2章相关设计工具介绍2.1 EDA技术简介EDA

19、是电子设计自动化(Eeectronic Design Automation)的缩写。EDA工具 是以计算机的硬件和软件为工作平台,集数据库、图形学、图论与拓扑逻辑、计 算数学、优化理论等多学科最新成果研制的计算机辅助设计通用软件包。从功能实用性方面EDA主要包含以下几个部分:用来表示采用EDA技术进行电子设 计的硬件描述语言;使 EDA技术设计电子系统更加自动化、智能化的一些软件 开发工具;EDA技术设计过程中的载体大规模可编程逻辑器件;以及最终对电 子设计进行仿真验证的下载及硬件验证工具等。2.1.1 EDA的历史背景迄今为止,EDA已经历了 30多年的发展,可将这漫长的岁月大致分为三大 阶

20、段。第一阶段在70年代,这个时期人们开始借助于计算机进行相关设计,例 如完成PCB布局布线、IC版图编辑等,是计算机系辅助设计阶段(CAD)。当 发展到80年代时,设计者不但可以利用 EDA技术图形进行绘制之外,还能用 CAD进行电路的功能和结构的设计,结合电器连接表将两者结合在一起,是工 程设计得以实现,这个阶段成为计算机辅助工程阶段(CAE);到了 90年代,人 们对CAE的应用已经非常广泛了,用其是想电路的逻辑仿真,相关原理图的输 入,对电路进行分析、布局布线,以及对设计的分析验证等,这个时候EDA的发展则依然进入了第三个阶段电子系统设计自动化极端(EDA)5。2.1.2 EDA的发展现

21、状目前中国的EDA市场中,绝大多数的设计者面临的是小型 ASIC以及PC主 板领域,只有少数的设计者从事复杂的芯片系统设计工作。为了使我国的EDA技术更加具有竞争力,设计者们也在不断的学习和借鉴国外各行业的顶尖技术。EDA软件开发技术目前主要以美国为主。韩国和日本虽然都有各自的 ASIC设计 工具,但是都是不对外开放的。EDA技术的应用层面也越来越广泛,已经悄然 声息地涉及到我们生活的方方面面。2.1.3 EDA的技术特点随着EDA的被大量的应用到日常生活中,对EDA技术的研究也越来越深入, 在实现EDA技术更深层的应用时,需要对 EDA的基本特点有着一定的了解:(1)EDA采用“自顶向下”设

22、计方法。与传统电子设计所采用的“自底向上” 的方法相比,能够大大降低开发成本,不易产生新的错误,设计的效率也比较高, 将功能在结构上完成了模块化,即可分块进行反正和结果验证。也比较方便设计 者对程序设计的香瓜修改。(2)设计采用硬件描述语言,结合软件编程的优势特点,可以将电子系统 的逻辑功能与硬件设计电路的结构融合。硬件描述语言也是目前电子行业的主 流,降低制造成本,缩短开发时长,也比较方便应用于大量产品的生产。因此在 研发和工业设计中且都有广泛的应用。(3)能够实现逻辑综合和优化。通过逻辑在综合可以将抽象的描述通过比较低级的抽象进行描述。优化功能依照布尔方程等效原则,分析器件逻辑综合结 果,

23、将一些比较复杂的逻辑单元用综合结果代替,最终将其映射成新的一组逻辑方程。通过优化功能,可以在将资源的消耗率降到最低并将时延缩降到最短。(4)具有规范化的软件架构和开放性。通过软件架构可以为EDA的相关开 发平台提供开发环境,以及各种与数据相关的内容。通过软件架构可以将不同型 号、不同厂商的工具进行整合,集中在一个统一的、便于管理的环境下,因此更 加有利于资源的共享和优化配置。2.2 FPGA 简介FPGA( Field Programmable Gate Array 现场可编程门阵列)是在 PAL、GAL、 CPLD等可编程器件的基础上进一步发展起来的高性能可编程逻辑器件。他是做为专用集成电路

24、(ASIC)领域中的一种半定制电路而出现的,既解决了定制电 路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA可以通过Verilog或VHDL硬件描述语言进行电路的设计,然后经过综合与布局,快速地 烧录至FPGA上进行测试。FPGA 般采用SRAM工艺,也有一些采用Flash工 艺或反熔丝(Anti-Fuse)工艺等。FPGA集成度很高,其器件密度从数万门到上 千万门,可以完成复杂的时序与组合逻辑电路功能,适用于高速、高密度的高端数字逻辑电路设计领域。FPGA的基本组成部分有可编程输入/输出单元、基本可 编程单元、嵌入式RAM、丰富的布线资源、底层嵌入功能资源、内嵌专用硬核(Hard

25、 Core)等。2.2.1 FPGA的结构至今为止,制造FPGA芯片的公司主要有 Altera、Xilinx、Lattice以及Actel, 制造了大量品种不一、型号各异的产品,虽然这些芯片的内部结构和技术指标都 不一致,但他们都有一个相同的特点,就是将可配置的逻辑功能块排成阵列,由互联资源(可编程)连接这些逻辑块,从而可以对其进行不同的设计。存放数据 的SRAM和三种可编程的电路组成共同构成了FPGA,三种电路包括可配置逻辑块(CLB )、输入输出模块(IOB )、以及互连资(IR )。是实现逻辑功能的基本单元是可配置逻辑模块,由触发器、 数据选择器等器件组成。输入输出模块一 般位于芯片的四

26、周,主要有输入/输出缓存器、输入/输出触发器等组成。IOB可 被设定为双向I/O功能。要行程多种功能复杂的系统,可以通过互联资源可将所 有的可编程逻辑模块和输入/输出模块相互连接起来oFPGA的基本结构图如图2.1所示: 口 口 dtl 口 口口口图2.1 FPGA芯片的基本结构2.2.2 FPGA的开发流程图基于CPLD/FPGA系统设计的工作流程说明:(1) 电子设计师按照“(top-down)”的设计方法进行系统划分。(2) 编写VHDL源程序。而且,也可以采用原理图输入方式。(3) 将以上的设计输入QuartusH中进行编译。(4) 进行早期的功能仿真,主要是检验系统功能设计是否符合要

27、求。(5) 利用适配器将综合后的网络表文件针对某一具体的目标器件进行逻辑 映射操作(6) 在适配完成后,便可进行时序仿真,如果仿真结果不理想,就进行适 当修改直至满足设计要求。(7) 将产生的.sof文件通过JTAP下载电缆载入到目标芯片 CPLD/FPGA2.3 VHDL 简介VHDL ( Very_High_Speed Integrated Circuit Hardware DescriptionLan guage )是标准硬件描述语言。在未来数字系统的设计将会全部采用VHDL 和VerilogHDL语言。可以对数字系统的接口、功能、结构等进行描述。包含用 于描述硬件结构的语句,相比普通的

28、计算机高级语言语言风格和描述方式也比较 类似。使用VHDL的程序的结构特点可以把一个工程设计,或者设计实体(元 件、电路模块或一个完整系统)分为可视的外部端口,和不可视的内部设计,即 完成这项设计的功能实现和基本算法。当一个设计的外部端口被定义且完成了内 部开发,那么其它的设计也可以去调用此设计。VHDL系统的基本点就是将一个 设计的实体分成内部和外部 。2.3.1 VHDL的发展历史在20世纪中期,电子技术凭借其独特的优势在美国国防工业中得到广泛的 认可。随着电子技术设计方法和集成工艺的飞速发展,1981年提出了“超速集成电路硬件描述语言”,简称 VHDL ( VHSIC Hardware

29、Description Language), 一开始只是将其做为电路文本化的一种标准, 即让其他人更容易理解使用文本描 述的设计,可以作为模型语言,也可用软件编译、仿真9。1986年,IEEE致力于VHDL语言的标准化工作,为此成立了 VHDL语言 标准化小组。经历了多次的修改与扩充,直到 1987年12月VHDL语言才被接 纳为IEEE1076标准。1988年,Milstd454规定所有为美国国防部设计的 ASIC产 片必须采用VHDL语言来进行描述。1993年,IEEE1076标准被修订,更新为新 的VHDL语言标准IEEE 1164。1996年,IEEE1076.3成为VHDL语言的综合

30、标 准。1995年,我国国家技术监督局制定的CAD通用技术规范推荐VHDL语 言作为我国电子设计自动化硬件描述语言的国家标准。至此,VHDL语言在我国迅速普及,现在这门语言已经成为从事硬件电路设计的开发人员所必须掌握的一 项技术。2.3.2 VHDL的优势特点目前,很多电子设计者经常采用 VHDL作为标准硬件描述语言,是因为认 识到其比较强的通用性,基于其突出的性能优势:(1)优秀的灵活性和强大的功能性。 VHDL语言结构功能强大,可以用简 洁的语言描述复杂的逻辑器件设计。 能够多层次的描述设计功能,还提供创建模 块设计和支持阶层设计。(2)程序可以移植。VHDL语言可以在在不同的模拟工具、

31、工作平台以及 设计工具中进行移植。VHDL语言还可以模拟综合描述的设计, 从而节省了设计 者的时间。(3)设计独立于器件。当采用 VHDL语言设计硬件电路时,设计者无需在 设计之初就选定逻辑器件,在完成设计系统的功能描述后,可以使用不同的逻辑 器件来实现其功能。(4) 可以对设计性能进行评估。设计人员可以进行一个完整的 VHDL语言 描述,并且可以对它进行综合,生成选定的器件结构和逻辑功能, 然后再对设计 结果进行测试、评估,最后选用最适合该设计的逻辑器件。(5) 语法的规范性较强,益于共享。IEEE的工业标准硬件是VHDL,规范 较为统一严格,利于共享。2.3.3 VHDL的开发流程为了能使

32、采用VHDL语言设计的电路有更好的可靠性和准确性,设计人员 首先在设计之前应对此次设计的目的及相关要求有着非常清楚的认识,然后选择合适的设计方法和逻辑器件,最终根据既定的设计流程完成设计:(1)根据硬件电路的要求,设计出总体模型,并根据硬件内外部的连接关 系,对各部分进行定义。(2) 根据硬件系统的具体功能编写能够实现相应功能的VHDL语言程序。(3)然后可对VHDL语言程序进行编译,根据实际情况,对程序进行优化 和修改。(4)完成程序的编译后可生成相应的逻辑器件,布局布线,再次对 VHDL 程序进行综合和调试。(5)再一次对系统进行编译,防止由于布局布线或一些其它的操作导致设 计功能的异常。

33、(6)最终将程序下载到目标器件中,即可完成设计。2.4 Quartusll简介及开发流程Quarters是全球最大的可编程逻辑器件供应商之一的Altera公司所推出的产品。针对FPGA/CPLD器件,Altera公司生产了相应的软件设计产品,目前被 广泛应用的则是 MAX+plus U和Quarter。Quartern是Altera公司推出的第四 代也是最新的集成设计环境,能够支持目前所有主流FPGA的设计开发。该设计 软件改进了编程性能、提升了功能性、解决了潜在的设计延迟等潜在问题。同时, 在工业领域也有很强大的优势, 很多工业用的芯片,都是使用Quartus n进行开 发设计。Quarte

34、rs支持原理图、VHDL、VerilogHDL等多种不同的设计输入方 式并且具备仿真功能。Quartus II还被指定为唯一一种设计工具,为 FPGA和固 定功能的HardCopy器件来统一设计流程。同时设计师使用低价位的Quartus II,不仅可以完成FPGA的功能验证和原型设计,又可以用于批量成品生成。Quarters的运行环境有关 Windows、Linux以及Unix,通过Quarters可以 用脚本文件完成流程的设计,为设计人员提供了功能齐全、操作简易的图形操作界面。因此Quarters具有很快的运行速度,集中的功能操作,统一的界面设计 方式,容易快速学习利用等优点10 oQuar

35、ters的开发设计流程如图2.2所示:设计输入*u设计修断15设计编璋设计仿真引脚锁定*编理下戴图2.2 Quarters 开发设计流程图2.5本章小结本章主要介绍了与此次设计相关的一些开发工具。简单介绍了EDA技术,并对其发展历史和现状,所使用到的设计方法、设计语言及工具等展开了进一步 的说明。同时,还介绍了 FPGA的结构特点、应用优势以及开发流程,概述了 VHDL语言,并对其发展历史、开发优势以及设计流程等有了全面的介绍。同时还对此次设计的开发环境 Quartus II以及做了相应的阐述。对本次设计所涉及的技术层面的知识有了全面的认识第3章 课题原理及各模块的设计说明3.1课题设计原理根

36、据绪论中介绍的出租车计费器的设计要求,设定系统的外部端口信号: 输入信号:时钟信号elk,开始计费信号start,车辆停止行驶时的等待信号 waitl,行驶信号fin。输出信号:总计费数c0c3,累计公里数kmOkm1,累计等待时长minOmin1 本次设计的出租车计费系统主要分为五大模块:分频模块、计量模块、计费 模块、计费方式选择模块以及显示模块,系统结构框图如图3.1所示。计量模块是实现整个系统里程计数和时间计数的重要部分;计费方式选择模块可以实现不同计费方式的选择,根据使能端信号选择系统是根据里程计费还是 等待时间计费;计费模块则将根据计量模块提供的行驶里程和等待时间以及分频 模块提供

37、的计费单价将总费用计算出来;最终显示模块将所有的统计数据包括里 程数、累计等待时长、总费用通过数码管直观地显示出来。图3.1系统的结构框图本次设计需要通过分频模块将脉冲输入信号 clk_750分频为20hz、3hz、1hz。 20hz与3hz为计费模块的驱动信号,1hz为计量模块的驱动信号,即每当计量模 块完成一次计数时,计费模块根据内部程序的选择完成20次或者3次计数。因此,就可以实现行驶过程中每公里 2元或等待过程中每分钟0.3元的标准计费。在出租车计费器的实际使用中,汽车行驶时的行驶信号信号可以用光电传感器、霍尔效应传感,以及干簧继电器作为里程传感器来进行信号采集。在汽车行驶时,每前进1

38、米,安装在蜗轮变速器上的磁铁将控制传感器关闭一次,即输 出一个脉冲,当汽车行驶到1km时,将输出100个脉冲。本次设计使用实验箱中的开关和时钟信号代替传感器电路,计费信号start 和行驶信号fin为“1”时,当计量模块的时钟信号的的上升沿到来时,计程将完 成一次计数,100个时钟信号为1km,本次设计在3km之内时只收取起步价,所 以当接受到300个行驶信号 后,则每km将增加2元,计价分辨率设定为0.1, 所以在20个脉冲系统将增加0.1元。本次的设计描述:start为开始计费信号,当start处于高电平时,说明有乘客上车,则系统开 始计费。当出租车在正常行驶计费时,fin信号为“ 1”,

39、wait1位于低电平,系统 进入行驶计费状态,内部程序判断行驶公里数是否大于3km,当超过3km时,数码管计费部分开始跳动,正常计费;行驶过程中如遇到红灯或者需停车等待时, 则将fin信号置“ 0”,同时将wait1置于高电平,则进入等待计费模式,内部程 序判断等待时长是否超过3min,当超过3min时数码管计费部分将按照每分钟 0.3 元的标准进行跳动计费。当车子到达目的地时,则将 wait1与fin同时置“ 0”,此时则停止计费,可 查看行驶总公里数、等待累计时长以及计费总额;当乘客下车且不等待时,将 start置于低电平,系统停止计费且清零复初值,起步价将重新置于10元。具体设计流程图如

40、图3.2所示:图3.2系统设计流程图3.2分频模块3.2.1分频模块的功能描述由于本次设计需要用到特定频率的时钟脉冲信号,实验箱提供的时钟信号不能满足此要求。因此通过分频器将较大频率的时钟信号通过分频得出较小的频 率。设计时选用 750khz有源晶振,因此近似得到为计费模块提供驱动信号的 20hz、3hz的方波信号,以及用于计量模块驱动信号的占空比为50%的1hz的时钟脉冲信号,此模块采用了 VHDL语言进行实现,将750khz的的时钟信号分别 进行了 37500次、25000次以及750000次分频。3.2.2分频模块的仿真波形图)ps 60. 0 ns 160.0 its 240 0 ns

41、 320. 0 ns 4OQ. 0 ns 480.0 ns 560.0 nx 640. 0 ns 720. D be 800.0 ns 6 恥阿13.55 m图3.3分频模块仿真波形图3.2.3分频模块器件图图3.4为分频模块所生成的器件图,其输入输出定义如下:I fenpin2ILrHtelk 750c elk 20ri-Lelk 3r-$c,k-1Li =instZ卜_-,i j - - | -r-ar*- -= 4图3.4分频模块生成符号输入信号:Clk_750 :由系统提供用于分频时钟信号;输出信号:clk_20:实现每公里计费2元的计费驱动信号,频率20hz; clk_3 :实现等待

42、时每分钟0.3元的计费驱动信号,频率3hz;clk_1:计量模块的驱动信号,频率1hz;3.3计量模块3.3.1计量模块的功能描述模块的输入信号含义:(1) start为整个系统的开始计费信号,当start为高电平时,贝U说明此时有乘客上车,系统将开始计费。当 start为低电平时,说明客人下车,拨动start系统复位,将记录的数据清零,并重新预置起步价10元。(2) waitl为等待计费控制信号。当车子在行驶过程中遇到红灯或其它情况 停止的时候,waitl为高电平时,系统将开始记录等待时长,当 waitl置“0”时, 则停止等待;当start置“0”时,将记录的时长清零。(3) fin为行驶

43、信号信号。当乘客上车车子开始启动时,行驶信号为“ 1” 时,则系统开始记录行驶里程数,当fin置“0”时,则暂停行驶里程数据的显示 记录,start置零“0”是,系统则将记录的总行驶里程数清零。(4) clk1是由分频模块产生的计量模块的时钟驱动信号。当clk1的上升沿 到来时,系统将进行一次计时或计程的累加。模块的输出信号含义:(1) enO为输出到计费选择模块的计费方式选择信号。 当车辆行驶超过3km 时,enO将变为“ 1”,输出到计费选择模块,将由分频模块提供的 20hz计费驱 动信号输出给计费模块,完成当行驶超过 3km时每公里2元的计费功能。(2) en1为输出到计费选择模块的计费

44、方式选择信号。当车辆行驶超过3min 时,en1将变为“1”,输出到计费选择抹开,将由分频模块提供的 3hz计费驱动 信号输出给计费模块,完成当行驶超过 3min时每分钟0.3元的计费功能。(3) k1、k0将计量模块的计程数据输出到数码管实时显示。k0为计程数据 的个位,k1为十位。(4) m1、m0将计量模块的等待计时数据输出到数码管实时显示。mO位计 时数据的个位,最高显示9,m1位计时数据的十位,最高显示为 5。本模块为整个系统的核心模块,完成正常行驶状态下的计程功能和等待状态 下的计时功能。实现计程功能:当start置“ 1”时,系统判断车辆运行状态。当等待计费信 号wait1为“0

45、”、行驶信号fin为“1”时,说明车辆正常行驶,则累计行驶里程 数。计量模块将行驶总里程数输出到数码管进行实时显示。当clk1的上升沿到来时,计程数据自动加1,并判断行驶里程数是否超过 3km,若小于3km,此模 块的计费选择信号enO为0;当超过3km时,enO将变为“1”,enO输出到计费 方式选择模块确定不同的计费方式,最后输出给计费模块累计行驶里程的费用。 计程的最大量程为99km,当超过99km时,计程数据将清零,并重新开始累加。实现计时功能:当start置“ 1”时,系统判断车辆运行状态。若等待计费信 号waitl为“1”、行驶信号fin为“0”时,则车辆进入停车等待计费模式,计量

46、 模块将等待计时数值输出到数码管实时显示,当clkl的上升沿到来时,则计时数据自动加1,同时判断等待时长是否超过 3min,当超过3min时,此模块的使 能信号en1将变为高电平,送给计费方式选择模块确定不同的计费方式,而后输出到计费模块,实现等待计时计费功能。计时的最大量程为59min,当超过59min 时,计时数据将清零,并重新开始累加。3.3.2计量模块的流程图计量模块为本系统的核心模块,通过对设计功能进行分析后得到本模块的流 程设计如图3.5所示。基于FPGA的岀租车计费器的设计3.3.3计量模块的模块生成符号根据流程图以及对该模块的描述,采用VHDL语言编程后得到如图3.6所示 的计

47、量模块的生成符号,其输入输出信号的定义如下:-|bngLftart佃finduaitlkip 0clklkOp.DMgmip. 0一mi(3 0inst41.n.r图3.6计量模块生成符号输入信号:start:由拨动开关提供的开始计费信号;fin :有拨动开关提供的行驶信号;waitl :由拨动开关提供的停车等待计费信号;clkl :通过分频模块得到的计量模块的驱动信号;输出信号:enO:向计费方式选择模块提供启动按里程计费的使能信号;en1:向计费方式选择模块提供启动按等待时长计费的使能信号; k13.0:输出到数码管的总行驶里程数的高位信号; kO3.O:输出到数码管的总行驶里程数的低位信

48、号; m13.0:输出到数码管的总等待时长的高位信号;m03.0:输出到数码管的总等待时长的低位信号;3.3.4计量模块的仿真波形图! PEi広q阿lfan cps JI0elkl-TLTTTTJ-LOL_n_rL_rL_rT_nL_n_rL_rT_rT_nL_r_r-LJ11MfanII1rstarti弓LLenOi05enl罰回booaooaooi Xooio XoailXaioo YoiaLxono y0111詡ILQ k:canS 110:aannK 0M1 X 10 XaanKoioccmi X01ID(OlLlJt IMO Sl0000图3.7计量模块仿真波形图17基于FPGA的岀

49、租车计费器的设计从仿真波形图3.7中可以看出,start信号时钟为“ 1”,系统一直处于计费状 态,当行驶信号fin为“ 1”时,则kO、k1开始记录里程,每次当kO满9时,则 自动向k1进1,当kO大于3时enO自动置“ 1”; waitl置“1”,计费器进入停 车等待计费,mO, m1将开始计时,mO满9时,则自动向m1进1,当mO大于 3 时 en1 置 “1”。3.4计费方式选择模块3.4.1计费方式选择模块的功能描述计费方式选择模块主要是根据 enO、en1的值选择输出频率分别为20hz和 3hz的时钟脉冲。enO、en1信号由计量模块提供,不同频率的时钟脉冲信号由分 频模块提供。输

50、出的时钟脉冲信号将输出给计费模块。当使能信号enO为“1”时,说明车子行驶的路程数超过了 3km贝U计费 方式选择模块将20hz的行驶计费单价脉冲信号输出给计费模式, 从而在10元底 价的基础上开始计程计费。当等待计时的使能信号 en1为“ 1”时,说明出租车停车等待时长超过了 3min,系统进入等待计费模式,则计费方式选择模块选择等待计费脉冲3hz提供给计费模块,从而开始进行等待计时计费。3.4.2计费方式选择模块的流程图通过对计费方式选择模块的功能设计进行分析后,得出如图3.8所示的计费方式选择模块的流程设计图:图3.8计费方式选择模块流程图3.4.3计费方式选择模块的模块生成符号根据流程

51、图以及对该模块的描述,采用VHDL语言编程后得到如图3.9所示 的计费方式选择模块,其输入输出信号的定义如下:entOclk_out;Lent1clk_in1i1clk_in2F kongzhiinsi图3.9计费方式选择模块生成符号输入信号:entO:大于3km时开始计费的使能信号,由计量模块提供;ent1:等待时间超过3min开始计费的使能信号,由计量模块提供; clk_in1 :分频后得到的每公里计费单价脉冲信号,由分频模块提供; clk_in2:分频后得到的等待时每分钟单价脉冲信号,由分频模块提供; 输出信号:clk_out :计费方式选择模块选择的计费脉冲驱动信号,送给计费模块;3.

52、4.4计费方式选择模块的仿真图形此模块的仿真输出部分有延迟。由波形图可以看出,当使能信号entO处于高电平时,系统为行驶里程计费状态,此时计费方式选择模块则选择里程计费频 率clk_in1进行输出;当使能信号en1处于高电平时,系统进入停止等待计费, 系统将选择等待计费频率clk_in2进行输出。因此计费方式选择模块就完成了对 不同计价方式的选择。3.5计费模块3.5.1计费模块功能描述分析功能设计可知,当计费信号 start为“ T时,计费模块开始工作。计费 方式选择模块根据车辆不同的运行状态选择不同的计费单价脉冲送给计费模块 clk2信号,计费模块根据clk2信号完成相应的费用累加。计费模

53、块的计费过程描述:(1) 当start为高电平时,计费模块开始工作。 行驶里程数小于3km并且停 车等待累计时长不超过3min时,计费模块只输出起步价10元,数码管的计费区 域将不会产生跳动。(2) 当start为高电平,汽车在行驶过程中,行驶里程数超过3km时,计费 方式选择模块将频率为20hz的脉冲信号送给计费模块的clk2,计费模块则在起 步价的基础上,汽车每行驶1公里,累加2元。(3)当start为高电平时,在计费状态下汽车停车等待,当等待累计时长超 过3min时计费方式选择模块输出3hz的计费脉冲信号给计费模块的clk2信号, 则每分钟将在原费用的基础上加收 0.3元。(4)当sta

54、rt为高电平且clk2没有输入,即行驶信号fin和停车等待计费信 waitl号同时为低电平时,则计费数值不再变化,实际应用为停车结算功能。(5)start为低电平,则系统将会复位,把之前记录的计费数据清零后并重 新置入起步价10.0元。计费模块输出信号:c0、c1、c2、c3为车费的8421BCD码,分别表示小数 点后一位、个位、十位和百位数据,即车费最大量程为999.9元,当大于999.9时,系统将自动清零,并重新开始累加。3.5.2计费模块的流程图计费模块是此次设计中实现计费功能的核心模块,根据所设功能得出如图3.11所示的流程图。3.5.3计费模块的模块生成符号通过分析系统的功能要求和本模块的设计流程图,采用VHDL语言编写程序后得到如图3.12所示的计费方式选择模块,其输入输出信号的定

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论