基于VHDL的出租车计价器的研究设计

上传人:B**** 文档编号:51481107 上传时间:2022-01-26 格式:DOCX 页数:17 大小:193.56KB
返回 下载 相关 举报
基于VHDL的出租车计价器的研究设计_第1页
第1页 / 共17页
基于VHDL的出租车计价器的研究设计_第2页
第2页 / 共17页
基于VHDL的出租车计价器的研究设计_第3页
第3页 / 共17页
点击查看更多>>
资源描述
一 概述1二 总体设计22.1 设计要求22.2 设计思路22.3 设计流程图2三 系统仿真结果及分析4仿真波形图分析4四 总结及体会7参考文献7附录(程序源代码)8EDA 技术课程设计一 概述随着我国国民经济生产总值的增加以及人民生活水平的提高,各大中小城市的出租车营运事业发展迅速,出租车已经成为人们日常出行选择较为普通的交通工具。出租车计价器是出租车营运收费的专用智能化仪表,是使出租车市场规范化、标准化的重要设备。一种功能完备,简单易用,计量准确的出租车计价器是加强出租车行业管理,提高服务质量的必需品。本设计采用 VHDL 硬件描述语言作为设计手段,采用自顶向下的设计思路,得到一种出租车计价系统的软件结构,通过Quartus软件下进行仿真,证明所设计的电路系统完成了出租车计价的功能,各项指标符合设计要求。该设计虽然功能简单,智能化水平比较低,但仍具有一定的实用性。该设计是在 VHDL 的基础上对出租车计价器进行设计来实现其基本功能的,与以往的基于单片机的数模混合电路相比,FPGA 具有稳定性好、抗干扰能力强、电路实现简单、程序简单等优点, 且非常适合做为出租车计价器的控制核心,所以选择用 VHDL 来对计价器进行设计来实现其功能。出租车计价器的实现将大大改善人们出行时因为讨价还价而带来的烦恼,从而使人们的心情比较愉悦。本设计是对出租车计价器的四个模块进行分析的,综述如下:分频模块:分频模块是其它模块的基础,输入时钟选为32Hz ,分频后的时钟频率为1Hz,为后续模块提供基本时钟。等待时间模块:该模块针对乘客确认下车前的等待而言,比如堵车、中途下车的情况,通过 1Hz脉冲计数,每一分钟计时加一,最大计时时间显示为99分钟。路程模块:该模块是对车辆行驶路程进行计数,以1Hz时钟为基础,检测行程脉冲,路程模块中有内部变量来判断路程,当大于3公里、 20公里时,分别有相应的使能信号对此作出记录,最大路程显示为99公里。计费模块:该模块是基于等待时间模块和路程模块对费用进行控制的。通过内部使能信号分别计算 3公里以内、 3-20公里以及 20公里以后的费用。本设计是基于VHDL 进行编程,然后在Quartus进行波形仿真,实现出租车计价器的基本功能。- 1 -EDA 技术课程设计二 总体设计2.1 设计要求( 1)起步价为 8.00 元,起步公里为 3 公里;( 2)超过 3 公里,每公里按 1 元收费;( 3)单程行驶里程超过20 公里,每公里租价加收50%;( 4)等候时间超过1 分钟,每分钟按这公里的租价计算。要求显示里程、计费及等候时间。乘客上车后,按下启动键开始计费。若非往返,按下单程键,计费显示三位整数、一位小数。2.2 设计思路输入 2 个时钟信号,分别模拟时间和路程。对等待时间、路程计数,进而统计费用。系统结构框图如下:分频时钟基础时钟计数器 1等待时间显计费示车速时钟计数器 2里程图 1 系统结构框图上图中,计数器1 对分频后的1Hz 脉冲计数,计数60 次,计数器加1,对应等待时间,计数器2 对车速脉冲计数,其上升沿到来计数加1,对应里程。2.3 设计流程图开始- 2 -初始化分频EDA 技术课程设计乘客上车后,按下启动按钮,计价器开始工作,首先进入初始化状态,即计程从0开始,计费从 8开始。再根据单程信号判断是否为单程,进而确定计费方式。单程:里程计数器开始计数,当路程超过3公里时,计费开始累加,按1元每公里计算,路程超过20公里时每公里1.5元。当路程超过3公里有等待时,按下等待信号,每等待1分钟费用与当前计费方式相同。往返:每公里 1元,等待计费为每分钟 1元。乘客下车后,按下复位键,则所有计数器进入初始状态。- 3 -EDA 技术课程设计三 系统仿真结果及分析仿真波形图分析总体设计封装图如下:图 3 系统封装图各信号说明:输入信号: clk :系统时钟信号,频率32Hz ;mile: 车速时钟,频率8Hz;start::启动信号,当 start=1时,出租车启动,计数器开始计数;否则计数器停止计数;rst:复位信号,当 rst=1时,各计数器清 0;当 rst=0时,计数器可以开始计数,start=1表示计数开始;one_way: 单程信号,单程时由司机输入;wait_siignal :等待信号,处于等待状态时由司机输入;输出信号: km0 , km1:里程,单位为公里;min0, min1: 等待时间,单位为分钟;cost0, cost1, cost2, cost3:费用,单位为元,其中cost0 表示小数位。以下是系统在几种不同情况下仿真的波形:- 4 -EDA 技术课程设计图 4 单程行驶示意图启动键、单程键有效,由图4 可知, 3 公里之内计费显示为8 元; 3-20 公里之间每公里1元累计;超过20 公里每公里1.5 元累计。图 5 单程行驶中途等待示意图启动键、单程键有效,行驶一段时间等待信号有效,等待后继续行驶。由图5可知, 3 公里之内计费显示8 元, 3-20 公里之间每公里1 元累加,中间等待信号有效,每等待一分钟按此时每公里的费用计算,里程计数器停止计数,等待时间到,里程计数器继续计数。- 5 -EDA 技术课程设计图 6 单程行驶复位示意图启动键、单程键有效,中途等待4 分钟,乘客下车时显示费用25 元,复位信号有效,计数器清零,当启动信号有效时重新计数。- 6 -EDA 技术课程设计四 总结及体会通过为期两周的课程设计,出租车计价器系统的设计已基本完成,能按预期的效果模拟汽车启动、等待、停止、复位等功能,并显示车费数目等待时间及行驶路程。出租车计费系统的设计中体现了VHDL 覆盖面广,描述能力强,是一个多层次的硬件描述语言及CPLD 器件速度快,使用方便,便于修改等特点,本设计在实用方面具有一定的价值。在本次设计中还存在很多不足,可以改进的地方目前有以下几点:一、该设计虽然实现了基本的计费和计程,但是很多问题并没有解决,如本设计只实了一种车速的计费。若要实现出租车的不同档位下的计程计费,还需要进一步讨论。二、该设计智能化水平较低,启动、等待、复位等信号需要人为输入,若在实际中出现操作偏差,会导致计费不准确。通过此次课程设计,我们更进一步的深入了解了VHDL 设计语言,并在使用过程中对它有了更深的体会。对编程过程中可能遇到的问题有了一定的了解和解决方法,在理论学习和编程练习以及硬件测试方面都获得了较大的收获,对于今后进行程序设计有很大的帮助。期间要感谢我的老师的悉心指导以及同学们的大力帮助。在此次设计过程中确实遇到了很多困难,但是再大的困难只要有勇气去征服它,那就不是什么困难了。此外,通过本次课程设计,我还有了一定的对学习上的体会,知识的真实魅力其实是在于它因为应用于实践中而产生的实际的生产价值,或者说是给人们带来的巨大的方便,因为它有用了所以我们学起来会更有动力,更能往深里去研究。参考文献1 V olei A. Pedroni, VHDL 数字电路设计教程,电子工业出版社,20102 蒋小燕,余伟钧,张立臣,EDA 技术及 VHDL- 7 -EDA 技术课程设计3 鲍可进,赵念强,赵不贿等,数字逻辑电路设计,清华大学出版社,20044 王道宪,贺名臣,刘伟, VHDL 电路设计技术,国防工业出版社,20045 黄仁欣, EDA 技术实用教程,清华大学出版社,20066 徐向民,数字系统设计及 VHDL 实践,机械工业出版社, 2007附录(程序源代码)-taxi.vhd- 8 -EDA 技术课程设计-library ieee;entity taxi isport(-输入时钟clk:in std_logic;-计价器启动start:in std_logic;-等待信号wait_signal:in std_logic;-公里脉冲信号mile:in std_logic;-单程键one_way:in std_logic;-复位键rst:in std_logic;-计费输出cost0,cost1,cost2,cost3:out std_logic_vector(3 downto 0);-等待时间输出min0,min1:out std_logic_vector(3 downto 0);-行驶公里输出km0,km1:out std_logic_vector(3 downto 0);end;architecture bhv of taxi is-延迟信号signal mile_r1,mile_r2,mile_clk,start_r,clk1hz:std_logic;-分频器signal count:integer range 0 to 29;signal sec:integer range 0 to 59;-计费寄存器- 9 -EDA 技术课程设计signal c0,c1,c2,c3:std_logic_vector(3 downto 0);-公里 /等待时间寄存器signal k0,k1,m0,m1:std_logic_vector(3 downto 0);-路程大于3 公里,使能有效signal en0: std_logic;-单程且大于20 公里,使能有效signal en1: std_logic;-等待时间, 1 脉冲 /分钟signal wait_clk :std_logic;-计费时钟signal cost_clk : std_logic;begin-输出显示min0=m0;min1=m1;km0=k0;km1=k1;cost0=c0;cost1=c1;cost2=c2;cost3=c3;-分频进程-U1:process( rst,clk)beginif rst=0 thenif clkevent and clk=1 thenif count=5 thencount=0;clk1hz=1;elsecount=count+1;clk1hz=0;-10-EDA 技术课程设计end if;end if;end if;end process;-等待计时进程-U2:process(rst,clk1hz,start,wait_signal)beginif rst=1 thenm0=0000;m1=0000;elsif start=0thenwait_clk=0;elsif clk1hzevent and clk1hz=1 thenif wait_signal=1thenif sec=5 thensec=0;wait_clk=1;if m0=1001thenm0=0000;if m1=0101thenm1=0000;elsem1=m1+1;end if;elsem0=m0+1;end if;elsewait_clk=0;sec=sec+1;end if;else-11-EDA 技术课程设计wait_clk=0;end if;end if;end process;-延迟信号,检测上升沿-U3:process( rst,clk1hz,mile,start)beginif rst=0 thenif clk1hzevent and clk1hz=1thenmile_r2=mile_r1;mile_r1=mile;start_r=start;end if;end if;end process;mile_clk=mile_r1 and not(mile_r2);cost_clk= wait_clk when wait_signal=1elsemile_clk when en0=1 or en1 =1else0;-公里计数进程-U4:process(rst,start,mile_clk)beginif rst=1 thenk0=0000;k1=0000;elsif start=0 thenk0=0000;k1=0000;en0=0;en1=00011001 and one_way=1 thenen1=1;en0=0;end if;-大于 3 公里,使能有效if k1 & k0=00000011 thenen0=1;end if;if k0=1001 thenk0=0000;if k1=1001 thenk1=0000;elsek1=k1+1;end if;elsek0=k0+1;end if;end if;end process;-计费进程-U5:process( rst,start,cost_clk,start_r)beginif rst=1 thenc0=0000;c1=0000;c2=0000;c3=0000;elsif start=1 and start_r=0 thenc0=0000;-13-EDA 技术课程设计c1=1000;c2=0000;c3=0000;elsif cost_clkevent and cost_clk=1thenif en1=0 and en0=1then-小于 20 公里时,每公里1 元if c1=1001thenc1=0000;if c2=1001thenc2=0000;if c3=1001thenc3=0000;elsec3=c3+1;end if;elsec2=c2+1;end if;elsec1=c1+1;c0=0000;end if;else-超过 20 公里,每公里1.5 元if (c0=0101 and c1=1000)or c1=1001then-等于 XX9.5 时,累加得XX1.0if c1=1001 and c0=0101 thenc0=0000;c1=0001;-等于 XX9.0 时,累加得XX0.5elsif c1=1001 and c0=0000 thenc0=0101;c1=0000;-等于 XX8.5 时,累加得XX0.0-14-EDA 技术课程设计elsif c1=1000 and c0=0101 thenc0=0000;c1=0000;end if;if c2=1001 thenc2=0000;if c3=1001thenc3=0000;elsec3=c3+1;end if;elsec2=c2+1;end if;elsif c0=0000thenc0=0101;c1=c1+1;elsec0=0000;c1=c1+0010;end if;end if;end if;end process;end bhv;-15-
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 演讲稿件


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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