EDA课程设计出租车计费器教学资料.doc

上传人:1595****071 文档编号:51528534 上传时间:2022-10-18 格式:DOC 页数:36 大小:552KB
返回 下载 相关 举报
EDA课程设计出租车计费器教学资料.doc_第1页
第1页 / 共36页
EDA课程设计出租车计费器教学资料.doc_第2页
第2页 / 共36页
点击查看更多>>
资源描述

《EDA课程设计出租车计费器教学资料.doc》由会员分享,可在线阅读,更多相关《EDA课程设计出租车计费器教学资料.doc(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Good is good, but better carries it.精益求精,善益求善。EDA课程设计出租车计费器-CHANGSHAUNIVERSITYOFSCIENCE&TECHNOLOGYEDA基础课程设计题目:出租车计费器设计学生姓名:*学号:2009*班级:电子信息工程09-02班专业:电子信息工程所在院系:电气与信息工程学院指导教师:*起止日期:2012年5月28日至2012年6月8日-出租车计费器设计摘要随着我国社会经济的全面发展,各大中小城市的出租车营运事业发展迅速,出租车已经成为人们日常出行选择较为普遍的交通工具。出租车计费器是出租车营运收费的专用智能化仪表,是出租车市场规

2、范化、标准化以及减少司机与乘客之间发生纠纷的重要设备。一种功能完备、简单易用、计量准确的出租车计费器是加强出租车行业管理、提高服务质量的必备品。本文介绍了出租车计费器系统在实际生产生活中的重要性,根据预定的设计要求和设计思路,采用VHDL硬件描述语言作为设计手段,采用自顶向下的设计思路设计了一个实际的基于EP3C80F780C8N芯片的出租车计费系统,通过在Quartus8.1软件下进行模拟仿真,并进行相应的硬件下载调试,证明该出租车计费系统具有实用出租车计费器的基本功能,各技术指标符合预定标准,如能进一步完善,将可以实用化和市场化,具有一定实用性。关键词:出租车计费器;现场可编程门阵列;仿真

3、目录1设计目的12设计指标22.1课题22.2技术指标23VHDL简介24出租车计费器功能设计44.1出租车计费器功能设计44.2出租车计费器原理54.3模块设计54.3.1点阵动态显示模块54.3.2里程动态显示模块64.3.3计费动态显示模块65出租车计费器的实现65.1出租车计费器功能设计65.2出租车计费器原理75.3模块设计106出租车计费器的仿真结果186.1管脚分配186.2显示模块仿真结果197设计总结21参考文献22附录出租车计费器VHDL源程序231设计目的随着我国社会经济的全面发展,各大中小城市的出租车营运事业发展迅速,出租车已经成为人们日常出行选择较为普遍的交通工具。出

4、租车计费器是出租车营运收费的专用智能化仪表,是出租车市场规范化、标准化以及减少司机与乘客之间发生纠纷的重要设备。一种功能完备、简单易用、计量准确的出租车计费器是加强出租车行业管理、提高服务质量的必备品。本文介绍了出租车计费器系统在实际生产生活中的重要性,根据预定的设计要求和设计思路,采用VHDL硬件描述语言作为设计手段,采用自顶向下的设计思路设计了一个实际的基于AheraFPGA芯片的出租车计费系统,通过在Quartus8.1软件下进行模拟仿真,并进行相应的硬件下载调试,证明该出租车计费系统具有实用出租车计费器的基本功能,各技术指标符合预定标准,如能进一步完善,将可以实用化和市场化,具有一定实

5、用性。传统出租车计费器多数由单片机实现,可扩展的资源有限,硬件电路复杂,不利于系统功能升级,容易在运营过程中产生干扰,影响系统的使用。并且由于分立器件多,造成电源功耗大,影响芯片的使用寿命。而基于FPGA的出租车计费器可以解决电子系统小型化、低功耗、高可靠性等问题,具有非常重要的实际意义。2设计指标2.1课题出租车计费器设计2.2技术指标1.用直流电动机模拟出租车轮子,通过8个七段码管的前四个显示里程,后四个显示费用。2.利用16*16点阵显示每公里费用。3.白天黑夜出租车不同费用价格。4.计算超出一定里程的返程费用。3VHDL简介VHDL的英文全名是Very-High-SpeedIntegr

6、atedCircuitHardwareDescriptionLanguage,翻译成中文就是超高速集成电路硬件描述语言,因此它的应用主要是应用在数字电路的设计中。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的认可,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEE

7、E标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL与Verilog语言将承担起大部分的数字系统设计任务。VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。V

8、HDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。由于VHDL已经成为IEEE标准所规范的硬件描述语言,目前大多数EDA工具几乎都支持VHDL,这为VHDL的进一步推广和广泛应用奠定了基础。在硬件电路设计过程中,主要的设计文件是用VHDL编写的源代码,因为VHDL易读和结构化,所以易于修改设计。VHDL具有多层次

9、的设计描述功能,既可以描述系统级电路,又可以描述门级电路。而描述既可以采用行为描述、寄存器传输描述或结构描述,也可以采用三者混合的混合级描述。另外,VHDL支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型。VHDL支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。4设计过程4.1出租车计费器功能设计该系统的设计可以采用分立元件来搭建,也可以通过单片机来设计,而使用可编程FPGA来设计,具有设计周期短、易于修改等明显特点,而且随着可编程逻辑器件和EDA软件的飞速发展,越来越多的电子系统采用FPGA来设计,一旦该系统达到一定的量产规模,也比较

10、容易转化为ASIC芯片设计。因此,基于FPGA来设计一个出租车的计费器。本系统在EDA工具软件Quartus8.1中,采用硬件描述语言和原理图设计相结合的方法,进行各个模块的设计,最终将各个模块组成整个系统。FPGA设计划分为以下几个功能模块,它们分别是:点阵显示模块、计程模块、输出数据显示模块,将每个模块的功能实现后,通过合理连接和协调各相关端口,得到整个电路系统。下面分别是各主要模块的简单描述。点阵显示模块:采用一种16路动态分时扫描技术来实现16*16点阵动态显示白天和夜间不同的每公里费用。具体方法是,将1616数组的显示模块的行输入端与FPGA内的只读存储器ROM的16位数据输出端口相

11、连,16个列控制端与一个4-16译码器的输出相连,而译码器的输入端和片选信号又与FPGA内的列扫描控制模块的输出端口相连。计程模块:出租车能够显示行驶的里程,可以通过直流电动机的转动产生脉冲,然后通过计数器对脉冲进行计数来实现。本次设计中里程数精确到O1km,也就是100m,由电动机给出的脉冲信号作为里程计数器的时钟信号,里程计数器每计数1km还会周期性地输出一个脉冲信号,称为1km脉冲信号,可以通过一定的组合电路来实现。里程计数器可以用一个四位BCD码计数器来实现,最大能显示到9999,根据设计的要求和条件限制,这里前三位为整数部分,最后一位为小数部分,即最大能显示里程999.9km。数据显

12、示模块:系统最核心的部分就是计费如何实现。这里就需要设计一个BCD码的加法器,在起步价的基础上,根据行驶里程的不同,依据计费标准,每增加1km加上一个单价。系统中用到了四位BCD码加法器,可以实现四位十进制数的加法运算。加法器输出的结果就是乘客应付的费用,这里以元为单位,最大能显示9999元。四位BCD码加法器由四个一位BCD码加法器级联而成。四位BCD码加法器输出的结果通过缓冲器以后,反馈到输入端重新作为一个加数,在脉冲信号的作用下,每来一个脉冲就和单价相加,形成连续累加的功能。4.2出租车计费器原理脉冲信号里程计数器点阵显示模块直流电动机BCD码计数器脉冲信号数据显示模块单价选择图1出租车

13、计费器原理框图4.3模块设计4.3.1点阵动态显示模块当白天、夜间转换开关K1置于关状态(低电平)时,16*16点阵显示文字“白天每公里2元”,文字逐个显示,不断循环以告知乘客出租价格;当K1置于开状态(高电平)时,显示“夜间每公里3元”。其原理结构图如下:图2点阵显示原理结构图4.3.2里程动态显示模块其包括直流电动机发出的脉冲以及将计数显示动态显示在前四个七段数码管,每来一个脉冲里程值加0.1(控制器每发一个脉冲代表运行了0.1公里)。当S1按键按下进行复位后数值归零,重新开始计数。4.3.3计费动态显示模块其初值为6元,当里程超过2公里后才接受直流电动机发出的脉冲的驱动,并且计数显示动态

14、显示出来,白天期间每来10个脉冲(代表运行了1公里)其数值加2元,当里程超过20km时加收50%的返程费,即数值加3元;夜间20km以内单价3元,当超过20km时加收返程费。当S1按键按下进行复位后数值归零,重新开始计费。5出租车计费器的实现5.1计程模块程序设计计程模块的VHDL源程序如下:process(Motor,Rst)-计里程beginif(Rst=0)thenMeter1=0;Meter10=0;Meter100=0;Meter1K=0;elsif(MotoreventandMotor=1)thenif(Meter1=9)thenMeter1=0;if(Meter10=9)then

15、Meter10=0;if(Meter100=9)thenMeter100=0;if(Meter1K=9)thenMeter1K=0;elseMeter1K=Meter1K+1;endif;elseMeter100=Meter100+1;endif;elseMeter10=Meter10+1;endif;elseMeter1=Meter1+1;endif;endif;endprocess;出租车能够显示行驶的里程,可以通过直流电动机的转动产生脉冲,然后通过计数器对脉冲进行计数来实现。本次设计中里程数精确到O1km,也就是100m,由电动机给出的脉冲信号作为里程计数器的时钟信号,里程计数器每计数1

16、km还会周期性地输出一个脉冲信号,称为1km脉冲信号,可以通过一定的组合电路来实现。里程计数器可以用一个四位BCD码计数器来实现,最大能显示到9999,根据设计的要求和条件限制,这里前三位为整数部分,最后一位为小数部分,即最大能显示里程999.9km。5.1计费模块程序设计计费模块的VHDL源程序如下:process(Clk,Rst,dn)-计费模块beginif(Rst=0)thenMoney1=0;Money10=0;Money100=0;elsif(MotoreventandMotor=1)thenif(Meter102andMeter1001andMeter1k1)then-里程小于2

17、Km时显示起步价Money100=0;Money10=0;Money1=6;-起步价6元Old_Money1=0;elseif(dn=0andMeter1002andMeter1k0)thenif(Old_Money1=9)thenOld_Money1=0;-白天if(Money1=9)thenMoney1=0;if(Money10=9)thenMoney10=0;if(Money100=9)thenMoney100=0;elseMoney100=Money100+1;endif;elseMoney10=Money10+1;endif;elseMoney1=Money1+1;endif;els

18、eOld_Money11orMeter1k0)then-白天超过20km加收返程费if(Old_Money1=9)thenOld_Money1=0;if(Money1=9)thenMoney1=0;if(Money10=9)thenMoney10=0;if(Money100=9)thenMoney100=0;elseMoney100=Money100+1;endif;elseMoney10=Money10+1;endif;elseMoney1=Money1+1;endif;elseOld_Money1=Old_Money1+3;-加收返程费endif;endif;if(dn=1andMeter

19、1002andMeter1k0)thenif(Old_Money1=9)thenOld_Money1=0;-夜间if(Money1=9)thenMoney1=0;if(Money10=9)thenMoney10=0;if(Money100=9)thenMoney100=0;elseMoney100=Money100+1;endif;elseMoney10=Money10+1;endif;elseMoney1=Money1+1;endif;elseOld_Money11orMeter1k0)then-夜间超过20km加收返程费if(Old_Money1=9)thenOld_Money1=0;if

