EDA课程设计出租车计费器_第1页
EDA课程设计出租车计费器_第2页
EDA课程设计出租车计费器_第3页
EDA课程设计出租车计费器_第4页
EDA课程设计出租车计费器_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、 eda技术课程设计说明书 出租车计费器设计院 、 部: 电气与信息工程学院 学生姓名: 杨建雄 指导教师: 职称 专 业: 电气工程及其自动化 班 级: 电气本 1202班 完成时间: 2015年6月20日 摘 要本文介绍了一种采用单片fpga芯片进行出租车计费器的设计方法,主要阐述如何使用新兴的eda器件取代传统的电子设计方法,利用fpga的可编程性,简洁而又多变的设计方法,缩短了研发周期,同时使出租车计费器体积更小功能更强大。本设计实现了出租车计费器所需的一些基本功能,计费包括起步价、行车里程计费、等待时间计费,同时考虑到出租车行业的一些特殊性,更注重了把一些新的思路加入到设计中。主要包

2、括采用了fpga芯片,使用vhdl语言进行编程,使其具有了更强的移植性,更加利于产品升级。关键词:vhdl;计费器;quartus;fpga目 录设计要求11、方案论证与对比11.1、方案一11.2、方案二21.3、方案对比与选择32、主要模块设计32.1、速度模块32.2、计程模块32.3、计时模块42.4、计费模块42.5、整体框图53、仿真结果53.1、速度模块仿真53.2计程模块仿真63.3计时模块仿真63.4 计费模块仿真73.5、整体仿真74、 整体电路图85、引脚锁定及测试86、致谢97、详细仪器清单10参考文献11附录12设计要求计费标准为武汉起步3元,车行3公里后为1.4元/

3、公里,当计费达到20元后,每公里加收50%的车费,车停止每3分钟增加0.7元。车费显示出来,有一位小数。1、方案论证与对比1.1、方案一运算控制器分频器时钟信号按键控制led状态显示七段译码器数码管显示计时信号计费信号序列计程信号3/8译码器分频模块控制计数模块显示模块如图1所示,方案一包含运算控制模块、分频器、显示模块这三大部分。图1 方案一系统框图运算控制器模块将其他两个进行连接,是本次设计的核心。它包含计程器、计时器、计价器,同时还有读取外部的拨码开关控制信号,提供当前显示信号与显示位选信号,从而周期性交替显示计价/计时信息、等时信息。计程器、计时器、计价器根据位选信号,输出相应数据的当

4、前选中数字,由顶层模块根据显示数据类型变换信号进行选择,传输给显示模块。实验箱的时钟信号为20mhz方波,由分频器分为10hz的计时信号(一个周期代表现实中的1s)、10hz的计程信号(一个周期代表现实中的10m)、500hz的数码管扫描信号(扫描频率62.5hz)、0.2hz的显示数据类型变换信号(变化周期5s)。显示模块由实验箱上的3/8译码器、五个led灯构成状态的指示灯、程序编写的一个七段数码管译码器(因显示需要,原有字形“e”征用改为“”,字形f改为“ ”)组成。1.2、方案二方案二流程介绍:分析系统设计要求不难得知,整个出租车计费系统按功能主要分为速度模块、计程模块、计时模块和计费

5、模块,其系统结构图如图2所示。图2 方案二系统结构图系统接收到reset信号后,总费用变为3元,同时其他计数器、寄存器等全部清零。系统接收到start信号后,首先把部分寄存器赋值,总费用不变,单价price寄存器通过对总费用的判断后赋为3元。其他寄存器和计数器等继续保持为0。速度模块:通过对速度信号sp的判断,决定变量kinside的值。kinside即是行进100m所需要的时钟周期数,然后每行进100m,则产生一个脉冲clkout。计程模块:由于一个clkout信号代表行进100m,故通过对clkout计数,可以获得共行进的距离kmcount。计时模块:在汽车启动后,当遇到顾客等人或红灯时,

