精品完整版基于FPGA的出租车计费器系统的设计论文.docx

上传人:b****6 文档编号:14231822 上传时间:2023-06-21 格式:DOCX 页数:45 大小:345.05KB
下载 相关 举报
精品完整版基于FPGA的出租车计费器系统的设计论文.docx_第1页
第1页 / 共45页
精品完整版基于FPGA的出租车计费器系统的设计论文.docx_第2页
第2页 / 共45页
精品完整版基于FPGA的出租车计费器系统的设计论文.docx_第3页
第3页 / 共45页
精品完整版基于FPGA的出租车计费器系统的设计论文.docx_第4页
第4页 / 共45页
精品完整版基于FPGA的出租车计费器系统的设计论文.docx_第5页
第5页 / 共45页
精品完整版基于FPGA的出租车计费器系统的设计论文.docx_第6页
第6页 / 共45页
精品完整版基于FPGA的出租车计费器系统的设计论文.docx_第7页
第7页 / 共45页
精品完整版基于FPGA的出租车计费器系统的设计论文.docx_第8页
第8页 / 共45页
精品完整版基于FPGA的出租车计费器系统的设计论文.docx_第9页
第9页 / 共45页
精品完整版基于FPGA的出租车计费器系统的设计论文.docx_第10页
第10页 / 共45页
精品完整版基于FPGA的出租车计费器系统的设计论文.docx_第11页
第11页 / 共45页
精品完整版基于FPGA的出租车计费器系统的设计论文.docx_第12页
第12页 / 共45页
精品完整版基于FPGA的出租车计费器系统的设计论文.docx_第13页
第13页 / 共45页
精品完整版基于FPGA的出租车计费器系统的设计论文.docx_第14页
第14页 / 共45页
精品完整版基于FPGA的出租车计费器系统的设计论文.docx_第15页
第15页 / 共45页
精品完整版基于FPGA的出租车计费器系统的设计论文.docx_第16页
第16页 / 共45页
精品完整版基于FPGA的出租车计费器系统的设计论文.docx_第17页
第17页 / 共45页
精品完整版基于FPGA的出租车计费器系统的设计论文.docx_第18页
第18页 / 共45页
精品完整版基于FPGA的出租车计费器系统的设计论文.docx_第19页
第19页 / 共45页
精品完整版基于FPGA的出租车计费器系统的设计论文.docx_第20页
第20页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

精品完整版基于FPGA的出租车计费器系统的设计论文.docx

《精品完整版基于FPGA的出租车计费器系统的设计论文.docx》由会员分享,可在线阅读,更多相关《精品完整版基于FPGA的出租车计费器系统的设计论文.docx(45页珍藏版)》请在冰点文库上搜索。

精品完整版基于FPGA的出租车计费器系统的设计论文.docx

精品完整版基于FPGA的出租车计费器系统的设计论文