20、(Money1=9)thenMoney1=0;if(Money10=9)thenMoney10=0;if(Money100=9)thenMoney100=0;elseMoney100=Money100+1;endif;elseMoney10=Money10+1;endif;elseMoney1=Money1+1;endif;elseOld_Money1Disp_TempDisp_TempDisp_TempDisp_TempDisp_TempDisp_TempDisp_TempDisp_Temp=Money1;endcase;endprocess;process(Clk)beginif(Clke

21、ventandClk=1)then-扫描累加SEG_SEL=SEG_SEL+1;if(SEG_SEL=3)thenDisplay=Disp_Decodeor1000000;elseDisplayDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_Decode=00000000;-全灭endcase;endprocess;在起步价的基础上,根据行驶里程的不同,依据计费标准,每增加1km加上一个单价。

22、系统中用到了四位BCD码加法器,可以实现四位十进制数的加法运算。加法器输出的结果就是乘客应付的费用,这里以元为单位,最大能显示9999元。四位BCD码加法器由四个一位BCD码加法器级联而成。四位BCD码加法器输出的结果通过缓冲器以后,反馈到输入端重新作为一个加数,在脉冲信号的作用下,每来一个脉冲就和单价相加,形成连续累加的功能。此设计中2km以内起步价为6元,白天续程单价2元,超过20km为3元;夜间续程单价3元,超过20km为4元。5.3点阵显示模块程序点阵显示模块的VHDL源程序如下:process(clk)-显示时序控制beginifclkeventandclk=1thendount=d

23、ount+1;ifdount=255thenifS=15thenS=0000;elses=S+1;endif;s=s+1;elses=S;endif;ifcdount15thencdount=cdount+1;elsecdount=0000;endif;endif;keyckeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkey

24、rkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyreyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyr5thencasecdountiswhen0000=keyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyrkeyr=1110111011

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