6、出租车采用计时收费的方式。通过对速度信号sp的判断决定是否开始记录时间。当sp=0时,开始记录时间。当时间达到足够长时产生timecount脉冲,并重新计时。一个timecount脉冲相当于等待的时间达到了时间计费的长度。这里选择系统时钟频率为500hz,180s即计数值为9000。计费模块由两个进程组成。其中,一个进程根据条件对enable和price赋值:当记录的距离达到3公里后enable变为1,开始进行每公里收费,当总费用大于20元后,则单价price由原来的1.4元每公里变成2.1元每公里;第二个进程在每个时钟周期判断timeout和clkout的值。当其为1时,则在总费用上加上相应

7、的费用。1.3、方案对比与选择 方案一和方案二虽然基本上都能实现本次课程设计的要求,但方案一通过分频器分成的数个输入信号来进行出租车计费器的仿真,使系统变得复杂且对费用的计算不能达到课程设计对价格变化的要求。而方案二则通过一个速度模块和一个时间模块达到对速度和时间控制,从而使速度可调且实现等待计费。再通过计费模块的反馈使公里单价随总费用变化从而达到总体的要求。通过比较可知方案二简单明了且调节速度控制里程的变化快慢,易于控制显示,再结合实验室的设备。综合考虑,最终选择了方案二。2、主要模块设计2.1、速度模块速度模块首先根据start信号判断是否开始计费,然后根据输入的速度档位sp2.0的判断,

8、确定行驶100m所需要的时钟数,每前进100m,输出一个clkout信号。同时由cnt对clk进行计数,当cnt等于kinside时,把clkout信号置1,cnt清0。其模块框图如图3。图3 速度模块框图2.2、计程模块此模块主要用于记录行进的距离,其模块框图如图4所示。通过对clkout信号的计数,可以计算行驶的距离kmcount。一个clkout脉冲相当于行进100m所以只要记录clkout的脉冲数目即可确定共行进的距离。kmcount1为十分位,kmcount2为个位,kmcount3为十位,分别为十进制数。图4 计程模块框图2.3、计时模块速度模块主要用于计时收费,记录计程车速度为0

9、的时间(如等待红灯),其模块框图如图5所示。通过对sp信号的判断,当sp=0,开始记录时间。当时间达到足够长时,产生timecount脉冲,并重新计时。图5 计时模块框图2.4、计费模块计费模块如图6所示,可分为kmmoney1和kmmoney2两个进程。kmmoney1用于产生enable和price信号。当记录距离达到3km后,enable信号为1,开始进行每公里收费。当总费用大于20元后,单价price由原来的1.4元变成2.1元,用作计时收费。通过对sp信号的判断,当sp=0,开始记录时间。当时间达到足够长时,产生timecount脉冲,并重新计时。kmmoney2用于判断timeco

10、unt和clkout的值,当其为1时,总费用加1。最终输出为总费用。图6 计费模块框图2.5、整体框图从上述设计方案中我们可以大致得到出租车计费器的系统框图,如图7所示。其中clk为输入时钟脉冲,时钟上升沿有效;reset为复位信号,start为开始计费信号,stop为停止计费信号,均高电平有效;sp2.0表示出租车状态(停止或不同形式速度);kmcnt和count信号则分别输出出租车行驶的里程和花费。 图7 出租车计费器系统框图3、仿真结果3.1、速度模块仿真速度模块的仿真波形图如图8所示。该模块根据出租车所处的运行状态和不同的形式速度,对相应数目的时钟周期进行计数,车每行驶100m时输出信