(此文档为word格式,下载后您可任意编辑修改!

基于FPGA的出租车计费系统的设计

摘要

随着我国市场经济的发展,交通也越来越便利,特别是计程车,以快捷、方便的特点早已盛行各个城市,成为城市交通的重要工具。

计程车市场从90年代初的起步阶段到现在已经进入了高峰期。

随着城市化水平的提高和人民生活水平的改善,计程车的服务也就显得越来越重要。

因此计程车计价器也就应运而生了。

本文分析了当前国内外出租车计费系统的基本组成和工作原理及主要的两种设计方式:

基于单片机的设计方式和基于FPGA的设计方式;并对这两种实现方式的优点和缺点进行分析,比较后确定本系统的方案:

基于FPGA的出租车计费系统的设计。

在本设计中主要是通过VHDL语言来编程实现计费系统的四个功能块:

分频模块,控制模块,计量模块和译码显示模块,最后使用MAX+PLUSII软件来对程序进行仿真,以模拟实现出租车的启动,停止以及等待等过程中的计时,计程和计费功能。

并将各功能模块的结果通过动态译码扫描模块输出到显示模块进行显示。

即通过显示模块显示出租车所行驶的路程,出租车等待的时间和出租车分别在等待过程中的费用和行驶过程中的费用。

关键字:

CPLD/FPGA;VHDL语言;MAXPLUSII;出租车;计费器

DesignoftaximeterBasedonFPGA

Abstract

AsChina'smarketeconomydevelops,moreandmoreconvenienttransport,particularlytaxis,tofast,convenientfeatureshavelongbeenpopularinvariouscitiesandbecomeanimportanttoolforurbantraffic.Taximarketintheearly1990s,theinitialstageuptonowhasenteredapeakperiod.Withthelevelofurbanizationandtheimprovementofpeople'slivingstandardsimprove,taxiserviceswillbecomeincreasinglyimportant.Taximeterthereforeithasemerged.

Thispaperanalysesthecurrentdomesticandforeigntaxibillingsystemandthebasicworkingprincipleandthetwomaindesign;BasedonthedesignofmicrocontrollerandFPGA-baseddesign;andboththestrengthsandthewaysShortcomingsoftheanalysis,comparisonofthesystemestablishedaftertheprogramme:

FPGA-basedbillingsystemfortaxis.

InthisdesignmainlythroughtheVHDLlanguageprogrammingbillingsystemsofthefourfunctionblocks:

thefrequencymodules,controlmodule,themeasurementmodulesanddecodingmodules,thefinaluseofMAX+PLUSIIsoftwaretosimulatetheprocedurestoSimulationoftherealizationofataxistart,stopandwaitinthecourseoftime,andsoon,including-andbillingfunctions。

Andtheresultsofthefunctionalmodulesthroughdynamicdecodingscanningmoduleoutputtodisplaymoduletodisplayit.ThroughthedisplaymoduleTaxisBythetravellingdistance,ataxiwaitingforthetimeandwerewaitingforataxiintheprocessofmovingcostsandfeesintheprocess.

Keywords:

CPLD/FPGA;VHDL;MAX+PLUSSII;Taxi;Meters

 

 

1绪论

1.1研究的意义

随着我国市场经济的发展,交通也越来越便利,特别是计程车,以快捷、方便的特点早已盛行各个城市,成为城市交通的重要工具。

计程车市场从90年代初的起步阶段到现在已经进入了高峰期。

随着城市化水平的提高和人民生活水平的改善,计程车的服务也就显得越来越重要。

因此计程车计价器也就应运而生了。

1.2当前国内外的研究现状

目前市场上使用的出租车计费器主要采用的都是利用MCU如89C51单片机实现的计费器设计,显示方式上主要采用的是固定显示内容的LED显示。

传统的出租车计费器由于发展使用了十几年,在稳定性、成本、以及使用习惯上都具有一些优势,但是随着出租车价格市场化,我国加入WTO以来主导出租车行业成本的许多因素主要包括油价的波动,都对传统的出租车计费器提出了更高的要求。

近一年来,各大城市都在对出租车价格进行调整,由于数量太多,很多城市的调价甚至需要一个月的时间才能完成,经常会同一时间出现几个价格,有的城市的出租车上还会出现司机人工计价的尴尬情形。

这些都暴露了传统计费器在灵活性和升级换代能力的不足。

传统计费器的不足可以体现在以下几点:

1)品更新周期长

传统计费器利用MCU如89C51单片机实现汽车计费器的设计,大部分的功能可以用

单片机来实现。

但是单片机程序是不通用的,不同的芯片有不同的指令集,因此设计研发比较困难,周期长,如果系统设计的不好,则系统不是很稳定,而且灵活度不够,不易实

现功能复杂的设计。

2)计价方式的不灵活

每次计价标准的修改都需要将芯片从新烧录,使得每次调价都需要耗费大量的人力物

力,很难达到目前油价联动的需求。

1.3本课题的目的

考虑到目前出租车行业迅猛发展的趋势以及对计费器更高的灵活性要求,本设计希望尝试一些新的方法来予以解决以上问题。

1)利用FPGA取代MCU

随着FPGA等数字可编程器件的出现解决传统电子设计不能完成的任务,利用FPGA

