基于FPGA技术的出租车计费器设计

上传人:无*** 文档编号:74069605 上传时间:2022-04-12 格式:DOC 页数:34 大小:2.43MB
收藏 版权申诉 举报 下载
基于FPGA技术的出租车计费器设计_第1页
第1页 / 共34页
基于FPGA技术的出租车计费器设计_第2页
第2页 / 共34页
基于FPGA技术的出租车计费器设计_第3页
第3页 / 共34页
资源描述:

《基于FPGA技术的出租车计费器设计》由会员分享,可在线阅读,更多相关《基于FPGA技术的出租车计费器设计(34页珍藏版)》请在装配图网上搜索。

1、南昌工程学院本科毕业设计(论文)基于FPGA技术的出租车计费器设计 Design of Taxi Meter Based on FPGA 总计 毕业设计(论文) 28 页 表 格 0 个 插 图 16 幅17目 录目 录I摘 要IAbstractII第一章 引言1第二章 概述22.1 方案论证22.1.1 出租车计费器现状和挑战22.1.2 解决方案32.2 FPGA 介绍32.2.1 FPGA 发展状况32.2.2 FPGA 的结构与原理42.2.3 基本组成52.3 VHDL 硬件描述语言52.4 MAX+PLUS II72.4.1 设计流程72.4.2 Max+plus开发系统的特点82

2、.4.3 设计流程92.4.4 设计步骤92.5 Altium Protel 200410第三章 出租车计费系统设计说明113.1 系统总体结构113.2 单元模块描述113.2.1 分频模块113.2.2 计量控制模块123.2.3 译码显示模块123.3 车租车计费器的层次化设计方案123.3.1 出租车计费器的主题FPGA电路taxi模块的VHDL设计。123.3.2 扫描显示电路143.4 顶层电路的设计和仿真16第四章 结论与展望19参考文献21致 谢22附录:23附一:txai模块的VHDL程序:23附二:扫描显示电路262.1 模8计数器se的VHDL源程序262.2 8选1选择

3、器mux8_1的VHDL源程序272.3 七段数码显示译码器di_LED的VHDL源程序28摘 要本文介绍了一种采用单片 FPGA 芯片进行出租车计费器的设计方法,主要阐述如何使用新兴的EDA 器件取代传统的电子设计方法,利用FPGA 的可编程性,简洁而又多变的设计方法,缩短了研发周期,同时使出租车计费器体积更小功能更强大。本设计不仅实现了出租车计费器所需的一些基本功能,同时考虑到出租车行业的一些特殊性,更注重了把一些新的思路加入到设计中。主要包括采用了FPGA 芯片,使用VHDL 语言进行编程,使其具有了更强的移植性,更加利于产品升级;灵活的计价标准设定使得油价波动等成本因数和出租车价格联动

4、成为可能;从而使得本设计更加具有实用价值。关键字: 出租车计费器 FPGA MAX+PLUS VHDL 语言Abstract This article presents a method of how to use FPGA to design a taxi meter, andhow to replace traditional electrical design with burgeoning EDA parts.The develop period can be short because of the programmable FPGA and the design method wh

5、ich is simple and variable. It can also make the taxi count meter smaller and more functional.Besides the basic functions of taxi count meter, some new ideas are added concerning about the particularity of this calling. It becomes more transplantable and easier to upgrade by using of the FPGA and pr

6、ogramming with VHDL language.The linkage between the cost factors which can be influenced by oil and the taxi cost may be possible through the flexible setting of the cost calculation standard.So make the design more practical value. Key Words: taxi meter; FPGA; MAX+ PLUS; VHDL第一章 引言最近几年出租车行业发展迅速,在全

7、国有几千家出租车公司,出租车计费器的市场非常庞大。传统的出租车计费器由于发展使用了十几年,在稳定性、成本、以及使用习惯上都具有一些优势。利用 MCU 如89C51 单片机实现汽车计费器的设计,大部分的功能可以用单片机来实现。但是单片机程序是不通用的,不同的芯片有不同的指令集,因此设计研发比较困难,周期长。如果系统设计的不好,则系统不是很稳定,而且灵活度不够,不易实现功能复杂的设计。随着出租车价格市场化,许多因素主导了出租车行业成本的波动。例如:油价的波动、季节天气的变化,时时刻刻对其产生着影响,其价格也会随之波动。这些都对传统的出租车计费器提出了更高的要求。而FPGA 等数字可编程器件的出现彻

