基于QuartusII出租车计费系统.docx

上传人:w**** 文档编号:61858519 上传时间:2022-11-21 格式:DOCX 页数:12 大小:17.14KB
返回 下载 相关 举报
基于QuartusII出租车计费系统.docx_第1页
第1页 / 共12页
基于QuartusII出租车计费系统.docx_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《基于QuartusII出租车计费系统.docx》由会员分享,可在线阅读,更多相关《基于QuartusII出租车计费系统.docx(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、基于QuartusII出租车计费系统基于QuartusII的出租车计费系统 目 录 目 录 I 1引言 1 2 Quartus II介绍 1 3出租车计价器设计 2 出租车计价器的设计原理 3 各模块功能模块设计 3 3.2.1分频模块 3 3.2.2计量模块 4 3.2.3限制模块 4 3.2.4计费模块 4 3.2.5译码显示模块 5 3.2.6顶层模块 5 硬件仿真 6 4总结 6 参考文献 7 附录 8 1引言 本设计是一个简易的出租车计费系统,实现计价功能,计费标准为按行程里程收费,起步价为元,当里程小于3公里时,根据起价计费,车行超过3公里后在按元/公里收费,等待累积时间超过2mi

2、n,根据每分钟元计费。能模拟汽车的启动,停止,暂停等状态。并用LED数码管实时显示车费和汽车行驶里程,用两位数字显示汽车行驶里程,显示方式为“XX”,单位为km。计程范围为099km,计程辨别率为1km;用五位数字显示总费用,显示方式为“”,单价为元。计价范围为0元,计价辨别率为元。此计费器要设有一个由司机限制的整体复位限制。本设计采纳VHDL硬件描述语言作为设计手段,采纳自顶向下的设计思路,得到一种出租车计价系统的软件结构,通过Quartus软件下进行仿真,证明所设计的电路系统完成了出租车计价的功能,各项指标符合设计要求。本次课程设计可以娴熟驾驭了课本上的一些理论学问,课程设计也是一个学习新

3、学问、巩固加深所学课本理论学问的过程,它培育了我们综合运用学问的实力,独立思索和解决问题的实力。加深我们对VHDL数字电路设计教程的理解。 2 Quartus II介绍 Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。 Quartus II可以在XP、Linux以及Unix上运用,除了可以运用Tcl脚本完成设计流程外,供应了完善的用户图形界面设计方式。具

4、有运行速度快,界面统一,功能集中,易学易用等特点。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,运用户可以充分利用成熟的模块,简化了设计的困难性、加快了设计速度。对第三方EDA工具的良好支持也运用户可以在设计流程的各个阶段运用熟识的第三方EDA工具。此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以便利地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。 Altera Quartus II

5、作为一种可编程逻辑的设计环境, 由于其强大的设计实力和直观易用的接口,越来越受到数字系统设计者的欢迎。 Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、ExemplarLogic、MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增加 了FastFit编译选项,推动了网络编辑性能,而且提升了调试实力。支持MAX7000/MAX3000等乘积项器件 3出租车计价

6、器设计 本设计是一种采纳FPGA芯片进行出租车计费器,主要分为分频模块、计量模块、计费模块、限制模块等模块,利用FPGA的可编程性,简洁又多变的设计方法,缩短了研发周期。主要采纳了FPGA芯片,运用VHDL语言进行编程,使其具有了更强的移植性,更加利于产品的升级。出租车计价器的设计原理 依据设计要求,系统的输入信号clk,计价起先信号Start,等待信号Stop,里程脉冲信号fin。系统得输出信号有:总费用数cha0 cha3,行驶距离km0 km1,等待时间min0 min1 等。系统有两个脉冲输入信号clk_120、fin,其中clk_120将依据设计要求分频成12Hz、15Hz和1Hz分

7、别作为公里计费和超时计费的脉冲。两个限制输入开关start、stop;限制过程为:start作为计费起先开关,当start为高电平常,系统起先依据输入的状况计费。当有乘客上车并起先行驶时,fin脉冲到来,进行行驶计费,此时的stop须要置为0;如需停车等待,就把stop变为高电平,并去除fin输入脉冲,进行等待计费;当乘客下车且不等待时,将stop和fin同时置为0,来读取最终的行驶路程数、等待时间与最终的总费用,干脆将start置为0,系统停止工作;价格起先归为起步价元。整个设计由分频模块、计量模块、计费模块、限制模块等四个部分组成。其中计量模块是整个系统实现里程计数和时间计数的重要部分;限

8、制模块是实现不同计费方式的选择部分,依据所设计的使能端选择是依据里程计费还是依据等待时间计费;同时设计通过分频模块产生不同频率的脉冲信号来实现系统的计费。计量模块采纳1Hz的驱动信号,计费模块采纳12Hz、15Hz的驱动信号;计量模块每计数一次,计费模块就实现12次或者15次计数,即为实现计时的 元/min、计程时的元/km的收费。组成框图如图3-1所示: 图3-1 系统结构框图 各模块功能模块设计 3.2.1分频模块 由于试验箱上没有12Hz和15Hz的整数倍时钟信号,因此我们采纳频率较大的750khz进行分频,以近似得到12Hz、15Hz和1Hz的时钟频率。本设计中通过以上三种不同频率的脉

9、冲信号实现在计程车在行驶、等待两种状况下的不同计费。分频模块元件如图3-2所示: 图3-2 分频模块元件图 3.2.2计量模块 计量模块主要完成计时和计程功能。计时部分:计算乘客的等待累积时间,当等待时间大于2min时,本模块中en1使能信号变为1;当clk1每来一个上升沿,计时器就自增1,计时器的量程为59min,满量程后自动归零。计程部分:计算乘客所行驶的公里数,当行驶里程大于3km时,本模块中en0使能信号变为1;当clk1每来一个上升沿,计程器就自增1,计程器的量程为99km,满量程后自动归零。Start置1程序始终处于计费状态,当fin脉冲到来时k0和k1进入计程状态,且k0每次满9

10、就向k1进位,超过3km时en0就变为高电平;同理,当stop由0置为1时起先由计程进入等待状态,fin脉冲归为0里程计数停止,等待时间起先计时,m0每次满9就向m1进位,超过2min时en1就变为高电平。3.2.3限制模块 本模块主要是通过计量模块产生的两个不同的输入使能信号en0、en1,对两个分频模块输出的12Hz、15Hz的脉冲进行选择输出的过程;本模块实现了双脉冲的二选一;最终目的为了计费模块中对行驶过程中不同的时段进行计价。3.2.4计费模块 当计费信号Start始终处于高电平即计费状态时,本模块依据限制模块选择出的信号从而对不同单价的时段进行计费。即行程在3km内,而且等待累积时

11、间小于2min则为起步价6元;3km以外每公里按元计费,等待时间超过2min,则按每分钟元计费。c0、c1、c2、c3分别表示费用的显示。由图可知当处于计费状态时,随着clk2的高电平的到来,计费起步价为6元。c0满9向c1进位,c1满9向c2产生进位,依次逐级进位从而完成计费功能。3.2.5译码显示模块 译码显示模块完成计价、计时和计程数据显示。计费数据送入译码显示模块进行译码,最终送至以百元、十元、元、角为单位对应的数码管上显示。计时数据送入译码显示模块进行译码,最终送至以分为单位对应的数码管上显示。计程数据送入译码显示模块进行译码,最终送至以km为单位的数码管上显示。由于本次课程设计所用

12、试验箱上自带数码管译码显示电路,因此不需再写译码程序,选定模式干脆管脚锁定在对用的数码管上即可实现。3.2.6顶层模块 本模块用图形输入法实现出租车的计费器系统设计,将各个模块组合在一起。程序最终功能实现仿真波形如图3-3所示 图3-3 程序最终仿真波形图 由图中可以看出,当fin脉冲信号到来时,实现了行驶计费,当行驶里程超过三公里,则再按每公里元计费;当stop为高电平,即进入等待计时收费;当等待时间超过2min时,每过一分钟加元,即为实现每等一分钟收费元。当stop为电平常全部数值清零,只显示初始值6元,但本次仿真中等待时间为9分钟,行驶里程为20km,应收取费用值为元。结果验证:出租车的

13、起步价是6元,收费为6+(20-3)*+(9-2)*=元。仿真结果于计算结果相同,所以仿真结果正确。硬件仿真 在QuartusII软件中仿真胜利,现在下载到试验箱上以验证其功能。试验中采纳万用模式模式五,程序中各个端口锁定到试验箱上对应的管脚下载验证。最终得数码管显示计时、计程和计费数据如图3-4所示: 图3-4 硬件仿真结果 由上可知等待时间为4分钟,行驶公里数为4公里。依据设计要求计算所得费用为:6元+(4km-3km)*元/km+(4min-2min)*元/min=6+3=元,与试验箱上所得结果相同,仿真下载胜利。 4总结 通过为期1周的课程设计,出租车计价器系统的设计已基本完成,能按预

14、期的效果模拟汽车启动、等待、停止、复位等功能,并显示车费数目等待时间及行驶路程。出租车计费系统的设计中体现了VHDL覆盖面广,描述实力强,是一个多层次的硬件描述语言及CPLD器件速度快,运用便利,便于修改等特点,本设计在好用方面具有肯定的价值。 通过不断的编写与尝试,遇到问题,探讨问题,解决问题,使我对VHDL数字电路设计教程这门学科有了更系统的相识。在这次课程设计中我娴熟地驾驭了VHDL语言中的并行语句与依次语句的应用、区分与联系;从根本上了解了信号与变量之间的区分;娴熟驾驭并应用了有限状态机与元件例化的方法;熬炼了我的独立思索实力,培育了我敢于创新的思想:让我学会了团结同学、互帮互助、在探

15、讨中提炼真知。在本次设计中还存在许多不足,可以改进的地方目前有以下几点: 一、该设计虽然实现了基本的计费和计程,但是许多问题并没有解决,如本设计只实了一种车速的计费。若要实现出租车的不同档位下的计程计费,还须要进一步探讨。二、该设计智能化水平较低,启动、等待、复位等信号须要人为输入,若在实际中出现操作偏差,会导致计费不精确。通过此次课程设计,我们更进一步的深化了解了VHDL设计语言,并在运用过程中对它有了更深的体会。对编程过程中可能遇到的问题有了肯定的了解和解决方法,在理论学习和编程练习以及硬件测试方面都获得了较大的收获,对于今后进行程序设计有很大的帮助。最终在此再次向带领我们这次课程设计的老

16、师说声:感谢! 参考文献 1 Voknei .VHDL数字电路设计教程.电子工业出版社, 2 潘松,黄继业.EDA技术好用教程(其次版).科学出版社, 3 孟庆海,张洲.VHDL基础及经典实例开发.西安交通高校出版社, 4 刘江海.EDA技术课程设计.华中科技高校出版社, 5 蒋小燕,余伟钧,张立臣. EDA技术及VHDL,. 6 焦素敏.EDA应用技术.清华高校出版社, 附录 LIBRARY IEEE; USE chuzuchejifeiqi is -出租车计费器整体设计模块; port ( clk_120:in std_logic; -系统时钟 clk_12:buffer std_logi

17、c; -12分频 clk_15:buffer std_logic; -15分频 clk_1:buffer std_logic; -1分频 start:in std_logic; -计费起先信号 fin:in std_logic; -里程脉冲信号 stop:in std_logic; -行驶中,中途等待信号 en1,en0:buffer std_logic; -计费单价使能信号 k1,k0:buffer std_logic_vector(3 downto 0); -行驶公里计数 m1,m0:buffer std_logic_vector(3 downto 0); -等待时间计数 clk_out:

18、buffer std_logic; -计程和等待时间选择输出信号 c0,c1,c2,c3:buffer std_logic_vector(3 downto 0); -输出显示出租车总费用; end chuzuchejifeiqi; architecture chuzuchejifeiqi of chuzuchejifeiqi is signal q_12:integer range 0 to 9; -定义中间信号 signal q_15:integer range 0 to 7; signal q_1:integer range 0 to 119; signal w:integer range

19、 0 to 59; -计时范围059 begin process(clk_120) begin if (clk_120event and clk_120=1 )then -分频模块; if (q_12=4) then q_12<=0;clk_12<=not clk_12; else q_12<=q_12+1; end if; -得12hz频率信号 if (q_15=3) then q_15<=0;clk_15<=not clk_15; else q_15<=q_15+1; end if; -得15hz频率信号 if (q_1=59) then q_1<

20、=0;clk_1<=not clk_1; else q_1<=q_1+1; end if; -得1hz频率信号 end if; end process; process(clk_1) -计量模块 begin if (clk_1event and clk_1=1) then if (start=0) then w<=0;en1<=0;en0<=0;m1<=“0000“;m0<=“0000“;k1<=“0000“;k0<=“0000“; elsif stop=1 then -计时起先信号 if (w=59) then w<=0; -计时范

21、围为0-59分;; else w<=w+1; end if; if (m0=“1001“) then m0<=“0000“; if (m1=“0101“) then m1<=“0000“; else m1<=m1+1; end if; else m0<=m0+1; end if; if stop=1 then en0<=0; -车停止行驶起先记等待时间; if m1m0>“00000010“then en1<=1; -若等待时间大于2min则en1置1; else en1<=0; end if; end if; elsif fin=1 th

22、en -里程计数起先; if (k0=“1001“) then k0<=“0000“; if (k1=“1001“) then k1<=“0000“; -计程范围099; else k1<=k1+1; end if; else k0<=k0+1; end if; if (stop=0) then en1<=0; if (k1k0>“00000011“) then en0<=1; -若行驶里程大于3km则en0置1 else en0<=0; end if; end if; end if; end if; if (stop=0 and fin=0)t

23、hen en0<=0;en1<=0; end if; end process; process(en0,en1) -限制模块设计; begin if (en0=1) then -计时和计程方式选择 clk_out<=clk_15; elsif en1=1 then clk_out<=clk_12; else clk_out<= null; end if; end process; process(clk_out,start) -计费模块设计 begin if start=0 then c3<=“0000“;c2<=“0000“;c1<=“0110

24、“;c0<=“0000“; -起步价6元 elsif (clk_outevent and clk_out=1) then -输出脉冲出现上升沿计费累计 if (c0=“1001“) then c0<=“0000“; if (c1=“1001“) then c1<=“0000“; if (c2=“1001“) then c2<=“0000“; if (c3=“1001“) then c3<=“0000“; -计价范围0元 else c3<=c3+1; end if; else c2<=c2+1; end if; else c1<=c1+1; end if; else c0<=c0+1; end if; end if; end process; end chuzuchejifeiqi;

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

当前位置:首页 > 应用文书 > 工作计划

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

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