logo资料库

出租车自动计费器的设计.doc

第1页 / 共24页
第2页 / 共24页
第3页 / 共24页
第4页 / 共24页
第5页 / 共24页
第6页 / 共24页
第7页 / 共24页
第8页 / 共24页
资料共24页,剩余部分请下载后查看
摘要
Abstract
1 绪论
2 设计内容及要求
2.1设计的目的及主要任务
2.1.1设计的目的
2.1.2 设计任务及主要技术指标
2.2设计思想
3 设计原理及单元模块设计
3.1 设计原理及方法
3.2 单元模块设计
3.2.1分频/计量控制模块
3.2.2 译码显示模块
3.3顶层电路的设计
4电路的仿真及分析
4.1 单元模块的仿真及分析
4.1.1分频/计量控制模块
4.1.2 译码显示模块
4.2 顶层电路的仿真及分析
5 硬件调试
6 心得体会
课程设计任务书 学生姓名: 专业班级: 指导教师: 工作单位: 信息工程学院 题 目: 一、设计目的 出租车自动计费器的设计 ①根据设计要求,完成对出租车自动计费器的设计。 ②进一步加强对 QuartusⅡ的应用和对 VHDL 语言的使用。 二、设计内容和要求 ①设计一个出租车自动计费器,计费包括起步价、行车里程计费、等待时间计费 3 部 分,用 4 位数码管显示金额、最大值为 999.9 元,最小计价单元为 0.1 元,行程 3 公 里内,且等待累计时间 3 分钟内,起步费为 8 元,超过 3 公里,以每公里 1.6 元计费, 等待时间单价为每分钟 1 元;用两位数码管显示等待时间,最大值为 59min。 ②掌握 QuartusⅡ的操作和使用方法。 ③利用 QuartusⅡ软件对所设计的电路进行仿真分析。 三、初始条件 CPLD,七段数码管,时钟信号,3-8 译码器,拨码开关等。 四、时间安排 1、2008 年 6 月 30 日集中,作课设具体实施计划与课程设计报告格式的要求说明。 2、2008 年 6 月 30 日至 2008 年 7 月 3 日,查阅相关资料,学习电路的工作原理。 3、2008 年 7 月 4 日至 2008 年 7 月 9 日,电路调试和设计说明书撰写。 4、2008 年 7 月 10 日上交课程设计成果及报告,同时进行答辩。 课设答疑地点:鉴主 13 楼电子科学与技术实验室。 指导教师签名: 系主任(或责任教师)签名: 年 年 月 日 月 日
目 录 摘 要………………………………………………………………………………… Ⅰ 1 绪 论………………………………………………………………………………1 2 设计内容及要求……………………………………………………………………2 2.1 设计的目的及主要任务…………………………………………………………2 2.1.1 设计的目的……………………………………………………………… 2 2.1.2 设计任务及主要技术指标…………………………………………………2 2.2 设计思想…………………………………………………………………………2 3 设计原理及单元模块设计…………………………………………………………3 3.1 设计原理及方法…………………………………………………………………3 3.2 单元模块设计……………………………………………………………………3 3.2.1 分频/计量控制模块………………………………………………………3 3.2.2 译码显示模块………………………………………………………………7 3.3 顶层电路的设计………………………………………………………………11 4 电路的仿真及分析………………………………………………………………13 4.1 单元模块的仿真及分析………………………………………………………13 4.1.1 分频/计量控制模块………………………………………………………13 4.1.2 译码显示模块……………………………………………………………14 4.2 顶层电路的仿真及分析………………………………………………………15 5 硬件调试………………………………………………………………………17 6 心得体会…………………………………………………………………………18 参考文献…………………………………………………………………………19
武汉理工大学《电子科学与技术专业课程设计》课程设计说明书 摘要 本文介绍了一种采用单片 CPLD 芯片进行出租车计费器的设计方法,主要阐 述如何使用新兴的 EDA 器件取代传统的电子设计方法,利用 CPLD 的可编程性, 简洁而又多变的设计方法,缩短了研发周期,同时使出租车计费器体积更小功能 更强大。本设计实现了出租车计费器所需的一些基本功能,计费包括起步价、行 车里程计费、等待时间计费,同时考虑到出租车行业的一些特殊性,更注重了把 一些新的思路加入到设计中。主要包括采用了 CPLD 芯片,使用 VHDL 语言进 行编程,使其具有了更强的移植性,更加利于产品升级。 关键词:VHDL;计费器;QuartusⅡ;CPLD I
武汉理工大学《电子科学与技术专业课程设计》课程设计说明书 Abstract to shorten the development cycle, This paper describes the use of a single chip CPLD for the design of accounting-fee machine, mainly on how to use the emerging EDA electronic devices designed to replace traditional methods, using the programmable CPLD, concise and changing the design Ways taxi accounting-fee machine in a smaller more powerful. The design and implementation of the taxi accounting-fee machine for some basic functions, including billing starting price, driving metered, the waiting time billing, taking into account the special nature of some of the taxi industry, to pay more attention to a number of new Ideas into the design. Mainly including the use of the CPLD chip, the use of VHDL programming, so as to make it a stronger transplanted, and more conducive to product upgrades. so that Key words: VHDL, accounting-fee machine , Quartus Ⅱ, CPLD II
武汉理工大学《电子科学与技术专业课程设计》课程设计说明书 1 绪论 人类社会已经进入信息化时代,信息社会的发展离不开电子产品的进步。现 代电子产品在性能提高、复杂度降低的同时,价格却一直呈下降趋势,而且产品 更新换代的步伐也越来越快,实现这种进步的主要原因就是生产制造技术和电子 设计技术的发展。前者以微细加工技术为代表,目前已进展到深亚微米阶段,可 以在几平方厘米的芯片上集成数万个晶体管;后者的核心就是 EDA 技术。没有 EDA 技术的支持,想要完成超大规模集成电路的设计制造是不可想象的,反过 来,生产制造技术的不断进步又必须对 EDA 技术提出新要求。EDA 代表了当今 电子设计技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的 设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片 专用集成电路(ASIC)实现,然后采用硬件描述语言(VHDL)完成系统行为级 设计,最后通过综合器和适配器生成最终的目标器件[1]。 可编程逻辑器件自 20 世纪 70 年代以来,经历了 PAL、GAL、CPLD、FPGA 几个发展阶段,其中 CPLD、FPGA 属高密度可编程逻辑器件,目前集成度以高 达 200 万门/片,它将掩膜 ASIC 集成度高的优点和可编程逻辑器件设计生产方便 的特点结合在一起,特别适合于样品研制和小批量产品开发,使产品能以最快的 速度上市,而当市场扩大时,它可以和容易地转由 ASIC 实现,因此开发风险也 大为降低。CPLD/FPGA 器件已成为现代高层次电子设计方法的实现载体。 VHDL 是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和 逻辑门级多个设计层次,支持结构、数据流和行为 3 种描述形式的混合描述,因 此 VHDL 几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上 的电路设计过程都可以用 VHDL 来完成。另外,VHDL 还有以下优点:VHDL 的宽范围描述能力使它成为高层次设计的核心,将设计人员的工作重心转移到了 系统功能的实现和调试上,只需要花较少的精力用于物理实现;VHDL 可以用简 洁明确的代码描述来进行复杂控制逻辑的设计,灵活且方便,而且也便于设计结 果的交流、保存和重用;VHDL 的设计不依赖于特定的器件,方便了工艺的转换。 VHDL 是一个标准语言,为众多的 EDA 场上支持,因此移植性好[2]。 1
武汉理工大学《电子科学与技术专业课程设计》课程设计说明书 2 设计内容及要求 2.1 设计的目的及主要任务 2.1.1 设计的目的 ①学会在 QuartusⅡ环境中运用 VHDL 语言设计方法构建具有一定逻辑功能 的模块,并能运用图形设计方法完成顶层原理图的设计。 ②掌握出租车自动计费器的主要功能与在 CPLD 中的实现方法。 2.1.2 设计任务及主要技术指标 ①设计一个出租车自动计费器,计费包括起步价、行车里程计费、等待时间 计费 3 部分,用 4 位数码管显示金额、最大值为 999.9 元,最小计价单元为 0.1 元,行程 3 公里内,且等待累计时间 3 分钟内,起步费为 8 元,超过 3 公里,以 每公里 1.6 元计费,等待时间单价为每分钟 1 元;用两位数码管显示等待时间, 最大值为 59min。 ②运用 QuartusⅡ软件中的仿真功能对所设计的出租车自动计费器的各个模 块及顶层电路的功能进行仿真分析。 ③将所设计的整个系统写入 CPLD 器件中,加上需要的外围电路在实验箱上 实现整个系统的硬件搭建。 2.2 设计思想 本次设计首先在 QuartusⅡ环境中对出租车自动计费器的各个部分利用 VHDL 这一硬件描述语言予以设计,生成模块。而整个设计的核心部分就在分频 /计量模块,该模块完成的功能主要包括计费脉冲的产生,等待计时、计价、计 程功能。随后运用 QuartusⅡ中的仿真功能对其予以仿真,从仿真的结果中分析 程序的正确性。待所有模块的功能正确之后,运用原理图搭建顶层电路并进行整 体仿真直至达到最初的设计要求,最后再在实验箱上检验设计的正确与否。 2
武汉理工大学《电子科学与技术专业课程设计》课程设计说明书 3 设计原理及单元模块设计 3.1 设计原理及方法 根据层次化设计理论,该设计问题自顶向下可分为分频模块、控制模块、计 量模块、译码动态扫描显示模块,其系统框图如图所示[3]。 图 3-1 出租车自动计费器系统框图 3.2 单元模块设计 3.2.1 分频/计量控制模块 分频模块对频率为 240HZ 的输入脉冲进行分频,得到 16HZ、10HZ、和 1HZ 的三种频率。该模块产生频率信号用于计费,每 1HZ 脉冲为 0.1 元计费控制,10HZ 信号为 1 元的计费控制,16HZ 信号为 1.6 元计费控制。 计量控制模块是出租车计费的主体部分,该模块主要完成等待计时功能、计 价功能、计程功能,同时产生 3 分钟的等待计时始能控制信号 en1 、行程 3 公 里外的是能控制信号 en0。其中计价功能主要完成的任务是:行程 3 公里内,且 等待累计时间在 3 分钟内,起步费为 8 元;3 公里以外以每公里 1.6 元计费。等 待时间 3 分钟以外以每分钟 1 元计费。计时功能主要完成的任务是:计算乘客的 等待累计时间,计时的量程为 59 分,满量程自动归零。计程功能主要完成的任 务是:计算乘客所行驶的公里数,计程器的量程为 99 公里,满量程自动归零[4]。 根据前面的描述,该电路的核心部分就是分频/计量控制电路,通过 VHDL 3
武汉理工大学《电子科学与技术专业课程设计》课程设计说明书 语言的顺序语句 IF-THEN-ELSE 根据一个或一组条件来选择某一特定的执行通 道,生成计费数据、计时数据和里程数据。其 VHDL 源程序如下。 LIBRARY IEEE; USE IEEE.std_logic_1164.all; USE IEEE.std_logic_unsigned.all; USE IEEE.std_logic_arith.all; ENTITY taxi is port(clk_240:in std_logic; --频率为 240Hz 的时钟 --计价使能信号 --等待信号 --公里脉冲信号 start:in std_logic; stop:in std_logic; fin:in std_logic; cha3,cha2,cha1,cha0:out std_logic_vector(3 downto 0); --费用数据 km1,km0:out std_logic_vector(3 downto 0); --公里数据 --等待时间 min1,min0:out std_logic_vector(3 downto 0)); end taxi; architecture behav of taxi is signal f_10,f_16,f_1:std_logic; signal q_10:integer range 0 to 23; signal q_16:integer range 0 to 14; signal q_1:integer range 0 to 239; signal w:integer range 0 to 59; signal c3,c2,c1,c0:std_logic_vector(3 downto 0); signal k1,k0:std_logic_vector(3 downto 0); signal m1:std_logic_vector(2 downto 0); signal m0:std_logic_vector(3 downto 0); signal en1,en0,f:std_logic; begin feipin:process(clk_240,start) begin --频率为 10Hz,16Hz,1Hz 的信号 --24 分频器 --15 分频器 --240 分频器 --秒计数器 --十制制费用计数器 --公里计数器 --分的十位计数器 --分的个位计数器 --使能信号 4
分享到:
收藏