电子技术基础课程设计-基于FPGA的出租车计费系统设计

上传人:ni****g 文档编号:475668249 上传时间:2023-09-10 格式:DOC 页数:22 大小:179.50KB
返回 下载 相关 举报
电子技术基础课程设计-基于FPGA的出租车计费系统设计_第1页
第1页 / 共22页
电子技术基础课程设计-基于FPGA的出租车计费系统设计_第2页
第2页 / 共22页
电子技术基础课程设计-基于FPGA的出租车计费系统设计_第3页
第3页 / 共22页
电子技术基础课程设计-基于FPGA的出租车计费系统设计_第4页
第4页 / 共22页
电子技术基础课程设计-基于FPGA的出租车计费系统设计_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《电子技术基础课程设计-基于FPGA的出租车计费系统设计》由会员分享,可在线阅读,更多相关《电子技术基础课程设计-基于FPGA的出租车计费系统设计(22页珍藏版)》请在金锄头文库上搜索。

1、 2013-2014学年度第二学期电子技术基础课程设计 -出租车计费系统设计全套设计加扣 3346389411或3012250582题目:基于FPGA的出租车计费系统设计专业:自动化班级:1104姓名: 学号: 指导老师: 2014年3月18日 目 录1. 引言22. 实验任务及要求23. 模块功能24. 设计说明35. 实验结果46. 一些问题和改进47. 心得与体会48. 附录 摘要介绍了出租车计费器系统的组成及工作原理,简述了在EDA平台上用FPGA器件构成该数字系统的设计思想和实现过程。论述了分频模块,速度获取模块,计费模块,进制转换模块,显示模块等的设计方法与技巧。 一、引言随着ED

2、A技术的高速发展,电子系统的设计技术发生了深刻的变化,大规模可编程逻辑器件CPLDFPGA的出现,给设计人员带来了诸多方便。利用它进行产品开发,不仅成本低、周期短、可靠性高,而且具有完全的知识产权。本文介绍了一个以Altera公司可编程逻辑芯片cyclone2系列的EP2C35F672C6的fpga芯片为控制核心、附加一定外围电路组成的出租车计费器系统。随着社会的不断进步,人们生活水平的不断提高,出租车逐渐成为人们日常生活不可缺少的交通工具。而计价器作为出租车的一个重要组成部分,关系着出租车司机和乘客双方利益,起着重要的作用,因而出租车计价器的发展非常迅猛二、实验任务及要求1. 能实现计费功能

3、,计费标准为:按行驶里程收费,起步费为10.00元,并在车行3公里后再按2元/公里,车起启动后停止等待时为每分钟1元(程序中为显示功能,设置为每10秒1元)。2. 实现预置功能:能预置起步费、每公里收费、车行等待时间、总费用。3. 实现模拟功能:能模拟汽车启动、停止、暂停、等状态。4. 设计动态扫描电路:将车费显示出来,一共三位5. 用Verilog语言设计符合上述功能要求的出租车计费器,并用层次化设计方法设计该电路。6. 各计数器的计数状态用功能仿真的方法验证,并通过有关波形确认电路设计是否正确。7. 完成电路全部设计后,通过系统实验箱下载验证设计的正确性。 三、模块功能 计费器按里程收费,

4、每100米开始一次计费。各模块功能如下: (1)里程动态显示模块其包括计数车速控制模块发出的脉冲以及将计数显示动态显示出来,每来一 个脉冲里程值加0.1(控制器每发一个脉冲代表运行了0.1公里)。 (2) 计费动态显示模块其初值为10元,当里程超过3公里后才接受计数车速控制模块发出的脉冲的驱动,并且计数显示动态显示出来,每来一个脉冲(代表运行了0.5公里)其数值加2元,等待时每分钟加1元。 (3)等待计时模块 车载行使后,若处于停滞状态,等待时每分钟收费1元。 (4)计费模块 计算车载行使和停止状态时的费用总和。 (5)显示模块 在DE0板数码管上显示以上模块。四:设计说明:实际设计共五个模块

