基于EDA的出租车计费控制器的设计.docx
《基于EDA的出租车计费控制器的设计.docx》由会员分享,可在线阅读,更多相关《基于EDA的出租车计费控制器的设计.docx(32页珍藏版)》请在冰豆网上搜索。
基于EDA的出租车计费控制器的设计
基于EDA的出租车计费控制器的设计
摘要:
该设计是在EDA的基础上利用VHDL语言、PLD设计出租车计费控制器,以MAX+PLUSⅡ软件作为开发平台,使用文本输入VHDL设计各个功能模块,然后在顶层设计作为元件,设计了出租车计费器程序并进行了仿真,使其实现计费,计程和显时以及预置和模拟汽车启动、停止、暂停等功能,并动态扫描显示车费数目、行驶路程和当前时间,从而实现一个完整的出租车费控制器。
显示了硬件描述语言VHDL设计数字逻辑电路的优越性。
突出了其作为硬件描述语言的良好的可读性、可移植性和易理解等优点。
此程序通过下载到特定芯片后,可应用于实际的出租车计费控制器中.
目录
摘要...................................................................................1
前言...................................................................................3
1.设计背景............................................................................3
1.1EDA发展概述.......................................................................3
1.2硬件描述语言VHDL.................................................................4
1.3VHDL语言的特点..................................................................4
1.4EDA系统框架结构.................................................................5
1.5设计工具..........................................................................6
2.出租车计费系统的设计..............................................................6
2.1出租车计费设计....................................................................6
2.2基本设计思想......................................................................6
2.3程序流程图........................................................................7
3.出租车计费系统的实现.............................................................8
3.1系统的总体框图...................................................................9
3.2系统各功能模块的实现..............................................................9
4.系统仿真与调试...................................................................13
5.结论..............................................................................15
谢辞..................................................................................15
参考文献.............................................................................15
附录..................................................................................15
前言
近年来,随着改革开放的深入,市场日益繁荣,作为现代城市象征之一的出租汽车得到了蓬勃发展,经济的发展,人民生活水平的提高,促使出租汽车越来于普及。
与此相应,人们对出租汽车的合理收费也提出了越来越高的要求。
国外出租汽车上的专用装备如:
出租汽车TAXI顶灯;空车FORHIRE标志;出租汽车计价器TAXIMETER等,也逐步安装在国内出租汽车上,已成为必不可少的应运专用设施,受到客运管理部门的监督。
出租车计价器已成为乘客与驾驶员之间公正合理收费的依据,起到双方“公平秤”的作用。
随着出租车行业的发展,对出租车计费器的要求也越来越高。
二十世纪后半期,随着集成电路和计算机技术的飞速发展,数字系统也得到了飞速发展,其实现方法经历了由分立元件、SSI、MSI到LSI、VLSI以及UVLSI的过程。
同时为了提高系统的可靠性与通用性,微处理器和专业集成电路(ASIC)逐渐取代了通用全硬件LSI电路,而ASIC以其体积小、重量轻、功耗低、速度快、成本低、保密性好而脱颖而出。
目前,业界大量可编程逻辑器件(PLD),尤其是现场可编程逻辑器件(FPLD)被大量地应用在ASIC的制作当中。
在可编程集成电路的开发过程中,以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术最新成果的电子设计自动化(EDA)技术主要能辅助进行三方面的设计工作:
IC设计,电子电路设计以及PCB设计理想的可编程逻辑开发系统能符合大量的设计要求:
它能够支持不同结构的器件,在多种平台运行,提供易于使用的界面,并且有广泛的特征。
1设计背景
1.1EDA发展概况
电子设计技术的核心就是EDA技术,EDA是指以计算机为工作台,融合应用电子技术、计算机技术、智能化技术最新成果而研制成的电子CAD通用软件包,主要能辅助进行三方面的设计工作,即IC设计、电子电路设计和PCB设计。
EDA技术已有30年的发展历程,大致可分为三个阶段。
70年代为计算机辅助设计(CAD)阶段,人们开始用计算机辅助进行IC版图编辑、PCB布局布线,取代了手工操作。
80年代为计算机辅助工程(CAE)阶段。
与CAD相比,CAE除了有纯粹的图形绘制功能外,又增加了电路功能设计和结构设计,并且通过电气连接网络表将两者结合在一起,实现了工程设计。
CAE的主要功能是:
原理图输入,逻辑仿真,电路分析,自动布局布线,PCB后分析。
90年代为电子系统设计自动化(EDA)阶段.[1]
中国EDA市场已渐趋成熟,不过大部分设计工程师面向的是PC主板和小型ASIC领域,仅有小部分(约11%)的设计人员开发复杂的片上系统器件。
为了与台湾和美国的设计工程师形成更有力的竞争,中国的设计队伍有必要购入一些最新的EDA技术.[2]
在信息通信领域,要优先发展高速宽带信息网、深亚微米集成电路、新型元器件、计算机及软件技术、第三代移动通信技术、信息管理、信息安全技术,积极开拓以数字技术、网络技术为基础的新一代信息产品,发展新兴产业,培育新的经济增长点。
要大力推进制造业信息化,积极开展计算机辅助设计(CAD)、计算机辅助工程(CAE)、计算机辅助工艺(CAPP)、计算机机辅助制造(CAM)、产品数据管理(PDM)、制造资源计划(MRPII)及企业资源管理(ERP)等。
有条件的企业可开展“网络制造”,便于合作设计、合作制造,参与国内和国际竞争。
开展“数控化”工程和“数字化”工程。
自动化仪表的技术发展趋势的测试技术、控制技术与计算机技术、通信技术进一步融合,形成测量、控制、通信与计算机(M3C)结构。
在ASIC和PLD设计方面,向超高速、高密度、低功耗、低电压方向发展。
外设技术与EDA工程相结合的市场前景看好,如组合超大屏幕的相关连接,多屏幕技术也有所发展。
[3]
中国自1995年以来加速开发半导体产业,先后建立了几所设计中心,推动系列设计活动以应对亚太地区其它EDA市场的竞争。
在EDA软件开发方面,目前主要集中在美国。
但各国也正在努力开发相应的工具。
日本、韩国都有ASIC设计工具,但不对外开放。
中国华大集成电路设计中心,也提供IC设计软件,但性能不是很强。
相信在不久的将来会有更多更好的设计工具有各地开花并结果。
据最新统计显示,中国和印度正在成为电子设计自动化领域发展最快的两个市场,年复合增长率分别达到了50%和30%。
[4]
EDA技术发展迅猛,完全可以用日新月异来描述。
EDA技术的应用广泛,现在已涉及到各行各业。
EDA水平不断提高,设计工具趋于完美的地步。
EDA市场日趋成熟,但我国的研发水平还很有限,需迎头赶上。
可编程逻辑器件自70年代以来,经历了PAL、GALGPLD、FPGA几个发展阶段,其中CPLD/FPGA高密度可编程逻辑器件,目前集成度已高达200万门/片,它将各模块ASC集成度高的优点和可编程逻辑器件设计生产方便的特点结合在一起,特别适合于样品研制或小批量产品开发,使产品能以最快的速度上市,而当市场扩大时,它可以很容易地转换掩模ASIC实现,因此开发风险也大为降低。
[5]
1.2硬件描述语言VHDL
硬件描述语言(HDL)是一种用于设计硬件电子系统的计算机语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,与传统的门级描述方式相比,它更适合大规模系统的设计。
例如一个32位的加法器,利用图形输入软件需要输人500至1000个门,而利用VHDL语言只需要书写一行“A=B+C”即可。
而且VHDL语言可读性强,易于修改和发现错误。
早期的硬件描述语言,如ABEL、HDL、AHDL,由不同的EDA厂商开发,互不兼容,而且不支持多层次设计,层次间翻译工作要由人工完成。
为了克服以上不足,1985年美国国防部正式推出了高速集成电路硬件描述语言VHDL,1987年IEEE采纳VHDL为硬件描述语言标准(IEEE-STD-1076)。
VHDL是一种全方位的硬件描述语言,包括系统行为级。
寄存器传输级和逻辑门多个设计层次,支持结构、数据流和行为三种描述形式的混合描述,因此VHDL几乎覆盖了以往各种硬件俄语言的功能,整个自顶向下或由下向上的电路设计过程都可以用VHDL来完成。
VHDL还具有以下优点:
(1)VHDL的宽范围描述能力使它成为高层进设计的核心,将设计人员的工作重心提高到了系统功能的实现与调试,而花较少的精力于物理实现。
(2)VHDL可以用简洁明确的代码描述来进行复杂控制逻辑设计,灵活且方便,而且也便于设计结果的交流、保存和重用。
(3)VHDL的设计不依赖于特定的器件,方便了工艺的转换。
(4)VHDL是一个标准语言,为众多的EDA厂商支持,因此移植性好。
[6]
传统的硬件电路设计方法是采用自下而上的设计方法,即根据系统对硬件的要求,详细编制技术规格书,并画出系统控制流图;然后根据技术规格书和系统控制流图,对系统的功能进行细化,合理地划分功能模块,并画出系统的功能框图;接着就进行各功能模块的细化和电路设计;各功能模块电路设计、调试完成后,将各功能模块的硬件电路连接起来再进行系统的调试,最后完成整个系统的硬件设计。
采用传统方法设计数字系统,特别是当电路系统非常庞大时,设计者必须具备较好的设计经验,而且繁杂多样的原理图的阅读和修改也给设计者带来诸多的不便。
为了提高开发的效率,增加已有开发成果的可继承性以及缩短开发周期,各ASIC研制和生产厂家相继开发了具有自己特色的电路硬件描述语言(HardwareDescriptionLanguage,简称HDL)。
但这些硬件描述语言差异很大,各自只能在自己的特定设计环境中使用,这给设计者之间的相互交流带来了极大的困难。
因此,开发一种强大的、标准化的硬件描述语言作为可相互交流的设计环境已势在必行。
于是,美国于1981年提出了一种新的、标准化的HDL,称之为VHSIC(VeryHighSpeedIntegratedCircuit)HardwareDescriptionLanguage,简称VHDL。
这是一种用形式化方法来描述数字电路和设计数字逻辑系统的语言。
设计者可以利用这种语言来描述自己的设计思想,然后利用电子设计自动化工具进行仿真,再自动综合到门电路,最后用PLD实现其功能。
[7]
1.3VHDL语言的特点
具有良好的可读性,即容易被计算机接受,也容易被读者理解。
使用期长,不会因工艺变化而使描述过时。
因为VHDL的硬件描述与工艺无关,当工艺改变时,只需修改相应程序中的属性参数即可。
支持大规模设计的分解和已有设计的再利用。
一个大规模的设计不可能由一个人独立完成,必须由多人共同承担,VHDL为设计的分解和设计的再利用提供了有力的支持。
当电路系统采用VHDL语言设计其硬件时,与传统的电路设计方法相比较,具有如下的特点:
即从系统总体要求出发,自上而下地逐步将设计的内容细化,最后完成系统硬件的整体设计。
在设计的过程中,对系统自上而下分成三个层次进行设计:
第一层次是行为描述。
所谓行为描述,实质上就是对整个系统的数学模型的描述。
一般来说,对系统进行行为描述的目的是试图在系统设计的初始阶段,通过对系统行为描述的仿真来发现设计中存在的问题。
在行为描述阶段,并不真正考虑其实际的操作和算法用何种方法来实现,而是考虑系统的结构及其工作的过程是否能到达系统设计的要求。
第二层次是RTL方式描述。
这一层次称为寄存器传输描述(又称数据流描述)。
如前所述,用行为方式描述的系统结构的程序,其抽象程度高,是很难直接映射到具体逻辑元件结构的。
要想得到硬件的具体实现,必须将行为方式描述的VHDL语言程序改写为RTL方式描述的VHDL语言程序。
也就是说,系统采用RTL方式描述,才能导出系统的逻辑表达式,才能进行逻辑综合。
第三层次是逻辑综合。
即利用逻辑综合工具,将RTL方式描述的程序转换成用基本逻辑元件表示的文件(门级网络表)。
此时,如果需要,可将逻辑综合的结果以逻辑原理图的方式输出。
此后可对综合的结果在门电路级上进行仿真,并检查其时序关系。
应用逻辑综合工具产生的门网络表,将其转换成PLD的编程码,即可利用PLD实现硬件电路的设计。
由自上而下的设计过程可知,从总体行为设计开始到最终的逻辑综合,每一步都要进行仿真检查,这样有利于尽早发现设计中存在的问题,从而可以大大缩短系统的设计周期。
由于目前众多制造PLD芯片的厂家,其工具软件均支持VHDL语言的编程。
所以利用VHDL语言设计数字系统时,可以根据硬件电路的设计需要,自行利用PLD设计自用的ASIC芯片,而无须受通用元器件的限制。
[8]
1.4EDA系统框架结构
EDA系统框架结构(FRAMEWORK)是一套配置和使用EDA软件包的规范。
目前主要的EDA系统都建立了框架结构,如CADENCE公司的DesignFramework,Mentor公司的FalconFramework,而且这些框架结构都遵守国际CFI组织制定的统一技术标准。
框架结构能将来自不同EDA厂商的工具软件进行优化组合,集成在一个易于管理的统一的环境之下,而且还支持任务之间、设计师之间以及整个产品开发过程中的信息传输与共享,是并行工程和自顶向下设计施的实现基础。
EDA技术的每一次进步,都引起了设计层次上的一次飞跃,从设计层次上分,70年代为物理级设计(CAD),80年代为电路级设计(CAE),90年代进入到系统级设计(EDA)。
物理级设计主要指IC版图设计,一般由半导体厂家完成,对电子工程师没有太大的意义,因此本文重点介绍电路级设计和系统级设计。
仿真通过后,根据原理图产生的电气连接网络表进行PCB板的自动布局布线。
在制作PCB板之前还可以进行PCB后分析,其中包括热分析、噪声及窜扰分析、电磁兼容分析、可靠性分析等,并可将分析后的结果参数反标回电路图,进行第二次仿真,也称为后仿真。
后仿真主要是检验PCB板在实际工作环境中的可行性。
由此可见,电路级的EDA技术使电子工程师在实际的电子系统产生前,就可以全面地了解系统的功能特性和物理特性,从而将开发风险消灭在设计阶段,缩短了开发时间,降低了开发成本。
系统级设计进人90年代以来,电子信息类产品的开发明显呈现两个特点:
一是产品复杂程度提高;二是产品上市时限紧迫。
然而,电路级设计本质上是基于门级描述的单层次设计,设计的所有工作(包括设计忙人、仿真和分析、设计修改等)都是在基本逻辑门这一层次上进行的,显然这种设计方法不能适应新的形势,一种高层次的电子设计方法,也即系统级设计方法,应运而生。
[9]
高层次设计是一种“概念驱动式”设计,设计人员无须通过原理图描述电路,而是针对设计目标进行功能描述。
由于摆脱了电路细节的束缚,设计人员可以把精力集中于创造性的方案与概念的构思上,而且这些概念构思以高层次描述的形式输人计算机,EDA系统就能以规则驱动的方式自动完成整个设计。
这样,新的概念就能迅速有效地成为产品,大大缩短了,产品的研制周期。
不仅如此,高层次设计只是定义系统的行为特性,可以不涉及实现工艺,因此还可以在厂家综合库的支持下,利用综合优化工。
1.5设计工具
Altered公司开发的MAX+PLUSⅡ开发系统能提供充分自由的设计输入方法和设计工具选择,可满足编程逻辑设计所有要求。
MAX+PLUSⅡ开发系统是一个完全集成化、易学易用的可编程逻辑设计环境,它可以在多种平台上运用。
它所提供的灵活性和高效性是无可比拟的。
其丰富的图形界面,辅之以完整的、可及时访问的在线文档,使学生能够轻松掌握和使用MAX+PLUSⅡ软件。
MAX+PLUSⅡ软件支持各种HDL设计输入选项,包括VHDL、VerilogHDL和Altera自己的硬件描述语言AHDL,它允许设计人员添加自己认为有价值的宏函数。
MAX+PLUSⅡ系统的核心Compiler支持Altera公司的FLEX10K、FLEX8000、FLEX6000、MAX9000、MAX7000、MAX5000和Classic可编程逻辑器件系列,提供了商业界唯一真正与结构无关的可编程逻辑设计环境。
MAX+PLUSⅡ的编译器还提供了强大的逻辑综合与优化功能,使用户比较容易地将设计集成到器件中。
[10]
MAX+PLUSⅡ设计环境所提供的灵活性和高效性是无可比拟的。
其丰富的图形界面,辅之以完整的、可及时访问的在线文档,使设计人员能够轻松、愉快地掌握和使用MAX+PLUSⅡ软件。
编程器是一种专门用于对可编程器(如EPROM,EEPROM,GAL,CPLD,PAL等)进行编程的专业设备
PLD器件的逻辑功能描述一般分为原理图描述和硬件描述语言描述,原理图描述是一种直观简便的方法,它可以将现有的小规模集成电路实现的功能直接用PLD器件来实现,而不必去将现有的电路用语言来描述,但电路图描述方法无法做到简练;硬件描述语言描述是可编程器件设计的另一种描述方法,语言描述可能精确和简练地表示电路的逻辑功能,现在PLD的设计过程中广泛使用。
常用的硬件描述语言有ABEL,VHDL语言等。
2出租车计费控制器的设计
2.1出租车计费设计要求
(1)本计费器设计分白天(8:
00—23:
00)跟夜间(23:
00—8:
00)。
其收费标准白天跟夜间不同。
白天时间:
〈1〉车起步开始计费。
首先显示起步价(本次设计起步费为10.0元),车在行驶3km以内,只收起步价10.0元。
〈2〉车行驶超过3km而小于8公里时,按每公里2.0元计费(在10.0元基础上每行驶1km车费加2.0元),车费依次累加。
〈3〉行驶路程达到或超过8km后,每公里加收3.0元的车费,车费变成按每公里3.0元开始计费。
车暂时停止(行驶中遇红灯或中途暂时停车)不计费,车费保持不变。
若停止则车费清零,等待下一次计费的开始。
夜间时间:
〈1〉车起步开始计费。
首先显示起步价(本次设计起步费为12.0元),车在行驶3km以内,只收起步价12.0元。
〈2〉车行驶超过3km而小于8公里时,按每公里3.0元计费(在12.0元基础上每行驶1km车费加3.0元),车费依次累加。
〈3〉行驶路程达到或超过8km后,每公里加收4.0元的车费,车费变成按每公里4.0元开始计费。
车暂时停止(行驶中遇红灯或中途暂时停车)不计费,车费保持不变。
若旅客下车则车费清零,等待下一次计费的开始。
(2)功能:
能模拟汽车启动、停止、暂停、车速变化等状态
(3)设计动态扫描电路:
本系统共8位数码管,分别用3位显示路程,3位显示车费和2位显示小时时间,路程的最小分辨为0.1千米,车费的最小分辨为0.1元,另外分别用7个二极管来显示分钟和秒。
2.2基本设计思想
(1)根据计费器设计要求,可将该系统分成大的三模块,一块为计费模块,一块为时间计时模块,另一块为输出显示模块。
其中计费模块又可分为路程和车费模块。
(2)计费器模拟中采用脉冲来检测车所行驶距离,当检测到一脉冲便使系统路程加100米。
(3)通过分析可以设计出计费器的顶层框图如图(2-1)和(2-2)所示:
图(2-1)
图(2-2)
2.3程序流程图
程序流程图如图(2-3)
图(2-3)
3出租车计费控制器的实现
3.1计费器的总体框图
(1)计费器的总体框图如图(3-1)和图(3-2).
在图(3-1)中,模块(second1),模块(minute11)和模块(hour1)共同构成一个时间计数器,其中模块(second1)和模块(minute11)都是为60进制的计数器,分别实现秒和分钟计数的功能.模块(hour1)为24进制小时计数器,当小时计数器为(8—22)时,其输出端口(qiuhuan)输出为高电平,否则为低电平.模块(SOUT1)为计费系统的控制模块.其中输入端(enable)实现启动功能,并对输入脉冲(clk)进行检测从而实现路程计算并输出.输入端(stop)和(clear)分别实现路程暂停计数和显示清零功能.该模块输出端口(SI)可对路程不同阶段进行各状态表示.模块(counter11)为计费模块.当有脉冲来时,对输入端(qiuhuan)进行逻辑判断,从而确定计费标准.同时也对输入端(SI)进行判断,实现根据所行驶的路程的不同而进行不同的计费.该模块同时对车费进行计算并输出显示.模块(PULSE)在该系统中为分频器,它有两个用处,分别可当作模拟低速和对路程每500米进行车费计算.模块(MS)为模拟变速模块,由输入端(js)控制.在图(3-2)中,模块(se)为8进制选择模块.模块(xxx2)通过模块(se)选择实现控制输出.模块(DI)译码器,实现输出在数码管上显示.
图(3-1)
图(3-2)
3.2计费器各功能模块的实现
(1)模块second1实现
该模块为秒计数模块.有四个输入端和两个输出端,其中输入端有一个秒脉冲信号和一个分
位设置并有一清零端,实现60进制功能。
如下图(3-3)所示.
图(3-3)
(2)模块minute11实现
该模块为分钟计时器模块,其结构,功能都和上面second1模块一样,如下图(3-4)所示.
图(3-4)
(3)模块hour1的实现
该模块为24进制,实现