ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:419.65KB ,
资源ID:4335537      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4335537.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(出租车计价器.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

出租车计价器.docx

1、出租车计价器出租车计价器课程设计学生姓名: 专 业: 班 级: 学 号: 初始条件:本设计利用Quartus软件编写VHDL代码,运用EDA实验板上的FPGA、数码管、点阵模块、按键、拨码开关等硬件资源,实现简易的出租车计价器的相关功能。要求完成的主要任务: 1课程设计工作量:4次课。2技术要求:(1)基本要求:1行驶公里: 用时钟 2 秒钟表示出租车匀速行驶 1 公里,在行车 5 公里以内,按起步价 13 元收费,超过 5 公里部分,以每公里 2 元收费。燃油附加费为每运次 1 元。途中等待:用按键控制中途等待,等待少于(包括)5 秒不收费,超过 5 秒后每等待 3 秒钟加收 1 元。2用数

2、码管分时显示计费金额、行驶里程和等候时间。字母 A 表示当前处于显示计费金额状态,字母 B 表示当前处于显示行驶里程状态,字母 C 表示当前处于显示等候时间状态。3用按键控制出租车空驶、载客状态并用点阵显示空驶、载客状态。(2)提高要求:1用点阵滚动显示收费单据。2具有夜间模式,基本单价加收 20%的费用。出租汽车收费结算以元为单位,元以下四舍五入。3出租车行驶速度可调可控。4多人乘车,分段计价。5自拟其它功能。摘 要本文介绍了一种采用单片FPGA芯片进行出租车计费器的设计方法,主要阐述如何使用新兴的EDA器件取代传统的电子设计方法,利用FPGA的可编程性,简洁而又多变的设计方法,缩短了研发周

3、期,同时使出租车计费器体积更小功能更强大。本设计实现了出租车计费器所需的一些基本功能,计费包括起步价、行车里程计费、等待时间计费,同时考虑到出租车行业的一些特殊性,更注重了把一些新的思路加入到设计中。主要包括采用了FPGA芯片,使用VHDL语言进行编程,使其具有了更强的移植性,更加利于产品升级。关键词:VHDL;计费器;Quartus;FPGAAbstractThis paper describes the use of a single chip FPGA for the design of accounting-fee machine, mainly on how to use the e

4、merging EDA electronic devices designed to replace traditional methods, using the programmable FPGA, concise and changing the design Ways to shorten the development cycle, so that taxi accounting-fee machine in a smaller more powerful. The design and implementation of the taxi accounting-fee machine

5、 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 FPGA chip, the use of VHDL prog

6、ramming, so as to make it a stronger transplanted, and more conducive to product upgrades. Key words: VHDL, accounting-fee machine , Quartus , FPGA1. 绪论人类社会已经进入信息化时代,信息社会的发展离不开电子产品的进步。现代电子产品在性能提高、复杂度降低的同时,价格却一直呈下降趋势,而且产品更新换代的步伐也越来越快,实现这种进步的主要原因就是生产制造技术和电子设计技术的发展。前者以微细加工技术为代表,目前已进展到深亚微米阶段,可以在几平方厘米的芯片

7、上集成数万个晶体管;后者的核心就是EDA技术1。没有EDA技术的支持,想要完成超大规模集成电路的设计制造是不可想象的,反过来,生产制造技术的不断进步又必须对EDA技术提出新要求。EDA代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(VHDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件2。可编程逻辑器件自20世纪70年代以来,经历了PAL、GAL、CPLD、FPGA几个发展阶段,其中CPLD、FPGA属高密度可编程逻辑器件,目

8、前集成度以高达200万门/片,它将掩膜ASIC集成度高的优点和可编程逻辑器件设计生产方便的特点结合在一起,特别适合于样品研制和小批量产品开发,使产品能以最快的速度上市,而当市场扩大时,它可以和容易地转由ASIC实现,因此开发风险也大为降低。CPLD/FPGA器件已成为现代高层次电子设计方法的实现载体3。 VHDL是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流和行为3种描述形式的混合描述,因此VHDL几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用VHDL来完成4。另外,VHDL还有以下优点:VHDL的宽范围描述

9、能力使它成为高层次设计的核心,将设计人员的工作重心转移到了系统功能的实现和调试上,只需要花较少的精力用于物理实现;VHDL可以用简洁明确的代码描述来进行复杂控制逻辑的设计,灵活且方便,而且也便于设计结果的交流、保存和重用;VHDL的设计不依赖于特定的器件,方便了工艺的转换。VHDL是一个标准语言,为众多的EDA场上支持,因此移植性好5。2. 设计内容及要求2.1. 设计的目的及主要任务2.1.1. 设计的目的学会在Quartus环境中运用VHDL语言设计方法构建具有一定逻辑功能的模块,并能运用图形设计方法完成顶层原理图的设计。掌握出租车自动计费器的主要功能与在FPGA中的实现方法。2.1.2.

10、 设计任务及主要技术指标 设计一个出租车计价器。要求显示行驶里程、停车时间和计费值: 用时钟 2 秒钟表示出租车匀速行驶 1 公里,在行车 5 公里以内,按起步价 13 元收费,超过 5 公里部分,以每公里 2 元收费。燃油附加费为每运次 1 元。途中等待:用按键控制中途等待,等待少于(包括)5 秒不收费,超过 5 秒后每等待 3 秒钟加收 1 元。 运用Quartus软件中的仿真功能对所设计的出租车自动计费器的各个模块及顶层电路的功能进行仿真分析。 将所设计的整个系统写入FPGA器件中,加上需要的外围电路在实验箱上实现整个系统的硬件搭建。2.2. 设计思想本次设计首先在Quartus环境中对

11、出租车自动计费器的各个部分利用VHDL这一硬件描述语言予以设计,生成模块。主要有:运算控制模块、分频器、显示模块这三大部分组成。由顶层模块协调控制完成设计任务。3. 设计原理与仿真结果3.1. 设计原理及方法出租车自动计费器系统流程图本次设计首先在Quartus环境中对出租车自动计费器的各个部分利用VHDL这一硬件描述语言予以设计,进行仿真,然后编写顶层模块将各个模块连接,并对相互之间的信号进行必要处理,从而实现整机功能,最后在实验板上进行物理测试,寻找漏洞、调整参数,最终确定设计。3.2. 单元模块设计3.2.1. 分频器模块设计程序代码:LIBRARY IEEE;USE IEEE.STD_

12、LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY fenpinqi IS PORT( clk:IN STD_LOGIC; clk1,clk2,clk3:OUT STD_LOGIC);END fenpinqi;ARCHITECTURE behave OF fenpinqi IS SIGNAL temp1,temp2,temp3:STD_LOGIC;BEGIN p1:PROCESS(clk) variable count1:integer:=0; -2000HZ分频,用于数码管扫描显示 BEGIN IF clkEVENT AND clk=1

13、 THEN IF count1=12499 THEN count1:=0; temp1=not temp1; ELSE count1:=count1+1; END IF; clk1=temp1; END IF; END PROCESS p1; p2:process(clk) variable count2:integer:=0; BEGIN IF clkEVENT AND clk=1 THEN -1 Hz分频,用于等待时间计算 IF count2=24999999 THEN count2:=0; temp2=not temp2; ELSE count2:=count2+1; END IF; c

14、lk2=temp2; END IF; END PROCESS p2; p3:process(clk) variable count3:integer:=0; BEGIN IF clkEVENT AND clk=1 THEN -0.5Hz分频,用于里程计算 IF count3=49999999 THEN count3:=0; temp3=not temp3; ELSE count3:=count3+1; END IF; clk3=temp3; END IF; END PROCESS p3; END behave;模块儿实现:仿真实现:3.2.2. 计价器模块设计程序代码:LIBRARY IEEE

15、;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY jijia IS PORT( clk2,clk3,rst:IN STD_LOGIC; btn1,btn2,btn3:IN STD_LOGIC; mile,pause,price:out integer range 0 to 99);end jijia;ARCHITECTURE behave OF jijia IS signal mile_out,pause_out,price_out:integer range 0 to 99:=0; signal i:int

16、eger range 0 to 1; signal j:integer range 0 to 1;begin p1:PROCESS(rst,btn1,btn2,btn3) -中间变量赋值 begin if rst=0 then i=0; j=0; else if btn1event and btn1=1 then i=1; j=0; end if; if btn2=1 then i=0; j=1; end if; if btn3=1 then i=0; j=0; end if; end if; end process p1;p2:process(rst,clk3,i) -计算里程 begin

17、if rst=0 then mile_out=0; else if rst=1 then if clk3event and clk3=1 then if i=1 then mile_out=mile_out+1; end if; end if; end if; end if; mile=mile_out; end process p2;p3:process(rst,clk2,j) -计算等待时间 begin if rst=0 then pause_out=0; else if rst=1 then if clk2event and clk2=1 then if j=1 then pause_o

18、ut=pause_out+1; end if; end if; end if; end if; pause=pause_out; end process p3;p4:process(rst,mile_out,pause_out) -总费用的结算 begin if rst=0 then price_out=0; end if; if rst=1 then if mile_out=5 and pause_out=5 then price_out5 and pause_out=5 then price_out=14+(mile_out-5)*2; end if; if mile_out5 then

19、price_out5 and pause_out5 then price_out=14+(mile_out-5)*2+(pause_out-5)/3; end if; end if; price=price_out; end process p4;end behave; 模块儿实现:仿真实现:3.2.3. 显示模块设计程序代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity xianshi is port (clk1,rst:in std_logic; mile,price,paus

20、e:in integer range 0 to 99; smg:out std_logic_vector(6 downto 0); -数码管7段显示 cat:out std_logic_vector(5 downto 0); -数码管地址end xianshi;architecture behave of xianshi is signal l:integer range 0 to 5; -用于调整扫描显示的中间量begin p1:process(clk1,price,mile,pause) -数码管扫描显示 begin if rst=0 then cat=111111; l=0; else

21、if clk1event and clk1=1 then if l=5 then l=0; else lcatsmgsmgsmgsmgsmgsmgsmgsmgsmgsmgsmgcatsmgsmgsmgsmgsmgsmgsmgsmgsmgsmgsmgcatsmgsmgsmgsmgsmgsmgsmgsmgsmgsmgsmgcatsmgsmgsmgsmgsmgsmgsmgsmgsmgsmgsmgcatsmgsmgsmgsmgsmgsmgsmgsmgsmgsmgsmgcatsmgsmgsmgsmgsmgsmgsmgsmgsmgsmgsmgcat=111111; end case; end if; en

22、d process p1;end behave;模块儿实现:仿真实现:3.2.4. 点阵模块设计程序代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY dianzhen IS PORT(clk1,rst:IN STD_LOGIC; rowout:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); colout:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END dianzhen;ARCHITECTURE behave OF dianzhen I

23、SSIGNAL row:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL col:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL cnt:INTEGER RANGE 0 TO 7;BEGINp1:PROCESS(clk1)BEGIN IF(clk1EVENT AND clk1=1)THEN IF(cnt=7)THEN cnt=0; ELSE cntrow=01111111;colrow=10111111;colrow=11011111;colrow=11101111;colrow=11110111;colrow=11111011;colrow=11

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1