收藏 分销(赏)

河南科技大学出租车计费系统课程方案设计书.doc

上传人:a199****6536 文档编号:2337771 上传时间:2024-05-28 格式:DOC 页数:18 大小:799.50KB
下载 相关 举报
河南科技大学出租车计费系统课程方案设计书.doc_第1页
第1页 / 共18页
河南科技大学出租车计费系统课程方案设计书.doc_第2页
第2页 / 共18页
河南科技大学出租车计费系统课程方案设计书.doc_第3页
第3页 / 共18页
河南科技大学出租车计费系统课程方案设计书.doc_第4页
第4页 / 共18页
河南科技大学出租车计费系统课程方案设计书.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、河南科技大学课 程 设 计 说 明 书课程名称 电子设计自动化课程设计 题 目 出租车计费系统设计 学 院 电信学院 班 级 电信科083班 学生姓名 陈真淮 指导教师 张雷鸣、王勇 日 期 2010年9月20日 课程设计任务书课程设计名称 电子设计自动化课程设计 学生姓名 陈真淮 专业班级 电信科083设计题目 出租车计费系统设计 一、 课程设计目的1、综合运用EDA技术,独立完成一个课题的设计,考察运用所学知识,解决实际问题的能力;2、结合理论知识,考察阅读参考资料、文献、手册的能力;3、进一步熟悉EDA技术的开发流程,掌握文件编辑、编译、仿真、下载验证等环节的实现方法和应用技巧;4、锻炼

2、撰写研究报告、研究论文的能力;5、通过本实践环节,培养科学和严谨的工作作风。二、 设计内容、技术条件和要求1、 能够实现计费功能:费用的计算是按行驶里程收费,设出租车的起价为5.00元,当里程小于3km时,按起价计算收费;当里程大于3km时每公里按1.3元计费。等待累计时间超过2min,按每分钟1.5元计费。所以总费用按下式计算:总费用起价费(里程3km)里程单价等候时间等候单价2、能够实现显示功能: 显示汽车行驶里程:用四位数字显示,显示方式为“XXXX”,单位为km。计程范围为099km,计程分辨率为1km。 显示等候时间:用两位数字显示分钟,显示方式为“XX”。计时范围为059min,计

3、时分辨率为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三、系统设计方案43.1

4、设计原理.43.2 系统总体框图.5四、模块设计及仿真.64.1 分频模块.64.2 控制模块.74.3 计量模块.74.4 计费模块.84.5 顶层例化模块.9五、硬件验证.9 5.1 实验过程.9 5.1 验证结果.11六、总结与心得12七、参考文献.12附录:VHDL源程序.13一、设计任务与要求(1)、能够实现计费功能 费用的计算是按行驶里程收费,设出租车的起价为5.00元,当里程小于3km时,按起价计算收费;当里程大于3km时每公里按1.3元计费。等待累计时间超过2min,按每分钟1.5元计费。所以总费用按下式计算: 总费用起价费(里程3km)里程单价等候时间等候单价(2)、能够实现

5、显示功能 显示汽车行驶里程:用四位数字显示,显示方式为“XXXX”,单价为km。计程范围为099km,计程分辨率为1km。 显示等候时间:用两位数字显示分钟,显示方式为“XX”。计时范围为059min,计时分辨率为1min。 显示总费用:用四位数字显示,显示方式为“XXX.X”,单位为元。计价范围为999.9元,计价分辨率为0.1元。 二、设计背景 近年来,我国出租汽车行业迅猛发展,出租汽车已成为我国城市公共交通的重要组成部分和现代化城市必备的基础设施,成为人们工作、生活中不可缺少的交通工具。它对繁荣经济、促进发展、方便群众、改善交通起到了积极作用。出租汽车对我国人民物质和文化生活影响之大、作

6、用之广是前所未有的。出租汽车行业的服务水平和程度已经成为现代化的重要标志。 出租汽车服务行业和出租汽车计价器紧密相关,因为出租汽车必须安装出租汽车计价器才能投入营运。出租汽车计价器是一种能根据乘客乘坐汽车行驶距离和等候时间的多少进行计价,并直接显示车费值的计量器具。计价器是出租汽车的经营者和乘坐出租汽车的消费者之间用于公平贸易结算的工具,因而计价器量值准确与否,直接关系到经营者和消费者的经济利益。随着出租车行业的发展,对出租车计费器的要求也越来越高,用户不仅要求计费器性能稳定,计费准确,有防作弊功能;同时还要求其具有车票资料打印、IC卡付费、语音报话、和电脑串行通信等功能,而这些与电子技术的发