8、底解决了这个问题,而且性能更稳定、设计更灵活、能实现较复杂的功能,运用EDA 软件可方便的在电脑上实现设计与仿真。本设计基于FPGA 的出租车计费器主要由Altera 公司的ACEX 系列芯片,以及一些外部电路组成。使用软件MAX+PLUS 和超高速硬件描述语言VHDL 来实现LCD 显示(包括时钟、车速、等待时间、行驶路程、总费用、开始计费和停止、参数设定菜单以及营运额统计显示切换)、计价标准灵活设定、按白天深夜不同计价标准自动计费、模拟车轮驱动等功能。FPGA 是电子设计领域中最具活力和发展前途的一项技术,未来必定会取代部分落伍的数字器件。第二章 概述2.1 方案论证2.1.1 出租车计费

9、器现状和挑战最近几年出租车行业发展迅速,在全国有几千家出租车公司,出租车计费器的市场非常庞大。目前市场上使用的出租车计费器主要采用的都是利用MCU 如89C51 单片机实现的计费器设计,显示方式上主要采用的是固定显示内容的LED 显示。如图1.1: 图1.1 传统LED 显示的计费器传统的出租车计费器由于发展使用了十几年,在稳定性、成本、以及使用习惯上都具有一些优势,但是随着出租车价格市场化,许多因素主导着出租车行业的成本。例如:油价的波动、季节天气的变化等都时时刻刻影响着其价格的变动。这些情况都对传统的出租车计费器提出了更高的要求。近一年来,各大城市都在对出租车价格进行调整,由于数量太多,很

10、多城市的调价甚至需要一个月的时间才能完成,经常会同一时间出现几个价格,有的城市的出租车上还会出现司机人工计价的尴尬情形。这些都暴露了传统计费器在灵活性和升级换代能力的天生不足。传统计费器的不足可以体现在以下几点:1产品更新周期长传统计费器利用 MCU 如89C51 单片机实现汽车计费器的设计,大部分的功能可以用单片机来实现。但是单片机程序是不通用的,不同的芯片有不同的指令集,因此设计研发比较困难,周期长。如果系统设计的不好,则系统不是很稳定,而且灵活度不够,不易实现功能复杂的设计。2计价方式的不灵活每次计价标准的修改都需要将芯片从新烧录,使得每次调价都需要耗费大量的人力物力,很难达到目前油价联

11、动的需求。3显示方式的不灵活由于传统计费器采用 LED 显示,看似简单、方便,但是这种方式要求计费器外形设计固定化,如果需要改变显示内容,甚至需要整个设备的更换,不利于产品的理想升级。这些都体现了目前对出租车计费器市场更新换代的需求。2.1.2 解决方案考虑到目前出租车行业迅猛发展的趋势以及对计费器更高的灵活性要求,本设计希望尝试一些新的方法来予以解决。1.利用FPGA 取代MCU随着 FPGA 等数字可编程器件的出现解决传统电子设计不能完成的任务,利用FPGA来实现出租车计费器。可行性很高,而且电路简单,大大减少外围器件,可以用软件完全仿真,灵活度高,可以设计一些复杂的系统,而且编好的系统可

12、以在不同的FPGA 或CPLD芯片上通用。FPGA 能完成任何数字器件的功能,使用FPGA 来开发数字电路,可以大大缩短设计时间,减少PCB 面积,提高系统的可靠性。同时由于 FPGA 的功能完全取决于VHDL 语言编写的程序,不拘泥于某种芯片的特殊指令,更加提高了产品的更新换代能力。2.增加计价标准设定功能通过设计此功能模块可以使得计价标准设计更加灵活,体现目前出租车行业发展的需要,使运价、油价联动成为可能。2.2 FPGA 介绍2.2.1 FPGA 发展状况FPGA 是现场可编程门阵列(Field Programable Gate Array)的简称,FPGA 是电子设计领域中最具活力和发

13、展前途的一项技术,它的影响丝毫不亚于70 年代单片机的发明和使用。Actel 公司于2005 年1 月24 日在美国加利福尼亚总部发布了它的ProASIC3 和ProASIC3E 系列的FPGA。这是该公司第三代的基于Flash 的可编程逻辑方案。这些新的 ProASIC3 最低价将达到1.5 美元,代表了全球最低成本的FPGA,并且相对于基于SRAM 的FPGA 来说具有保密的优势。基于Flash 的FPGA 可以提供加密、低功耗、上电工作、可重复编程的方案。而最近 Lattice 公司发布了其新一代90nm 高性能FPGA:LatticeSC 系列。该系列FPGA 采用日本富士通CS100