来实现出租车计费器。

可行性很高,而且电路简单,大大减少外围器件,可以用软件完全仿真,灵活度高,可以设计一些复杂的系统,而且编好的系统可以在不同的FPGA或CPLD芯片上通用。

FPGA能完成任何数字器件的功能,使用FPGA来开发数字电路,可以大大

缩短设计时间,减少PCB面积,提高系统的可靠性。

同时由于FPGA的功能完全取决于VHDL语言编写的程序,不拘泥于某种芯片的特殊指令,更加提高了产品的更新换代能力。

2)增加计价标准设定功能

通过设计此功能模块可以使得计价标准设计更加灵活,体现目前出租车行业发展的需要,使运价、油价联动成为可能。

1.4本论文的章节安排

本文在第2章介绍了VHDL语言的特点和FPGA的基本原理。

第3章主要是对MAX+PLUSII进行了简要的介绍。

第4章介绍了当前两种主要出租车设计方案和这两种方案的比较。

第5章是对基于FPGA设计方案的详细设计。

 

2VHDL和FPGA的简介

2.1VHDL的介绍

VHDL的英文全名是Vry_High_SpeedIntegratedCircuitHardwareDescription

Language,被认为是标准硬件描述语言,有专家认为,在新世纪中,VHDL与VerilogHDL

语言将承担起几乎全部的数字系统设计任务。

VHDL主要用于描述数字系统的结构、行为、功能和接口。

除了含有许多具有硬件特

征的语句外,VHDL的语言形式和描述风格与句法十分类似于一般的计算机高级语言。

VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件、一个电路模块或一

个系统)分成外部(或称可视部分,即端口)和内部(或称不可视部分),即设计实体的

内部功能和算法完成部分。

在对一个设计实体定义了外部界面后,一旦内部开发完成后,

其他的设计可以直接调用这个实体。

这种将设计实体分成内外部分的概念是VHDL系统设

计的基本点。

随着EDA技术的发展,使用硬件语言设计FPGA成为一种趋势。

借用MAXPLUSII

或QuartusII等软件用VHDL语言开发FPGA的完整流程为:

1)文本编辑:

用任何文本编辑器都可以进行,也可以用专用的HDL编辑环境。

通常VHDL文件保存为.vhd文件。

2)功能仿真:

将文件调入HDL仿真软件进行功能仿真,检查逻辑功能是否正确也叫

前仿真,对简单的设计可以跳过这一步,只在布线完成以后,进行时序仿真)。

3)逻辑综合:

将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式和信号的连接关系。

逻辑综合软件会生成.edf(edif)的EDA工业标准文件。

4)布局布线:

将edf文件调入PLD厂家提供的软件中进行布线,即把设计好的逻辑安放到PLD/FPGA内。

5)时序仿真:

需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时

序(也叫后仿真)。

6)编程下载:

确认仿真无误后,将文件下载到芯片中。

.sof文件用于直接下载到

芯片(掉电后会消失),.pof文件用于rom芯片下载(掉电后不消失)。

2.2FPGA的介绍

FPGA是现场可编程门阵列(FieldProgramableGateArray)的简称,FPGA是电子设计领域中最具活力和发展前途的一项技术,它的影响丝毫不亚于70年代单片机的发明和使用。

actel公司于2005年1月24日在美国加利福尼亚总部发布了它的ProASIC3和ProASIC3E系列的FPGA。

这是该公司第三代的基于Flash的可编程逻辑方案。

这些新的SIC3最低价将达到1。

5美元,代表了全球最低成本的FPGA,并且相对于基于SRAM的FPGA来说具有保密的优势。

基于Flash的FPGA可以提供加密、低功耗、上电工作、可重复编程的方案。

目前生产FPGA的公司主要有Xilinx、Altera、Actel、Lattice、QuickLogic等生产的FPGA品种和型号繁多。

尽管这些FPGA的具体结构和性能指标各有特色,但它们都有一个共同之处,即由逻辑功能块排成阵列,并由可编程的互连资源连接这些逻辑功能块,从

