ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:510.33KB ,
资源ID:11520725      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-11520725.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(出租车自动计费器设计课程设计报告模板.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

出租车自动计费器设计课程设计报告模板.docx

1、出租车自动计费器设计课程设计报告模板1 绪论1。1 设计背景随着我国社会经济的全面发展,各大中小城市的出租车营运事业发展迅速,出租车已经成为人们日常出行选择较为普通的交通工具。于是,出租车行业以低价高质的服务给人们带来了出行的享受。但是总存在着买卖纠纷困扰着行业的发展。而在出租车行业中解决这一矛盾的最好方法就是改良计价器。汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具,它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计价器的研究也是具有一定意义的。出租车计费器是出租车营运收费的专用智能化仪表,

2、是出租车市场规范化,标准化以及减少司机与乘客之间发生纠纷的重要设备.一种功能完备,简单易用,计量准确的出租车计费器是加强出租车行业管理,提高服务质量的必需品。本设计就是采用VHDL硬件描述语言作为设计手段,采用自己的设计思路,得到一种出租车计价系统的软件结构,通过Quartus II 6.0软件下进行仿真,证明所设计的电路系统完成了出租车计价的功能,各项指标符合设计要求,具有一定的实用性。1。2 QUARTUS II简介QUARTUS II 是Altera公司的综合性CPLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从

3、设计输入到硬件配置的完整CPLD设计流程。QUARTUS II 支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。Altera QUARTUS II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。1.3 VHDL语言基础一般而言,一个相对完整的VHDL语言程序至少应三个基本组成部分:库(Library)、程序包(Package)使用说明;实体(Entity)说明;实体对应的结构体(Architecture)说明。其中,库、程序包使用说明用于打开(调用)本设计实体将

4、要用到的库、程序包;实体说明用于描述该设计实体与外界的接口信号说明,是可视部分;结构体说明用于描述该设计实体内部工作的逻辑关系,是不可视部分。在一个实体中,允许含有一个或多个结构体,而在每一个结构体中又可以含有一个或多个进程以及其他的语句。根据需要,实体还可以有配置说明语句。配置说明语句主要用于以层次化的方式对特定的设计实体进行元件例化,或是为实体选定某个特定的结构体.2 出租车计费器总体设计结构2.1 系统设计要求和目的2.2.1 系统设计要求1。起步价为5.0元,起步公里为3公里;2.超过3公里,每公里按1元收费,也可每0.1公里按0。1元收费;3。等候时间累计1分钟,按每分钟0.1元收费

5、;4。用三个数码管显示总金额,最大值为99。9元;用三个数码管显示总里程,最大值99.9公里;用两个数码管显示等待时间,最大值99分钟。2。2。1 系统设计目的1.通过这次实验设计使我们加深对EDA技术与数字系统设计相关理论和概念的理解,培养我们的理论联系实际的能力,特别是实际动手能力.2.学习使用QUARTUS II软件设计。3.根据原理图学会用VHDL语言设计时序电路。4.学会绘制功能仿真波形图。2。2 设计思路根据设计要求,电路具有计时、计程、计费功能,用数码管显示行驶公里数、等待时间、收费金额,行车里程和等待时间的处理电路将汽车行驶的里程数、转换成与之成正比的计费脉冲,然后由计费电路转

6、换成收费金额,实验中以一个脉冲模拟汽车前进十米,则每100个脉冲表示1公里,3公里以后每0。1公里产生一个计费脉冲,一个1HZ的脉冲用来表示等待时间,60个脉冲代表1分钟,1分钟即60个脉冲产生一个等待计费脉冲,然后用计费电路对计费脉冲进行计费。2。3 系统总体结构图21 系统总体结构图出租车计费器的组成如上图所示,通过控制模块以高低脉冲模拟出租汽车启动、行驶、暂停,具有控制作用;通过控制模块控制出租车的状态来选择出租车是计里程还是计等待时间,相应产生的时间计费脉冲信号和里程脉冲信号来计费,译码/动态扫描模块将等待时间、路程与费用的数值译码后用动态扫描的方式驱动数码管;数码管显示模块将里程数、

7、等待时间和计费金额用数码管显示。2.4 出租车计费器系统工作流程图图22 出租车计费系统工作流程图出租车载客后,启动计费器,整个系统开始工作,进入初始化状态,即计程从0开始,计费从5.0元开始.再根据BREAK信号判断行驶还是暂停。若是行驶状态,计费器开始进行里程计数,当里程超过3公里时,计费器开始累加,按每0.1公里收费0。1元计算,计程器则继续,否则计费器不变。若是暂停状态,计费器开始进行等候时间计数,当等候时间累计1分钟,则每分钟0。1元计费。最后将等候时间、里程、计费都显示出来。3 出租车计费器的实现3.1 出租车计费器的顶层原理图图3-1 出租车计费器顶层原理图原理图中输入部分分别是

8、CLK:秒脉冲信号,1个脉冲代表1秒,则60个脉冲表示1分钟。CLK1:10米脉冲信号,1个脉冲代表10米,则10个脉冲表示100米,100个脉冲代表1公里。START:计程车开启信号;DRIVE:计费器启动信号;BREAK:等待信号,SEL为计数控制信号输出端。3.2 系统各功能模块的实现3.2。1 计费模块JIFEI计费(JIFEI)模块也是本系统的核心,完成起步价计费,等待时间计费,里程计费功能。计费器启动,显示起步价5。0元,之后每来一个行驶里程计费脉冲或者等待时间计费脉冲,计费金额自动加0.1元。计费显示用3位数码管,所以计费最大值为99.9元。其中CH2表示费用的十位,CHI表示费

9、用的个位,CH0表示费用的十分位。B为等待时间计费脉冲信号或里程计费脉冲信号。图32 JIFEI模块图3.2。2 计量模块JILIANG图3-3 JILIANG模块图本模块是系统的核心模块之一,能够对外部的行驶距离脉冲、等待时间脉冲进行计数。因为行驶距离每脉冲代表10米,所以计满100个数就输出一个行驶距离计费脉冲,因为3公里之内属于起步价,所以前3公里内不输出行驶距离计费脉冲,因为用3位数码管来显示行驶距离,其中两位整数,一位小数,所以行驶距离最小分辨率为0。1公里,行驶距离脉冲每计10个数,行驶距离输出加0。1,行驶距离最大值为99.9公里。其中KM2为里程的十位,KM1为里程的个位,KM

10、0为里程的十分位。等待时间脉冲频率为1HZ,所以一个脉冲代表1秒,60个等待脉冲是1分钟,输出等待时间加1,等待时间满1分钟计一次费,所以对等待时间脉冲计数,计满60个数就输出一个等待计费脉冲。等待时间最大值为99分钟。MIN1为等待时间的十位,MIN0为等待时间的个位。将行驶距离、等待时间送到SELTIME模块,时间与里程计费脉冲送到计费模块完成里程、等待时间的计费功能。B1为超过3公里后,每0.1公里产生的计费脉冲。B2为每等待一分钟产生的计费脉冲。3。2.3 显示控制模块SELTIME图3-4 SELTIME模块图SELTIME模块起显示控制作用,控制等待时间、行驶里程、费用在数码管上的

11、显示位置.sel为计数控制信号输出端,功能主要是利用其计数的八个状态,使daout在其每个状态下选择某一输入数据,进而将选择的的数据送入到DELED模块.dp为小数点脉冲控制信号,当该模块输出的值为里程的个位、费用的个位时,需要考虑小数点的存在,即此时dp=1,在其他不需要小数点的情况下,dp=0,最后dp将信号输出到DELED模块。3.2.4 显示模块DELED图3-5 DELED模块图DELED模块把送入的每个四位数据转换为7段码送出显示,能够使数码管正常显示送入的数据。其中DP为小数点输入信号。4 出租车计费器系统仿真及分析4。1 计费系统的仿真图4-1 出租车启动时计费系统功能仿真图由

12、图4-1 可知,当出租车未启动时,里程、等待时间、费用均为0。出租车刚启动时,里程、等待时间为0,费用为出租车起步价5元.图42 出租车等待时计费系统功能仿真图由图42可知,当出租车在等待过程中,行驶里程16。2公里,等待时间为32分钟时,出租车的费用为:5+(16.23)1+320.1=21.4元,与仿真结果一致。图43 出租车行驶时计费系统功能仿真图由图43可知,当出租车行驶到66。6千米,等待时间60分钟时,由仿真结果可得出费用为74.6元;根据设计要求计算可得费用为:5+(66。6-3)1+600.1=74.6元。仿真结果与计算值一致,验证了设计的正确性。图4-4 出租车停车时计费系统

13、功能仿真图当出租车停车时,出租车上的时间、里程和费用清零,为下次计费的开始做准备。4。2 单元模块的仿真及分析4。2.1 译码显示模块的仿真及分析图4-5 译码显示模块的功能仿真图图45为译码显示模块的功能仿真波形图,DP、S为信号输入端,也是显示控制模块的信号输出端口,ABCDEFGH八个端口为八位二进制的输出端口.假设DOUT=“HGFEDCBA”,由上图可以看出:1。 DP=0时:当S(3 downto 0)=0000”,则DOUT=”00111111”;当S(3 downto 0)=”0001”,则DOUT=”00000110”;当S(3 downto 0)=”0010,则DOUT=”

14、01011011”;当S(3 downto 0)=0011,则DOUT=01001111”;当S(3 downto 0)=”0100”,则DOUT=01100110”;当S(3 downto 0)=”0101”,则DOUT=”01101101;当S(3 downto 0)=0110”,则DOUT=”01111101;当S(3 downto 0)=”0111”,则DOUT=”00000111”;当S(3 downto 0)=”1000”,则DOUT=”01111111”;当S(3 downto 0)=1001”,则DOUT=”01101111”;当S(3 downto 0)等于上述值以外的值时,

15、则DOUT=”00000000”.2. DP=1时:当S(3 downto 0)=0000”,则DOUT=”10111111”;当S(3 downto 0)=”0001,则DOUT=10000110”;当S(3 downto 0)=”0010”,则DOUT=”11011011”;当S(3 downto 0)=”0011”,则DOUT=”11001111”;当S(3 downto 0)=0100”,则DOUT=”11100110”;当S(3 downto 0)=”0101”,则DOUT=11101101”;当S(3 downto 0)=”0110,则DOUT=”11111101”;当S(3 do

16、wnto 0)=”0111,则DOUT=”10000111”;当S(3 downto 0)=”1000”,则DOUT=”11111111”;当S(3 downto 0)=”1001”,则DOUT=11101111”;当S(3 downto 0)等于上述值以外的值时,则DOUT=”10000000”。4。2.2 显示控制模块的仿真及分析图46 显示控制模块的功能仿真图图46为显示控制模块功能仿真图,其中clk为时钟脉冲输入端,sel为计数控制信号输出端,daout为sel所控制状态下的输出到数码管的位选信号,dp为小数点控制输出信号.可以看出,当时钟沿上升时刻到来时,计数器的输出sel就自动加1

17、,当计数器输出端加到“111时,再来一个脉冲上升沿,则计数的输出端sel变为“000”,该显示控制模块的功能主要是利用其计数的八个状态,进而去轮流控制数码管的位选信号。由图4-6可知:当sel=“000”时,则daout=CH0;当sel=“001”时,daout=CH1;当sel=“010”时,daout=CH2;当sel=“011”时,daout=KM0;当sel=“100”时,daout=KM1;当sel=“101”时,daout=KM2;当sel=“110”时,daout=MIN0;当sel=“111时,daout=MIN1。由于KM1、CH1表示里程的个位和费用的个位,其后都存在小数

18、,故在设计中当显示KM1、CH1时须加入小数点,此时dp=1,在其他没有小数点的情况时dp=0.4.2.3 计量模块的仿真及分析图47 计量模块的功能仿真图图47为计量模块的功能仿真图,START信号为高电平时(即出租车启动).当DRIVE为高电平且BREAK为低电平时,出租车为行驶状态,此时里程计数模块开始计数,每经过10个CLK1脉冲信号,里程加0.1公里,当里程计数大于3公里时,每计0。1公里产生1个B1脉冲信号。当DRIVE为高电平且BREAK为高电平时,出租车为暂停状态,此时等待时间计数模块开始计数,每经过60个CLK脉冲信号,时间加1分钟,每计1分钟产生一个B2脉冲信号。B1和B2

19、分别为里程计费脉冲和等待时间计费脉冲.4.2.4 计费模块的仿真及分析图4-8 计费模块的功能仿真图图4-8为计费模块的功能仿真图当START处于高电平且DRIVE处于高电平时,每送入一个计费脉冲且计费脉冲处于上升沿时,CH0自动加1(即每送入一个计费脉冲加0。1元)。CH0、CH1、CH2为十进制计数。CH2表示费用的十位,CH1表示费用的个位,CH0表示费用的十分位,计费的最大值为99。9元。5 锁定管脚及硬件实现5.1 锁定管脚图在验证出租车计费器系统的功能之前,需要清楚实验箱与各个信号之间的对应关系,参照资料得出本设计中各引脚的对应情况如下:图5-1 顶层原理图5.2 硬件实现通过硬件

20、下载,该电路可以完成硬件实现,芯片管脚定义可以直接用编辑pin文件。完成管脚定义后选择器件,编译后生成.sof文件.选择。sof文件进行下载。下载完成后,将第一全局时钟CLK1的跳线器接1Hz(作为秒脉冲信号),将第二全局时钟CLK2的跳线器接1Hz(作为十米脉冲信号),将第三全局时钟CLK3的跳线器接32768Hz,用拨位开关模拟控制出租车的启动、行驶、暂停.观察数码管上数据的变化是否符合设计标准。在试验箱上八个数码管从左至右分别显示的是:等待时间的十位、等待时间的个位、里程的十位、里程的个位、里程的十分位、费用的十位、费用的个位、费用的十分位。5.2.1 显示结果的几种情况图5-2 验证结

21、果1图5-2表示出租车等待了1分钟,行驶了3.9公里,即时车费为6.0元。根据设计要求计算所得费用为:5元+(3.9-3)公里1元/公里+1分钟0.1元/分钟=6.0元,计算结果与试验箱上所得显示结果相同。图5-3 验证结果2图5-3表示出租车等待了3分钟,行驶了6.8公里,即时车费为9.1元。根据设计要求计算所得费用为:5元+(6。8-3)公里1元/公里+3分钟0。1元/分钟=9.1元,计算结果与试验箱上所得显示结果相同。在试验箱验证过程中,我们可以看到,八位数码管的右三位显示起步价05.0,中间三个数码管在以0。1为步长进行加法显示行驶里程,当行驶里程超过3公里之后,每0.1公里计费金额加

22、0。1元,当我们按下等待暂停键,每分钟左边两个数码管加1,其显示的等待时间,当等待时间到1分钟时,计费金额加0.1元,由此我们可以判断,系统设计符合要求。5。2。2 硬件实现总结通过对每一模块的仿真和下载,可以实现各个模块的逻辑功能,验证了各个模块的正确性。在出租车计费系统的4个模块中,重点在于计量模块(JILIANG),计费模块(JIFEI),显示控制模块(SELTIME),译码显示模块(DELED)。JILIANG模块主要有汽车的开始、运行、暂停,JILIANG模块主要记录出租车的行驶里程和等待时间,并将等待时间计费脉冲和行驶里程计费脉冲送入JIFEI模块;JIFEI模块主要是完成起步价计

23、费、等待时间计费、行驶里程计费,并完成总费用;SELTIME模块起显示控制作用,控制等待时间、行驶里程、费用在八个数码管上的位置。DELED模块是把送入的每个四位数据转换为7段码,从而能在数码管上正确的显示.这四个模块的组合成完整的出租车系统,在设计过程中还需要改进的是控制出租车计费系统的控制功能。出租车计费器系统的设计已全部完成,能按预期的效果进行模拟汽车开始、启动、暂停、停止等功能,由数码管显示出租车等待时间,行驶里程,费用。车暂等待时停止行驶里程计费,车费仅由等待时间计费;出租车正常行驶时,仅根据里程收费方式。若停止则车费清零,等待下一次计费的开始.出租车计费系统的设计中体现了VHDL覆

24、盖面广,描述能力强,是一个多层次的硬件描述语言本设计在实用方面具有一定的价值.该计费器实现了按预置参数自动计费(最大计费金额为99.9元)、自动计程(最大计程公里数为99。9公里)等功能;能够实现起步价、每公里收费、等待时间计费的参数预置(如:起步价5.0元;3公里后1元每公里;等待时间0.1元每分钟),且预置参数可调范围广。由于采用CPLD大规模可编程逻辑器件,整机功耗小、抗干扰能力强、系统稳定、工作可靠、升级方便。6 设计体会与总结通过这次紧张而又充实的EDA课程设计,我感受到了VHDL语言和普通软件语言之间的区别,也能够更加熟练地运用VHDL语言进行逻辑电路的设计了,受益匪浅.我们所做的

25、课题是出租车计费器的设计。老师给了我们课程设计题目,在这半个月的实验操作中,不断的完善自己的设计要求,将自己的想法融入到实验的程序中去。最终通过仿真达到了自己预想的效果。有种先苦后甜的成就感。同时在本次试验中,我们熟练的掌握了Quartus II软件的使用。学会了如何把自己所设计的程序,通过软件用波形仿真出来,再通过试验箱仿真出来。在这次课程设计过程中,要感谢陈老师在课程设计上给予我的帮助,提供给我的支持与建议,特别是帮助我解决了我半个月来一直遇到的运行程序警告多的问题,这是我能顺利完成这次报告的主要原因,让我能把课程设计做得更加完善。在此期间,我不仅学到了许多新知识,而且也开阔了视野,提高了

26、自己的设计能力。其次,我要感谢帮助过我的同学们,他们也为我解决了不少难题。这些东西是无法再平时上课的过程中学到的,实践出真知,只有在实验中我们才能更好的学到东西,不用纸上谈兵,做无用功。参考文献1 徐飞.EDA技术与实践M。北京:清华大学出版社,2011.2 王行,李衍.EDA技术入门与提高M。西安:西安电子科技大学出版社,2005。3 刘昌华。数字逻辑EDA设计与实践M.北京:国防工业出版社,2011。4 李蓉。基于VHDL语言的出租车自动计费器的设计J。科技风,2008,24:33.附 录1 JILIANG模块的VHDL编程LIBRARY IEEE;USE IEEE.STD_LOGIC_1

27、164。ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE。STD_LOGIC_UNSIGNED.ALL;ENTITY JILIANG IS PORT(CLK,CLK1 : IN STD_LOGIC; START : IN STD_LOGIC; DRIVE : IN STD_LOGIC; BREAK : IN STD_LOGIC; B1,B2 : OUT STD_LOGIC; KM2,KM1,KM0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); MIN1,MIN0 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);EN

