课程设计论文基于FPGA的出租车计价器设计

上传人:re****.1 文档编号:469536226 上传时间:2022-09-29 格式:DOC 页数:19 大小:331.50KB
返回 下载 相关 举报
课程设计论文基于FPGA的出租车计价器设计_第1页
第1页 / 共19页
课程设计论文基于FPGA的出租车计价器设计_第2页
第2页 / 共19页
课程设计论文基于FPGA的出租车计价器设计_第3页
第3页 / 共19页
课程设计论文基于FPGA的出租车计价器设计_第4页
第4页 / 共19页
课程设计论文基于FPGA的出租车计价器设计_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《课程设计论文基于FPGA的出租车计价器设计》由会员分享,可在线阅读,更多相关《课程设计论文基于FPGA的出租车计价器设计(19页珍藏版)》请在金锄头文库上搜索。

1、基于FPGA的出租车计价器设计摘要介绍了出租车计费器系统的组成及工作原理,简述了在EDA平台上用FPGA器件构成该数字系统的设计思想和实现过程。论述了计程模块,计费模块,计时模块,译码动态扫描模块等的设计方法与技巧。 1引言随着EDA技术的高速发展,电子系统的设计技术发生了深刻的变化,大规模可编程逻辑器件CPLDFPGA的出现,给设计人员带来了诸多方便。利用它进行产品开发,不仅成本低、周期短、可靠性高,而且具有完全的知识产权。本文介绍了一个以Altera公司可编程逻辑芯片cyclone2系列的EP2C5T144C8的FPGA芯片为控制核心、附加一定外围电路组成的出租车计费器系统。随着社会的不断

2、进步,人们生活水平的不断提高,出租车逐渐成为人们日常生活不可缺少的交通工具。而计价器作为出租车的一个重要组成部分,关系着出租车司机和乘客双方利益,起着重要的作用,因而出租车计价器的发展非常迅猛。2出租车计费系统的实验任务及要求2.1技术要求(1)掌握较复杂逻辑的设计、调试。(2)进一步掌握用VHDL语言设计数字逻辑电路。(3)掌握用Max+pulsII软件的原理图输入的设计方法。2.2功能要求基本功能:(1)按行驶里程收费,起步价为9.00元,并在车行3公里后再按3元/公里计算车费。(2)实现模拟功能:能模拟汽车启动、停止。(3)设计动态扫描电路:将车费、里程、等待时间动态的显示出来。(4)用

3、VHDL语言设计符合上述功能要求的出租车计费器,并用层次化设计方法设计该电路。(5)各计数器的计数状态用功能仿真的方法验证,并通过有关波形确认电路设计是否正确。附加功能:(1)增加了晚上计费功能和等待功能。晚上起步价为12.00元,并在车行3公里后再按4元/公里计算车费。车白天停止超过三分钟后按1元/分钟计算,晚上超过3分钟按2元/分钟计算。(2)实现预置功能:能预置起步费、每公里收费、等待加费时间。(3)实现模拟功能:白天、黑夜;等待、行驶状态。(4)设计超过三公里提醒功能。2.3本人任务本人负责软件部分。2.4任务书(附录一)3.方案设计及原理框图3.1硬件方案设计及原理框图硬件系统组成框

4、图开关电路FPGA模块动态显示电路各模块的作用和组成:(1)开关模块该模块的作用是用于电路的输入的信号。主要有三个开关以及三个限流电阻,电源构成。(3)动态显示模块:此模块由六个数码管和三个二极管所构成,17个200电阻起到限制电流的作用,使得流到数码管的电流适当,防止数码管中的电流过大,而使得数码管损坏。数码管将计费、等待时间和里程动态的显示出来。3.2软件方案设计及原理框图3.2.1系统的顶层框图及方案设计:动态显示模块控制芯片信号输入 信号输入:各种控制信号经输入端给控制芯片。控制芯片:采用的有CPLD或者FPGA等。动态显示电路:采用的是数码管来实现功能的输出。3.2.2 FPGA内部

5、具体框图及方案设计:出租车的一般计费过程为:出租车载客后,启动计费器,整个系统开始运行,里程计数器从0开始计数,费用计数器从9开始计算;出租车载客中途等待,等待时间计数器从0开始计数。最后根据行驶里程或停止等待的时间的计费标准计费。出租车到达目的地停止后,停止计费器,显示总费用。根据出租车计费器的工作过程,本系统采用分层次、分模块的方式设计,其FPGA内部具体框图如下所示。输入信号分频器车费计数模块车行驶状态译码模块输出控制模块里程计数模块各模块的功能:(1)由FPGA晶振电路产生50MHz时钟信号并输入。(2)分频器:将时钟信号进行分频。(3)标志模块:将按钮产生的脉冲转化为一种标志信号。(

6、4)计程模块:在等待信号未作用时,来一个时钟脉冲信号,里程值加1。该模块还包含一个路程计费标志的小模块,输出一个路程计费的信号。(5)等待状态模块:等待信号作用时,该模块可以记录等待的时间,并产生等待计费的信号。(6)车费计数模块:按行驶里程收费,分为白天和黑夜。白天收费标准:起步费为12.00元,超过3公里按4元/公里,车暂停超过三分钟按2元/分钟计算。黑夜收费标准:起步费为15.00元,超过3公里按5元/公里,车暂停超过三分钟按1元/分钟计算。(7)输出控制模块:分时输出里程、等待时间、费用三个信号,实现动态显示功能。(8)译码模块:实现将车费计数模块、等待状态模块和里程计数模块输出的BC

