EDA出租车计价器的设计说明.docx

上传人:rrsccc 文档编号:10416260 上传时间:2021-05-15 格式:DOCX 页数:17 大小:446.91KB
返回 下载 相关 举报
EDA出租车计价器的设计说明.docx_第1页
第1页 / 共17页
EDA出租车计价器的设计说明.docx_第2页
第2页 / 共17页
EDA出租车计价器的设计说明.docx_第3页
第3页 / 共17页
EDA出租车计价器的设计说明.docx_第4页
第4页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《EDA出租车计价器的设计说明.docx》由会员分享,可在线阅读,更多相关《EDA出租车计价器的设计说明.docx(17页珍藏版)》请在三一文库上搜索。

1、EDA 技术课程设计任务书一、设计题目、容及要求题目:出租车计价器设计容及要求:设计任务:设计一种出租车计价器,计费标准如下(1) 起步价为 8.00 元,起步公里为 3 公里;(2) 超过 3 公里,每公里按 1.00 元收费;(3) 单程行驶里程超过 20 公里,每公里租价加收 50%;(4) 等候时间累积 1 分钟,则每分钟这算 1 公里里程价。要求显示里程、计费及等候时间。乘客上车后,按下启动键,开始计费,除非同一乘客往返用那个车,否则按下单程键,这样行驶里程超过20 公里时,每公里加收 50%,既每公里租费 1.5 元;计费显示为3 位整数、 1 位小数。二、设计原始资料1. 教材2

2、. 实验指导书三、要求的设计成果(课程设计说明书、设计实物、图纸等)1. 设计说明书:容包括设计背景、设计原理、仿真结果分析、设计总结。2. 硬件调试:要求学生对设计进行硬件调试,调试平台为EDA实验室的实验箱。四、进程安排1.20 周 1-3 进行总体设计,进行各模块的程序设计、仿真及硬件调试。2.20 周 4-5 进行说明书撰写及答辩。五、主要参考资料1. 潘松 , 黄继业 . EDA技术实用教程 . 科学 ,2010.6.2. 江海 . EDA技术课程设计 . 华中科技大学 ,2009.5.指导教师(签名):教研室主任(签名):注:可以附页.目录1概述 . .12总体设计 . .22.1

3、设计要求 .22.2设计思路 .22.3设计流程图 .22.4总体设计封装图 .42.5各信号说明 .43模块设计 . .53.1秒分频模块 . .53.2控制模块 . .53.3计量模块 . .53.3.1计价部分 .53.3.2计时部分 .53.3.3计程部分 .53.4译码显示模块 . .54程序调试运行 .65硬件验证 .85.1引脚锁定 . .85.2硬件验证情况 . .86总结及体会 . .9参考文献 . .10附录(程序源代码) . .11.1 概述随着我国国民经济生产总值的增加以及人民生活水平的提高,各大中小城市的出租车营运事业发展迅速,出租车已经成为人们日常出行选择较为普通的

4、交通工具。出租车计价器是出租车营运收费的专用智能化仪表,是使出租车市场规化、标准化的重要设备。一种功能完备,简单易用,计量准确的出租车计价器是加强出租车行业管理,提高服务质量的必需品。本设计采用VHDL硬件描述语言作为设计手段,采用自顶向下的设计思路,得到一种出租车计价系统的软件结构,通过Quartus 软件下进行仿真, 证明所设计的电路系统完成了出租车计价的功能, 各项指标符合设计要求。该设计虽然功能简单,智能化水平比较低,但仍具有一定的实用性。该设计是在 VHDL的基础上对出租车计价器进行设计来实现其基本功能的,与以往的基于单片机的数模混合电路相比, FPGA具有稳定性好、抗干扰能力强、电

5、路实现简单、程序简单等优点,且非常适合做为出租车计价器的控制核心,所以选择用 VHDL来对计价器进行设计来实现其功能。出租车计价器的实现将大大改善人们出行时因为讨价还价而带来的烦恼,从而使人们的心情比较愉悦。本设计是对出租车计价器的四个模块进行分析的,综述如下:分频模块:分频模块是其它模块的基础,输入时钟选为 32Hz,分频后的时钟频率为 1Hz, 为后续模块提供基本时钟。等待时间模块:该模块针对乘客确认下车前的等待而言,比如堵车、中途下车的情况,通过 1Hz脉冲计数,每一分钟计时加一,最大计时时间显示为99分钟。路程模块:该模块是对车辆行驶路程进行计数,以 1Hz时钟为基础,检测行程脉冲,路