而实现不同的设计。

典型的FPGA通常包含三类基本资源:

可编程逻辑功能块、可编程输入/输出块和可编程互连资源。

可编程逻辑功能块是实现用户功能的基本单元,多个逻辑功能块通常规则地排成一个阵列结构,分布于整个芯片;可编程输入/输出块完成芯片内部逻辑与外部管脚之间的接口,围绕在逻辑单元阵列四周;可编程内部互连资源包括各种长度的连线线段和一些可编程连接开关,它们将各个可编程逻辑块或输入/输出块连接起来,构成特定功能的电路。

用户可以通过编程决定每个单元的功能以及它们的互连关系,从而实现所需的逻辑功能。

不同厂家或不同型号的FPGA,在可编程逻辑块的内部结构、规模、内部互连的结

构等方面经常存在较大的差异。

3Max+plusII平台简介

3.1概述

Max+plusII是Altera公司推出的第三代PLD开发系统(Altera第四代PLD开发系统被称为:

QuartusII,主要用于设计新器件和大规模CPLDFPGA)。

使用MAX+PLUSII的设计者不需精通器件内部的复杂结构。

设计者可以用自己熟悉的设计工具(如原理图输入或硬件描述语言)建立设计,MAX+PLUSII把这些设计转自动换成最终所需的格式。

其设计速度非常快。

对于一般几千门的电路设计,使用MAX+PLUSII,从设计输入到器件编程完毕,用户拿到设计好的逻辑电路,大约只需几小时。

设计处理一般在数分钟内完成。

特别是在原理图输入等方面,Maxplus2被公认为是最易使用,人机界面最友善的PLD开发软件。

3.2Max+plusII的特点

1)开放的界面

Altera的工作与EDA厂家紧密结合,使MAX+PLUSII软件可与其它工业标准的设计输入.综合与校验工具相连接。

设计人员可以使用Altera或标准EDA设计输入工具来建立逻辑设计,使用MAX+PLUSII编译器(Compiler)对Altera器件设计进行编译,并使用Altera或其它EDA校验工具进行器件或板级仿真。

目前,MAX+PLUSII支持与Cadence、Exemplarlogic、MentorGraphics、Synopsys、Synplicity、Viewlogic和其它公司的EDA工具的接口。

2)多平台

MAX+PLUSII软件可基于486、奔腾PC机的WINDOWSNT3。

51或4。

0、WINDOWS95、WINDOWS98下运行,也可在SunSPACStations,HP9000Series700/800和IBMRISCSystem/6000工作站上运行。

3)完全集成化

MAX+PLUSII的设计输入、处理与校验功能全部集成在统一的开发环境下,这样可以加快动态调试,缩短开发周期。

4)丰富的设计库

MAX+PLUSII提供丰富的库单元供设计者调用,其中包括74系列的全部器件和多种特殊的逻辑宏功能(Macro—Function)以及新型的参数化的兆功能(Mage—function)。

调用库单元进行设计,可以大大减轻设计人员的工作量,也可成倍地缩短设计周期。

5)模块化工具

设计人员可以从各种设计输入、处理和校验选项中进行选择从而使设计环境用户化,必要时,还可以根据需要添加新功能。

由于MAX+PLUSII支持各种器件系列,设计人员不必学习新工具即可支持新结构。

6)硬件描述语言(HDL)

MAX+PLUSII软件支持各种HDL设计输入选项,包括VHDL、VerilogHDL和Altera自己的硬件描述语言AHDL。

7)Megacore功能

Megacore功能是为复杂的系统级功能提供的,经过校验的HDL网表文件,它能使FLEX10K、FLEX8000、FLEX6000、MAX9000和MAX7000器件系列实现最优化的设计。

充分利用这些Megacore功能会使设计人员的设计任务大大减轻,可把更多的精力投入到改进各种设计和最终的产品上。

8)Opencore特性

MAX+PLUSII软件具有开放核的特点,它允许设计人员添加自己认为有价值的宏函数。

4设计方案的简介及比较