11、号clkout输出高电平。图8 速度模块仿真波形图3.2计程模块仿真计程模块的仿真波形如图9所示。图中,当reset信号有效时,系统复位清零;否则,对输入信号clkout进行十进制计数。图9计程模块仿真波形图3.3计时模块仿真计时模块的仿真波形图如图10所示。预设9000个时钟周期为180s,对时钟周期进行计数,每计9000个时钟周期输出高电平,指示计时180秒。图10 计时模块仿真波形图3.4 计费模块仿真计费模块的仿真波形图如图11所示。当reset信号有效时,系统复位清零;否则,当计时计费信号timecount和计程计费信号clkout为高电平时,按照一定计费规则进行计费。图11计费模块

12、仿真功能图3.5、整体仿真 对电路整体进行仿真,得出如下仿真波形图12。图中,当复位信号reset为高电平时,系统所有寄存器、计数器都清零;当开始计费信号start信号有效时,计费器开始计费,根据出租车行驶的速度sp2.0的取值计算所用花费和行驶里程;当停止计费信号有效时,计费器停止工作。图12整体仿真图综上所述,本设计的出租车计费器完全符合系统设计的要求,实现了出租车计费器所需的各项基本功能。4、 整体电路图整体rtl电路如图13。硬件电路由cyclone电路板组成,clk为时钟周期信号,由试验箱产生,start/stop是启动停止按键电路,reset为自动清零电路。电源又ad-dc开关电源

13、供电。图13 整体rtl门电路5、引脚锁定及测试 如图14所示,对系统的各个引脚进行锁定,并在cyclone型可编程数字实现系统上实现了该控制。该数字实现系统分成两部分,一是fpga的下载板,它主要包括所使用的芯片、rs-232接头、接脚转换插槽等;另一部分是i/o实验板,它主要包括显示、脉冲输出等。出租车计费器的各部分利用数字实验系统所附的rs-232连接线将计算机中的vhdl代码设计的内容烧录到该实验系统的epc2c35f672c8芯片中进行测试,测试结果基本实现了总费用=起费用+(里程-3km)里程单价+等待时间等待单价的出租车计费模式。 图14各引脚锁定6、致谢对于此次课程设计,首先我

14、得诚挚的感谢我的指导老师,从设计、整改及论文的定稿过程中,自始至终都倾注着老师的心血。老师以严谨的治学之道、宽厚仁慈的胸怀、积极乐观的生活态度,兢兢业业的工作作风为我树立了学习的典范,他们的教诲与鞭策将激励我在学习和生活的道路上励精图治,开拓创新。他们渊博的知识、开阔的视野和敏锐的思维给了我深深的启迪。我真诚地谢谢老师们的指导和关怀。7、详细仪器清单名称型号数量计算机联想1quartus ii开发软件6.01eda/sopc实验开发系统gw48-pk21参考文献1 冯占岭.数字电压表及数字多用表检测技术.中国计量出版社.2003.2-472 altera公司.vdhl语言m.北京:清华大学出版

15、社.1998.91-1033 宋万杰,罗丰,吴顺君.cpld技术应用及其应用m.西安电子科技大学出版社.1999.56-624 张昌凡,龙永红,彭涛.可编程逻辑器件及vhdl设计技术.广州:华南工学院出版社,2001.68-925 江国强.eda技术与应用m.电子工业出版社.310-3126 潘松,黄继业.eda技术与vhdlm.清华大学出版社.220-2287 甘登岱,田富鹏,朱利娜.eda培训教程m.机械工业出版社.215-2208 邓元庆,关宇,徐志平.数字电路与逻辑设计m.电子工业出版社.189-1929 延明,张霖华.数字电路eda入门m.北京邮电大学出版社.195-200附录vhd

16、l程序1) speed模块library ieee; use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity speed isport( clk :in std_logic;reset:in std_logic;start:in std_logic;stop :in std_logic;sp :in std_logic_vector(2 downto 0);clkout:out std_logic);end speed;architecture rtl of speed isbeginprocess(clk,rese

17、t,start,stop,sp) type state_type is(s0,s1); variable s_state:state_type; variable cnt:integer range 0 to 28;variable kinside:integer range 0 to 30;begincase sp is when000=kinside:=0; when001=kinside:=28; when010=kinside:=24; when011=kinside:=20;when100=kinside:=16;when101=kinside:=12;when110=kinside

