河南科技大学出租车计费系统课程设计_河南科技大学毕业设计
河南科技大学出租车计费系统课程设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“河南科技大学毕业设计”。
河南科技大学
课 程 设 计 说 明 书
课程名称
电子设计自动化课程设计
题 目
出租车计费系统设计
学 院 __ 电信学院_ _ 班 级 __ 电信科083班_ 学生姓名 __ 陈真淮_ 指导教师 __ 张雷鸣、王勇 日 期
__ 2010年9月20日 _
课程设计任务书
课程设计名称 电子设计自动化课程设计 学生姓名 陈真淮 专业班级 电信科083设计题目
出租车计费系统设计
一、课程设计目的1、综合运用EDA技术,独立完成一个课题的设计,考察运用所学知识,解决实际问题的能力;
2、结合理论知识,考察阅读参考资料、文献、手册的能力;
3、进一步熟悉EDA技术的开发流程,掌握文件编辑、编译、仿真、下载验证等环节的实现方法和应用技巧;
4、锻炼撰写研究报告、研究论文的能力;
5、通过本实践环节,培养科学和严谨的工作作风。
二、设计内容、技术条件和要求
1、能够实现计费功能:
费用的计算是按行驶里程收费,设出租车的起价为5.00元,当里程小于3km时,按起价计算收费;当里程大于3km时每公里按1.3元计费。等待累计时间超过2min,按每分钟1.5元计费。所以总费用按下式计算:
总费用=起价费+(里程-3km)×里程单价+等候时间×等候单价
2、能够实现显示功能:
① 显示汽车行驶里程:用四位数字显示,显示方式为“XXXX”,单位为km。计程范围为0~99km,计程分辨率为1km。
② 显示等候时间:用两位数字显示分钟,显示方式为“XX”。计时范围为0~59min,计时分辨率为1min。
③ 显示总费用:用四位数字显示,显示方式为“XXX.X”,单位为元。计价范围为999.9元,计价分辨率为0.1元。
三、时间进度安排
1周:(1)完成设计准备,确定实施方案;(2)完成电路文件的输入和编译;(3)完成功能仿真。2周:((1)完成文件至器件的下载,并进行硬件验证;(2)撰写设计说明书。
四、主要参考文献
(1)谭会生、瞿遂春,《EDA技术综合应用实例与分析》,西安电子科技大学出版社,2004(2)曹昕燕、周凤臣等,《EDA技术实验与课程设计》,清华大学出版社,2006
指导教师签字:
2010年9月5日
目录
一、设计任务与要求………………………………………………………3
二、设计背景………………………………………………………………3
三、系统设计方案…………………………………………………………4
1.3元计费。等待累计时间超过2min,按每分钟1.5元计费。所以总费用按下式计算:
总费用=起价费+(里程-3km)×里程单价+等候时间×等候单价
(2)、能够实现显示功能
① 显示汽车行驶里程:用四位数字显示,显示方式为“XXXX”,单价为km。计程范围为0~99km,计程分辨率为1km。② 显示等候时间:用两位数字显示分钟,显示方式为“XX”。计时范围为0~59min,计时分辨率为1min。③ 显示总费用:用四位数字显示,显示方式为“XXX.X”,单位为元。计价范围为999.9元,计价分辨率为0.1元。
二、设计背景
近年来,我国出租汽车行业迅猛发展,出租汽车已成为我国城市公共交通的重要组成部分和现代化城市必备的基础设施,成为人们工作、生活中不可缺少的交通工具。它对繁荣经济、促进发展、方便群众、改善交通起到了积极作用。出租汽车对我国人民物质和文化生活影响之大、作用之广是前所未有的。出租汽车行业的服务水平和程度已经成为现代化的重要标志。
出租汽车服务行业和出租汽车计价器紧密相关,因为出租汽车必须安装出租汽车计价器才能投入营运。出租汽车计价器是一种能根据乘客乘坐汽车行驶距离和等候时间的多少进行计价,并直接显示车费值的计量器具。计价器是出租汽车的经营者和乘坐出租汽车的消费者之间用于公平贸易结算的工具,因而计价器量值准确与否,直接关系到经营者和消费者的经济利益。随着出租车行业的发展,对出租车计费器的要求也越来越高,用户不仅要求计费器性能稳定,计费准确,有防作弊功能;同时还要求其具有车票资料打印、IC卡付费、语音报话、和电脑串行通信等功能,而这些与电子技术的发展是分不开的。
本次课程设计即是应用EDA技术来实现出租车计费系统设计和验证。EDA技术(即Electronic Design Automation技术)就是依赖强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、系统有两个脉冲输入信号clk_195、fin,两个控制输入开关start、stop。整个系统的控制过程为:start作为计费开始开关,当start为高电平时,系统开始根据输入的情况计费。当有乘客上车并开始行驶时,fin脉冲到来,进行行驶计费,此时的stop需要置为0;如需停车等待,就把stop变为高电平,并去除fin输入脉冲,进行等待计费;当乘客下车且不等待时,直接将start置为0,系统停止工作。
系统由分频模块、计量模块、计费模块和控制模块四部分组成。计量模块是整个系统实现里程计数和时间计数的重要部分;控制模块是实现不同计费方式的选择部分;设计通过分频模块产生不同频率的脉冲信号来实现系统的计费。计量模块采用1HZ的驱动信号,计费模块采用13HZ、15HZ的驱动信号;计量模块每计数一次,计费模块就实现13次或者15次计数,即为实现计时时的1.5 元/min、计程时的1.3元/km的收费。
3.2 系统的总体框图
由Quartus仿真得系统总体顶层框图为:
四、模块设计及仿真
4.1 分频模块
分频模块是对系统时钟频率进行分频,分别得到15HZ,13HZ,1HZ三种频率;本设计中通过这三种不同频率的脉冲信号实现在计程车行驶、等待两种情况下的不同计费。而系统时钟频率CLK=15*13Hz=195Hz。在接入实际硬件电路时,根据系统时钟频率选用的不同,会等比例地得到不同分频频率。
其原理框图如下:
控制模块的仿真波形图为:
由图中可以看出,当ent0为高电平时,输出为这一时段的clk_in1;当ent1为高电平时,输出为这一时段的clk_in2;
4.3 计量模块
本模块实现对于出租车在行驶和等待过程中的使能和计时功能。当行驶里程大于3KM时,本模块中en0信号变为1;当等待时间大于2min时,本模块中en1信号变为1;clk1每来一个上升沿,计量模块实现一次计数,里程数或者等待时间加1。
其原理框图为:
计量模块的仿真波形图为:
步价为5元。
4.5 顶层例化模块
本模块用例化语句实现出租车的计费器系统设计,将各个模块组合在一起。
系统模块的仿真波形图为:
由图中可以看出,当fin脉冲信号到来时,实现了行驶计费,当行驶里程超过三公里,则再按每公里1.3元计费;当stop为高电平,即进入等待计时收费;当等待时间超过2min时,每过一分钟加1.5元,即为实现每等一分钟收费1.5元。
五、硬件验证
5.1 实验过程
EDA课程设计中对于各个模块的设计是基础,首先要分析清楚各个模块的功能,然后分别进行编程设计、验证,然后使用VHDL语言中的元件例化语句,将各个模块组合到一起,实现总的设计功能。在出租车计费系统的4个模块中,重点在于计量模块,计费模块。计量模块主要有汽车的启动、停止、暂停等按键;各模块完成后,在将它们组合成完整的出租车系统。
本次设计的首要是如何实现等待计时和行驶里程的不同计费。对于里程和等待时间的计数都使用的是计数器的原理,通过fin和stop信号的不同值实现在不同情况下的计数;通过分频产生的13HZ、15HZ、1HZ对应的周期频率关系,由1HZ的信号控制计量模块,由控制器选择产生的信号作为计费模块的输入信号,所以计费模块的输入信号是13HZ、15HZ的信号之一,计量模块每完成一次计数,计费模块完成13次或者
为5+(89 —3)*1.3=116.8元;等待三分钟时,收费为118.3元。
硬件仿真图如下:
六、总结与心得
不经意间,为期两周的课程设计已经接近尾声。这次课程设计是设计一个出租车计费器系统,实现行驶计费功能、等待计费功能、预置功能等。在设计过程中同时用到了多进程多模块例化等设计方法。在设计中遇到了很多问题,比如在硬件实现过程中,当进行等待计时计费时,发现计时很慢,初步分析是因为计时的驱动频率不大,需要选择256HZ以上的频率;更改以后,计时正常,但同频率下行驶计费速度较快,不便观察,因此要注意观察的点和频率的选择。另外在设计过程中我发现控制系统的纠错功能还需要进行改进,而迫于时间和精力的限制我只查阅了相关的资料,了解设计原理,而没有设计出来。但总体来说,这次
中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。通过这次设计,本人在多方面都有所提高。同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。在这次设计过程中,体现出自己单独设计模具的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。
最后感谢我们的王老师和张老师。两位老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次设计的每个细节和每个数据,都离不开老师的细心指导。而您们开朗的个性和宽容的态度,帮助我能够很顺利的完成了这次课程设计。在此我要对两位老师在这次课设中的给予的悉心指导表示深深的谢意!同时感谢帮助过我的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊
七、参考文献
[1] 潘松、黄继业.《EDA技术实用教程》[M].北京:科学出版社,2005 [2] 谭会生、瞿遂春.《EDA技术综合应用实例与分析》[M].西安:西安电子科技大学出版社,2004 [3] 亿特科技.《CPLD/FPGA应用系统设计与产品开发》[M].北京:人民邮电出版社,2005 [4] 曹昕燕、周凤臣.《EDA技术实验与课程设计》.清华大学出版社,2006 [5] 王勇.《电子设计自动化实验指导书》.河南南科技大学电工电子实验教学中心,2009
port(clk2:in std_logic;
start: in std_logic;
c0,c1,c2,c3: buffer std_logic_vector(3 downto 0));end jifei;
architecture rt3 of jifei is begin
proce(clk2,start)begin
if start='0' then c3
elsif clk2'event and clk2='1' then
if c0=“1001” then c0
if c1=“1001” then c1
if c2=“1001” then c2
if c3=“1001” then c3
else c3
end if;
else c2
end if;
else c1
end if;
else c0
end if;
end if;
end proce;end rt3;
计量模块VHDL源程序:
library ieee;
use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;entity jiliang is
port(s: in std_logic;
fin: in std_logic;
stop: in std_logic;
clk1: 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));
end jiliang;
architecture rt2 of jiliang is
signal w:integer range 0 to 59;
--秒计数器
begin
proce(clk1)begin
if clk1'event and clk1='1' then
clk_out
end if;
end proce;end rt4;
顶层例化模块VHDL源程序:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;entity kongzhi is
port(ent0,ent1:in std_logic;
clk_in1:in std_logic;
clk_in2:in std_logic;
clk_out:out std_logic);
end kongzhi;
architecture rt4 of kongzhi is begin
proce(ent0,ent1)begin
if ent0='1' then
clk_out
elsif ent1='1' then
clk_out
end if;
end proce;end rt4;