7、展是分不开的。本次课程设计即是应用EDA技术来实现出租车计费系统设计和验证。EDA技术(即Electronic Design Automation技术)就是依赖强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。它在硬件实现方面融合了大规模集成电路制造技术、IC版图设计、ASIC测试和封装、FPGA)/CPLD编程下载和自动测试等技术。在现代电子学方面则容纳了更多的内容,如电子线路设计理论、数字信号处理技术、数字系统建模和优化技术及长线技术理论等。Al

8、tera公司成产的FPGA系列芯片,以性能稳定,功能全面,价格优惠,服务完善而得到广泛应用。该公司的QUARTUSII软件设计环境的灵活性和高效性为出租车计费器的设计带来了无可比拟的好处。其丰富的界面,让设计人员可以轻松的掌握和使用。所以,在设计仿真过程中,我们采用Altera公司QUARTUS-II软件,进行编程,综合,仿真,验证,下载等各项实验步骤。在硬件验证过程中,采用以Altera公司Cyclone系列EP1C6Q240C8型号FPGA器件为核心的GW48教学实验系统来进行硬件验证。三、系统设计方案3.1 设计原理根据设计要求,可得系统的输入信号有:CLK,计价开始信号START,等待

9、信号STOP,里程脉冲信号FIN。系统得输出信号有:总费用数CHA0 CHA3,行驶距离KM0KM1,等待时间MIN0MIN1 等。所以系统的元件框图如下: 系统有两个脉冲输入信号clk_195、fin,两个控制输入开关start、stop。整个系统的控制过程为:start作为计费开始开关,当start为高电平时,系统开始根据输入的情况计费。当有乘客上车并开始行驶时,fin脉冲到来,进行行驶计费,此时的stop需要置为0;如需停车等待,就把stop变为高电平,并去除fin输入脉冲,进行等待计费;当乘客下车且不等待时,直接将start置为0,系统停止工作。 系统由分频模块、计量模块、计费模块和控

10、制模块四部分组成。计量模块是整个系统实现里程计数和时间计数的重要部分;控制模块是实现不同计费方式的选择部分;设计通过分频模块产生不同频率的脉冲信号来实现系统的计费。计量模块采用1HZ的驱动信号,计费模块采用13HZ、15HZ的驱动信号;计量模块每计数一次,计费模块就实现13次或者15次计数,即为实现计时时的1.5 元/min、计程时的1.3元/km的收费。3.2 系统的总体框图由Quartus仿真得系统总体顶层框图为:四、模块设计及仿真4.1 分频模块分频模块是对系统时钟频率进行分频,分别得到15HZ,13HZ,1HZ三种频率;本设计中通过这三种不同频率的脉冲信号实现在计程车行驶、等待两种情况

11、下的不同计费。而系统时钟频率CLK=15*13Hz=195Hz。在接入实际硬件电路时,根据系统时钟频率选用的不同,会等比例地得到不同分频频率。其原理框图如下:分频模块的仿真图为:由图中的周期时间可以看出,三种输出的信号脉冲对应的频率比实现了1:13:15。4.2 控制模块本模块主要是通过两个不同的输入使能信号,对两个输入脉冲进行选择输出;使能信号是计量模块中的输出,两个输入脉冲是分频模块输出的13HZ、15HZ的脉冲;本模块实现了双脉冲的二选一。其原理框图为:控制模块的仿真波形图为:由图中可以看出,当ent0为高电平时,输出为这一时段的clk_in1; 当ent1为高电平时,输出为这一时段的c

12、lk_in2;4.3 计量模块本模块实现对于出租车在行驶和等待过程中的使能和计时功能。当行驶里程大于3KM时,本模块中en0信号变为1;当等待时间大于2min时,本模块中en1信号变为1;clk1每来一个上升沿,计量模块实现一次计数,里程数或者等待时间加1。其原理框图为:计量模块的仿真波形图为:由图可以看出,在fin脉冲到来时,k1、k0进行计数,en0在每进行一次加法计数时就输出一次高电平;当stop为高电平时,即为进入等待计时,m1、m0进行计数,en1在每进行一次计时计数的时候输出一个高电平。4.4 计费模块本模块根据输入的clk2信号变化,调节费用的计数,c0、c1、c2、c3分别表示

13、费用的显示。其原理框图为:计量模块的仿真波形图为: 由图中可以看出,随着clk2的高电平的到来,c3、c2、c1、c0逐级进行加法计数,当c0计数到九时,产生进位,c1加一;当c1计数到九时,产生进位,c2加一;当c2计数到九时,产生进位,c3加一;起步价为5元。4.5 顶层例化模块本模块用例化语句实现出租车的计费器系统设计,将各个模块组合在一起。 系统模块的仿真波形图为:由图中可以看出,当fin脉冲信号到来时,实现了行驶计费,当行驶里程超过三公里,则再按每公里1.3元计费;当stop为高电平,即进入等待计时收费;当等待时间超过2min时,每过一分钟加1.5元,即为实现每等一分钟收费1.5元。

