ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:256.18KB ,
资源ID:13922837      下载积分:5 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-13922837.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于FPGA的出租车计费器设计.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于FPGA的出租车计费器设计.docx

1、基于FPGA的出租车计费器设计湖南工程学院课 程 设 计课程名称 嵌入式系统 课题名称 基于CPLD的出租车计费器专 业 电子信息工程 班 级 电子信息 学 号 201213020113 姓 名 魏震洲 指导教师 林愿 2015年12月20日湖南工程学院课 程 设 计 任 务 书课程名称: 嵌入式系统 题 目:基于CPLD的出租车计费器专业班级: 电子信息 学生姓名: 魏震洲 指导老师: 林愿审 批: 任务书下达日期 2015 年12 月 1日设 计 完成日期 2015 年 12月 15日 设计内容与设计要求CPLD为复杂可编程逻辑器件,通过EDA技术对其进行编程,可将一个较复杂的数字系统集成

2、于一个芯片中,制成专用集成电路芯片,并可随时在系统修改其逻辑功能。有关知识可参见相关教材或参考书。一设计内容(1) 实现计费功能,计费标准为:按行驶里程计费,起步价为7.00元,并在车行3Km后按2.20元/Km计费,当计费器达到或超过20元时,每公里加收50的车费,车停止不计费。(2) 现场模拟功能:能模拟汽车起动、停止、暂停以及加速等状态。(3) 按计动态扫描电路,将车费和路程显示出来,各有两位小数。二、设计要求:1、 设计思路清晰,给出整体设计框图;2、 设计各单元电路,完成其功能仿真和编译并生成低层模块;3、 完成顶层设计并编译通过;4、 完成设计下载并调试电路;5、 写出设计报告;主

3、要设计条件1. 提供EDA实验室;2. 提供EL实验箱和CPLD芯片;3. 提供设计软件说明书格式1. 课程设计封面;2. 任务书;3. 说明书目录;4. 设计总体思路,基本原理和框图(顶层电路图);5. 单元电路设计(各次级模块电路图);6. 设计仿真;7. 编程下载;8. 总结与体会;9. 附录;10. 参考文献。进度安排星期一、二:下达设计任务书,介绍课题内容与要求;查找资料,确定总体设计方案和单元电路设计;星期三第二周星期一:单元电路设计与仿真,硬件下载;第二周星期二、三:硬件下载;第二星期四、五:书写设计报告,打印相关图纸;答辩参考文献1. 康华光主编.电子技术基础(数字部分),高等

4、教育出版社。2. 阎石主编. 电子技术基础(数字部分),清华大学出版社。3. 陈大钦主编,电子技术基础实验,高等教育出版社。4. 彭介华主编,电子技术课程设计指导,高等教育出版社。5. 张 原编著,可编程逻辑器件设计及应用,机械工业出版社。6.荀殿栋,徐志军编著,数字电路设计实用手册,电子工业出版社。7. 刘洪喜,陆颖编著. VHDL电路设计实用教程 清华大学出版社 目 录摘要 1Abstract 1引言 11.概述 22.总体设计 32.1设计要求 32.2基本的原理方框图 32.3 开发环境 43.软件设计 43.1总体设计 43.2 各模块设计 54.结果仿真 114.1编译 114.2

5、管脚配置 114.3程序下载 125.硬件电路 126. 系统使用说明 13结束语 14参考文献 14致谢 15附录 17基于CPLD的出租车计费器摘 要:本文借助Quartus9.0软件,基于大规模可编程逻辑器件FPGA,利用Verilog HDL语言,进行出租车计费器设计。该出租车计费系统包括计数器分频模块、数码管分频模块、计程模块、计时模块、计费模块、控制模块、数码管显示模块和顶层主控模块共八大部分;分起步、里程、等待三个阶段。该出租车计费器能够自行设定计费标准,借助Cyclone系列EP20C8Q208C8N芯片的FPGA开发板,进行功能仿真,并且利用外围电路和开发板的结合,能够进行相

6、应的硬件测试。测试结果由2片4个相连的7段共阳极数码管驱动电路来显示。关键词:出租车计费器;Quartus9.0软件;Verilog HDL语言;FPGA开发板引言随着出租车行业的发展,对出租车计费器的要求也越来越高,用户不仅要求计费器性能稳定、计费准确;同时还要求其具有计价标准的灵活设定、营运额统计、密码设定等功能。目前,出租车行业面临油价上涨和夏季空调费调整的问题,修改计价标准随着油价的上涨势在必行,所以出租车计费器计价标准的灵活设定成为计费器不可缺少的一部分。因此性能稳定、便于检定、维护及修改参数成为出租车记费器的关键技术。出租车计价系统较多的是利用单片机进行控制,但较易被私自改装,且故