18、:=8;when111=kinside:=4;end case;if reset=1thens_state:=s0;elsif clkevent and clk=1thencase s_state iswhen s0=cnt:=0;clkoutclkout=0;if stop=1thens_state:=s0;elsif sp=000thens_state:=s1;elsif cnt=kinside thencnt:=0;clkoutwaittime:=0;timecountif sp=000thent_state:=t2;elsewaittime:=0;t_state:=t1;end if;

19、when t2=waittime:=waittime+1;timecount=0;if waittime=9000 thentimecount=1; waittime:=0;elsif stop=1thent_state:=t0;elsif sp=000thent_state:=t2;elsetimecount=0;t_state:=t1;end if;end case;end if;end process;end rtl;3) kilometers模块library ieee; use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.a

20、ll;entity kilometers isport(clkout,reset:in std_logic;kmcnt1:out std_logic_vector(3 downto 0);kmcnt2:out std_logic_vector(3 downto 0);kmcnt3:out std_logic_vector(3 downto 0);end kilometers;architecture rtl of kilometers isbeginprocess(clkout,reset)variablekm_reg:std_logic_vector(11 downto 0);beginif

21、 reset=1thenkm_reg:=000000000000;elsif clkoutevent and clkout=1thenif km_reg(3 downto 0)=1001thenkm_reg:=km_reg+0111;elsekm_reg(3 downto 0):=km_reg(3 downto 0)+0001;end if;end if;kmcnt1=km_reg(3 downto 0);kmcnt2=km_reg(7 downto 4);kmcnt3=001000000000thenprice=00100001;elseprice=0011)or(kmcnt3=0001)t

22、henenable=1;elseenable=0;end if;end process;kmmoney2:process(reset,clkout,clk,enable,price,kmcnt2)variable reg2:std_logic_vector(11 downto 0);variable clkout_cnt:integer range 0 to 10;beginifreset=1thencash1001thenreg2(7 downto 0):=reg2(7 downto 0)+00000111+00000110;if reg2(7 downto 4)1001thencash=r

23、eg2+000001100000;elsecash=reg2;end if;elsecash00001001thenreg2(7 downto 0):=reg2(7 downto 0)+00000110+price;if reg2(7 downto 4)1001thencash=reg2+000001100000;elsecash=reg2;end if;elsecash=reg2+price;end if;else-对时钟计数clkout_cnt:=clkout_cnt+1;end if;end if;end if;end process;count1=cash(3 downto 0);co

24、unt2=cash(7 downto 4); count3=cash(11 downto 8);end rtl;5) top模块library ieee;use ieee.std_logic_1164.all;entity top isport(clk :in std_logic;reset :in std_logic;start :in std_logic;stop :in std_logic;sp :in std_logic_vector(2 downto 0);kmcnt1:out std_logic_vector(3 downto 0);kmcnt2:out std_logic_vec

25、tor(3 downto 0);kmcnt3:out std_logic_vector(3 downto 0);count1:out std_logic_vector(3 downto 0);count2:out std_logic_vector(3 downto 0);count3:out std_logic_vector(3 downto 0);end top;architecture rtl of top iscomponent speed isport(clk :in std_logic;reset:in std_logic;start:in std_logic;stop :in st

26、d_logic;sp :in std_logic_vector(2 downto 0);clkout:out std_logic);end component speed;component times is port(clk :in std_logic;reset:in std_logic;start:in std_logic;stop :in std_logic;sp :in std_logic_vector(2 downto 0);timecount:out std_logic);end component times;component kilometers isport(clkout,reset:in std_logic;kmcnt1:out std_logic_vect

温馨提示

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

评论

0/150

提交评论