6、程模块中有部变量来判断路程,当大于 3公里、 20公里时,分别有相应的使能信号对此作出记录,最大路程显示为 99公里。计费模块:该模块是基于等待时间模块和路程模块对费用进行控制的。通过部使能信号分别计算 3公里以、 3-20 公里以及 20公里以后的费用。本设计是基于 VHDL进行编程,然后在 Quartus 进行波形仿真, 实现出租车计价器的基本功能。.2 总体设计2.1设计要求(1)起步价为 8.00 元,起步公里为 3 公里;(2)超过 3 公里,每公里按1 元收费;(3)单程行驶里程超过20 公里,每公里租价加收50%;(4)等候时间超过 1 分钟,每分钟按这公里的租价计算。要求显示里

7、程、计费及等候时间。乘客上车后,按下启动键,开始计费,除非同一乘客往返用那个车,否则按下单程键,这样行驶里程超过20 公里时,每公里加收 50%,既每公里租费1.5 元;计费显示为3 位整数、 1 位小数。2.2设计思路输入 2 个时钟信号,分别模拟时间和路程。对等待时间、路程计数,进而统计费用。系统结构框图如图 2-1 。时钟信号分频器计费等待信号显示公里脉冲计费 /复位图 2-1 自动计价器的系统方框图上图中,计数器 1 对分频后的 1Hz 脉冲计数,计数 60 次,计数器加 1,对应等待时间,计数器 2 对车速脉冲计数,其上升沿到来计数加 1,对应里程。2.3设计流程图计时设计流程图如图

8、 2-2 所示 。控制器.计程开始初始化分频单程?YN里程计数N里程 3YYN里程 201.5 元/公里1 元/公里NN等待?等待?YY时间计数时间计数1.5 元 /分钟1 元 /分钟计费图 2-2 系统设计流程图乘客上车后,按下启动按钮,计价器开始工作,首先进入初始化状态,即计程从 0开始,计费从 8开始。再根据单程信号判断是否为单程,进而确定计费方式。单程:里程计数器开始计数,当路程超过 3公里时,计费开始累加,按 1元每公里计算,路程超过 20公里时每公里 1.5 元。当路程超过 3公里有等待时,按下等待信号,每等待 1分钟费用与当前计费方式相同。往返:每公里 1元,等待计费为每分钟 1

9、元。乘客下车后,按下复位键,则所有计数器进入初始状态。.2.4总体设计封装图总体设计封装图如图2-3 所示。图 2-3 系统封装图2.5各信号说明输入信号: clk :系统时钟信号;mile:车速时钟 ;start::启动信号,当 start=1 时,出租车启动,计数器开始计数;否则计数器停止计数;single:单程信号,单程时由司机输入;stop:等待信号,处于等待状态时由司机输入;输出信号: km1,km2:里程,单位为公里;min1,min2: 等待时间,单位为分钟;price1,price2,price3,price4:费用,单位为元,其中price1表示小数位。.3 模块设计3.1

10、秒分频模块秒分频模块对频率为 240Hz 的输入脉冲进行分频,得到的频率为 16Hz,15Hz和 1Hz 的三种频率。该模块产生频率信号用于计费,每个 1HZ脉冲为 0.1 元计费控制, 15HZ信号为 1.5 元的计费控制, 16Hz 信号为 1.6 元计费控制。3.2 控制模块控制模块是系统的核心部分,对计价器的状态进行控制。3.3 计量模块计量模块完成计价、计时、计程功能。3.3.1 计价部分行程 3 公里,起步费为 8 元; 3 公里外以每公里 1 元计费,等待累计时间 1 分钟外以每分钟 1 元计费。 20 公里外以每公里 1.5 元计费,等待累计时间 1 分钟外以每分钟 1.5 元