7、D码转换成七段码输出。4.各单元模块设计,仿真结果及分析本系统采用层次化、模块化的设计方法,设计顺序为自下向上。首先实现系统框图中的各子模块,然后由顶层模块调用各子模块来完成整个系统。4.1分频模块:4.1.1分频模块的框图图3.1.1分频器的实体图此模块的功能是对总的时钟进行分频,总的时钟是50M。计数分频器使用五个这样基本的分频器(35分频)组合而成,控制模块分频器使用三个这样基本的分频器(35分频)组合而成。4.1.2分频模块的VHDL程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;EN

8、TITY PULSE IS PORT(CLK0:IN STD_LOGIC; FOUT:OUT STD_LOGIC);END PULSE;ARCHITECTURE ONE OF PULSE ISBEGIN PROCESS(CLK0) VARIABLE CNT:STD_LOGIC_VECTOR(2 DOWNTO 0); VARIABLE FULL :STD_LOGIC; BEGIN IF CLK0EVENT AND CLK0=1 THEN IF CNT=100 THEN CNT:=000 ; FULL:=1; ELSE CNT:=CNT+1; FULL:=0; END IF; END IF;FOU

9、T=FULL;END PROCESS;END ONE;4.1.3仿真的结果从该波形图可以看出输入脉冲的频率是输出脉冲的频率的35倍。4.2计程模块:4.2.1计程模块的框图:此模块的功能是计算出租车行驶的路程。在出租车启动并行驶的过程中(开始/结束信号SS为1,行驶/等待信号WR为1),当时钟clks是上升沿的时候,系统即对路程计数器JC的里程计数器进行加计数,当路程超过三公里时,系统将输出标志正脉冲LCJFBZ。4.2.2计程模块的VHDL程序(1) 计程程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigne

10、d.all;entity JC is port(clks,SS,WR:in std_logic; LC:BUFFER std_logic_vector(7 downto 0); end entity JC;architecture one of JC is SIGNAL Q1,Q0:std_logic_vector(3 downto 0);beginprocess(clks,SS,WR,LC) VARIABLE SW:STD_LOGIC_VECTOR(1 DOWNTO 0); begin SW:=SS≀ IF SW=00 OR SW=01 THEN Q1=0000;Q0=0000; EL

11、SIF SW=11 THEN Q1=Q1;Q0=Q0; ELSIF CLKSEVENT AND CLKS=1 THEN IF Q1=9 AND Q0=9 THEN Q1=0000;Q0=0000; ELSIF Q0=9 THEN Q1=Q1+1;Q0=0000; ELSE Q1=Q1;Q0=Q0+1; END IF; END IF;END PROCESS;(2) 计程标志程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity LCJFBZ is port(SS:in std_logic;

12、 -SS开始/复位信号, LC:IN STD_LOGIC_VECTOR(7 DOWNTO 0); LCJFBZ:OUT std_logic); end entity LCJFBZ;architecture TWO of LCJFBZ is BEGIN PROCESS(SS,LC) BEGIN IF SS=0 OR (LC(7 DOWNTO 4)=0000 AND LC(3 DOWNTO 0)4) THEN LCJFBZ=0; ELSE LCJFBZ=1; END IF; END PROCESS;END TWO;4.2.3计程模块仿真结果:从波形图可以看出在时钟的控制下当SS为低电平的时候LC为

13、零,当SS为高电平且WR为高电平的时候LC开始计数,当计到大于三的时候输出了LCJFBZ为高电平。4.3计时模块:4.3.1计时模块的框图:此模块用于计算停车等待的时间。在出租车行进中,如果车辆停止等待,计数器则在信号clk的上升沿进行加计数,当累计等待时间超过2(不包括2分钟)分钟时,输出标志DDJFBZ正脉冲信号。4.3.2计时模块的VHDL程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DDZT IS PORT(CLK,SS:IN STD_LOGIC; DDBZ:IN S

14、TD_LOGIC; DDJFBZ:OUT STD_LOGIC; DDSJ:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ENTITY DDZT;ARCHITECTURE ONE OF DDZT ISBEGIN PROCESS(CLK,SS,DDBZ) VARIABLE Q1,Q0: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF SS=0 THEN Q1:=0000;Q0:=0000;DDJFBZ=0; ELSIF DDBZ=1 THEN IF CLK=1 AND CLKEVENT THEN IF Q1=9 AND Q0=9 THEN Q1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号