7、障率相对较高,不易升级。而FPGA具有高密度、可编程及有强大的软件支持等特点,所以设计的产品具有功能强、可靠性高、易于修改等特点1。随着FPGA(Field Programmable Gate Array) 等可编程器件的出现,解决了传统电子设计不能完成的任务。利用FPGA来实现出租车计费器,可行性很高,电路简单,大大减少外围器件,可以用软件完全仿真,灵活度高,而且编好的系统可以在不同的FPGA芯片上通用。同时由于FPGA 的功能完全取决于语言Verilog HDL编写的程序,不拘泥于某种芯片的特殊指令2,更加提高了产品的更新换代能力。FPGA在电子设计领域中价格低廉,有良好的发展趋势,它的出

8、现必定会占领大部分数字器件市场。本设计选用的FPGA芯片,主要是Altera公司的Cyclone系列芯片EP20C8Q208C8N。使用软件 Quartus9.0和超高速硬件描述语言Verilog HDL,从而实现计价标准的灵活设定。使得该出租车计费器的特点是计费准确、性能稳定、分阶段(起步、里程、等待)自动计费3。1.概述EDA(Electronic Design Automation)即电子设计自动化,是电子设计技术的核心,它的系统级高层次电子设计方法,对整个系统进行方案设计和功能划分,无须通过门级原理图描述电路,而是针对设计目标进行功能描述,摆脱了电路细节的束缚,大大缩短了产品的研制周期

9、。同时,这种高层次设计只是定义系统的行为特性,而不涉及实现工艺,因此利用其综合优化工具使工艺转化变得轻而易举。FPGA 是现场可编程门阵列的简称。起源于美国的Xilinx公司,它结合了微电子技术、电路技术和EDA技术,使设计者可以集中精力进行所需逻辑功能的设计,缩短设计周期,提高设计质量。FPGA器件在结构上,由逻辑功能块排列为阵列,并由可编程的内部连线连接这些功能块来实现一定的逻辑功能。以Xilinx公司的FPGA器件为例,它的结构可以分为三个部分:可编程逻辑块CLB(Configurable Logic Blocks)、可编程I/O模块IOB(Input/Output Block)和可编程

10、内部连线PI(Programmable Interconnect) 4。FPGA的开发系统包括软件和硬件两个部分。开发系统软件指专用的编程语言和相应的汇编程序或编译程序。开发系统硬件部分包括计算机和编程器。编程器是对FPGA进行写入和擦除的专用装置,能够供写入或擦除操作所需要的电源电压和控制信号,并通过串行接口从计算机接收编程数据,最终写进FPGA之中5。基于FPGA的计费器系统利用Verilog HDL语言,采用模块化程序设计3,自顶向下、由粗到细、逐步求精的方法,将基于FPGA的计费器系统的整体逐步分解各个模块。它不需要专门的硬件,只通过软件编程即可实现计费器系统的逻辑功能、电路结构和连接

11、形式。Verilog HDL语言类似C语言,可读性强、更易理解,这种语言几乎覆盖了以往各种硬件描述语言的功能,在编程的过程中一般采用自顶向下的电路设计过程。本设计利用Verilog HDL语言,在Quartus9.0软件中将出租车计费器基本结构分成8个模块对其进行程序汇编6。将各块程序生成的.v文件组合在一起,生成数字钟源代码的.bdf 图形文件,最后下载到Cyclone系列芯片EP20C8Q208C8N中,验证试验结果。在Protel99se的开发环境内,利用三极管、电阻、数码管、蜂鸣器等元器件设计该出租车计费器的外围电路,并进行PCB布线。利用实验室现有的资源制作出相应的电路板并完成硬件电

12、路的设计,和软件设计部分一起共同验证设计的最终结果。2.总体设计2.1设计要求行程3公里内(包括3公里),且等待累计时间2分钟内(包括2分钟),起步费为6.0元;3公里外(不包括3公里)以每公里1.0元,等待累计时间2分钟外(不包括2分钟)以每分钟以1.0元计费。能显示行驶公里数、等待累计时间和最后的总费用。本计费器的显示范围为099元,计价分辨率为1元;计程器显示范围为099公里,分辨率为1公里;计时器的显示范围是分钟的显示范围是099, 辨率为1分钟。秒的显示范围是059。分辨率为1秒。2.2基本的原理方框图图1 基本原理方框图该出租车计费器的基本原理方框图如图1所示,由时钟信号、等待信号