11、计费。计费数据送入显示译码模块进行译码, 最后送至以百元、十元、元、角为单位对应的数码管上显示。3.3.2 计时部分计时部分用于计算乘客的等待累计时间。 计时器的量程为 59 分,满量程自动归零。即时数据送入显示译码模块进行译码,最后送至以分为单位对应的数据管上显示。3.3.3 计程部分计程部分用于计算乘客所行使的公里数。 计程器的量程为 99 公里,满量程自动归零。计程数据送入显示译码模块进行译码,最后送至以公里为单位对应的数据管上显示。3.4 译码显示模块译码显示模块完成计价、计时、计程数据显示。该模块经过 8 选 1 选择器将计费数据 (4 位 BCD码)、计时数据(2 位 BCD码)、

12、计程数据(2 位 BCD码)动态选择输出。其中计费数据送入显示译码模块进行译码,最后送至百元、十元、元、角为单位对应的数码管上显示,最大显示为999.9 元;计时数据送入显示译码模块进行译码,最后送至分为单位对应的数码管上显示,最大显示为 99 分钟;计程数据送入显示译码模块进行译码, 最后送至以公里为单位的数码管上显示,最大显示为 99 公里。.4 程序调试运行图 4-1 单程行驶示意图启动键、单程键有效,由图 4-1 可知, 3 公里之计费显示为 8 元; 3-20 公里之间每公里 1 元累计;超过 20 公里每公里 1.5 元累计。图 4-2单程行驶中途等待示意图启动键、单程键有效,行驶

13、一段时间等待信号有效,等待后继续行驶。由图 4-2 可知,3 公里之计费显示 8 元,3-20 公里之间每公里 1 元累加,中间等待信号有效,每等待一分钟按此时每公里的费用计算,里程计数器停止计数,等待时间.到,里程计数器继续计数。图 4-3单程行驶到达目的地示意图启动键、单程键有效,乘客到达目的地下车。如图4-3 所示。图 4-4 双程行驶示意图启动键有效,乘客乘车完成双程行驶。由图 4-4 可知, 3 公里之计费显示为 8 元; 3-20 公里之间每公里 1 元累计;超过 20 公里每公里 1 元累计。.5 硬件验证5.1 引脚锁定做硬件验证之前需要清楚实验板上各键与各信号的情况,参照资料

14、得出本设计中各引脚的对应情况如下,本设计下载时选择模式5。引脚锁定如图5-1 。图 5-1引脚锁定图5.2 硬件验证情况做好引脚锁定后,打开硬件箱的电源,数码管有正确的数字显示,硬件箱与计算机开始验证。操作运行实验结果完全符合要求。通过仿真验证表明,本文所设计的出租车计价器能够正常地显示行驶的里程数和乘客应付的费用,符合预定的计费标准和功能要求。.6 总结及体会通过为期一周的课程设计,出租车计价器系统的设计已基本完成,能按预期的效果模拟汽车启动、等待、停止、复位等功能,并显示车费数目等待时间及行驶路程。出租车计费系统的设计中体现了 VHDL覆盖面广,描述能力强,是一个多层次的硬件描述语言及 C

15、PLD器件速度快,使用方便,便于修改等特点,本设计在实用方面具有一定的价值。在本次设计中还存在很多不足,可以改进的地方目前有以下几点:一、该设计虽然实现了基本的计费和计程,但是很多问题并没有解决,如本设计只实现了一种车速的计费。若要实现出租车的不同档位下的计程计费,还需要进一步讨论。二、该设计智能化水平较低,启动、等待、复位等信号需要人为输入,若在实际中出现操作偏差,会导致计费不准确。通过此次课程设计, 我们更进一步的深入了解了 VHDL设计语言,并在使用过程中对它有了更深的体会。对编程过程中可能遇到的问题有了一定的了解和解决方法,在理论学习和编程练习以及硬件测试方面都获得了较大的收获,对于今

