基于FPGA的出租车计费系统设计_第1页
基于FPGA的出租车计费系统设计_第2页
基于FPGA的出租车计费系统设计_第3页
基于FPGA的出租车计费系统设计_第4页
基于FPGA的出租车计费系统设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、专业设计 集成电路专业设计题目:基于FPGA设计的出租车计费系统学 院:电子信息工程学院专 业:集成电路设计与集成系统姓 名:某班 级:学 号:指导老师: 日 期: 年 月 日目 录前言1 设计任务与要求.32 设计原理43 设计步骤54 程序仿真波形125 硬件实现126 设计总结.137 参考文献13 前言随着出租车行业的发展,对出租车计费器的要求也越来越高。二十世纪后半期,随着集成电路和计算机技术的飞速发展,数字系统也得到了飞速发展,其实现方法经历了由分立元件、SSI、MSI到LSI、VLSI以及UVLSI的过程。同时为了提高系统的可靠性与通用性,微处理器和专业集成电路(ASIC)逐渐取

2、代了通用全硬件LSI电路,而ASIC以其体积小、重量轻、功耗低、速度快、成本低、保密性好而脱颖而出。目前,业界大量可编程逻辑器件(PLD),尤其是现场可编程逻辑器件(FPLD)被大量地应用在ASIC的制作当中。在可编程集成电路的开发过程中,以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术最新成果的电子设计自动化(EDA)技术主要能辅助进行三方面的设计工作:IC设计,电子电路设计以及PCB设计理想的可编程逻辑开发系统能符合大量的设计要求:它能够支持不同结构的器件,在多种平台运行,提供易于使用的界面,并且有广泛的特征。此外,一个设计系统应该能给设计师提供充分自由的设计输入方法和设计工

3、具选择。Altered公司开发的MAX+PLUS开发系统能充分满足可编程逻辑设计所有要求。 MAX+PLUS设计环境所提供的灵活性和高效性是无可比拟的。其丰富的图形界面,辅之以完整的、可及时访问的在线文档,使设计人员能够轻松、愉快地掌握和使用MAX+PLUS软件。编程器是一种专门用于对可编程器(如EPROM,EEPROM,GAL,CPLD,PAL等)进行编程的专业设备PLD器件的逻辑功能描述一般分为原理图描述和硬件描述语言描述,原理图描述是一种直观简便的方法,它可以将现有的小规模集成电路实现的功能直接用PLD器件来实现,而不必去将现有的电路用语言来描述,但电路图描述方法无法做到简练;硬件描述语

4、言描述是可编程器件设计的另一种描述方法,语言描述可能精确和简练地表示电路的逻辑功能,现在PLD的设计过程中广泛使用。常用的硬件描述语言有ABEL,VHDL语言等,其中ABEL是一种简单的硬件描述语言,其支持布尔方程、真值表、状态机等逻辑描述,适用于计数器、译码器、运算电路、比较器等逻辑功能的描述;VHDL语言是一种行为描述语言,其编程结构类似于计算机中的C语言,在描述复杂逻辑设计时,非常简洁,具有很强的逻辑描述和仿真能力,是未来硬件设计语言的主流。VHDL就是超高速集成电路硬件描述语言。覆盖面广,描述能力强,是一个多层次的硬件描述语言。在VHDL语言中,设计的原始描述可以非常简练,经过层层加强

5、后,最终可成为直接付诸生产的电路或版图参数描述。具有良好的可读性,即容易被计算机接受,也容易被读者理解。使用期长,不会因工艺变化而使描述过时。因为VHDL的硬件描述与工艺无关,当工艺改变时,只需修改相应程序中的属性参数即可。支持大规模设计的分解和已有设计的再利用。一个大规模的设计不可能由一个人独立完成,必须由多人共同承担,VHDL为设计的分解和设计的再利用提供了有力的支持。基于FPGA设计的出租车计费系统VHDL 是一种应用广泛的硬件描述语言 ,可用于从算法级、 门级到开关级的多种抽象层次的数字系统设计.设计者可以通过它编写代码 ,然后通过模拟器仿真验证其功能 ,再通过选定工艺库 ,确定约束条

6、件 ,完成逻辑综合与逻辑优化成门级电路 ,最后通过下载到相应的可编程逻辑器件(如 FPGA)中来实现一个设计.由于本设计采用的可编程器件是 AL TERA公司的 FL EX10K 系列 FPGA ( EPF10K10LC8424) ,所以相应的采用了 MAXPLUSII 软件. 此软件具有完全集成化和易学易用的可视化设计环境 ,并具有符合工业标准的 EDA 工具接口 ,能在各种平台上运行. 它支持 VHDL、 VHDL、AHDL (AL TERA HDL)等硬件描述语言.本文主要研究的是采用 FPGA 和 VHDL 语言 ,运用自上而下的设计( Top2down) (如下图)思想设计出租车计费