13、、分频模块、行驶信号、计费/复位模块、主控模块、计时模块、计费模块、计程模块、显示输出模块8部分组成。该计费系统通过分频模块将50MHz的时钟信号通过分频器变成1Hz的时钟信号和1KHz的显示输出信号。该出租车计费的标准是起步价是6元,3公里之内费用不变,当超过3公里时,每行驶1公里,费用加收1元;在等待的过程中,2分钟之内,费用不变,当超过2分时,每经过2分钟,费用加收1元。由start信号和reset信号共同来控制信号是等待信号还是行驶信号,当start是高电平且reset同时为高电平时,此时行驶信号起作用,出租车计费显示模块显示相应的费用和行驶的里程;当start是低电平且reset同时

14、为高电平时,此时等待信号起作用,出租车计费显示模块显示相应的费用和等待的时间。当reset为低电平时,计费系统复位。该计费系统的显示费用是099元。2.3 开发环境软件环境:Quartus9.0 软件、Protel99se软件、Verilog HDL语言。 硬件环境:FPGA开发板、EP20C8Q208C8N芯片一片、4个相连的7段共阳极数码显示管2片、按键开关2个、单刀双掷开关2个、4.7K的电阻9个、100的电阻8个、PNP三极管8个、NPN三极管1个7、蜂鸣器1个、导线若干、下载线一根等。3.软件设计3.1总体设计利用Verilog HDL硬件描述语言用自顶向下的设计方法编写程序,将出租

15、车计费器的模块分为时钟分频模块、显示分频模块、计时模块、计费模块、计程模块、数码显示模块、控制模块和主控模块8部分,其中顶层模块是主控模块。主控模块用来控制出租车计费器的输入输出信号,即控制出租车计费器是处于行驶状态还是处于等待计时状态。并且通过主控模块中的start信号和reset信号来控制时钟信号的状态8。显示模块主要包括计时模块、计费模块、计程模块。从而并实现出租车计费器的显示。通过Quartus9.0软件编程之后,将分别生成计数器的分频模块、数码管的分频模块、计程模块、计时模块、计费模块、控制模块、数码管显示模块和主控模块的代码1,对应的文本文件分别为div.v、div1.v、dist

16、ancemokuai.v、timemokuai、feemokuai.v、control.v、scan_led.v、和zhukong.v。各模块程序编译成功之后可以生成的总的模块图如图2所示。将程序下载到FPGA 的开发板上,系统分析论证后,各模块分工协作,共同实现出租车计费这一功能。图2总模块图3.2 各模块设计3.2.1时钟分频模块图3时钟分频模块计数器分频模块程序成功编译之后生成的模块图如图3所示,此模块是用于时钟信号的分频。CLK是50MHZ的时钟信号,通过程序9:if(!reset) begin clk=d0; count=32d0; end else if(count=32d25_0

17、00000)/判断计时器记到了25000000吗? begin count=32d0;/计到25_000000计数器清零 clkclk;/输出的时钟取反 end else count=count+1d1;/ 没计到25000000计数器加一 end将时钟信号变成1HZ的信号,从而降低了时钟信号的周期,满足了本实验的要求。它的详细代码见附录。图4时钟仿真模块仿真波形时钟分频模块的仿真结果如图4所示,从波形可以看出当reset为低电平的时候clk为零,当为高电平的时候clk的高电平占了clk_50M的5个周期,低电平也占了clk_50M的5个周期。3.2.2数码管分频模块图5数码管分频模块显示分频

18、模块程序成功编译之后生成的模块图如图5所示,此模块是用于显示信号的分频。其中clk是50MHz的时钟信号8,通过程序if(!reset) begin clk1=d0; count=32d0;endelse if(count=32d25_000)/ 判断计时器记到了25_000吗? begin count=32d0;/计到25_000计数器清零 clk1=clk1;/将时钟信号变成1KHz的信号10,从而满足实验的要求。3.2.3计程模块图6计程模块此模块的功能是计算出租车行驶的路程。在出租车启动并行驶的过程中(即复位/启动信号reset为1,行驶/停止信号start为1),当时钟clk是上升沿

