1、出租车计费器报告 课程设计说明书 课程:EDA技术基础题目: 出租车计费器 学生姓名: 田伟正学 号: 201256110131班 级: (1)专 业: 电子信息科学与技术指导教师: 贺慧勇 2014年12月20日长沙理工大学课程设计任务书物理与电子科学 学院 电信 专业 1201 班姓名 田伟正 课程名称 EDA技术基础 题 目 出租车计费器 同组设计者: 糟怀明 贺智勇 赵亚杰 洪敏杰设计一个出租车自动计费器,计费包括起步价、行车里程计费、等待时间计费三部分。起步价为 6.0 元,2 公里之内按起步价计费,超过 2 公里,每公里增加 1.8 元,等待时间单价为每 1 分钟0.3 元。用数码
2、管显示总金额、总里程、等待时间(可键控交替显示)。设汽车每前进十米里程传感器输出一个脉冲。设计一个测试用模拟车速的脉冲源,模拟的车速可通过按键调整,范围为5km/h 200km/h 发挥部分:(1)时钟,白天夜间计费模式(2)按长沙市出租车现行收费标准设计计费器工作计划(1)时间本课程设计安排2周时间: 2014.12.22 2015.1.2 (2)进度安排第1周周一周二:查阅资料,拿出整体设计方案,划分模块;第1周周三至周五:各模块的设计、调试、验证。第2周周三前完成项目整体调试和测试。第2周周三周四文档写作整理第2周周五:答辩讨论指导教师:贺慧勇 唐立军 文勇军 周晓萍 唐俊龙 2014年
3、12月22 日教研室意见:同意。教研室主任 文勇军 2014年12月26 日长沙理工大学课程设计成绩评定表学生姓名: 田伟正 学号: 201256110131 专业班级: 电信1201 课程设计题目: 出租车计费器 评分项目要求分值得分学习态度学习态度认真,遵守纪律。10设计方案调研充分,方案设计合理。20工作量完成了任务书规定的工作量。实际设计、调试效果好。40设计报告完全符合撰写规范要求,结构严谨,逻辑性强,层次清晰,表述准确,文字流畅。20答辩准备充分,概念清楚,能准确流利地回答各种问题。10总分备注:成绩: 指导教师: 年 月 日 目录1.设计任务 12.设计方案 13.各功能模块的原
4、理及思路分析 2 3.1分频模块 2 3.2计量模块 2 3.3计费模块 3 3.4控制模块 3 3.5显示模块 4 3.6模拟出租车脉冲信号发生器 4 3.7头文件 54.个人模块(计量模块) 55.个人模块方案验证 76.心得体会 8参考文献 91.设计任务 设计一个出租车自动计费器,计费包括起步价、行车里程计费、等待时间计费三部分。起步价为 6.0 元,2 公里之内按起步价计费,超过 2 公里,每公里增加 1.8 元,等待时间单价为每 1 分钟0.3 元。用数码管显示总金额、总里程、等待时间(可键控交替显示)。设汽车每前进十米里程传感器输出一个脉冲。设计一个测试用模拟车速的脉冲源,模拟的
5、车速可通过按键调整,范围为5km/h 200km/h 发挥部分:(1)时钟,白天夜间计费模式(2)按长沙市出租车现行收费标准设计计费器2.设计方案根据设计要求,系统的输入信号有:系统时钟信号CLK,出租车启动信号START,出租车每十米输出一个脉冲,等待信号STOP,公里信号FIN。系统的输出信号有:总费用数C0-C3(XX.X),行驶距离(数)K0-K1(XX)和等待时间M0-M1(XX)等。系统组成方框图如下所示,它由模拟出租车脉冲信号、分频模块、计量模块、计费模块、控制模块和显示模块六部分组成。总流程图:模块输入接口输出接口模拟脉冲分频系统时钟CLKclk_1 clk_10clk_18计
6、量模拟脉冲CLKen0en1KoK1MoM1控制clk_1clk_18en0en1fin计费finC0C1C2C3显示c0c1c2c3 3.各功能模块的原理及思路分析 该设计问题自顶向下可分为模拟出租车脉冲信号发生器、分频模块、计量模块、计费模块、控制模块、和扫描显示模块,下面就每个部分的原理及算法进行分析。3.1 分频模块 分频模块对频率为240Hz的输入脉冲进行分频,得到的频率18Hz,10Hz和1Hz的三种频率。该模块产生频率信号用于计费,每个1Hz脉冲为0.1元计费控制,10Hz信号为1元的计费控制,18Hz信号为1.8元计费控制。 分频模块的实现 系统是对240Hz时钟脉冲信号进行分
7、频,分别得到18Hz、10Hz、1Hz三种频率,本设计中通过三种不同频率脉冲信号实现计程车在行驶、等待两种情况下的不同计费。3.2 计量模块 计量控制模块是出租车自动计程器系统的主体部分,该模块主要完成等待计时功能、计程功能,同时产生等待计时使能控制信号en1,行程2公里外的使能控制信号en0。其中计价功能主要完成的任务是:行程2公里内,起步价为6元;2公里外以每公里1.8元计费,等待时间每分钟0.3元;计时功能主要完成的任务是:计算乘客的等待累计时间,计时器的量程为59分,满量程自动归零;计程功能主要完成的任务是:计算乘客所行使的公里数。 计量模块的实现 本模块实现对于出租车在行驶和等待过程
8、中的计程和计时功能。当行使里程大于2Km时,本模块中en0信号变为1;当等待时间开始计时时,en1信号变为1,clk1每来一个上升沿,计量模块实现一次计数,里程数或者等待时间加1。3.3 控制模块控制模块主要是通过计量模块产生的两个不同的输入使能信号en0,en1,对每个分频模块输出的18Hz,1Hz的脉冲信号进行选择输出的过程;本模块实现了双脉冲的二选一;由于单价1.8元/公里、0.3元/每分钟,通过选择18HZ(1.8元),1HZ (0.1元)脉冲信号,方便最终计费模块中对行驶过程中不同的时段、不同路程段进行计价。 控制功能的实现 本模块主要是通过两个不同的输入使能信号,对两个输入脉冲进行
9、选择输出,使能信号是计量模块的输出,两个输入脉冲是分频模块输出的18Hz、1Hz的脉冲。3.4 计费模块 当计费信号start一直处于高电平即计费状态时,本模块根据控制模块选择出的信号从而对不同的单价时段进行计费。即行程在2km内,起步价6元;2km外以每公里1.8元计费,等待时间每分钟0.3元计费。c0,c1,c2,c3分别表示费用的显示。 计费功能的实现 输入一个脉冲信号,同时当start为高电平时开始计价,次脉冲信号是控制模块的输出,源于分频模块的18HZ或者1HZ脉冲信号,累计费用在c0、c1、c2、c3四个端口,并作为价格的显示信号。3.5 显示模块 公里数,等待时间,总费用输出。3
10、.6 模拟出租车脉冲信号发生器 该部分暂定两套方案: 方案一:由分频模块分频出不同频率的脉冲信号,作为模拟出租车脉冲信号,但可能会因此增加系统的复杂度。 方案二:采用外部脉冲发生源,这里选择51单片机开发板作为脉冲信号发生器,可以通过按键调节脉冲频率大小,以此来代替出租车速度的变化。3.7头文件调用模块实现总体记录与计算。4.个人模块与调试计量模块4.1设计要求计量控制模块是出租车自动计程器系统的主体部分,该模块主要完成等待计时功能、计程功能,同时产生使能控制信号en1,行程2公里外的使能控制信号en0。其中计价功能主要完成的任务是:行程2公里内,起步价为6元;2公里外以每公里1.8元计费,等
11、待时间每分钟0.3元计费;计时功能主要完成的任务是:计算乘客的等待累计时间,计时器的量程为59分,满量程自动归零(仅仅是显示归零,实际累计时间所产生的费用不能归零);计程功能主要完成的任务是:计算乘客所行使的公里数。计程器的量程为99公里,满量程自动归零。4.2设计思路在得到分频信号(fin,clk)后,分别对等待时间(minute)和行驶路程(kilometer)记录,得到公里脉冲后满一公里加1,在按钮按等待按钮时开始判断clk信号,满60秒分钟加一,最后输出使能信号e1,e0(e0信号输出判断两公里之后输出)。4.3程序代码分析library IEEE;use IEEE.STD_LOGIC
12、_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity jiliang isport( enable_kile: in std_logic; -计程开始信号 clk_speed: in std_logic; -里程脉冲信号 enable_time: in std_logic; -行驶中,中途等待信号 clk_time: in std_logic; -计时脉冲 en1,en0:out std_logic; -计费单价使能信号 kile1,kile0: out std_logic_vector(3
13、downto 0); -行驶公里计数 time1,time0: out std_logic_vector(3 downto 0); -等待时间计数end jiliang;architecture bhv2 of jiliang isbeginprocess(enable_kile,clk_speed,enable_time,clk_time)variable w:integer range 0 to 3000; -计时范围059 variable m:integer range 0 to 1000;variable q1,q2,q3,q4 : std_logic_vector(3 downto
14、 0);variable en:std_logic;beginif enable_kile=0 then -开始清零按钮 en1=0;q1:=0000;q2:=0000;w:=0; elsif clk_timeevent and clk_time=1 then if enable_time=1 then -计时开始信号 if w=3000 then w:=0;w:=w+1;en1=1; -(表示当计时器达到60时,归零) if q1=1001 then q1:=0000; -(计时器个位到9进一位) if q2=1001 then q2:=0000; -(计时器十位到5进一位) else q2
15、:=q2+1; end if; else q1:=q1+1; end if; else w:=w+1;en1=00000011 then en:=1; end if; else m:=m+1;en:=0; end if; end if; end if; time0=q1;time1=q2; kile0=q3;kile1=q4;en0=en; end process;end bhv2;4.4方案验证模块电路图:中途停车等待时间记录:(测试信号clk:10ns; fin:10ns; start:1 ; stop:1;在start状态为1时按下stop开始记录等待时间)里程记录:(测试信号clk:1
16、0ns; fin:10ns; start:1 ; stop:0; 在得到输入模拟脉冲后按start开始记录里程)6.心得体会 经过两周的课程设计,我学习到了很多,开始拿到课题只是经过理论的分析觉得很简单,但是实际实施起来却很困难,前半周拿到课题我们都在讨论方案如何实施,因为大家的想法都不相同,所以存在很大的争议,方案迟迟没有确定下来,我们都非常的焦急,最后在和老师讨论过大家的想法之后确定了最优的方案,大家分配了模块开始编写,我的模块是计量模块,在写代码之前参考了很多资料,因为之前做的实验比较少,我的问题在于没有科学严谨的态度,虽然代码写完了,但是却存在很多错误,当修改可以运行波形图时,又存在这样那样的错误,虽然调试成功了,但是对我的感触很深,这种眼高手低的态度对于学习和科研是很有害的,以后应该注意和努力改掉。参考文献:1 潘松,黄继业.EDA技术实用教程-VHDL版(第五版).科学出版社.20132Altera Corporation.VHDL Programming by ExampleM.Fourth Edition.New York: McGraw-Hill Companies,2002.3 杨恢先,黄辉先. 单片机原理及应用M .人民邮电出版社,2006,19-23
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1