出租车计价器 .doc

上传人:豆**** 文档编号:17493294 上传时间:2022-05-24 格式:DOC 页数:17 大小:203.50KB
返回 下载 相关 举报
出租车计价器 .doc_第1页
第1页 / 共17页
出租车计价器 .doc_第2页
第2页 / 共17页
点击查看更多>>
资源描述

《出租车计价器 .doc》由会员分享,可在线阅读,更多相关《出租车计价器 .doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流出租车计价器 .精品文档.出租车计价器课程设计学生姓名: 专 业: 班 级: 学 号: 初始条件:本设计利用Quartus软件编写VHDL代码,运用EDA实验板上的FPGA、数码管、点阵模块、按键、拨码开关等硬件资源,实现简易的出租车计价器的相关功能。要求完成的主要任务: 1 课程设计工作量:4次课。2 技术要求:(一) 基本要求: 行驶公里: 用时钟 2 秒钟表示出租车匀速行驶 1 公里,在行车 5 公里以内,按起步价 13 元收费,超过 5 公里部分,以每公里 2 元收费。燃油附加费为每运次 1 元。途中等待:用按键控制中途等待,等待少于

2、(包括)5 秒不收费,超过 5 秒后每等待 3 秒钟加收 1 元。 用数码管分时显示计费金额、行驶里程和等候时间。字母 A 表示当前处于显示计费金额状态,字母 B 表示当前处于显示行驶里程状态,字母 C 表示当前处于显示等候时间状态。 用按键控制出租车空驶、载客状态并用点阵显示空驶、载客状态。(二) 提高要求: 用点阵滚动显示收费单据。 具有夜间模式,基本单价加收 20%的费用。出租汽车收费结算以元为单位,元以下四舍五入。 出租车行驶速度可调可控。 多人乘车,分段计价。 自拟其它功能。摘 要本文介绍了一种采用单片FPGA芯片进行出租车计费器的设计方法,主要阐述如何使用新兴的EDA器件取代传统的

3、电子设计方法,利用FPGA的可编程性,简洁而又多变的设计方法,缩短了研发周期,同时使出租车计费器体积更小功能更强大。本设计实现了出租车计费器所需的一些基本功能,计费包括起步价、行车里程计费、等待时间计费,同时考虑到出租车行业的一些特殊性,更注重了把一些新的思路加入到设计中。主要包括采用了FPGA芯片,使用VHDL语言进行编程,使其具有了更强的移植性,更加利于产品升级。关键词:VHDL;计费器;Quartus;FPGAAbstractThis paper describes the use of a single chip FPGA for the design of accounting-fe

4、e machine, mainly on how to use the emerging EDA electronic devices designed to replace traditional methods, using the programmable FPGA, concise and changing the design Ways to shorten the development cycle, so that taxi accounting-fee machine in a smaller more powerful. The design and implementati

5、on of the taxi accounting-fee machine for some basic functions, including billing starting price, driving metered, the waiting time billing, taking into account the special nature of some of the taxi industry, to pay more attention to a number of new Ideas into the design. Mainly including the use o

6、f the FPGA chip, the use of VHDL programming, so as to make it a stronger transplanted, and more conducive to product upgrades. Key words: VHDL, accounting-fee machine , Quartus , FPGA1. 绪论人类社会已经进入信息化时代,信息社会的发展离不开电子产品的进步。现代电子产品在性能提高、复杂度降低的同时,价格却一直呈下降趋势,而且产品更新换代的步伐也越来越快,实现这种进步的主要原因就是生产制造技术和电子设计技术的发展。

