基于FPGA的出租车.docx
- 文档编号:6558071
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:44
- 大小:318.90KB
基于FPGA的出租车.docx
《基于FPGA的出租车.docx》由会员分享,可在线阅读,更多相关《基于FPGA的出租车.docx(44页珍藏版)》请在冰豆网上搜索。
基于FPGA的出租车
摘要
随着EDA技术的高速发展,电子系统的设计技术和工具发生了深刻的变化,大规模可编程逻辑器件CPLD/FPGA的出现,给设计人员带来了诸多方便。
利用它进行产品开发,不仅成本低、周期短、可靠性高,而且具有完全的知识产权。
本文介绍了一个以可编程逻辑芯片为控制核心的出租车计费器系统。
简述了出租车计费器系统的组成及工作原理,以及在EDA平台上用单片CPLD器件构成该数字系统的设计思想和实现过程。
论述了计程模块、计费模块、译码动态扫描模块等的设计方法。
实践表明,这种方案不仅能解决传统计费器集成度不高,功能升级不方便,易受干扰的问题而且能大大增强系统的可靠性。
关键词:
出租车,计费系统,硬件描述语言,数字系统,FPGA
ABSTRACT
WiththerapiddevelopmentofEDAtechnology,electronicsystemdesigntechniquesandtoolshavebeenprofoundchangesinlarge-scaleprogrammablelogicdeviceCPLD/FPGAemergenceofdesignerstobringalotofconvenience.Useitforproductdevelopment,notonlylowcost,shortcycle,highreliabilityandfullintellectualpropertyrights.
Inthispaper,aprogrammablelogicchipforthecontrolofthecorebillingsystemofataxi.Taxisonthebillingsystemandworkingprincipleofthecomposition,aswellasEDAplatformwithasingleCPLDdeviceformingpartofthedigitalsystemdesignandrealizationoftheprocessofthinking.Onthemetermodule,billingmodule,decodingmodule,suchasdynamicscanningdesignmethod.Practiceshowsthatsuchprogramscannotonlysolvethetraditionalbillingdeviceintegrationisnothigh,theupgradeisnotconvenientfeatures,andarepronetointerferenceissuesandcangreatlyenhancethereliabilityofthesystem.
Keywords:
Therentalcarcoststhesystem,thecounter,theVHDLlanguage,thedigitalsystem,FPGA
摘要I
ABSTRACTII
第1章绪论1
1.1课题背景及目的1
1.2国内外研究状况1
1.3课题研究方法2
1.4论文构成及研究内容2
第2章设计相关工具简介3
2.1EDA简介3
2.2FPGA简介3
2.3硬件描述语言VHDL简介4
2.4开发软件QuartusII简介5
第3章设计方案及原理6
3.1方案论证6
3.2设计原理7
3.2.1出租车计费方式7
3.2.2总体框架设计7
3.3各个模块设计8
3.3.1LCD显示设计8
3.3.2电机驱动模块设计12
3.3.3主要功能模块设计13
第4章设计仿真验证20
4.1LCD驱动程序仿真20
4.2电机调速程序仿真20
4.3系统程序仿真20
结论22
参考文献23
附录24
致谢34
第1章绪论
1.1课题背景及目的
在我国社会经济的全面发展过程中,各大中小城市的出租车营运事业也迅速发展,出租车已经成为人们日常出行选择较为普遍的交通工具。
出租车计价器是出租车营运收费的专用智能化仪表,是出租车市场规范化、标准化以及减少司机与乘客之间发生纠纷的重要设备。
一种功能完备、简单易用、计量准确的出租车计价器是加强出租车行业管理、提高服务质量的必备品。
当计费系统在各大、中城市出租车中使用越来越广泛,用户对计费器的要求也越来越高。
以出租车多功能计费器为例,用户不仅要求计费器性能稳定,计费准确,有防作弊功能;同时还要求其具有车票打印、语音报话识别、电脑串行通信及税控等功能;不同国家和地区的收费方式存在差异,即使在同一地区,不同车型的出租车其收费方式也有差别,而且出租车还面临几年一次的调价或调整收费方式等问题。
传统的基于单片机设计的出租车多功能计费器已远远跟不上这种变化,功能升级很繁琐,需要硬件重组和软件更新同步进行,成本高,并且每次升级都可能出现新的不稳定因素;而基于现场可编程逻辑阵列(FPGA)的出租车多功能计费器,采用硬件描述语言VerilogHDL和逻辑综合为基础的自顶向下的电路设计方法,开发成本低,周期短,可靠性高,功能升级方便,满足了用户的要求。
该系统在不改变硬件电路的前提下,具有可以重构系统的功能;采用完全相同电路结构,只要根据各地区的要求在VerilogHDL程序中设置各参数,就可以适应各地区出租车不同计费标准的需要,还可以根据各地区需求增加其他功能[1]。
1.2国内外研究状况
从国内外的各种研究方法来看,实现出租车计费系统总共有三种方案。
利用大规模的数字逻辑器件来实现,利用89C51实现,利用CPLD/FPGA来实现。
二十世纪后半期,数字系统得到了飞速发展,同时为了提高系统的可靠性与通用性,微处理器和专业集成电路逐渐取代了通用全硬件电路。
目前,业界大量可编程逻辑器件,尤其是现场可编程器件被大量地应用在集成电路的制作当中[2]。
理想的可编程逻辑开发系统能符合大量的设计要求:
它能支持不同结构的器件。
在多种平台运行,提供易于使用的界面,并且有广泛的特征。
可编程器件的逻辑功能描述一般分为原理图描述和硬件语言描述,原理图描述是一种直观简便的方法,它可以讲现有的小规模集成电路实现的功能直接用可编程器件来实现,而不必去将现有的电路用语言来描述,但电路图描述方法无法做到简练。
而语言描述可以精确和简练地表示电路的逻辑功能,现在可编程器件的设计过程中广泛使用。
常用的硬件描述语言有ABEL、VHDL语言等,其中VHDL语言是一种行为描述语言,其编程结构类似于计算机中的C语言,在描述复杂逻辑设计时,非常简洁,具有很强的逻辑描述和仿真能力,是未来硬件设计语言的主流。
1.3课题研究方法
在分析了相关资料的基础上,首先了解了出租车计费系统的重要性,国内外实现该系统的不同方法。
在方案的选择上,对比了各个方案的优缺点,并对现有的计费系统进行了更新,使它能够更好的满足不同的要求。
采用软件仿真方法对计费系统进行仿真,模拟电动机输出信号,设置初始值,得出仿真波形并进行观察。
1.4论文构成及研究内容
论文包括绪论、出租车计费系统的设计、关外围电路、结论等四大部分组成。
核心部分是设计说明部分和FPGA程序设计部分。
本文的的基本框架为:
在方案的论证和设计说明部分一章中,同时介绍了总体设计框架,并对各个部分进行了详细说明。
在计费系统的实现一章中,介绍了计费系统的相关外围电路,使系统更完善。
第2章设计相关工具简介
2.1EDA简介
电子设计技术的核心就是EDA技术,EDA是指以计算机为工作台,融合应用电子技术、计算机技术、智能化技术最新成果而研制成的电子CAD通用软件包,主要能辅助进行三方面的设计工作,即IC设计、电子电路设计和PCB设计。
EDA技术已有30年的发展历程,大致可分为三个阶段。
70年代为计算机辅助设计(CAD)阶段,人们开始用计算机辅助进行IC版图编辑、PCB布局布线,取代了手工操作。
80年代为计算机辅助工程(CAE)阶段。
与CAD相比,CAE除了有纯粹的图形绘制功能外,又增加了电路功能设计和结构设计,并且通过电气连接网络表将两者结合在一起,实现了工程设计。
CAE的主要功能是:
原理图输入,逻辑仿真,电路分析,自动布局布线,PCB后分析。
90年代为电子系统设计自动化(EDA)阶段[3]。
中国EDA市场已渐趋成熟,不过大部分设计工程师面向的是PC主板和小型ASIC领域,仅有小部分(约11%)的设计人员开发复杂的片上系统器件。
为了与台湾和美国的设计工程师形成更有力的竞争,中国的设计队伍有必要购入一些最新的EDA技术。
在EDA软件开发方面,目前主要集中在美国。
但各国也正在努力开发相应的工具。
日本、韩国都有ASIC设计工具,但不对外开放。
中国华大集成电路设计中心,也提供IC设计软件,但性能不是很强。
相信在不久的将来会有更多更好的设计工具有各地开花并结果。
据最新统计显示,中国和印度正在成为电子设计自动化领域发展最快的两个市场,年复合增长率分别达到了50%和30%。
EDA技术发展迅猛,完全可以用日新月异来描述。
EDA技术的应用广泛,现在已涉及到各行各业。
EDA水平不断提高,设计工具趋于完美的地步。
EDA市场日趋成熟,但我国的研发水平还很有限,需迎头赶上。
2.2FPGA简介
FPGA是英文FieldProgrammableGateArray的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个新概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。
FPGA的基本特点主要有:
(1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。
(2)FPGA可做其它全定制或半定制ASIC电路的中试样片。
(3)FPGA内部有丰富的触发器和I/O引脚。
(4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
(5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
目前FPGA的品种很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。
FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。
用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。
掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。
FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。
当需要修改FPGA功能时,只需换一片EPROM即可。
这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。
因此,FPGA的使用非常灵活。
FPGA有多种配置模式:
并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程[4]。
2.3硬件描述语言VHDL简介
VHDL全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage(超高速集成电路硬件描述语言),诞生于1982年。
1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。
自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。
此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。
1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。
现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。
有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。
VHDL主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点[5]。
2.4开发软件QuartusII简介
QuartusII是Altera公司推出的CPLD/F[GA开发工具,QuartusII提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性。
QuartusII设计流程:
(1)设计输入:
完成期间的硬件描述,包括文本编辑器、块与符号编辑器、MegaWizard插件管理器、约束编辑器和布局编辑器等工具;
(2)综合:
包括分析和综合器以、辅助工具和RTL查看器等工具;
(3)布局连线:
将设计综合后的网表文件映射到实体器件的过程,包括Fitter工具、约束编辑器、布局图编辑器、芯片编辑器和增量布局连线工具;
(4)仿真:
QuartusII提供了功能仿真和时序仿真两种工具;
(5)器件编程与配置:
包括四种编程模式,即被动串行模式、JTAG模式、主动串行模式和插座内编程模式[6]。
使用NewProjectWizard新建一个工程的过程:
(1)制定工程的文件存放目录、工程名以及最顶层的设计实体名,在默认情况下,工程名与最顶层的设计实体名是相同的。
(2)添加文件,包括最顶层的设计实体文件以及一些额外的电路模块描述文件或定制的功能库。
(3)选择目标芯片,具体芯片最好让编译器根据工程设计的实际情况自动选择。
(4)第三方EDA工具设定,包括设计输入与综合工具、仿真工具、时序分析工具等,默认为QuartusII自带的仿真器、综合器以及时序分析器。
(5)最后一步系统将整体工程的各项参数和设置总结并显示出来,这时即可完成工程的创建[7]。
第3章设计方案及原理
3.1方案论证
最近几年出租车行业发展迅速,在全国有几千家出租车公司,出租车计费器的市场非常庞大。
目前市场上使用的出租车计费器主要采用的都是利用MCU如89C51单片机实现的计费器设计,显示方式上主要采用的是固定显示内容的LED显示。
如图3.1所示。
图3.1传统LED显示的计费器
传统的出租车计费器由于发展使用了十几年,在稳定性、成本、以及使用习惯上都具有一些优势,但是随着出租车价格市场化,我国加入WTO以来主导出租车行业成本的许多因素主要包括油价的波动,都对传统的出租车计费器提出了更高的要求。
近一年来,各大城市都在对出租车价格进行调整,由于数量太多,很多城市的调价甚至需要一个月的时间才能完成,经常会同一时间出现几个价格,有的城市的出租车上还会出现司机人工计价的尴尬情形。
这些都暴露了传统计费器在灵活性和升级换代能力的天生不足[8]。
传统计费器的不足可以体现在以下几点:
(1)产品更新周期长
(2)计价方式的不灵活
(3)显示方式的不灵活
考虑到目前出租车行业迅猛发展的趋势以及对计费器更高的灵活性要求,本设计希望尝试一些新的方法来予以解决。
(1)利用FPGA取代MCU
(2)利用LCD取代LED
(3)增加计价标准设定功能
3.2设计原理
3.2.1出租车计费方式
由于各地出租车计价情况的不同,本设计主要依据上海市出租车计价情况作为参考依据。
先来了解一下某市出租车是如何计费的:
表3.1某市计费标准
起步11元(3km)
2.1元/km(超过3km)
3.2元/km(超过10km加收50%)
从上面表中可以看出,目前出租车行业由于调价、路桥、夏季电调、燃油费波动等诸多因素要求出租车计费器在价格调节方面做到灵活可靠,易于操作等特点。
3.2.2总体框架设计
系统流程介绍:
系统主要由电动机驱动模块、LCD显示模块、计费标准设定模块、
自动计费模块、统计模块等组成。
首先由电动机驱动模块控制步进电机运转来模拟出租车车轮,速度值通过车速比较
器判断是否低于12km/h,如低于12km/h则进入计时状态(依照预设值每5分钟计为1km),如果高于180km/h则发出车速过高的声光报警,车速在12到180km/h之间的则进入计程状态,根据车轮的大小不同每km计的次数也不同,计程和计时通过选通模块自动选择输出到自动计费模块,计程和计时同一时刻只会有一个处于运行状态。
自动计费模块会按照不同的计费标准自动调节计费。
计费标准设定模块将设定好的数值分别送到自动计费模块、计时模块和计程模块。
按下计费启动键后利用电容的瞬间充电过程来清零上一次的计费数值,此后开始自动计费,按下计费停止键后计费终止,统计模块自动执行保存记录。
LCD显示模块包括LCD驱动部分、LCD选通部分、LCD译码部分、二进制转BCD码部分,最终界面上会显示时钟、车速、等待时间、行驶路程、桥路费或电调费、总费用、开始计费和停止、参数设定菜单以及营运额统计等。
下面是基于FPGA的出租车计费器的系统设计框图和系统模块框图:
图3.2出租车计费系统设计框图
图3.3出租车计费系统模块框图
3.3各个模块设计
3.3.1LCD显示设计
LCD的模块框图如下图3.4所示。
图3.4LCD模块框图
3.3.1.1字符型液晶介绍
本设计采用20列x4行的字符型液晶,能同时显示80个字符。
LCM由字符型液晶显示屏(LCD)、控制驱动电路HD44780及其扩展驱动电路HD44100等组成,具有若干个5x7或5x10点阵组成的字符集,可显示192种字符,还具有64个字节的自定义字符RAM。
HD44780是字符型LCM的控制器,分为控制部分和驱动部分。
控制部分产生内部工作时钟,控制着各个功能电路的工作,管理着字符发生器CGRAM和CGROM,显示存储器DDRAM。
其中CGROM为已固化好的字符库,CGRAM为可随时定义的字符库,根据用户的不同的定义可调出所需要的字符。
MDLS系列字符型LCM电路框图如图3.5所示。
图3.5MDLS系列字符型LCM电路框图
此液晶模块有16个引脚,各引脚功能说明如表3.2所示:
表3.2MDLS系列字符型液晶引脚说明
引脚号
符号
状态
功能
1
Vss
电源地
2
Vdd
+5V逻辑电源
3
V0
液晶驱动电源
4
RS
输入
寄存器选择1:
数据;0:
指令
5
R/W
输入
读、写操作选择1:
读;0:
写
6
E
输入
使能信号
7
DB0
三态
数据总线(LSB)
8
DB1
三态
数据总线
9
DB2
三态
数据总线
10
DB3
三态
数据总线
11
DB4
三态
数据总线
12
DB5
三态
数据总线
13
DB6
三态
数据总线
14
DB7
三态
数据总线(MSB)
15
A
背光灯+5
16
K
背光灯GND
3.3.1.2指令集控制
HD44780共有11条控制指令,我们只要对其中的6条指令进行控制就可以成功的显示字符。
这6条控制指令为:
(1)功能设置
表3.3功能设置
RSR/W
DB7DB6DB5DB4DB3DB2DB1DB0
00
001DLNF**
功能:
工作方式设置(初始化指令)。
其中:
DL=1,8位数据接口;DL=0,4位数据接口;
N=1,两行显示;N=0,一行显示;
F=1,5×10点阵字符;F=0,5×7点阵字符。
(2)清屏
表3.4清屏
RSR/W
DB7DB6DB5DB4DB3DB2DB1DB0
00
00000001
功能:
清DDRAM和AC值。
(3)显示开关控制
表3.5显示开关控制
RSR/W
DB7DB6DB5DB4DB3DB2DB1DB0
00
00001DCB
功能:
设置显示、光标及闪烁开、关。
其中:
D表示显示开关:
D=1为开,D=0为关;
C表示光标开关:
C=1为开,C=0为关;
B表示闪烁开关:
B=1为开,B=0为关。
(4)输入方式设置
表3.6输入方式设置
RSR/W
DB7DB6DB5DB4DB3DB2DB1DB0
00
0000011/DS
功能:
设置光标、画面移动方式。
其中:
1/D=1;数据读、写操作后,AC自动增一;
1/D=0;数据读、写操作后,AC自动减一;
S=1;数据读、写操作后,画面平移;
S=1;数据读、写操作后,画面不动。
(5)DDRAM地址设置
表3.7DDRAM地址设置
RSR/W
DB7DB6DB5DB4DB3DB2DB1DB0
00
1A6A5A4A3A2A1A0
功能:
设置DDRAM地址。
N=0,一行显示A6~A0=0~4FH;
N=1,两行显示,首行A6~A0=00H~2FH,次行A6~A0=40H~67H。
(6)写数据
表3.8写数据
RSR/W
DB7DB6DB5DB4DB3DB2DB1DB0
10
数据
功能:
根据最近设置的地址性质,数据写人DDRAM或CGRAM内。
3.3.2电机驱动模块设计
为了演示更为直观,可以用步进电机来模拟出租车的车轮运动,其硬件部分主要由步进电机驱动器和步进电机组成,如图3.6所示。
图3.6步进电机驱动器和步进电机
驱动器型号为BY-2HB02M,驱动两相步进电机,输入端依次为CP(信号脉冲)、U/D(正反转)、DIV(每脉冲所转角度调节,高电平为9度,低电平为2.2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 出租车