19、的时候,系统即对路程计数器distance的里程计数器进行加计数,当路程超过三公里时,系统将输出标志正脉冲distance_enable。计程模块的方框图如图6所示。图7计程模块仿真波形仿真的波形图如图7所示。由图可以看出, reset为1时,且start为1时,计费模块开始计数。其中distancehigh代表高4位,distancelow代表低4位,当distancelow计数记到3时,distance_enabe开始变成高电平。且当distancelow记到9时,distancehigh开始由0变成1。3.2.4计时模块图8计时模块此模块的功能是计算出租车在暂停的过程中等待的时间。在出租

20、车在等待过程中(即复位/启动信号reset为1,行驶/停止信号start为0),在时钟信号1Hz的上升沿到来的时候,系统即对时间计数器time进行计数11,当时间超过2分钟(不包括2分钟)时,系统将输出正脉冲信号time_enable。计时模块的方框图如图所示。图9计时模块仿真波形仿真的波形图如上图图9所示。从波形图可以看出,在clk的控制下,当复位/启动信号reset为1,行驶/停止信号start为0的时候计数,此时time_enable为低电平。3.2.5计费模块图10计费模块此模块的功能是计算出租车的费用,根据行驶路程和等待时间计算费用。当出租车停车时,时钟select_clk用于将费用

21、计数器复位为起步价6.0元;当车处于行驶状态且满3公里时,select_clk信号选择distans_enable,此后路程每满1公里,费用计数器加1元;当出租车处于停止等待状态且时钟满2分钟,select_clk信号选择time_enable信号,时间每满1分钟,费用计数器加1元。计费模块的方框图如图10所示。图11计费模块仿真波形仿真的波形图如图11所示。由图可以看出,刚开始费用显示的是6元当复位/启动信号reset为1时,计费模块开始计费。其中select_clk用于选择是处于计时状态还是处于计程状态。因此当select_clk为高电平时计费;当select_clk为低电平时,停止计费。

22、在整个计费过程中,CLK为上升沿时,开始工作。3.2.6控制模块图12控制模块此模块功能是用于为计费和计时模块提供时钟信号,当start为0,time_able作用;当start为1时,distance_able作用。控制模块的方框图如图12所示。图13控制模块仿真波形仿真的波形图如图13所示。由图可以看出,在start为高电平的前提下,当distance_enable为高电平时,输出信号select_clk为计程信号,当time_enable为高电平时,输出信号select_clk为计时信号,我们由图中可以看出此时的仿真还是存在一定的误差的。3.2.7数码管显示模块图14数码管显示模块此模块

23、的功能是显示计程、计时、计费的结果。其中数码管显示分为静态显示和动态显示。在FPGA开发板上仿真时采用的是动态显示,在硬件电路中采用的是动态显示。当时钟信号时高电平时,reset是1时,该模块将计程、计时、计费的结果显示出来。数码管显示模块的方框图如图14所示。3.2.8主控模块图15主控模块此模块是本次设计的顶层模块,将各分模块用是图形方法连接起来,便可实现系统电路的功能。主控模块的方框图如图15所示。4.结果仿真Quartus9.0开发系统是Altera 公司自行设计的一个完全集成化、易学易用的可编程逻辑设计环境。它具有原理图输入和文本输入两种输入方式,利用该软件所配的编译、仿真、综合、芯

24、片编程功能,能将设计电路图或电路描述程序变成基本的逻辑单元写入到可编程逻辑的芯片FPGA中。Quartus9.0软件是用Verilog HDL语言来编写模块的必备工具。设计中主要用Altera 公司FPGA来实现显示,Quartus9.0软件支持Altera公司不同结构的可编程逻辑器件,能满足用户各种各样的设计需要。4.1编译在Quartus9.0软件菜单“Processing”中选择“Start Compilation”即可开始12,编译成功后可以进行波形仿真。若出现错误,应回到源程序查找原因,直到编译通过。4.2管脚配置在Quartus9.0环境下,先选择器件。在“Assignments”

25、菜单下打开“Device”窗口,在“Device Family”对话框中,选择Cyclone,并选择“Available Devices”中的EP20C8Q208C8N,然后在菜单“Assignments”下打开“Pins”开始引脚分配,根据芯片管脚具体分配情况,对输入输出信号进行管脚配置。完成管脚配置后13,需重新编译使之生效。其具体管脚配置情况如表1示。表1管脚配置信号名管脚号信号名管脚号信号名管脚号信号名管脚号clk_50M12dig391set076set583dig797dig289set177set684dig696dig187set278set785dig595dig086set