16、后进行程序设计有很大的帮助。期间要感谢我的老师的悉心指导以及同学们的大力帮助。在此次设计过程中确实遇到了很多困难,但是再大的困难只要有勇气去征服它,那就不是什么困难了。此外,通过本次课程设计,我还有了一定的对学习上的体会,知识的真实魅力其实是在于它因为应用于实践中而产生的实际的生产价值,或者说是给人们带来的巨大的方便, 因为它有用了所以我们学起来会更有动力,更能往深里去研究。.参考文献1 Volei A. Pedroni. VHDL数字电路设计教程. 电子工业 ,2010.2 潘松 , 黄继业 . EDA技术实用教程 . 科学 ,2010.6.3 江海 . EDA技术课程设计 . 华中科技大学

17、 ,2009.5.3 鲍可进 , 念强 , 不贿等 . 数字逻辑电路设计 . 清华大学 ,2004.4 王道宪 , 贺名臣 , 伟 . VHDL电路设计技术 . 国防工业 ,2004.5 黄仁欣 . EDA技术实用教程 . 清华大学 ,2006.6 徐向民 . 数字系统设计及 VHDL实践 . 机械工业 ,2007.附录(程序源代码)出租车计价器源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity hu isport(clk:in std_logic;start,single:in

18、std_logic;stop,mile:in std_logic;min1,min2:out std_logic_vector(3 downto 0); km1,km2:out std_logic_vector(3 downto 0); price1,price2,price3,price4:out std_logic_vector(3 downto 0);end;architecture bhv of hu issignal start_r:std_logic;signal clk1hz:std_logic;signal q:integer range 0 to 299;signal sec

19、ond:integer range 0 to 59;signal p1,p2,p3,p4:std_logic_vector(3 downto 0);signal k1,k2:std_logic_vector(3 downto 0);signal m1,m2:std_logic_vector(3 downto 0);signal en0,en1,f_wait,f:std_logic;beginmin1=m1;min2=m2;km1=k1;km2=k2;price1=p1;price2=p2;price3=p3;price4=p4;U1:process(clk)beginif(clkevent a

20、nd clk=1)thenif q=255 thenq=0;clk1hz=1;else.q=q+1;clk1hz=0;end if;end if;end process;U2:process(clk1hz)beginif start=0 thenf_wait=0;m1=0000;m2=0000;elsif(clk1hzevent and clk1hz=1)thenif stop=1 thenif second=6 thensecond=0;f_wait=1;if m1=1001 thenm1=0000;if m2=0101 thenm2=0000;elsem2=m2+1;end if;else

21、m1=m1+1;end if;elsef_wait=0;second=second+1;end if;elsef_wait=0;end if;end if;.end process;U3:process(clk1hz)beginif(clk1hzevent and clk1hz=1)thenstart_r=start;end if;end process;f=f_wait when stop=1 elsemile when en0=1 else0;U4:process(start,mile)beginif start=0 thenk1=0000; k2=0000;en0=0; en1=0;el

22、sif(mileevent and mile=1)thenif stop=0 thenif k1=1001 thenk1=0000;if k2=1001 thenk2=0000;elsek2=k2+1;end if;elsek1=k1+1;end if;if k1=0011 thenen0=1;end if;if k2=0001 and k1=1001 and single=1 thenen1=1;end if;else.k1=k1;k2=k2;end if;end if;end process;U5:process(start,f)beginif start=0 thenp1=0000;p2

23、=0000;p3=0000;p4=0000;elsif start=1 and start_r=0 thenp1=0000;p2=1000;p3=0000;p4=0000;elsif(fevent and f=1)thenif en1=0 thenif p2=1001 thenp2=0000;if p3=1001 thenp3=0000;if p4=1001 thenp4=0000;elsep4=p4+1;end if;elsep3=p3+1;end if;elsep2=p2+1;end if;.elseif(p1=0101 and p2=1000) or p2=1001 thenif(p2=

24、1001 and p1=0101)thenp1=0000;p2=0001;elsif(p2=1001 and p1=0000) thenp1=0101;p2=0000;elsif(p2=1000 and p1=0101)thenp1=0000;p2=0000;end if;if p3=1001 thenp3=0000;if p4=1001 thenp4=0000;elsep4=p4+1;end if;elsep3=p3+1;end if;elsif p1=0000 thenp1=0101;p2=p2+1;elsep1=0000;p2=p2+0010;end if;end if;end if;end process;end bhv;.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1