14、五、硬件验证 5.1 实验过程EDA课程设计中对于各个模块的设计是基础,首先要分析清楚各个模块的功能,然后分别进行编程设计、验证,然后使用VHDL语言中的元件例化语句,将各个模块组合到一起,实现总的设计功能。在出租车计费系统的4个模块中 ,重点在于计量模块,计费模块。计量模块主要有汽车的启动、停止、暂停等按键;各模块完成后,在将它们组合成完整的出租车系统。本次设计的首要是如何实现等待计时和行驶里程的不同计费。对于里程和等待时间的计数都使用的是计数器的原理,通过fin和stop信号的不同值实现在不同情况下的计数;通过分频产生的13HZ、15HZ、1HZ对应的周期频率关系,由1HZ的信号控制计量模

15、块,由控制器选择产生的信号作为计费模块的输入信号,所以计费模块的输入信号是13HZ、15HZ的信号之一,计量模块每完成一次计数,计费模块完成13次或者15次计数,即为实现1.3元或1.5元的计费。通过硬件下载,该电路可以完成硬件实现,芯片管脚定义可以直接用编辑*pin文件。完成管脚定义后选择器件,编译后生成*.sof、*.pof文件。选择sof文件进行下载。 通过对每一模块的仿真和下载,可以实现各个模块的逻辑功能,验证了各个模块的正确性。本设计采用的是GW48实验教学系统,采用电路模式5,clk_195采用clock0信号端,连接pin28, fin连接clock2信号端,连接pin153;

16、stop连接键1,端口pio0,引脚号为pin233;start连接键2,端口pio1,引脚号为pin234;CHA0CHA3、km1km0、min1min0分别连接八个七段显示译码器,端口号依次为pin16pin47。管脚连接图如下:- 17 - 5.1 验证结果出租车计费器系统的设计已全部完成,能按预期的效果进行模拟汽车启动、停止、暂停等功能,并设计动态扫描电路显示车费数目,由动态扫描电路来完成。车起步开始计费,首先显示起步价,起步费为5.00元,车在行驶3km以内,只收起步价。车行驶超过3km后,每公里1.3元,车费一次累加。当遇到红灯或者客户需要停车等待时,则按时间计费,计费单价为:等

17、待累计时间超过2min,按每分钟1.5元计费。车暂时停止不计费,车费保持不变。若停止则车费清零,等待下一次计费的开始。结果验证:出租车的起步价是5元,当行驶了89KM的时候,收费为5+(89 3)*1.3=116.8元;等待三分钟时,收费为118.3元。 硬件仿真图如下: 六、总结与心得不经意间,为期两周的课程设计已经接近尾声。这次课程设计是设计一个出租车计费器系统,实现行驶计费功能、等待计费功能、预置功能等。在设计过程中同时用到了多进程多模块例化等设计方法。在设计中遇到了很多问题,比如在硬件实现过程中,当进行等待计时计费时,发现计时很慢,初步分析是因为计时的驱动频率不大,需要选择256HZ以

18、上的频率;更改以后,计时正常,但同频率下行驶计费速度较快,不便观察,因此要注意观察的点和频率的选择。另外在设计过程中我发现控制系统的纠错功能还需要进行改进,而迫于时间和精力的限制我只查阅了相关的资料,了解设计原理,而没有设计出来。但总体来说,这次实习使我受益匪浅。在摸索该如何设计使之实现所需功能的过程中,特别有趣,培养了我的设计思维,增加了实际操作能力。在让我体会到了设计的艰辛的同时,更让我体会到成功的喜悦和快乐。刚开始拿到课题时候感觉相当兴奋,觉得大学四年的理论课程终于与生活中的实际密切结合了!首先,我查阅了相关书籍。查阅参考书的独立思考的能力以及培养非常重要,我们在设计程序时,遇到很多不理

19、解的东西,有的我们通过查阅参考书弄明白,有的通过网络查到,但由于时间和资料有限我们更多的还是独立思考。认识到Quartus 包括模块化的编译器。可以通过选择Start Compilation来运行所有的编译器模块,也可以通过选择Start单独运行各个模块。还可以通过选择Compiler Tool,在Compiler Tool窗口中运行该模块来启动编译器模块。然后,在接到任务后,我便开始研究程序,希望通过自己的努力,能对这个课题和程序有自己的认识。但是前期的学习得不够扎实,让我在阅读程序时频频的遇到问题。经过老师的讲解,能对程序的各模块进行修改。然而,我还是遇到了很多棘手的问题,比如说,程序不理