7、器的问题.讨论中也涉及到了 EPF10K10LC8424) 可编程器件应用和LED数码管动态显示的设计问题系统设计功能级描述功能仿真门级描述时序仿真图 自上向下的设计一、设计任务与要求(1)、能够实现计费功能费用的计算是按行驶里程收费,设出租车的起步价是5.00元,当里程小于3km里时,按起步价收费;当里程大于3km时每公里按1.3元计费。等待累计时间超过2min,按每分钟1.5元计费。所以总费用按下式计算:总费用=起步价+(里程-3km)*里程单价+等候时间*等候单价(2)、能够实现显示功能l 显示汽车行驶里程:用四位数字显示,显示方式为“XXXX”,单价为km。计程范围为099km,计程分

8、辨率为1km。l 显示等候时间:用两位数字显示分钟,显示方式为“XX”。计时范围为059min,计时分辨率为1min。l 显示总费用:用四位数字显示,显示方式为“XXX.X”,单位为元。计价范围为999.9元,计价分辨率为0.1元。二、设计原理根据设计要求,系统的输入信号CLK,计价开始信号START,等待信号STOP,里程脉冲信号FIN。系统得输出信号有:总费用数CHA0 CHA3,行驶距离KM0 KM1,等待时间MIN0 MIN1 等。系统的元件框图如下:系统有两个脉冲输入信号clk_195、fin,两个控制输入开关start、stop;控制过程为:start作为计费开始开关,当start

9、为高电平时,系统开始根据输入的情况计费。当有乘客上车并开始行驶时,fin脉冲到来,进行行驶计费,此时的stop需要置为0;如需停车等待,就把stop变为高电平,并去除fin输入脉冲,进行等待计费;当乘客下车且不等待时,直接将start置为0,系统停止工作;系统由分频模块、控制模块、计量模块和计费模块四部分组成。计量模块是整个系统实现里程计数和时间计数的重要部分;控制模块是实现不同计费方式的选择部分;设计通过分频模块产生不同频率的脉冲信号来实现系统的计费。计量模块采用1HZ的驱动信号,计费模块采用13HZ、15HZ的驱动信号;计量模块每计数一次,计费模块就实现13次或者15次计数,即为实现计时时

10、的1.5 元/min、计程时的1.3元/km的收费;系统总体顶层框图为:三、设计步骤 (一)、分频模块 分频模块是对系统时钟频率进行分频,分别得到15HZ、13HZ、1HZ三种频率;本设计中通过三种不同频率的脉冲信号实现在计程车在行驶、等待两种情况下的不同计费。原理框图如下: 源程序如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity fenpin2 isport ( clk_195 :in std_logic; ;频率为19

11、5HZ的时钟 clk_13: out std_logic; ;频率为13HZ的时钟 clk_15: out std_logic; ;频率为15HZ的时钟 clk_1: out std_logic); ;频率为1HZ的时钟end fenpin2;architecture rt1 of fenpin2 is signal q_13:integer range 0 to 12; ;分频器 signal q_15:integer range 0 to 14; ;分频器 signal q_1:integer range 0 to 194; ;分频器 begin process(clk_195) begi

12、nif (clk_195event and clk_195=1 )then if q_13=12 then q_13=0;clk_13=1; ;此处产生13HZ频率的信号 else q_13=q_13+1;clk_13=0; end if;if q_15=14 then q_15=0;clk_15=1; ;此处产生15HZ频率的信号 else q_15=q_15+1;clk_15=0; end if;if q_1=194 then q_1=0;clk_1=1; ;此处产生1HZ频率的信号 else q_1=q_1+1;clk_1=0;end if; end if; end process;en

13、d rt1;分频模块的仿真波形图为:注:有图中的周期时间可以看出,三种输出的信号脉冲对应的频率比实现了1:13:15;(二)、计量模块 本模块实现对于出租车在行驶和等待过程中的继承和计时功能;当行驶里程大于3KM时,本模块中en0信号变为1;当等待时间大于2min时,本模块中en1信号变为1;clk1每来一个上升沿,计量模块实现一次计数,里程数或者等待时间加1;元件框图为:源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;enti