14、A 90nm 工艺制造,集成了3.4Gbps 高速SERDES 模块,多种形式的嵌入式RAM,以及嵌入式定制ASIC 模块。逻辑容量从容量从1 万5 千到11 万5 千个LUTs。该系列将成为 Lattice 公司目前性能最高的FPGA 主攻高速系统应用领域。从这些都可以看出可编程器件已成为现在及未来很长一段时间的主流,用它来实现出租车计费系统可以省去很多外围电路,稳定,简单有效,可以设计出很多复杂强大的功能,提高产品竞争力。2.2.2 FPGA 的结构与原理目前生产 FPGA 的公司主要有Xilinx、Altera、Actel、Lattice、QuickLogic 等,生产的FPGA 品种和

15、型号繁多。尽管这些FPGA 的具体结构和性能指标各有特色,但它们都有一个共同之处,即由逻辑功能块排成阵列,并由可编程的互连资源连接这些逻辑功能块,从而实现不同的设计。典型的 FPGA 通常包含三类基本资源:可编程逻辑功能块、可编程输入/输出块和可编程互连资源。可编程逻辑功能块是实现用户功能的基本单元,多个逻辑功能块通常规则地排成一个阵列结构,分布于整个芯片;可编程输入/输出块完成芯片内部逻辑与外部管脚之间的接口,围绕在逻辑单元阵列四周;可编程内部互连资源包括各种长度的连线线段和一些可编程连接开关,它们将各个可编程逻辑块或输入/输出块连接起来,构成特定功能的电路。用户可以通过编程决定每个单元的功

16、能以及它们的互连关系,从而实现所需的逻辑功能。不同厂家或不同型号的FPGA,在可编程逻辑块的内部结构、规模、内部互连的结构等方面经常存在较大的差异。除了上述构成 FPGA 基本结构的三除了上述构成 FPGA 基本结构的三种资源以外,随着工艺的进步和应用系统需求的发展,一般在FPGA 中还可能包含以下可选资源:存储器资源(块 RAM、分布式RAM);数字时钟管理单元(分频/倍频、数字延迟、时钟锁定);算数运算单元(高速硬件乘法器、乘加器);多电平标准兼容的 I/O 接口;高速串行 I/O 接口;特殊功能模块(以太网MAC 等硬IP 核);微处理器(PowerPC405 等硬处理器IP 核)。2.

17、2.3 基本组成 SRAM- 基于静态内存static memory技术。系统内可编程化和再程式化(re-programmable)。须要外部启动元件(external boot devices) CMOS。 Antifuse- 单一时间可编程化。CMOS. EPROM- 可清除可编程化只读内存技术 EEPROM- 可清除可编程化只读内存技术 Flash- Flash-erase EPROM technology. Fuse- 一个时间可编程化。Bipolar.2.3 VHDL 硬件描述语言VHDL(Very-High-Speed Integrated Circuit Hardware Des

18、cription Language)即超高速集成电路硬件描述语言,在基于CPLDFPGA和ASIC的数位系统设计中有着广泛的应用。有专家认为,在新世纪中,VHDL 与Verilog HDL语言将承担起几乎全部的数字系统设计任务。VHDL语言诞生于1983年,1987年被美国国防部和IEEE确定为标准的硬件描述语言。自从IEEE发布了VHDL的第一个标准版本IEEE 1076-1987后,各大EDA公司都先后推出了自己支援 VHDL 的 EDA 工具。VHDL 在电子设计行业得到了广泛的认同。此后IEEE又先后发布了IEEE 1076-1993和IEEE 1076-2000版本。VHDL 主要用

19、于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外,VHDL 的语言形式和描述风格与句法十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件、一个电路模块或一个系统)分成外部(或称可视部分,即端口)和内部(或称不可视部分),即设计实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦内部开发完成后,其他的设计可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL 系统设计的基本点。使用 VHDL 设计系统方法是自顶向下的系统设计方法,在设计过程中,首先是从整体上对系统设计作详细的规划,然后完成电路系统

20、功能行为方面的设计。其设计流程如图2.1:图2.1 VHDL 工程设计流程随着 EDA 技术的发展,使用硬件语言设计FPGA 成为一种趋势。借用MAXPLUSII或QuartusII 等软件用VHDL 语言开发FPGA 的完整流程为:(1)文本编辑:用任何文本编辑器都可以进行,也可以用专用的HDL 编辑环境。通常VHDL 文件保存为.vhd 文件。(2)功能仿真:将文件调入HDL 仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只在布线完成以后,进行时序仿真)。(3)逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式和信号的连接关系。