20、解,软件运用不熟练,再比如说,应用模块不熟悉,等等。真正领略到艰苦奋斗的真正含义,我才意识到学好基础的重要性。我想说,设计确实有些辛苦,但苦中也有乐。而且,通过这次课程设计对EDA技术有了更进一步的熟悉,VHDL 语言和语言等其他语言还是有很大的区别。VHDL是EDA技术的重要组成部分,其具有与具体硬件电路无关和与设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化、结构化设计方面,表现了强大的生命力和应用潜力。其主要的也是最大的优点就在于设计者可以专心致力于其功能的实现,而不需要对不影响功能的与工艺有关的因素花费过多的时间和精力。其实,在实际操作中发现设计和

21、课本上的知识有很大联系,但又高于课本,一个简单的原理要把它应用以及和其他功能综合起来就有些困难。通过设计也巩固了我们的书本知识以及通过借阅书籍和上网查找资料,也丰富了自己对的了解。但是,本次设计也存在一些不足,暴露了自己对EDA的掌握还有所欠缺。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得

22、不够深刻,掌握得不够牢固。课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。通过这次设计,本人在多方面都有所提高。同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。在这次设计过程中,体现出自己单独设计模具的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。最后感谢我们的王老师和张老师。两位老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘

23、一格的思路给予我无尽的启迪;这次设计的每个细节和每个数据,都离不开老师的细心指导。而您们开朗的个性和宽容的态度,帮助我能够很顺利的完成了这次课程设计。在此我要对两位老师在这次课设中的给予的悉心指导表示深深的谢意!同时感谢帮助过我的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊 七、参考文献1 潘松、黄继业.EDA技术实用教程M.北京:科学出版社,20052 谭会生、瞿遂春.EDA技术综合应用实例与分析M.西安:西安电子科技大学出版社,20043 亿特科技.CPLD/FPGA应用系统设计与产品开发M.北京:人民邮电出版社,2005 4 曹昕燕、周凤臣.EDA技术实验与课程设计.清华大学出

24、版社,20065 王勇.电子设计自动化实验指导书.河南南科技大学电工电子实验教学中心,2009附录:VHDL源程序分频模块VHDL源程序:library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity fenpin2 is port ( clk_195: in std_logic; -195HZ的时钟 clk_13: out std_logic; -分频为13HZ的时钟 clk_15: out std_logic; -分频为15HZ的

25、时钟 clk_1: out std_logic); -分频为1HZ的时钟 end fenpin2; architecture rt1 of fenpin2 is signal q_13:integer range 0 to 12; signal q_15:integer range 0 to 14; signal q_1:integer range 0 to 194; begin process(clk_195) begin if (clk_195event and clk_195=1 )then if q_13=12 then q_13=0;clk_13=1; -此处产生13HZ频率的信号

26、else q_13=q_13+1;clk_13=0; end if; if q_15=14 then q_15=0;clk_15=1; -此处产生15HZ频率的信号 else q_15=q_15+1;clk_15=0; end if; if q_1=194 then q_1=0;clk_1=1; -此处产生1HZ频率的信号 else q_1=q_1+1;clk_1=0; end if; end if; end process; end rt1; 计费模块VHDL源程序:library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_A

27、RITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity jifei is 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 process(clk2,start) begin if start=0 then c3=0000;c2=0000;c1=0101;c0=0000; elsif clk2event and clk2=

28、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; 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 rt3; 计量模块VHDL源程序:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_a

29、rith.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

30、 signal w:integer range 0 to 59; -秒计数器 begin process(clk1) begin if clk1event and clk1=1 then if s=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; if m0=1001 then m0=0000; if m1=0101 then m1=0000; else m1=m1+1; end if; else m000000001then en1=1; else en1=0

31、; end if; else w=w+1;en1=0; end if; elsif fin=1 then if k0=1001 then k0=0000; if k1=1001 then k1=0000; else k1=k1+1; end if; else k000000010 then en0=1; else en0=0; end if; else en1=0;en0=0; end if; end if; end process; end rt2;控制模块VHDL源程序:library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGI

32、C_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 process(ent0,ent1) begin if ent0=1 then clk_out=clk_in1; elsif ent1=1 then clk_out=clk_in

33、2; end if; end process; 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 process(ent0,ent1) begin if ent0=1 then clk_out=clk_in1; elsif ent1=1 then clk_out=clk_in2; end if; end process; end rt4;

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 大学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服