




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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;ddjfbz0 or q03) then ddjfbz=1; end if; end if; end if; ddsj(7 downto 4)=q1;dd
15、sj(3 downto 0)0); sout:=(others=0); for i in 0 to 1 loop -0-1的循环 sa(i) := (0 & ain(i*4+3 downto i*4)+(0 & bin(i*4+3 downto i*4)+(0000 & ci(i); if (sa(i)(4)=1) or (sa(i)(3 downto 0)9) then sb(i) := sa(i) + 00110; else sb(i) := sa(i); end if; ci(i+1) := sb(i)(4); sout(i*4+4 downto i*4):=sb(i); end loo
16、p; return sout;end function bcd_add8;end;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use work.packexp1.all;entity jf is port( ss:in std_logic; -开始/停止信号,低电平停止,高电平开始 dn:in std_logic; -白天黑夜控制,高电平夜间,低电平白天 lc:in std_logic_vector(7 downto 0); - 路程 ddsj:in std_logic_vector(7 do
17、wnto 0); -等待时间 lcjfbz:in std_logic; -路程计费标志 ddjfbz:in std_logic; -等待计费标志,高电平时等待开始计费,低电平不计费 fy:out std_logic_vector(7 downto 0); -总费用end entity jf;architecture one of jf is begin - 讨论白天/黑夜?路程计费?等待计费? process(ss,dn,lc,ddsj,ddjfbz,lcjfbz) variable fy1 :std_logic_vector(11 downto 0); begin if ss=0 then
18、fy1:=000000000000; elsif dn=0 then -白天时 if lcjfbz=0 then -起始价 fy1(11 downto 4):=(others=0); -9 fy1(3 downto 0):=1001; else -加收路程费 fy1:=bcd_add8(lc,lc); fy1:=bcd_add8(fy1,lc); -多一个脉冲加收3,则变成lc*3 end if; elsif lcjfbz=0 then -起始价 fy1(11 downto 5):=(others=0); fy1(4 downto 0):=10010; -12 else fy1:=bcd_ad
19、d8(lc,lc); fy1:=bcd_add8(fy1,lc); fy1:=bcd_add8(fy1,lc); -每一个脉冲加收4,则变成lc*4 end if; if dn=0 then -白天时 if ddjfbz=0 then -未到等待收费时间 fy1:=fy1; -不加收 else -加收路程费 fy1:=bcd_add8(fy1,ddsj); fy1:=bcd_add8(fy1,ddsj); -一超过等待收费时间,就立即加收等待时的每个脉冲加2 end if; elsif ddjfbz=0 then -未到等待收费时间 fy1:=fy1; -不加收 else -加收路程费 fy1
20、:=bcd_add8(fy1,ddsj); -一超过等待收费时间,就立即加收等待时的每个脉冲加1 end if; fydout1dout1dout1dout1dout1dout1dout1dout1dout1dout1dout1dout0dout0dout0dout0dout0dout0dout0dout0dout0dout0dout0=0000000;end case;end process;end one;4.5.3数码管显示模块的仿真结果:4.6控制模块:4.6.1控制模块的框图:控制模块用于对数码管里程、时间、费用显示的选择,起到位选的作用,实现了数码管动态显示,节省了芯片的资源。4.
21、6.2控制模块的vhdl程序:(1)sel1模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sel1 is port(clk1:in std_logic; s1:out std_logic_vector(1 downto 0);end sel1;architecture sel_arc of sel1 isbegin process(clk1) variable cnt:std_logic_vector(1 downto 0);begin if clk1event and clk
22、1=1 then if cnt=10 then cnt:=00; else cnt:=cnt+1; end if; end if;s1s2s2s2s2=zzz;end case;end process;end bbb_arc;4.6.3控制模块的仿真结果:(1)sel1模块(2)sel2模块从波形图可以看出当片选信号是00时,输出选择记程输出。当片选信号是01时,输出选择记费输出。当片选信号是10时,输出选择等到时间输出。5.顶层模块设计,仿真结果及分析各模块设计仿真实现后,可分别创建成元件符号。顶层就是将各分模块用vhdl语言或者是图形方法连接起来,便可实现系统电路。5.1顶层模块的vhdl
23、程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity czc isport(clk,wr,ss,dn:in std_logic; dnpd:out std_logic; shuc1,shuc0:out std_logic_vector(6 downto 0); weix:out std_logic_vector(2 downto 0);end entity czc;architecture one of czc iscompo
24、nent bzport(aj:in std_logic; bz:out std_logic);end component;component pulse port(clk0:in std_logic; fout:out std_logic);end component;component ddzt port(clk,ss:in std_logic; ddbz:in std_logic; ddjfbz:out std_logic; ddsj:out std_logic_vector(7 downto 0);end component;component jcport(clks,ss,wr:in
25、std_logic; lc:buffer std_logic_vector(7 downto 0);end component;component lcjfbzport(ss:in std_logic; lc:in std_logic_vector(7 downto 0); lcjfbz:out std_logic); end component;component jf port( ss:in std_logic; dn:in std_logic; lc:in std_logic_vector(7 downto 0); ddsj:in std_logic_vector(7 downto 0)
26、; lcjfbz:in std_logic; ddjfbz:in std_logic; fy:out std_logic_vector(7 downto 0); end component;component ymqport(din:in std_logic_vector(7 downto 0); dout1:out std_logic_vector(6 downto 0); dout0:out std_logic_vector(6 downto 0);end component;component xzscport(jc,jf,wt:in std_logic_vector(7 downto
27、0);sel:in std_logic_vector(1 downto 0);q:out std_logic_vector(7 downto 0);end component;component sel1port(clk1:in std_logic;s1:out std_logic_vector(1 downto 0);end component;component sel2port(sel2:in std_logic_vector(1 downto 0);s2:out std_logic_vector(2 downto 0);end component;signal a,b,c,d,e,f,
28、i,j,m,n:std_logic;signal x,y,z,w:std_logic_vector(7 downto 0);signal k:std_logic_vector(1 downto 0); begindnpddn,bz=a);u2:bz port map(aj=ss,bz=b);u3:bz port map(aj=wr,bz=c);u4:pulse port map(clk0=clk,fout=d);u5:pulse port map(clk0=d,fout=i);u6:pulse port map(clk0=i,fout=j);u7:pulse port map(clk0=j,f
29、out=m);u8:pulse port map(clk0=m,fout=n);u9:jc port map(clks=n,ss=b,wr=c,lc=z);u10:ddzt port map(clk=n,ss=b,ddbz=c,ddjfbz=f,ddsj=y);u11:lcjfbz port map(ss=b,lc=z,lcjfbz=e);u12:jf port map(ss=b,dn=a,lc=z,ddsj=y,lcjfbz=e,ddjfbz=f,fy=x);u13:xzsc port map(jf=x,jc=z,wt=y,sel=k,q=w);u14:sel1 port map(clk1=
30、j,s1=k);u15:sel2 port map(sel2=k,s2=weix);u16:ymq port map(din=w,dout1=shuc1,dout0=shuc0);end architecture one;5.2波形仿真5.3输入、输出信号说明输入:dn:day or night控制;ss:start or stop控制;wr:wait or run控制;clk:输入时钟信号,模拟时间和路程。输出:dnpb:用于判别白天还是黑夜的输出信号,接至发光二极管,白天不发光,黑夜的时候发光。fy1:费用的十位fy0:费用的个位ddsj1:等待时间的十位ddsj0:等待时间的个位lc1:路程的十位lc0:路程的个位5.4各个模块的软件连线图(见附录二)6硬件电路设计与安装图6.1硬件电路设计图(见附录三)6.2硬件电路的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安徽省铜陵市第五中学2025年物理高一第二学期期末综合测试试题含解析
- 2025年山东省德州市夏津一中物理高二第二学期期末质量检测试题含解析
- 福建省莆田七中2025届高一物理第二学期期末达标检测模拟试题含解析
- 宣传员培训课件
- 2025届福州第一中学物理高二第二学期期末考试试题含解析
- 2025版知识产权保护项目保证担保合同关键条款解读
- 二零二五年度幼儿园教室电动窗帘采购合同
- 2025版C型钢产业链上下游购销战略联盟合同
- 深圳市二零二五年度体育赛事场地租赁服务协议
- 2025版办公室租赁合同租赁合同解除条件与程序
- 20250617国金证券机器人行业研究垂直领域具身智能机器人的野望416mb
- 物理●湖北卷丨2024年湖北省普通高中学业水平选择性考试物理试卷及答案
- 干部履历表(中共中央组织部2015年制)
- GA/T 1555-2019法庭科学人身损害受伤人员后续诊疗项目评定技术规程
- 酶学(高级生化课件)
- 新人教版七年级上册初中生物全册课时练(课后作业设计)
- 仿制药生物等效性试验指导原则(日本)
- 一诺LZYN质量流量计使用说明书-2009版
- SJG 77-2020 房屋建筑工程造价文件分部分项和措施项目划分标准-高清现行
- 2022年部编版二年级语文下册期末试卷(及参考答案)
- 工程项目管理的四控、六管、一协调主要内容
评论
0/150
提交评论