21、逻辑综合软件会生成.edf(edif)的EDA 工业标准文件。(4)布局布线:将.edf 文件调入PLD 厂家提供的软件中进行布线,即把设计好的逻辑安放到PLD/FPGA 内。(5)时序仿真:需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序(也叫后仿真)。(6)编程下载:确认仿真无误后,将文件下载到芯片中。.sof 文件用于直接下载到芯片(掉电后会消失),.pof 文件用于rom 芯片下载(掉电后不消失)。2.4 MAX+PLUS IIMAX+PLUS II 开发工具是Altera 公司自行设计的一种CEA 软件工具。它具有原理图输入和文本输入两种输入手段,利用该工具所配备的编辑、

22、翻译、仿真、综合、芯片编程功能,能将设计电路图或电路描述程序变成基本的逻辑单元写入到可编程逻辑的芯片中(如CPLD)。设计中主要用Altera 公司FPGA 来实现LED 屏显示,MAX+PLUS II 是用来编写模块VHDL 语言的必备工具。MAX+PLUS II 支持Altera 公司不同结构的可编程逻辑器件,能满足用户各种各样的设计需要。MAX+plus II 具有突出的灵活性与高效性,为设计者提供了多种可自由选择的设计方法和工具。MAX+PLUSII 普遍认为MaxplusII 曾经是最优秀的PLD 开发平台之一,适合开发中小规模PLD/FPGA。在这里我们可以先看一看用 FPGACP

23、LD 开发工具进行电路设计的一般流程,通常可将FPGA/CPLD 设计流程归纳为以下7 个步骤,这与ASIC 设计有相似之处。2.4.1 设计流程1.设计输入。在传统设计中,设计人员是应用传统的原理图输入方法来开始设计的。自90 年代初, Verilog、VHDL、AHDL 等硬件描述语言的输入方法在大规模设计中得到了广泛应用。2. 前仿真(功能仿真)。 设计的电路必须在布局布线前验证电路功能是否有效。(ASCI设计中,这一步骤称为第一次Sign-off)PLD 设计中,有时跳过这一步。3. 设计编译。 设计输入之后就有一个从高层次系统行为设计向门级逻辑电路设转化翻译过程,即把设计输入的某种或

24、某几种数据格式(网表)转化为软件可识别的某种数据格式(网表)。4. 优化。 对于上述综合生成的网表,根据布尔方程功能等效的原则,用更小更快的综合结果代替一些复杂的单元,并与指定的库映射生成新的网表,这是减小电路规模的一条必由之路。5.布局布线。在PLD 设计中,3-5 步可以用PLD 厂家提供的开发软件(如 Maxplus2)自动一次完成。6.后仿真(时序仿真)需要利用在布局布线中获得的精确参数再次验证电路的时序。(ASCI 设计中,这一步骤称为第二次Signoff)。7. 生产。布线和后仿真完成之后,就可以开始ASCI 或PLD 芯片的投产。2.4.2 Max+plus开发系统的特点1、开放

25、的界面Max+plus支持与Cadence,Exemplarlogic,Mentor Graphics,Synplicty,Viewlogic和其它公司所提供的EDA工具接口。2、与结构无关Max+plus系统的核心Complier支持Altera公司的FLEX10K、FLEX8000、FLEX6000、MAX9000、MAX7000、MAX5000和Classic可编程逻辑器件,提供了世界上唯一真正与结构无关的可编程逻辑设计环境。3、完全集成化Max+plus的设计输入、处理与较验功能全部集成在统一的开发环境下,这样可以加快动态调试、缩短开发周期。4、丰富的设计库Max+plus提供丰富的库

26、单元供设计者调用,其中包括74系列的全部器件和多种特殊的逻辑功能(Macro-Function)以及新型的参数化的兆功能(Mage-Function)。5、模块化工具设计人员可以从各种设计输入、处理和较验选项中进行选择从而使设计环境用户化。6、硬件描述语言(HDL)Max+plus软件支持各种HDL设计输入选项,包括VHDL、Verilog HDL和Altera自己的硬件描述语言AHDL。7、Opencore特征Max+plus软件具有开放核的特点,允许设计人员添加自己认为有价值的宏函数。2.4.3 设计流程1、 设计输入:可以采用原理图输入、HDL语言描述、EDIF网表输入及波形输入等几种方