14、ty jiliang isport( s: in std_logic; ;计量开始信号 fin: 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

15、 issignal w:integer range 0 to 59; ;秒计数器beginprocess(clk1)begin if clk1event and clk1=1 then ;本语句实现clk1对计量模块的驱动 if s=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; if m0=1001 then m0=0000; if m1=0101 then m1=0000; else m1=m1+1; end if; else m000

16、000001then en1=1; ;等待时间大于2min输出使能 else en1=0; 信号en1 end if; else w=w+1;en1=0; end if; elsif fin=1 then ;行驶计程开始 if k0=1001 then k0=0000; if k1=1001 then k1=0000; else k1=k1+1; end if; else k000000010 then en0=1; ;行驶里程大于3KM输出使能 else en0=0; 信号en0 end if; else en1=0;en0=0; ;clk1不驱动,使能信号为0 end if; end if

17、;end process;end rt2;计量模块的仿真波形图为:注:由图可以看出,在fin脉冲到来时,k1、k0进行计数,en0在每进行一次加法计数时就输出一次高电平;当stop为高电平时,即为进入等待计时,m1、m0进行计数,en1在每进行一次计时计数的时候输出一个高电平;(三)、计费模块 本模块根据输入的clk2信号变化,调节费用的计数,c0、c1、c2、c3分别表示费用的显示。原理框图为:源程序如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIG

18、NED.ALL;entity jifei isport(clk2:in std_logic; ;计费驱动信号 start: in std_logic; ;计费开始信号 c0,c1,c2,c3: buffer std_logic_vector(3 downto 0);end jifei;architecture rt3 of jifei isbeginprocess(clk2,start)begin if start=0 then c3=0000;c2=0000;c1=0101;c0=0000; elsif clk2event and clk2=1 then if c0=1001 then c0

19、=0000; if c1=1001 then c1=0000; if c2=1001 then c2=0000; if c3=1001 then c3=0000; else c3=c3+1; end if; else c2=c2+1; end if; else c1=c1+1; end if; else c0=c0+1; ;完成计费功能 end if; end if;end process;end rt3; 计费模块仿真波形图为:注:由图中可以看出,随着clk2的高电平的到来,c3、c2、c1、c0逐级进行加法计数,当c0计数到九时,产生进位,c1加一;当c1计数到九时,产生进位,c2加一;当

20、c2计数到九时,产生进位,c3加一; 起步价为5元;(四)、控制模块 本模块主要是通过两个不同的输入使能信号,对两个输入脉冲进行选择输出;使能信号是计量模块中的输出,两个输入脉冲是分频模块输出的13HZ、15HZ的脉冲;本模块实现了双脉冲的二选一;原理框图为:源程序如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity kongzhi isport(ent0,ent1:in std_logic; ;输入的使能选择信号 clk_i

21、n1:in std_logic; ;输入脉冲 clk_in2:in std_logic; ;输入脉冲 clk_out:out std_logic); ;输出脉冲end kongzhi;architecture rt4 of kongzhi isbeginprocess(ent0,ent1)begin if ent0=1 then ;本语句实现对双脉冲的二选一 clk_out=clk_in1; elsif ent1=1 then clk_out=clk_in2; end if; end process;end rt4;控制模块的仿真波形图为:注:由图中可以看出,当ent0为高电平时,输出为这一时

22、段的clk_in1; 当ent1为高电平时,输出为这一时段的clk_in2;(五)、原件例化(总模块) 本模块用例化语句实现出租车的计费器系统设计, 将各个模块组合在一起;源程序如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity taxi isport ( clk_195 :in std_logic; ;195HZ的输入信号 start :in std_logic; ;计价开始信号 stop:in std_logic; ;等

23、待信号 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 component fenpin2 ;本语句实现对分频模块的例化 port(clk_195: in std_logic; clk_1

24、3: out std_logic; clk_15: out std_logic; clk_1 : out std_logic); end component; component jiliang ;本语句实现对计量模块的例化 port( s: in std_logic; fin: 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 do

25、wnto 0); end component; component jifei ;本语句实现对计费模块的例化 port(clk2:in std_logic; start: in std_logic; c0,c1,c2,c3: buffer std_logic_vector(3 downto 0); end component; component kongzhi ;本语句实现对控制模块的例化 port(ent0,ent1:in std_logic; clk_in1:in std_logic; clk_in2:in std_logic; clk_out:out std_logic); end c

26、omponent;signal tmp1,tmp2,tmp3,tmp4,tmp5,tmp6: std_logic; ;定义中间信号量begin u1: fenpin2 port map(clk_195,tmp1,tmp2,tmp3); u2: jiliang port map(start,fin,stop,tmp3,tmp4,tmp5,km1,km0,min1,min0); u3:kongzhi port map(tmp4,tmp5,tmp1,tmp2,tmp6); u4: jifei port map(tmp6,start,cha0,cha1,cha2,cha3);end behav;四、程序仿真波形注:由图中可以看出,当fin脉冲信号到来时,实现了行驶计费,当行驶里程超过三公里,则再按每公里1.3元计

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论