当今国内外出租车计价器的设计方式主要有两种,一种是基于单片机的出租车计价器的设计,另一种是基于FPGA的出租车计价器的设计。

4.1基于单片机出租车计费器设计方案

4.1.1硬件各模块的功能

1)键盘控制功能是启动出租车计价器,改变出租车计价器的状态如运行、等待计时、不同计费模式的切换。

2)掉电存储用来存取计费器的状态信息和计费信息。

3)里程计算单元是通过安装传感器检测到的信号,送到单片机,经处理计算,送给显示单元。

4)利用单片机丰富的IO端口,实现基本的里程计价功能和价格调节、时钟显示功能。

5)用单片机实现出租车计价器的开发。

外围电路较多,调试复杂,抗干扰能力差,特别对这种计程车的计价器需要长时间不间断运作的系统,由于主要是软件运作,容易出错,造成系统不稳定。

6)出租车计费器的原理框图如下图4-1所示:

图4-1基于片机的计费器原理框图

4.1.2程序设计模块

1)主程序模块

在主程序模块中,需要完成对各接口芯片的初始化、出租车起价和单价的初始化、中断向量的设计以及开中断、循环等待等工作。

另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。

然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。

2)定时中断服务程序

在定时中断服务程序中,每100ms产生一次中断,当产生10次中断的时候,也就到了一秒,送数据到相应的显示缓冲单元,并调用显示子程序实时显示。

3)里程计数中断服务程序

每当霍尔传感器输出一个低电平信号就使单片机中断一次,当里程计数器对里程脉冲计满1000次时,就有程序将当前总额,使微机进入里程计数中断服务程序中。

在该程序中,

需要完成当前行驶里程数和总额的累加操作,并将结果存入里程和总额寄存器中。

4)中途等待中断服务程序

当在计数状态下霍尔开关没有输出信号,片内的T1定时器便被启动,每当计时到达10分钟,就对当前金额加上中途等待的单价,以后每十分钟都自动加上中途等待的单价。

当中途等待结束的时候,也就自动切换到正常的计价。

(5)显示子程序服务程序

由于是分屏显示数据,所以就要用到4个显示子程序,分别是:

时分秒显示子程序(HMS_DIS)、金额单价显示子程序(CP_DIS)、路程单价显示子程序(DP_DIS)、单价调节

子程序(PA_DIS)。

6)键盘服务程序

键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦右按键按下,便转向相应的子程序处理,处理结束再返回。

4.2基于FPGA的出租车计费器的设计方案

基于FPGA的出租车计费是外部输入模块,控制模块和显示模块三部分组成。

控制模块是整个系统的核心。

它是由分频模块,控制模块,计量模块和译码显示模块构成。

1)分频模块:

分频模块是对系统时钟进行分频以得到低频系号。

2)控制模块:

控制模块主要是完成对计费器状态的控制。

3)计量模块:

计量模块完成计价,计时和计程的功能。

4)译码显示模块:

译码显示模块完成计价,计时和计程数据显示。

计费数据送入译码显示模块译码,最后送至以百元,十元,元,角为单位对应的数码管上显示。

计时数据送入译码显示模块进行译码,最后送至以分为单位对应的数码管上显示。

计程数据送入译码显示模块进行译码,最后送至以Km为单位的数码管上显示。

5)基于FPGA的出租车计费器原理组成框图如图4-2所示:

图4-2基于FPGA的计费器原理组成框图

4.3两种方案的比较

1)方案一的开发及制作成本较低,能较大程度地利用资源,但外围电路较多,调试复杂,抗干扰能力差,特别对这种计程车的计价器需要长时间不间断运作的系统,由于主要是软件运作,容易出错,造成系统不稳定。

2)方案二将所有器件集成在一块芯片上,体积大大减小的同时还提高了稳定性,且可应用EDA软件仿真,调试,易于进行功能扩展,外围电路较少,采用硬件逻辑电路实现,其最大的优点是稳定性好,抗干扰能力强,非常适合作为计程车的计价器系统的控制核心。

4.4方案的确定