27、式。2、编译:先根据设计要求设定编译参数和编译策略,如器件的选择、逻辑综合方式的选择等。然后根据设定的参数和策略对设计项目进行网表提取、逻辑综合和器件适配,并产生报告文件、延时信息文件及编程文件,供分析仿真和编程使用。3、 仿真:仿真包括功能仿真、时序仿真和定时分析,可以利用软件的仿真功能来验证设计项目的逻辑功能是否正确。4、编程与验证:用经过仿真确认后的编程文件通过编程器(Programmer)将设计下载到实际芯片中,最后测试芯片在系统中的实际运行性能。在设计过程中,如果出现错误,则需重新回到设计输入阶段,改正错误或调整电路后重复上述过程。设计输入编 译在系统测试编 程修改设计仿真与定时分析

28、图2.2 流程图2.4.4 设计步骤1.输入项目文件名(File/Project/Name)2.输入源文件(图形、VHDL、AHDL、Verlog和波形输入方式)(Max+plus/graphic Editor;Max+plus/Text Editor;Max+plus/Waveform Editor)3.指定CPLD型号(Assign/Device)4.设置管脚、下载方式和逻辑综合的方式(Assign/Global Project Device Option,Assign/Global Logic Synthesis)5.保存并检查源文件(File/project/Save & Check)

29、6.指定管脚(Max+plus/Floorplan Editor)7.保存和编译源文件(File/project/Save & Compile)8.生成波形文件(Max+plus/Waveform Editor)9.仿真(Max+plus/Simulator)10.下载配置(Max+plus/Programmer)2.5 Altium Protel 2004Altium Protel 2004 是Altium 公司推出的电路原理图绘制、PCB 图绘制以及数模电路仿真一体化的电子设计软件,设计中所有的原理图、PCB 图均采用该软件绘制。Protel 2004 引入了集成库的概念,这使您在原理图中

30、选择的元器件就已经有了您需要的封装,Protel 2004 附带了68,000 多个元件的设计库,包括原理图FPGA 设计的即调即用及预综合元件集成库,并且这些封装都能完全符合您的要求,当然如果您不满意,也可以修改这个元器件的封装为您所需,当然您还可以在PCB 库编辑器制作您所需要的封装。第三章 出租车计费系统设计说明3.1 系统总体结构设计一个满足日常生活所需功能的出租车计价器。该计费器能实现计费功能。车起步开始计费,首先显示起步价,起步费为8.00元,车在行驶3km以内,只收起步价。车行驶超过3km后,没公里1.6元,车费依次累加。当遇到红灯或客户需要停车等待是,则按时间计费,计费单价为每

31、分钟收费1元。实现计费器预置功能,能够预置起步价、每公里收费、计时收费等。用两位数码管显示总里程数、等待时间和行车计费。整个出租车计费系统按功能自顶向下分为分频模块、控制模块、计量模块、译码和动态扫描显示模块,其系统结构如图3.1所示,各模块功能如下所述。 FPGA显示译码 计 费分频器时钟信号等待信号 计 时控制器公里脉冲 计 程计费、复位 图3.1 出租车计费器系统机构图3.2 单元模块描述3.2.1 分频模块分频模块对频率为240hz的输入脉冲进行分频,得到的频率为16hz、10hz、1hz三种。该模块产生频率信号用于计费,每个1hz脉冲为0.1元计费控制,10hz信号为1元的计费控制,

32、16hz信号为1.6元计费控制。3.2.2 计量控制模块计量控制模块是出租车计费系统的主体部分,是其核心模块,该模块由控制模块、等待计时模块、里程计数摸块和计费模块组成。主要完成等待计时功能、计价功能、计程功能,同时产生3分钟的等待计时使能控制信号en1、行程3公里外的使能控制信号en0。控制模块是系统的棱心部分根据汽车计价启动信号(start)、停止等待信号(stop),汽车传感器提供的距离脉冲信号(fin)等控制信号对计赞器的状态进行控制。3.2.3 译码显示模块本次设计采用的是共阴极七段数码管,根据1 6进制数和七段显示段码表的对应关系,用VHDL的Case语句可方便实现它们的译码。.该

33、模块经8选1选择器将计费数据(4位bcd码)、计时数据(2位bcd码)、计程数据(2位bcd码)动态显示出来。其中计费数据jifei4jifei1送入显示译码模块进行译码,最后送至以百元、十元、元、角为单位对应的数码显示管上,最大显示为999.9元;计时数据送入显示译码模块进行译码,最后送至以分为单位对应的数码显示管上,最大显示为59分;计程数据送入显示译码模块进行译码,最后送至以公里为单位对应的数码显示管上,最大显示为99公里。3.3 车租车计费器的层次化设计方案3.3.1 出租车计费器的主题FPGA电路taxi模块的VHDL设计。根据任务书描述功能该电路的核心部分就是计数分频电路,通过VH