26、381start71dig492reset75set4824.3程序下载上述通过上。本开发板用到的是Altera公司的Cyclone系列EP20C8Q208C8N芯片,如图16所示。具体方法如下: (1)将下载电缆一端插入开发板上的USB-Blaster,另外一端插入到电脑中14,然编译后利用一根导线,开始将程序下载到因仑实验室的FPGA开发板后打开开发板的电源。 (2) 从“Tools”菜单下选择“Programmer”,在弹出的菜单中选择“Hardware setup”对话框,在“Hardware Type”下拉框中选择“USB-Blaster”,即可将程序下载到FPGA的开发板上。在FP

27、GA开发板上进行系统仿真,并用开发板上的拨码开关K1、K2代替reset信号和start信号。结果由开发板上的2个数码管进行动态显示。图16 FPGA开发板5.硬件电路下面由硬件电路系统对本次设计进行验证。硬件电路即本设计的外围扩展电路,是本设计的重要环节,和软件设计部分一起共同完成设计的最终目标。在硬件电路设计的过程中需要用到FPGA开发板、EP20C8Q208C8N芯片1片、4个相连的7段共阳极数码管2片、按键开关2个、单刀双掷开关2个、4.7K的电阻9个、100的电阻8个、PNP三极管8个、NPN三极管1个、蜂鸣器1个、导线若干,在Protel99se的环境下所画的电路原理图如图16所示

28、。图17 Protel99se中的电路原理图在该图中,EP20C8Q208C8N芯片用插排器件con代替;通过2个四个相连的7段共阳极数码管显示输出结果,其中数码管显示采用的是动态显示;图中共有4个开关,其中两个为单刀双掷开关,两个为按键开关,这四个开关所起的作用相同,都是用来控制start信号和reset信号,并通过黄色和绿色两个发光二极管发光来显示两个信号处于正常工作状态;外围电路还设计了一个蜂鸣器。6. 系统使用说明开发板提供的时钟信号是50MHz,通过计数器分频将时钟信号变成1Hz,然后提供给计程模块和计时模块;通过显示分频模块将时钟信号变成1KHz的信号,然后提供给数码管显示模块。通

29、过reset信号和start信号来控制计时和计费状态。当reset为低电平时,计费系统恢复为起步价六元。当reset信号和start信号同时为高电平时,系统处于计程状态,在3公里之内(包括3 公里),费用是6元不变,当超过3公里时,每行驶一公里,费用加收一元。行驶的里程显示范围是099,费用显示范围是099元。当reset信号为高电平同时start信号为低电平时,系统处于等待计时状态,在计时时间2分钟之内(包括2分钟),费用不变,当超过2分钟时,每隔2分钟,费用加收一元。出租车计费器的结果通过8个数码管来动态显示。结束语FPGA芯片的成本越来越低,未来基于FPGA平台的出租车计费器会有更低的成

30、本、更小的体积、更安全、更精确、多功能15。本文基于FPGA的出租车计费器设计,分别介绍了整个系统和各模块的设计。使用FPGA芯片、Verilog HDL硬件描述语言、Quartus9.0软件和一些外围电路,实现了软件和硬件的设计制作。本文介绍的出租车计费器能够实现最基本的计时、计程、计费功能。通过将程序下载到FPGA的开发板上,可以验证所得的结果与预期的结果基本一致,并通过设计硬件外围电路,更形象的仿真了出租车计费系统。如果将该设计再结合到实际应用中,那么,只需改变设计中计费要求,就可以应用到出租车上。另外,如果再任意输入该出租车计价器的计费标准,那么,它的适用范围可能就更广泛了。但是由于本人知识水平有限,只是实现了出租车计费系统最基本的计时、计程、计费功能,而且本次设计能够计算的里程和费用范围都是099,范围比较小。在实际的出租车计费系统中还牵涉到不同的出租车的车轮并不完全相同,因此存在计程设定问题,密码设定、超速报警、按键抖动等问题都需要考虑。可以说本设计只是完成了一个具备最基本功能的出租车计费器设计。但从某种角度来看,这种方法由于不涉及具体电路问题,设计简单易懂,只用软件仿真就可验证其功能,可以为其他电子产品设计提供借鉴作用。参考文献:1 张慧基于FPGA的出租车计费系统设计山西电子技术J,2011(3):64-662 廖艳秋基于FPGA的

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2