电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOC文档下载
分享到微信 分享到微博 分享到QQ空间

电子技术基础课程设计-基于FPGA的出租车计费器设计与实现

  • 资源ID:465244954       资源大小:577.50KB        全文页数:15页
  • 资源格式: DOC        下载积分:15金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要15金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

电子技术基础课程设计-基于FPGA的出租车计费器设计与实现

华中科技大学课程设计报告题 目: 基于FPGA的出租车计费器设计与实现 全套设计加扣 3346389411或3012250582 院 系: 自动化学院 专业班级: 自动化1104班 学生姓名: 2014年 3 月 16 日目 录一 课程设计任务及要求21.1 任务说明21.2 模块设计说明2二 课程设计报告要求3三 课程设计说明33.1 模块功能说明33.2 设计流程图43.3 顶层原理图4四、实验结果5五、总结和改进5 一 课程设计任务及要求1.1 任务说明1) 能实现计费功能,计费标准为:按行驶里程收费,起步费为5.00元,起步3公里内不计费,车行超过3公里后再按4元/公里收费,车停止不计费。2) 设计显示电路:将车费及行车里程显示出来。里程表每100米跳动一次,计费器按每100米计费一次。3) 实现预置功能:能预置起步费、每公里收费、车行加费里程。4) 实现模拟功能:能模拟汽车启动、停止、暂停、等状态,能模拟调节测速。5) 用Verilog HDL语言设计符合上述功能要求的出租车计费器,并用层次化设计方法设计该电路。6) 完成电路全部设计后,通过在DE0开发板上下载实验以验证设计的正确性。1.2 模块设计说明1) 车速控制模块当起停键为启动状态时(高电平),模块根据车速选择和基本车速发出响应频率的脉冲驱动计费器和里程显示模块进行计数;当处于停止状态时暂停发出脉冲,此时计费器和里程显示模块相应的停止计数。2) 里程动态显示模块其包括计量车速控制模块发出的脉冲以及将计数显示动态显示出来,每来一个脉冲里程值加0.1(控制器每发一个脉冲代表运行了0.1公里)。3) 计费动态显示模块其初值为5元,当里程超过3公里后才接受计数车速控制模块发出的脉冲的驱动,并且计数显示动态显示出来,每一个脉冲(代表运行了0.1公里),计费值增加0.4元。二 课程设计报告要求1) 画出顶层原理图;2) 用Verilog HDL语言设计各子模块;3) 叙述各子模块和顶层原理图的工作原理;4) 给出各模块和顶层原理图的仿真波形图;5) 给出硬件测试流程和结果。三 课程设计说明3.1 模块功能说明实际设计包含8个模块,分别为时钟分频模块、车速控制模块、车速选择模块、里程计量模块、计费模块、显示选择模块、显示模块以及车辆启停模块,其详细功能如下:6) 时钟分频模块:由于DE0板载有源晶振的频率为50MHz,为了方便使用,对其先进行50000分频,产生1KHz时钟作为系统基础时钟。7) 车速控制模块:为了模拟车速调节,设计本模块。实际的出租车计费器通过检测车轮转动的频率来测量车速,车轮转动越快,车速越高,检测脉冲频率越高。本模块通过对系统基础时钟以不同的分频因子分频,得到不同频率的输出脉冲来实现车速控制。8) 车速选择模块:本模块为车速控制模块选择分频因子。其主要工作是完成两个轻触按键的键值检测,包含消除抖动处理。9) 里程计量模块:实际的出租车计费器通过对车轮转动的脉冲进行计数实现里程测量。本模块通过计量车速控制模块输出的脉冲数完成里程计量。10) 计费模块:根据车辆行进的里程,进行计费。计费公式:如果车辆行进里程3公里,则计5元;如果车辆行进里程3公里,则费用y=5+(s-3)*4,其中s为里程,y为费用。11) 显示选择模块:由于DE0开发板上仅有一组4位数码管,不能同时将里程数和费用显示出来,因此需要通过一个拨码开关来选择显示内容,拨码开关高电平时,显示里程数,低电平时显示费用。12) 显示模块:完成对显示结果的译码和显示。首先要将显示结果的每一个数位取出来,例如要显示“15.6”,需要将其拆分为“1”、“5.”、“6”。然后需要将拆分出的结果译码为段式数码管的电平状态并输出。13) 车辆启停模块:使用拨码开关模拟车辆的启停状态。测量启动开始计量里程数和费用,当按下暂停后,停止计量里程和费用,取消暂停后,继续计费。当按下停止后,显示最终的里程和费用,再次启动时,里程和费用将清零并重新开始计量。3.2 设计流程图设计流程图如下所示:图1 设计流程图3.3 顶层原理图顶层原理图如图2所示:图2 顶层原理图四、实验结果通过Quartus II将sof文件下载到DE0开发板上,运行正常,与实验目标一致,可通过修改参数表中分频因子的大小来调节车速,以及起步价参数,每公里费用参数来调节收费标准。五、总结和改进总的来说本次试验是顺利的,过程中主要遇到了这几点问题:1、刚开始没有完全想好要用几个模块做,没画好流程图,所以模块数量显得有点多,许多模块显得有些不必要,如取整模块完全可以合并到计费模块中。2、对其中的管脚定义太过于随意,造成很大空间的浪费,而且在使用较早的芯片时出现管脚不足的现象,这和模块过多也有很大关系 。一些改进的想法:1、在本次设计中,假设车轮每转一圈为2米,刚好50分频,但是显然现实中不会刚好每圈2米,极可能出现有小数的分频,所以分频器需要改进,或者使用其他模块使得没100送一个脉冲。2、将里程数送到显示模块时,已经是经过取整,所以没有小数部分,但是里程模块的小数部分又不能和整数部分一起送到显示模块进行转化,所以需要想办法将小数和整数部分合并且不影响取整。3、可以再加上按时间收费的模块以便出租车在较长时间等待的过程中也能计费附:程序清单1、计费模块源码module cost_cal(cnt_val, cost_val);/ 需要计算parameter 15:0 UNIT_PRICE = 2;parameter 15:0 START_PRICE = 50;parameter 15:0 NO_COST_CNT = 30;input 15:0 cnt_val;output 15:0 cost_val;assign cost_val = (START_PRICE<<4) + (cnt_val<(NO_COST_CNT<<4) ? 16'd0 : (cnt_val-(NO_COST_CNT<<4) << UNIT_PRICE);endmodule2、里程测量模块源码module counter(clk, rst_n, ctrl, distance_val);input clk;input rst_n;input 1:0 ctrl;output 15:0distance_val;reg 15:0cnt_r;reg 15:0cnt_val_r;/ cnt_r deal/ cnt1->stop(0)/begin(1)/ cnt0->pause(0)/resume(1)always(posedge clk or negedge rst_n)beginif(!rst_n)begincnt_r <= 16'd0;endelsebeginif(ctrl1 = 1'b0)/ stopbegincnt_r <= 16'd0;endelse if(ctrl1 = 1'b1)/ beginbeginif(ctrl0 = 1'b0)/ pausebegincnt_r <= cnt_r;endelse if(ctrl0 = 1'b1)/ resumebegincnt_r <= cnt_r + 1'b1;endendendend/ cnt_val_r dealalways(posedge clk or negedge rst_n)beginif(!rst_n)begincnt_val_r <= 16'd0;endelsebeginif(cnt_r != 16'd0 | ctrl = 2'b00)begincnt_val_r <= cnt_r;endendendassign distance_val = cnt_val_r;endmodule3、显示译码模块源码module datconv4x1_1x4(data_in,data_out);input 15:0 data_in;output 15:0 data_out;assign data_out3:0 = data_in % 4'd10;assign data_out7:4 = data_in % 100 / 4'd10;assign data_out11:8 = data_in % 1000 / 8'd100;assign data_out15:12 = data_in % 10000 / 16'd1000;endmodule4、显示选择模块源码module disp_data_sel(sel,data_in1,data_in2,data_out);input sel;input 15:0 data_in1;input 15:0 data_in2;output 15:0 data_out;assign data_out = sel = 1'b0 ? (data_in1>>4):(data_in2>>4);endmodule5、车速控制模块源码module fq_ctrl(clk_in,rst_n,ctrl,clk_out,led_disp);parameter DIV_N1 = 100;parameter DIV_N2 = 100/2;parameter DIV_N3 = 100/3;parameter DIV_N4 = 100/4;parameter DIV_N5 = 100/5;input clk_in;input 1:0 ctrl;input rst_n;output clk_out;output reg4:0 led_disp;reg 31:0 clk_cnt;reg 2:0 speed_level;reg 31:0 div_n;/ speed_level dealalways(posedge clk_in or negedge rst_n)beginif(!rst_n)beginspeed_level <= 3'd1;endelsebeginif(ctrl != 2'd0)beginif(ctrl = 2'd1)beginif(speed_level = 3'd5)beginspeed_level <= 3'd1;endelsebeginspeed_level <= speed_le

注意事项

本文(电子技术基础课程设计-基于FPGA的出租车计费器设计与实现)为本站会员(夏**)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.