34、DL语言的顺序语句IF-THEN-ELSE根据一个或一组条件来选择某一特定的执行通道,生成计费数据、计时数据和里程数据。其VHDL语言见附一。 该源程序包含3个进程模块。fenpin进程对频率为240Hz的输入脉冲进行分频,得到的频率为16Hz,10Hz和1Hz的三种计费频率信号,供main进程和jifei进程进行计费、计时、计程之用;main进程完成等待计时功能、计程功能,该模块将等待时间和行驾公里数变换成脉冲个数计算,同时产生3分种的等待计时使能控制信号en1, 行程 3公里外的使能控制信号en0;jifei进程将起步价8元预先固定在电路中,通过对计费脉冲数的统计,计算出整个费用数据。源程

35、序中输入信号fin是汽车传感器提供的距离脉冲信号;start为汽车计价启动信号,当star=1时,表示开始计费(高电平有效),此时将计价器计费数据初值80(即8.0元)送入,计费信号变量(cha3cha2cha1cha0=0080),里程数清零(km1km0=00),计时计数器清零(min1min0=00) ;stop为汽车停止等待信号(高电平有效),当stop=1时,表示停车等待状态,并开始等待计时计费。其部分仿真输出波形如图3.2和图3.3所示,元件符号如图3.4所示。 图3.2 出租车自动计费器系统的主体电路仿真输出波形(1) 图3.3 出租车自动计费器系统的主体电路仿真输出波形(2)

36、图3.4出租车自动计费器系统的主体FPGA电路元件符号 在图3.2中,stop=0即全程无停止等待时间,因此计时显示输出为00,该图中出租车总行驶5公里,等待累计时间为0分钟,总费用为11.2元;图3.3中共有3次停车等待累计时间为3分钟,出租车总行驶21公里,总费用为57.6元,仿真结果正确。 3.3.2 扫描显示电路该模块包含8选1选择器,模8计数器,七段数码显示译码器三个子模块,源程序见附二,仿真输出如下:1. 模8计数器se源程序中输入信号clk为系统输入的240HZ基准时钟,输出a为3位二进制编码,其仿真输出波形如图3.5所示,元件符号如图3.6所示。 图3.5 仿真输出波形 图3.

37、6 元件符2. 8选1选择器mux8_1仿真源程序中输入信号c2.0为系统选择输入,a1a2a3a4为计费数据BCD码输入,b1b2为里程数BCD码输入,t1t2为计时时间的BCD码输入,d为4位BCD码输出,dp为小数点指示信号(仅计费数据输出时有一位小数)。其仿真输出波形和元件符号如图3.7和图3.8所示。 图3.7 仿真输出波形图3.8 元件符号3.七段数码显示译码器仿真源程序中输入信号d3.0为BCD码输入,q6.0为4七段译码输出(高电平有效)。其仿真输出波形如图3.9所示,元件符号如图3.10所示:图3.9 仿真输出波形 图3.10 元件符号 3.4 顶层电路的设计和仿真根据图3.

38、1出租车自动计费器系统框图,出租车自动计费器顶层电路分为四个模块,它们是出租车自动计费器系统的主体FPGA电路txai模块,8选1选择器mux8_1模块,模8计数器se模块,七段数码显示译码器di_LED模块,生成动态扫描显示片选信号的3-8译器模块decode3_8,图3.11所示的是自动计费器顶层电路原理图。按已确立的层次化设计思路,在QuartusII图形编缉器中分别调入前面的层次化设计方案中所设计的低层模块的元件符号txai.sym、mux8_1.sym、se.sym、di_LED.sym、并加入相应的输入输出引脚与辅助元件。而后根据图3.11完成出租车自动计费器的顶层原理图输入。电路

39、连好线,对其编译和仿真。正确编译后仿真输出波形和元件符号如图3.12和图3.13所示。在图3.12中,K2=0即全程无停止等待时间,因此计时显示输出为3F(00),该图中出租车总行驶3F(0)5B(2)(即2公里),等待累计时间为3F (0)3F (0)(0分钟),总费用为7F.3F(8.0元),仿真结果正确。图3.11 自动计费器顶层电路原理图3.12 出租车自动计费器顶层电路仿真输出波形图3.13 出租车自动计费器顶层电路元件符号第四章 结论与展望经过了两个多月的学习和工作,我终于完成了基于FPGA技术的出租车计费器设计的论文。从开始接到论文题目到系统的实现,再到论文文章的完成,每走一步对

