EDA课程设计--出租车计价器.doc_第1页
EDA课程设计--出租车计价器.doc_第2页
EDA课程设计--出租车计价器.doc_第3页
EDA课程设计--出租车计价器.doc_第4页
EDA课程设计--出租车计价器.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

山东建筑大学信息与电气工程学院课程设计说明书摘要随着我国经济社会的全面发展,各大中小城市的出租车营运事业发展迅速,出租车已经成为人们日常出行选择较为普通的交通工具。出租车计价器是出租车营运收费的专用智能化仪表,是使出租车市场规范化、标准化的重要设备。一种功能完备,简单易用,计量准确的出租车计价器是加强出租车行业管理,提高服务质量的必需品。本设计采用VHDL硬件描述语言作为设计手段,采用自顶向下的设计思路,得到一种出租车计价系统的软件结构,通过Quartus软件下进行仿真,证明所设计的电路系统完成了出租车计价的功能,各项指标符合设计要求。该设计虽然功能简单,智能化水平比较低,但仍具有一定的实用性。该设计是在VHDL的基础上对出租车计价器进行设计来实现其基本功能的,与以往的基于单片机的数模混合电路相比,FPGA具有稳定性好,抗干扰能力强等优点,且非常适合做为出租车计价器的控制核心,所以选择用VHDL来对计价器进行设计来实现其功能。关键词 : 计价器 Quartus 数码管一、设计目的和要求设计一个出租车计价器,该计价器计费系统技术参数和设计要求:(1)实现计费功能,计费标准为:起步均价6元,并在车行驶3公里后以每公里1.6元计费,当计费器达到或超过20元时,每公里加收50%的车费,车辆停止和暂停时不收费。计价范围:0999.9元,计价分辨率:0.01元;计程范围:099公里,计程分辨率:0.01公里。(2)数码管动态显示功能,能显示行驶公里数、总费用。(3)汽车具有启动、停止、暂停和换挡等状态。二、设计原理1设计模块本设计是对出租车计价器的四个模块进行分析的,综述如下:分频模块:分频模块是其它模块的基础,输入时钟选为32Hz,分频后的时钟频率为1Hz,为后续模块提供基本时钟。路程模块:该模块是对车辆行驶路程进行计数,以1Hz时钟为基础,检测行程脉冲,路程模块中有内部变量来判断路程,当大于3公里、20公里时,分别有相应的使能信号对此作出记录,最大路程显示为99公里。计费模块:该模块是基于等待时间模块和路程模块对费用进行控制的。通过内部使能信号分别计算3公里以内、3-20公里以及20公里以后的费用。译码显示模块:该模块经过8选1选择器将计费数据(4位BCD码)、计时数据(2位BCD码)、计程数据(2位BCD码)动态选择输出。本设计是基于VHDL进行编程,然后在Quartus进行波形仿真,实现出租车计价器的基本功能。2原理描述 根据层次化设计理论,该设计问题自顶向下可分为分频模块,控制模块 计量模块、译码和动态扫描显示模块,其系统框图如图6-63所示,各模块功能如下:图6-63出租车自动计费器系统框图2.1分频模块分频模块对频率为240Hz的输入脉冲进行分频,得到的频率为16Hz,10Hz和1Hz的三种频率。该模块产生频率信号用于计费,每个1HZ脉冲为0.1元计费控制,10HZ信号为1元的计费控制,16Hz信号为1.6元计费控制。2.2 路程和计费模块计量控制模块是出租车自动计费器系统的主体部分,该模块主要完成等待计时功能、计价功能、计程功能,同时产生3分种的等待计时使能控制信号en1, 行程 3公里外的使能控制信号en0。其中计价功能主要完成的任务是:行程 3公里内,且等待累计时间3分钟内,起步费为8元;3公里外以每公里1.6元计费,等待累计时间3分钟外以每分钟1元计费;计时功能主要完成的任务是:计算乘客的等待累计时间,计时器的量程为59分,满量程自动归零;计程功能主要完成的任务是:计算乘客所行驶的公里数。计程器的量程为99公里,满量程自动归零。2.3 译码显示模块该模块经过8选1选择器将计费数据(4位BCD码)、计时数据(2位BCD码)、计程数据(2位BCD码)动态选择输出。其中计费数据jifei4 jifei1送入显示译码模块进行译码,最后送至百元、十元、元、角为单位对应的数码管上显示,最大显示为999.9元;计时数据送入显示译码模块进行译码,最后送至分为单位对应的数码管上显示,最大显示为59秒;计程数据送入显示译码模块进行译码,最后送至以公里为单位的数码管上显示,最大显示为99公里。三、设计内容1设计思路输入2个时钟信号,分别模拟时间和路程。对等待时间、路程计数,进而统计费用。系统结构框图如图2-1。显示分频器计费时钟信号等待信号公里脉冲计费/复位控制器计程图2-1自动计价器的系统方框图2 设计流程图NNYNYYN1.6元/公里2.4元/公里里程20里程3单程?计费8元开始N总计图2 系统设计流程图乘客上车后,按下启动按钮,计价器开始工作,首先进入初始化状态,即计程从0开始,计费从6开始。再根据单程信号判断是否为单程,进而确定计费方式。单程:里程计数器开始计数,当路程超过3公里时,计费开始累加,按1.6元每公里计算,路程超过20公里时每公里2.4元。乘客下车后,按下复位键,则所有计数器进入初始状态。3总体设计封装图总体设计封装图如下图所示。4模块设计4.1分频模块秒分频模块对频率为240Hz的输入脉冲进行分频,得到的频率为16Hz,15Hz和1Hz的三种频率。该模块产生频率信号用于计费,每个1HZ脉冲为0.1元计费控制,15HZ信号为1.5元的计费控制,16Hz信号为1.6元计费控制。4.2计费模块控制模块是系统的核心部分,对计价器的状态进行控制。行程3公里内,起步费为8元;3公里外以每公里1元计费,等待累计时间1分钟外以每分钟1元计费。20公里外以每公里1.5元计费,等待累计时间1分钟外以每分钟1.5元计费。计费数据送入显示译码模块进行译码,最后送至以百元、十元、元、角为单位对应的数码管上显示。4.3译码显示模块译码显示模块完成计价、计时、计程数据显示。该模块经过8选1选择器将计费数据(4位BCD码)、计时数据(2位BCD码)、计程数据(2位BCD码)动态选择输出。其中计费数据送入显示译码模块进行译码,最后送至百元、十元、元、角为单位对应的数码管上显示,最大显示为999.9元;计时数据送入显示译码模块进行译码,最后送至分为单位对应的数码管上显示,最大显示为99分钟;计程数据送入显示译码模块进行译码,最后送至以公里为单位的数码管上显示,最大显示为99公里。5系统仿真结果及分析仿真波形图分析各信号说明: 输入信号:clk:系统时钟信号,频率32Hz; mile:车速时钟,频率8Hz; start::启动信号,当start=1时,出租车启动,计数器开始计数;否则计数器停止计数; rst:复位信号,当rst=1时,各计数器清0;当rst=0时,计数器可以开始计数,start=1表示计数开始; one_way:单程信号,单程时由司机输入; 输出信号:km0,km1:里程,单位为公里; cost0,cost1,cost2,cost3:费用,单位为元,其中cost0表示小数位。图3 单程行驶示意图 启动键、单程键有效,由图可知,3公里之内计费显示为6元;3-20公里之间每公里1.6元累计;超过20公里每公里2.4元累计。图5 单程行驶复位示意图启动键、单程键有效,乘客下车时显示费用25元,复位信号有效,计数器清零,当启动信号有效时重新计数。四、总结与致谢通过为期两周的课程设计,出租车计价器系统的设计已基本完成,能按预期的效果模拟汽车启动、等待、停止、复位等功能,并显示车费数目等待时间及行驶路程。出租车计费系统的设计中体现了VHDL覆盖面广,描述能力强,是一个多层次的硬件描述语言及CPLD器件速度快,使用方便,便于修改等特点,本设计在实用方面具有一定的价值。在本次设计中还存在很多不足,可以改进的地方目前有以下几点:一、该设计虽然实现了基本的计费和计程,但是很多问题并没有解决,如本设计只实了一种车速的计费。若要实现出租车的不同档位下的计程计费,还需要进一步讨论。二、该设计智能化水平较低,启动、等待、复位等信号需要人为输入,若在实际中出现操作偏差,会导致计费不准确。同时,感谢课程设计过程中杨红娟老师的耐心指导,感谢同学们的相互纠正。五、参考文献1 黄仁欣EDA技术实用教程北京:清华大学出版社,20062 潘松,黄继业EDA技术与VHDL北京:清华大学出版社,20093 江国强编著EDA技术与应用(第三版).北京:电子工业出版社,20104 夏宇闻编著Verilog HDL数字系统设计教程.北京:北京航空航天大学出版社,20085 周祖成,程晓军,马卓钊编著数字电路与系统教学实验教程北京:科学出版社,20106 周润景,苏良碧基于Quartus II 的数字系统Verilog HDL设计实例详解北京:电子工业出版社,20107 (美国)Sanir Palnitkar 译者:夏宇闻 胡燕祥 刁岚松Verilog HDL数字设计与综合(第2版)北京:电子工业出版社,20098 云创工作室Verilog HDL程序设计与实践北京:人民邮电出版社,20099 刘福奇,刘波Verilog HDL应用程序设计实例精讲北京:电子工业出版社,200910 张延伟,杨金岩,葛爱学verilog hdl程序设计实例详解北京:人民邮电出版社,2008附录(程序源代码)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;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 issignal 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;signal c0,c1,c2,c3:std_logic_vector(3 downto 0);signal k0,k1,m0,m1:std_logic_vector(3 downto 0);signal en0,en1:std_logic;signal wait_clk,cost_clk:std_logic;beginU1:process( rst,clk) begin if rst=0 then if clkevent and clk=1 then if count=5 then count=0;clk1hz=1; else count=count+1;clk1hz=0; end if; end if; end if; end process;U2:process(rst,clk1hz,start,wait_signal) begin if rst=1 then m0=0000;m1=0000; elsif start=0then wait_clk=0; elsif clk1hzevent and clk1hz=1 thenif wait_signal=1then if sec=5 then sec=0;wait_clk=1; if m0=1001then m0=0000; if m1=0101then m1=0000; else m1=m1+1; end if; else m0=m0+1; end if; else wait_clk=0; sec=sec+1; end if; else wait_clk=0; end if; end if; end process;U3:process( rst,clk1hz,mile,start) begin if rst=0 then if clk1hzevent and clk1hz=1then mile_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=1else mile_clk when en0=1 or en1 =1else 0;U4:process(rst,start,mile_clk) begin if rst=1 then k0=0000; k1=0000; elsif start=0 then k0=0000; k1=0000; en0=0;en1=00100000 and one_way=1 then en1=1;en0=0; end if; if k1 & k0=00000011 then en0=1; end if; if k0=1001 then k0=0000; if k1=1001 then k1=0000; else k1=k1+1; end if; else k0=k0+1; end if; end if; end process;U5:process( rst,start,cost_clk,start_r) begin if rst=1 then c0=0000;c1=0000; c2=0000;c3=0000; elsif start=1 and start_r=0 then c0=0000;c1=1000;c2=0000; c3=0000; elsif cost_clkevent and cost_clk=1then if en1=0 and en0=1then if c1=1001then c1=0000; if c2=1001then c2=0000; if c3=1001then c3=0000; else c3=c3+1; end if; else c2=c2+1; end if; el

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论