从以上两种方案的比较可以看出基于FPGA的设计方案要优于基于单片机的设计方案基于FPGA的设计方案稳定性更强且相对于单片机的设计方案来说它更易于将来进行功能扩展。

因此我确定采用基于FPGA的出租车计费器的设计方案。

5出租车计费系统的设计

5.1整体方案设计

5.1.1设计的主要技术指标

实现计程车的计价器功能。

一方面实现基本功能时,包括在行程中满足3公里以内计起步价10元,以后以1.9元/公里计费。

处于等待的状态下满足2分钟以内计2元,以后以1.5元/分计费。

另一方面多功能的实现,计价器可以根据要求显示需要的内容,可以根据选择键选择显示总费用,总行程数和总乘车时间等等。

1)计价范围:

     0~999.9元;

计价分辨率:

   0.1元;

2)计程范围:

    0~99公里;

计价分辨率:

    1.9公里;

3)计时范围:

    59分;

计时分辨率:

   1分钟;

5.1.2整体设计方案的实现

出租车计费器的控制系统以FPGA为核心控制器。

如图5-1所示,主要分为四个模块。

分别为:

秒分频模块、控制模块、计量模块和译码显示模块。

秒分频模块使整个系统的同步工作,把系统提供的32M的晶振频率进行分频,得到所需要的秒信号(便于在以后的计时中用到)。

控制模块是整个系统的核心部分,对各个部分起到了调控的作用。

对计程车的工作状态进行具体的定义。

计量模块也是系统中一个十分重要的模块,它分为三个部分,分别为计价部分、计时部分和计程部分,是出租车计费系统多功能实现的保证。

最后一个译码显示模块作用在于把计费器的工作情况(价钱、行程数、行程时间)反馈给乘客。

四个模块有机地结合在一起,实现了基于FPGA出租车计费系统的设计。

图5-1出租车计费器组成方框图

5.2模块的设计

5.2.1秒分频模块

1)秒分频的对频率为100Hz的输入脉冲进行分频,得到频率为1Hz的频率。

分频模块的电路符号图如下图5-2所示。

从图中可以看出分频模块有两个输入信号,一个是clk时钟信号。

另一个是计费器的使能信号start。

图5-2分频模块电路符号图

分频模块的主要源代码如下:

ifstart='0'then此IF语句中得到分频器的使能信号

f_1<='0';

Q_1<=0;

else

ifQ_1=99then此IF语句是得到频率为1Hz的频率信号和1公里脉冲

Q_1<=0;

F_1<='1';

else

Q_1<=Q_1+1;

F_1<='0';

endif;

endif;

2)秒分频模块的波形仿真图如下图5-3所示:

从图中可以看到当Q_1计数达到99的时候那么f_1就产生一个1公里脉冲信号。

图5-3分频器仿真图

5.2.2控制模块

1)控制模块对整个系统进行控制作用,支配系统的工作状态。

描述了出租车计费器整个工作过程的状态。

它是计费器工作的核心。

控制模块的电路符号图如下图5-4所示:

从图中可以看到控制模块有3个输入端口即clk时钟信号,start计价使能信号和stop等待信号。

图5-4控制模块的电路符号图

控制模块的主要源代码如下:

ifstart='0'then

en0<='0';

en1<='0';

elsifstop='0'then

en1<='0';

ifk1&k0>"00000011"then此IF语句得到en0使能信号

en0<='1';

else

en0<='0';

endif;

elsifstop='1'then

en0<='0';

ifm1&m0>"00000010"then此IF语句得到en1使能信号

en1<='1';

else

en1<='0';

endif;

endif;

2)控制模块的波形仿真图如下图5-5所示:

从仿真图中可以看出输出信号e0和e1的为输出信号(当en0=1时说明出租车行驶超过了3公里,此时出租车按照每公里1.9元计费,当en1=1时说明出租车等待超过了2分钟此时出租车按每分钟1.5元计费)。

图5-5控制模块波形仿真图

5.2.3计量模块

计量模块是本系统中一个十分重要的部分,是计程车计

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2