40、我来说都是新的尝试与挑战,这也是我在大学期间独立完成的最大的项目。在这段时间里,我学到了很多知识也有很多感受,从对VHDL的一无所知,对eda、VHDL等相关技术很不了解的状态,我开始了独立的学习和试验,查看相关的资料和书籍,让自己头脑中模糊的概念逐渐清晰,使自己非常稚嫩作品一步步完善起来,每一次改进都是我学习的收获,每一次试验的成功都会让我兴奋好一段时间。从中我也充分认识到了VHDL这一新兴的技术给我们生活带来的乐趣。FPGA 器件的成本越来越低,Actel 公司发布第三代的基于Flash 的可编程逻辑方案。这些新的FPGA 芯片最低价将达到1.5 美元,代表了全球最低成本的FPGA,并且相

41、对于基于SRAM 的FPGA 来说具有保密的优势。基于Flash 的FPGA 可以提供加密、低功耗、上电工作、可重复编程的方案。这些都说明可编程器件已成为现在及未来很长一段时间的主流,用它来实现出租车计费系统可以省去很多外围电路,稳定,简单有效,可以设计出更多强大的功能,提高产品竞争力。未来基于FPGA 平台的出租车计费器会有更低的成本、更小的体积、更安全、更精确和多功能。本文论述了基于 FPGA 的出租车计费器设计,分别介绍了整个系统和各模块的设计。使用FPGA 芯片、VHDL 语言、MAX+PLUS 软件和一些外围电路,实现了软件和硬件的设计制作。本文设计的出租车计费器具备了LED 显示、

42、计价标准设定、按不同计价标准自动计费、统计功能等功能。通过验证证明了预期方案的可行性。虽然我的论文作品不是很成熟,还有很多不足之处,但我可以自豪的说,这里面的每一段代码,都有我的劳动。当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最终都会化为甜美的甘泉。这次做论文的经历也会使我终身受益,我感受到做论文是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破,那也就不叫论文了。希望这次的经历能让我在以后学习中激励我继续进步。参考文献1 英Jone Wulenskl .VHDL

43、Digtal System Design,北京:电子工业出版社,2004 ,101052 黄正瑾.CPLD 系统设计技术入门与应用,北京:电子工业出版社,2002 ,21283 李国洪. 可编程器件 EDA 技术与实践,北京:机械工业出版社,2004,1001234 亿特科技. CPLD/FPGA 应用系统设计与基础篇,北京:人民邮电出版社,2005,931025 求是科技. FPGA 数字电子系统设计与开发实例导航,北京:人民邮电出版社,2005,1151266 EDA 先锋工作室. Altera FPGA/CPLD 设计(高级篇),北京:人民邮电出版社,2005,27587 UweMeye

44、r-Baese. 字信号处理的FPGA实现M,北京:清华大学出版社,20028 (英)渥伦斯基 Digital System Design with VHDL,Second Edition M工业出版社 2004.079 侯伯亨,顾新.VHDL硬件描述语言与数字逻辑电路设计M.西安:西安电子科技大学出版,199910 刘欲晓 方强 黄婉宁. EDA技术与VHDL电路开发应用实践,北京: 电子工业出版社,2009,17318611 刘昌华. 数字逻辑EDA设计与实践MAX+PLUSII与QuartusII双剑合璧. 北京 国防工业出版社,2006,34735521致 谢本课题在选题及创作过程中得

45、到谢剑锋老师的亲切关怀和悉心指导。他们肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。从课题的选择到项目的最终完成,老师都始终给予我细心的指导和不懈的支持。在此谨向谢老师致以诚挚的谢意和崇高的敬意。四年的读书生活在这个季节即将划上一个句号,而于我的人生却只是一个逗号,我将面对又一次征程的开始。在这四年里我所收获的不仅仅是愈加丰厚的知识,更重要的是在阅读、实践中所培养的思维方式、表达能力和广阔视野。很庆幸这些年来我遇到了许多恩师益友,无论在学习上、生活上还是工作上都给予了我无私的帮助和热心的照顾,让我在诸多方面都有所成长。感恩之情难以用语言量度,谨以最朴实的话语致以最崇高

