版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于VHDL 的出租车计费器的设计 目前以硬件描述语言(Verilog 或 VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flipflop)或者其他更加完整的记忆块。系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照
2、设计者而改变,所以FPGA可以完成所需要的逻辑功能。 本设计是一种采用FPGA芯片进行出租车计费器,主要分为分频模块、计量模块、计费模块、控制模块等模块,利用FPGA的可编程性,简洁又多变的设计方法,缩短了研发周期。主要采用了FPGA芯片,使用VHDL语言进行编程,使其具有了更强的移植性,更加利于产品的升级。 一、设计任务与要求(1)、能够实现计费功能费用的计算是按行驶里程收费,设出租车的起步价是5.00元,当里程小于3km里时,按起步价收费;当里程大于3km时每公里按1.3元计费。等待累计时间超过2min,按每分钟1.5元计费。所以总费用按下式计算:总费用=起步价+(里程-3km)*里程单价
3、+等候时间*等候单价(2)、能够实现显示功能l 显示汽车行驶里程:用四位数字显示,显示方式为“XXXX”,单价为km。计程范围为099km,计程分辨率为1km。l 显示等候时间:用两位数字显示分钟,显示方式为“XX”。计时范围为059min,计时分辨率为1min。l 显示总费用:用四位数字显示,显示方式为“XXX.X”,单位为元。计价范围为999.9元,计价分辨率为0.1元。二、设计原理根据设计要求,系统的输入信号clk,计价开始信号Start,等待信号Stop,里程脉冲信号fin。系统得输出信号有:总费用数cha0 cha3,行驶距离km0 km1,等待时间min0 min1 等。系统有两个
4、脉冲输入信号clk_750k、fin,其中clk_750k将根据设计要求分频成13hz、15hz和1hz分别作为公里计费和超时计费的脉冲。两个控制输入开关start、stop;控制过程为:start作为计费开始开关,当start为高电平时,系统开始根据输入的情况计费。当有乘客上车并开始行驶时,fin脉冲到来,进行行驶计费,此时的stop需要置为0;如需停车等待,就把stop变为高电平,并去除fin输入脉冲,进行等待计费;当乘客下车且不等待时,直接将start置为0,系统停止工作;价格开始归为起步价5.00元。整个设计由分频模块、计量模块、计费模块、控制模块等四个部分组成。其中计量模块是整个系统
5、实现里程计数和时间计数的重要部分;控制模块是实现不同计费方式的选择部分,根据所设计的使能端选择是根据里程计费还是根据等待时间计费;同时设计通过分频模块产生不同频率的脉冲信号来实现系统的计费。计量模块采用1HZ的驱动信号,计费模块采用13HZ、15HZ的驱动信号;计量模块每计数一次,计费模块就实现13次或者15次计数,即为实现计时时的1.5 元/min、计程时的1.3元/km的收费。组成框图如下所示:三、各个模块设计分析(2)分频模块由于试验箱上没有13hz和15hz的整数倍时钟信号,因此我们采用频率较大的750khz进行分频,以近似得到13HZ、15HZ和1HZ的时钟频率。本设计中通过以上三种
6、不同频率的脉冲信号实现在计程车在行驶、等待两种情况下的不同计费。模块元件如下:(2)计量模块计量模块主要完成计时和计程功能。计时部分:计算乘客的等待累积时间,当等待时间大于2min时,本模块中en1使能信号变为1;当clk1每来一个上升沿,计时器就自增1,计时器的量程为59min,满量程后自动归零。计程部分:计算乘客所行驶的公里数,当行驶里程大于3km时,本模块中en0使能信号变为1;当clk1每来一个上升沿,计程器就自增1,计程器的量程为99km,满量程后自动归零。元件框图为:计量模块仿真波形为:由波形可知,Start置1程序始终处于计费状态,当fin脉冲到来时k0和k1进入计程状态,且k0
7、每次满9就向k1进位,超过3km时en0就变为高电平;同理,当stop由0置为1时开始由计程进入等待状态,fin脉冲归为0里程计数停止,等待时间开始计时,m0每次满9就向m1进位,超过2min时en1就变为高电平。(3)控制模块本模块主要是通过计量模块产生的两个不同的输入使能信号en0、en1,对两个分频模块输出的13HZ、15HZ的脉冲进行选择输出的过程;本模块实现了双脉冲的二选一;最终目的为了计费模块中对行驶过程中不同的时段进行计价。模块元件如下:控制模块仿真波形如下:(4)计费模块 当计费信号Start一直处于高电平即计费状态时,本模块根据控制模块选择出的信号从而对不同单价的时段进行计费
8、。即行程在3km内,而且等待累积时间小于2min则为起步价5元;3km外以每公里按1.3远计费,等待累积时间超过2min则按每分钟1.5元计费。c0、c1、c2、c3分别表示费用的显示。模块元件为:计费模块仿真波形:由图可知当处于计费状态时,随着clk2的高电平的到来,计费起步价为5元。c0满9向c1进位,c1满9向c2产生进位,依次逐级进位,从而完成计费功能。(5)译码显示模块译码显示模块完成计价、计时和计程数据显示。计费数据送入译码显示模块进行译码,最后送至以百元、十元、元、角为单位对应的数码管上显示。计时数据送入译码显示模块进行译码,最后送至以分为单位对应的数码管上显示。计程数据送入译码
9、显示模块进行译码,最后送至以km为单位的数码管上显示。由于本次课程设计所用实验箱上自带数码管译码显示电路,因此不需再写译码程序,选定模式直接管脚锁定在对用的数码管上即可实现。(6)顶层模块,元件例化语句本模块用图形输入法实现出租车的计费器系统设计,将各个模块组合在一起。模块元件如下: 图形如下所示:程序最终功能实现仿真波形: 由图中可以看出,当fin脉冲信号到来时,实现了行驶计费,当行驶里程超过三公里,则再按每公里1.3元计费;当stop为高电平,即进入等待计时收费;当等待时间超过2min时,每过一分钟加1.5元,即为实现每等一分钟收费1.5元。但本次仿真中等待时间为1分钟,没有超过2分钟,因
10、此没有等待时间的计费。结果验证:出租车的起步价是5元,当行驶了33km的时候,收费为5+(33 3)*1.3=44元。四、硬件实现 在QuartusII软件中仿真成功,现在下载到试验箱上以验证其功能。实验中采用万用模式模式五,程序中各个端口锁定到试验箱上对应的管脚下载验证。最后得数码管显示计时、计程和计费数据如下: 以上可知等待时间为10分钟,行驶公里数为23公里。根据设计要求计算所得费用为:5+(23km-3km)*1.3元/km+(10min-2min)*1.5元/min=5+26+12=43元,与试验箱上所得结果相同,仿真下载成功。五、结束语课程设计是我们专业课程知识综合应用的实践训练,
11、着是我们迈向社会,从事职业工作前一个必不少的过程”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。六、参考文献曹昕燕、周凤臣、聂春燕,EDA技术实验与课程设计【M】,清华大学出版社刘欲晓、方强、黄宛宁,EDA技术与VHDL电路开发应用实践【M】,电子工业出版社。潘松、黄继业。EDA技术实用教程(第三版)【M】,科学出版社附录:源程序:分频源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARIT
12、H.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity fenpin2 isport ( clk_750k :in std_logic; -系统时钟 clk_13: buffer std_logic; -13分频 clk_15: buffer std_logic; -15分频 clk_1: buffer std_logic); -1分频end fenpin2;architecture rt1 of fenpin2 is signal q_13:integer range 0 to 28845; - 定义中间信号量 signal q_15:integer ran
13、ge 0 to 24999; signal q_1:integer range 0 to 374999; begin process(clk_750k) beginif (clk_750k'event and clk_750k='1' )then if q_13=28845 then q_13<=0;clk_13<=not clk_13; else q_13<=q_13+1; end if; -得13hz频率信号if q_15=24999 then q_15<=0;clk_15<=not clk_15; else q_15<=q_15
14、+1; end if; -得15hz频率信号if q_1=374999 then q_1<=0;clk_1<=not clk_15; else q_1<=q_1+1;end if; -得1hz频率信号 end if; end process;end rt1;计量源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity jiliang isport( start: in std_logic; -计费开始信号 fi
15、n: 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 issignal w:integer range 0 to 59; -计时范
16、围059 beginprocess(clk1)begin if clk1'event and clk1='1' then if start='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; else
17、 w<=w+1; end if; if m0="1001" then m0<="0000" if m1="0101" then m1<="0000" else m1<=m1+1; end if; else m0<=m0+1; end if; if stop='1' then en0<='0' if m1&m0>"00000010"then en1<='1' -若等待时间大于2min则en1置1
18、 else en1<='0' end if; end if; elsif fin='1' then -里程计数开始 if k0="1001" then k0<="0000" if k1="1001" then k1<="0000" -计程范围099 else k1<=k1+1; end if; else k0<=k0+1; end if; if stop='0' then en1<='0' if k1&k0&
19、gt;"00000011" then en0<='1' -若行驶里程大于3km则en0置1 else en0<='0' end if; end if; end if; end if;end process;end rt2;控制模块源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity kongzhi isport(en0,en1:in std_logic; -使能
20、选择信号 clk_in1:in std_logic; -13分频输入信号 clk_in2:in std_logic; -15分频输入信号 clk_out:out std_logic); -输出信号 end kongzhi;architecture rt3 of kongzhi isbeginprocess(ent0,ent1)begin if en0='1' then -实现二选一功能 clk_out<=clk_in1; elsif en1='1' then clk_out<=clk_in2; end if; end process;end rt3;计费模块源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity jifei isport(clk2:in std_logic; -计费驱动信号 start: i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大学教师辞职申请书合集五篇
- 中国人寿实习报告五篇
- 高中生社会实践报告集锦15篇
- 学生细节决定成败演讲稿汇编9篇
- 2023物业年度工作报告5篇
- 公司员工部门2022年度工作计划例文
- 时间主题演讲稿15篇
- 教科版小学四年级下册科学全册教案设计
- 住在茶园的诗句
- 入学报名住房合同(2篇)
- 八大浪费及IE七大手法培训
- 普通高校本科招生专业选考科目要求指引(通用版)
- 基坑工程监控方案
- 中考生物试验操作评分参考标准
- 国家开放大学电大本科《国际私法》期末试题及答案(n试卷号:1020)
- 四川省德阳市中学2023年高一物理上学期期末试卷含解析
- 空气、物表地面消毒登记记录
- 急性脑梗死诊治指南
- 检察院分级保护项目技术方案
- 土木工程建筑中混凝土裂缝的施工处理技术毕业论文
- 水电站工程地质勘察报告
评论
0/150
提交评论