7、前者以微细加工技术为代表,目前已进展到深亚微米阶段,可以在几平方厘米的芯片上集成数万个晶体管;后者的核心就是EDA技术1。没有EDA技术的支持,想要完成超大规模集成电路的设计制造是不可想象的,反过来,生产制造技术的不断进步又必须对EDA技术提出新要求。EDA代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(VHDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件2。可编程逻辑器件自20世纪70年代以来,经历了PAL、GAL、CPL

8、D、FPGA几个发展阶段,其中CPLD、FPGA属高密度可编程逻辑器件,目前集成度以高达200万门/片,它将掩膜ASIC集成度高的优点和可编程逻辑器件设计生产方便的特点结合在一起,特别适合于样品研制和小批量产品开发,使产品能以最快的速度上市,而当市场扩大时,它可以和容易地转由ASIC实现,因此开发风险也大为降低。CPLD/FPGA器件已成为现代高层次电子设计方法的实现载体3。 VHDL是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流和行为3种描述形式的混合描述,因此VHDL几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程

9、都可以用VHDL来完成4。另外,VHDL还有以下优点:VHDL的宽范围描述能力使它成为高层次设计的核心,将设计人员的工作重心转移到了系统功能的实现和调试上,只需要花较少的精力用于物理实现;VHDL可以用简洁明确的代码描述来进行复杂控制逻辑的设计,灵活且方便,而且也便于设计结果的交流、保存和重用;VHDL的设计不依赖于特定的器件,方便了工艺的转换。VHDL是一个标准语言,为众多的EDA场上支持,因此移植性好5。2. 设计内容及要求2.1. 设计的目的及主要任务2.1.1. 设计的目的学会在Quartus环境中运用VHDL语言设计方法构建具有一定逻辑功能的模块,并能运用图形设计方法完成顶层原理图的

10、设计。掌握出租车自动计费器的主要功能与在FPGA中的实现方法。2.1.2. 设计任务及主要技术指标 设计一个出租车计价器。要求显示行驶里程、停车时间和计费值: 用时钟 2 秒钟表示出租车匀速行驶 1 公里,在行车 5 公里以内,按起步价 13 元收费,超过 5 公里部分,以每公里 2 元收费。燃油附加费为每运次 1 元。途中等待:用按键控制中途等待,等待少于(包括)5 秒不收费,超过 5 秒后每等待 3 秒钟加收 1 元。 运用Quartus软件中的仿真功能对所设计的出租车自动计费器的各个模块及顶层电路的功能进行仿真分析。 将所设计的整个系统写入FPGA器件中,加上需要的外围电路在实验箱上实现

11、整个系统的硬件搭建。2.2. 设计思想本次设计首先在Quartus环境中对出租车自动计费器的各个部分利用VHDL这一硬件描述语言予以设计,生成模块。主要有:运算控制模块、分频器、显示模块这三大部分组成。由顶层模块协调控制完成设计任务。3. 设计原理与仿真结果3.1. 设计原理及方法出租车自动计费器系统流程图本次设计首先在Quartus环境中对出租车自动计费器的各个部分利用VHDL这一硬件描述语言予以设计,进行仿真,然后编写顶层模块将各个模块连接,并对相互之间的信号进行必要处理,从而实现整机功能,最后在实验板上进行物理测试,寻找漏洞、调整参数,最终确定设计。3.2. 单元模块设计3.2.1. 分

12、频器模块设计程序代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY fenpinqi IS PORT( clk:IN STD_LOGIC; clk1,clk2,clk3:OUT STD_LOGIC);END fenpinqi;ARCHITECTURE behave OF fenpinqi IS SIGNAL temp1,temp2,temp3:STD_LOGIC;BEGIN p1:PROCESS(clk) variable count1:integer:=0; -2000HZ分频,

13、用于数码管扫描显示 BEGIN IF clkEVENT AND clk=1 THEN IF count1=12499 THEN count1:=0; temp1=not temp1; ELSE count1:=count1+1; END IF; clk1=temp1; END IF; END PROCESS p1; p2:process(clk) variable count2:integer:=0; BEGIN IF clkEVENT AND clk=1 THEN -1 Hz分频,用于等待时间计算 IF count2=24999999 THEN count2:=0; temp2=not te

14、mp2; ELSE count2:=count2+1; END IF; clk2=temp2; END IF; END PROCESS p2; p3:process(clk) variable count3:integer:=0; BEGIN IF clkEVENT AND clk=1 THEN -0.5Hz分频,用于里程计算 IF count3=49999999 THEN count3:=0; temp3=not temp3; ELSE count3:=count3+1; END IF; clk3=temp3; END IF; END PROCESS p3; END behave;模块儿实现

15、:仿真实现:3.2.2. 计价器模块设计程序代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY jijia IS PORT( clk2,clk3,rst:IN STD_LOGIC; btn1,btn2,btn3:IN STD_LOGIC; mile,pause,price:out integer range 0 to 99);end jijia;ARCHITECTURE behave OF jijia IS signal mile_out,pause_out,price_out:i

16、nteger range 0 to 99:=0; signal i:integer range 0 to 1; signal j:integer range 0 to 1;begin p1:PROCESS(rst,btn1,btn2,btn3) -中间变量赋值 begin if rst=0 then i=0; j=0; else if btn1event and btn1=1 then i=1; j=0; end if; if btn2=1 then i=0; j=1; end if; if btn3=1 then i=0; j=0; end if; end if; end process p

17、1;p2:process(rst,clk3,i) -计算里程 begin if rst=0 then mile_out=0; else if rst=1 then if clk3event and clk3=1 then if i=1 then mile_out=mile_out+1; end if; end if; end if; end if; mile=mile_out; end process p2;p3:process(rst,clk2,j) -计算等待时间 begin if rst=0 then pause_out=0; else if rst=1 then if clk2even

18、t and clk2=1 then if j=1 then pause_out=pause_out+1; end if; end if; end if; end if; pause=pause_out; end process p3;p4:process(rst,mile_out,pause_out) -总费用的结算 begin if rst=0 then price_out=0; end if; if rst=1 then if mile_out=5 and pause_out=5 then price_out5 and pause_out=5 then price_out=14+(mile

19、_out-5)*2; end if; if mile_out5 then price_out5 and pause_out5 then price_out=14+(mile_out-5)*2+(pause_out-5)/3; end if; end if; price=price_out; end process p4;end behave;模块儿实现:仿真实现:3.2.3. 显示模块设计程序代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity xianshi is port (cl

20、k1,rst:in std_logic; mile,price,pause:in integer range 0 to 99; smg:out std_logic_vector(6 downto 0); -数码管7段显示 cat:out std_logic_vector(5 downto 0); -数码管地址end xianshi;architecture behave of xianshi is signal l:integer range 0 to 5; -用于调整扫描显示的中间量begin p1:process(clk1,price,mile,pause) -数码管扫描显示 begin

21、if rst=0 then cat=111111; l=0; else if clk1event and clk1=1 then if l=5 then l=0; else lcatsmgsmgsmgsmgsmgsmgsmgsmgsmgsmgsmgcatsmgsmgsmgsmgsmgsmgsmgsmgsmgsmgsmgcatsmgsmgsmgsmgsmgsmgsmgsmgsmgsmgsmgcatsmgsmgsmgsmgsmgsmgsmgsmgsmgsmgsmgcatsmgsmgsmgsmgsmgsmgsmgsmgsmgsmgsmgcatsmgsmgsmgsmgsmgsmgsmgsmgsmgsm

22、gsmgcat=111111; end case; end if; end process p1;end behave;模块儿实现:仿真实现:3.2.4. 点阵模块设计程序代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY dianzhen IS PORT(clk1,rst:IN STD_LOGIC; rowout:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); colout:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END dianzh

23、en;ARCHITECTURE behave OF dianzhen ISSIGNAL row:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL col:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL cnt:INTEGER RANGE 0 TO 7;BEGINp1:PROCESS(clk1)BEGIN IF(clk1EVENT AND clk1=1)THEN IF(cnt=7)THEN cnt=0; ELSE cntrow=01111111;colrow=10111111;colrow=11011111;colrow=11101111;colro

24、w=11110111;colrow=11111011;colrow=11111101;colrow=11111110;colrow=01111111;colrow=10111111;colrow=11011111;colrow=11101111;colrow=11110111;colrow=11111011;colrow=11111101;colrow=11111110;col=00000000; END CASE; END IF;END PROCESS;rowout=row;colout=col;END behave; 模块儿实现:仿真实现:3.2.5. 运算控制模块TAXI设计模块儿实现:

25、4. 硬件调试在完成程序综合后,进行硬件调试之前,先要对芯片进行定义。具体操作如下:首先点击AssignmentsDevice,选择实验箱所用芯片型号EP1C3T144C8。点选Device and Pin Options。在这里选择Unused Pins选项卡,将Reserve all unused pins选为As input tri-stated。然后开始进行管脚设定,根据实验箱的资源配置设置如下:芯片管脚分配表再次进行综合,正确后就可将文件下载到芯片中。连接下载线,调整实验箱的跳线后,打开电源,经Quartus中的“PROGRAMMER”菜单,调出编程器窗口。按下编程器窗口中的“STA

26、RT”按钮,设计的内容就开始下载到FPGA芯片中。进行多组功能组合测试,显示结果符合设计要求,证明设计成功。5. 总结 出租车计费器系统的设计已全部完成,能按预期的效果进行模拟汽车启动、停止、暂停等功能,并设计动态扫描电路显示车费数目,由动态扫描电路来完成。车暂时停止不计费,车费保持不变。若停止则车费清零,等待下一次计费的开始。出租车计费器系统的设计已全部完成,能按预期的效果进行模拟汽车启动、停止、暂停等功能,并设计动态扫描电路显示车费数目,由动态扫描电路来完成。车暂时停止不计费,车费保持不变。若停止则车费清零,等待下一次计费的开始。各模块完成后,在将它们组合成完整的出租车系统,在设计过程中还

27、需要改进的是控制系统的纠错功能。出租车计费系统的设计中体现了覆盖面广,描述能力强,是一个多层次的硬件描述语言及PLD器件速度快,使用方便,便于修改等特点,本设计在实用方面具有一定的价值。6. 心得体会本次课程设计至此已经接近尾声,两周的时间虽然很短暂,但在这四次课的设计过程中收获颇丰。设计的核心内容就是Quartus环境中,利用VHDL语言设计出基于FPGA的出租车计费器。整个设计过程中首先对EDA(电子设计自动化)这门课程有了更深的了解,因为课程设计本身要求将以前所学的理论知识运用到实际的电路设计当中去,在电路的设计过程中,无形中便加深了对VHDL语言的了解及运用能力,对课本以及以前学过的知

28、识有了一个更好的总结与理解;以前的EDA实验只是针对某一个小的功能设计,而此次得EDA课程设计对我们的总体电路的设计的要求更严格,需要通过翻阅复习以前学过的知识确立了实验总体设计方案,然后逐步细化进行各模块的设计;其次,在电路仿真的过程中总会出现一些问题,需要我们细心解决,所以这两周下来,我对电路故障的排查能力有了很大的提高;再次,通过此次课程设计,我对设计所用到的软件有了更加深刻地了解,这对我们以后的工作和学习的帮助都很有用处。感谢学校给我们这次机会,锻炼了我们的动手能力。通过这次课设让我明白了理论和实际操作之间差距,而且也让我很明确得意识到自己在VHDL语言的语法理解上有很多的知识漏洞,以后应该多钻研一下。同时也感谢指导老师在设计过程中的辅导以及同学的帮助。7. 参考文献1潘松,黄继业EDA技术与VHDL北京:清华大学出版社,2007.12宋嘉玉,孙丽霞EDA实用技术北京:人民邮电出版社,2006.12 3齐洪喜,陆颖VHDL电路设计实用技术北京:清华大学出版社,2004.54刘艳萍,高振斌,李志军EDA实用技术及应用北京:国防工业出版社,2006.15章彬宏EDA应用技术北京:北京理工大学出版社,2007.7

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

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