46、的敬意。谢谢你们!27附录:附一:txai模块的VHDL程序:LIBRARY IEEE; USE IEEE.std_logic_1164.all;USE IEEE.std_logic_unsigned.all; USE IEEE.std_logic_arith.all;ENTITY taxi isport ( clk_240 :in std_logic; -频率为240Hz的 时钟 start :in std_logic; -计价使能信号 stop:in std_logic; -等待信号 fin:in std_logic; -公里脉冲信号 cha3,cha2,cha1,cha0:out std

47、_logic_vector(3 downto 0); -费用数据 km1,km0:out std_logic_vector(3 downto 0); -公里数据 min1,min0: out std_logic_vector(3 downto 0); -等待时间 end taxi;architecture behav of taxi issignal f_10,f_16,f_1:std_logic; -频率为10Hz,16Hz,1Hz的信号signal q_10:integer range 0 to 23; -24分频器signal q_16:integer range 0 to 14; -1

48、5分频器signal q_1:integer range 0 to 239; -240分频器signal w:integer range 0 to 59; -秒计数器 signal c3,c2,c1,c0:std_logic_vector(3 downto 0); -十进费用计数器signal k1,k0:std_logic_vector(3 downto 0); -公里计数器signal m1:std_logic_vector(2 downto 0); -分的十位计数器 signal m0:std_logic_vector(3 downto 0); -分的个位计数器signal en1,en

49、0,f:std_logic; -使能信号 beginfeipin:process(clk_240,start)begin if clk_240event and clk_240=1 then if start=0 then q_10=0;q_16=0;f_10=0;f_16=0;f_1=0;f=0; else if q_10=23 then q_10=0;f_10=1; -此IF语句得到频率为10Hz的信号 else q_10=q_10+1;f_10=0; end if; if q_16=14 then q_16=0;f_16=1; -此IF语句得到频率为16Hz的信号 else q_16=q

50、_16+1;f_16=0; end if; if q_1=239 then q_1=0;f_1=1; -此IF语句得到频率为1Hz的信号 else q_1=q_1+1;f_1=0; end if; if en1=1 then f=f_10; -此IF语句得到计费脉冲f elsif en0=1 then f=f_16; else f=0; end if; end if; end if;end process;main:process(f_1)begin if f_1event and f_1=1 then if start=0 then w=0;en1=0;en0=0;m1=000;m0=000

51、0;k1=0000;k0=0000; elsif stop=1 then if w=59 then w=0; -此IF语句完成等待计时 if m0=1001 then m0=0000; -此IF语句完成分计数 if m1=101 then m1=000; else m1=m1+1; end if; else m00000010then en1=1; -此IF语句得到en1使能信号 else en1=0; end if; else w=w+1;en1=0; end if; elsif fin=1 then if k0=1001 then k0=0000; -此IF语句完成公里脉冲计数 if k1

52、=1001 then k1=0000; else k1=k1+1; end if; else k000000010 then en0=1; -此IF语句得到en0使能信号 else en0=0; end if; else en1=0;en0=0; end if;cha3=c3;cha2=c2;cha1=c1;cha0=c0; -费用数据输出km1=k1;km0=k0;min1=0&m1;min0=m0; -公里数据、分钟数据输出 end if ;end process main;jifei:process(f,start)begin if start=0 then c3=0000;c2=000

53、0;c1=1000;c0=0000; elsif fevent and f=1 then if c0=1001 then c0=0000; -此IF语句完成对费用的计数 if c1=1001 then c1=0000; if c2=1001 then c2=0000; if c3=1001 then c3=0000; else c3=c3+1; end if; else c2=c2+1; end if; else c1=c1+1; end if; else c0=c0+1; end if; end if;end process jifei;end behav;附二:扫描显示电路2.1 模8计数

54、器se的VHDL源程序LIBRARY IEEE;USE IEEE.std_logic_1164.all;USE IEEE.std_logic_unsigned.all; ENTITY se IS port(clk:in std_logic; a:out std_logic_vector(2 downto 0);END se;ARCHITECTURE rt1 of se ISbegin process(clk) variable b:std_logic_vector(2 downto 0); begin if(clkevent and clk=1)then if(b=111)then b:=000; else b:=b+1; end if; end if; ad=a1; dpd=a2; dpd=a3; dpd=a4; dpd=b1; dpd=b2; dpd=t1; dpd=t2; dpnull; end case; end process;end rt1;2.3 七段数码显示译码器di_LED的VHDL源程序LIBRARY IEEE;USE IEEE.std_logic_1164.all;USE IEEE.std_logic_unsigned.all; ENTITY di_LED IS port(d:in std_logic_vector(3 downto 0); q:out

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!