28、D JILIANG;ARCHITECTURE BEHAVE OF JILIANG IS SIGNAL R1:INTEGER RANGE 0 TO 9; SIGNAL K:STD_LOGIC_VECTOR (7 DOWNTO 0); SIGNAL K2,K1,K0 :STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL W1:INTEGER RANGE 0 TO 59; SIGNAL M1:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL M0:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN RUN:PROCESS(CLK1,DR

29、IVE,BREAK,K0,K1,K2) BEGIN IF START=1 THEN IF DRIVE=0 THEN K0=0000;K1=0000”;K2=”0000”;R1=0; ELSIF CLK1EVENT AND CLK1=1 THEN IF DRIVE=1AND BREAK=0 THEN IF R1=9 THEN R1=0; IF K0=1001 THEN K0=0000;k1=k1+1; IF K1=”1001” THEN K1=0000”;k2=k2+1; IF K2=1001 THEN K2=0000; ELSE K2=K2+1; END IF; ELSE K1=K1+1; E

30、ND IF; ELSE K0=K0+1; END IF; ELSE R1=R1+1;B1=0; END IF; K=K2K1; IF K”00000010” THEN IF R19 THEN R1=R1+1;B1=0; ELSE R1=0; B1=1; END IF; END IF; END IF; END IF; ELSE K0=0000;K1=”0000;K2=”0000”; END IF; KM0=K0;KM1=K1;KM2=K2; END PROCESS;PAUSE:PROCESS(CLK,DRIVE,BREAK,M0,M1) BEGINIF START=1 THEN IF DRIVE

31、=0 THEN M0=0000;M1=”0000”;W1=0; ELSIF CLKEVENT AND CLK=1 THEN IF DRIVE=1 AND BREAK=1THEN IF W1=59 THEN W1=0;B2=1; IF M0=”1001THEN M0=”0000; M1=M1+1; IF M1=”1001THEN M1=0000; ELSE M1=M1+1; END IF; ELSE M0=M0+1; END IF; ELSE W1=W1+1;B2=0; END IF; END IF; END IF; ELSE M0=0000”;M1=”0000”; END IF; MIN0=M0; MIN1=M1; END

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

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