5、,分别为分频模块(每一百米送一个脉冲以方便计数)、计算里程模块、等待计时模块、计费模块、显示模块。详细功能如下:l 分频模块:假设车轮每转一圈为2米,送一个脉冲,则需要50分频(共100米),同理,若知道车轮直径,即可算出分频比l 里程模块:每一百米记一次数,最大可以计999.9公里,精确到0.1公里。l 取整模块:现实中出租车的精确度为0.1公里,计算价格的时候不足一公里的按一公里算,所以加了这一个模块,输出的是计算价格时的里程数。l 计费模块:按行驶里程收费,起步费为10.00元(包括2元得燃油附加费),并在车行3公里后再按2元/公里,处于等待状态时每分钟收费1元。l 显示模块:通过动态扫

6、描显示车费和里程数,将十进制数转化为四位十进制数(如将9999转化为四个9)以方便显示。设计流程图如下50分频器里程计算模块计费模块计时模块显示模块脉冲输入流程说明:车轮每转一圈送一个脉冲波,假设每转一圈为2米,则经过50分频器后是每100米送一个脉冲到里程计算模块,里程计算模块可以精确到0.1公里,将计算的里程数送至取整模块进行判断,若小数部分不为零则整数部分加1,即不足一公里的部分按一公里计算,取整后的里程送至计费模块计费,同时和计算的费用用过显示模块进行转化和显示顶层原理图如下:时序仿真图引脚分配图五、实验结果:通过quartusII将文件下载到DE0板上,运行正常,与实验目的一致,可以

7、通过调整输入的脉冲频率来调整计费的速度。初始价格为10元,超过3公里每公里加收2元,等待时每分钟1元。六、一些问题和改进:总的来说本次试验是顺利的,过程中主要遇到了这几点问题:1、刚开始没有完全想好要用几个模块做,没画好流程图,所以模块数量显得有点多,许多模块显得有些不必要,如取整模块完全可以合并到计费模块中。2、对其中的管脚定义太过于随意,造成很大空间的浪费,而且在使用较早的芯片时出现管脚不足的现象,这和模块过多也有很大关系 。一些改进的想法:1、在本次设计中,模拟路程的脉冲必须通过拨动开关给脉冲,不能连续变化,应该改进。2、不能模拟语音3、显示部分可以扩展到VGA或者LCD上显示,效果会更

8、好。4、应该参照实际生活中的出租车功能,更加人性化的设计。七、 心得与体会课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,因此作为二十一世纪的大学来说掌握EDA的开发技术是十分重要的。回顾起此次电子课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够

9、的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不会调用顶层模块,不懂分配引脚,对verilog语言掌握得不好通过这次课程设计之后,一定把以前所学过的知识重新温故。 整个设计通过了软件和硬件上的调试。我想这对于自己以后的学习和工作都会有很大的帮助。在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的

10、还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。对于教材管理系统,其程序是比较简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子模块才是关键的问题所在,这需要对系统的结构很熟悉。因此可以说系统的设计是软件和硬件的结合,二者是密不可分的。通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在

11、运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。附:参考书目1. 谢自美主编. 电子线路设计综合设计. 华中科技大学出版社,20062. 罗杰,谢自美主编. 电子线路设计.实验.测试(第4版).电子工业出版社,2008.43. 罗杰主编. Verilog HDL与数字ASIC设计基础. 华中科技大学出版社,2008.34. FPGA与SOPC设计教程-DE2实践,张志刚编著,西安电子科技大学出版社,2007.45. 夏宇闻. Verilog数字系统设计教程. 北京航空航天大学出版社程序清单1、module FDIV ( CLK, K);/分频器设计input CLK ;outpu

12、t K ;reg12:0 count ;reg M1 ;parameter ratio=50 ;/定义分频比为50always (posedge CLK)beginif (count=ratio-1) count=0 ;else count= count+1 ;if (count=0)M1 = M1; else if (count=ratio/2)M1 = M1 ;endassign K=M1 ;endmodule 2、module Mileage(clk,start,reset,number,distansl,distansh,distans_enable);/里程模块input clk,s

13、tart,reset,number;/输入信号output distansl,distansh,distans_enable;/里程高低位及使能端reg distans_enable;reg3:0 distansl,distansh;always(posedge clk)beginif(reset)begin /进位逻辑判断distansl=0;distansh=0;distans_enable=0;endelse if(start)beginif(number)beginif(distansl=9)begindistansl=0;if(distansh=9)begindistansh=0;endelse distansh=distansh+1;endelse distansl=distansl+1;endendif(!(distansl=2&distansh=0)begindistans_enable=1;endendendmodule3、modul

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

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号