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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、基于FPGA技术出租车计费器的设计EDA技术EDA课程设计题目:基于FPGA的出租车计费器的设计学院: 通信与电子工程学院 班级: 电子101班 学号:2010131019 姓名:何经国 指导老师:周喜权日期:2013年12月20日摘 要本文以Altera公司的DE2开发板为中心,Quartus 软件作为开发平台,使用Verilog HDL语言编程,设计了一个出租车计费的计费器模型。在程序描述的过程中,用了行为描述方式和结构描述方式二种描述方式对计费器进行描述。该计费器能动态扫描电路,将车费和路显示出来,各有两位小数。整个自动控制系统由三个主要电路构成:里程和车费计算、译码和动态显示。最后给出

2、了仿真的波形,并硬件实现。关键词:出租车计费 Verilog HDL Quartus 第1章 概述1。1 设计目的通过基于EDA技术出租车计费器的设计,理解可编程逻辑器件的设计原理及工作流程,学习EDA软件Quartus 功能与使用方法,了解Verilog HDL语言逻辑编程设计基本过程.1。2 设计背景随着我国经济社会的全面发展,各大中小城市的出租车营运事业发展迅速,出租车已经成为人们日常出行选择较为普通的交通工具。出租车计价器是出租车营运收费的专用智能化仪表,是使出租车市场规范化、标准化的重要设备。一种功能完备,简单易用,计量准确的出租车计价器是加强出租车行业管理,提高服务质量的必需品。本

3、设计采用VHDL硬件描述语言作为设计手段,采用自顶向下的设计思路,得到一种出租车计价系统的软件结构,通过Quartus软件下进行仿真,证明所设计的电路系统完成了出租车计价的功能,各项指标符合设计要求。该设计虽然功能简单,智能化水平比较低,但仍具有一定的实用性。该设计是在VHDL的基础上对出租车计价器进行设计来实现其基本功能的,与以往的基于单片机的数模混合电路相比,FPGA具有稳定性好,抗干扰能力强等优点,且非常适合做为出租车计价器的控制核心,所以选择用VHDL来对计价器进行设计来实现其功能。1.3 设计意义汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工

4、具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的.因此,汽车计价器的研究也是具有一定意义的。随着生活水平的提高,人们已不再满足于衣食住的享受,出行的舒适已受到越来越多人的关注.于是,出租车行业以低价高质的服务给人们带来了出行的享受。但是总存在着买卖纠纷困扰着行业的发展.而在出租车行业中解决这一矛盾的最好方法就是改良计价器。用更加精良的计价器来为乘客提供更加方便快捷的服务。多年来国内普遍使用的计价器只具备单一的脊梁功能。最早的计价器全部使用机械齿轮结构,只能简单的计程功能,可以说,早期的计价器就是个里程表。随着科学技的发展,产生了第二代计价器。它

5、采用手摇计算机与机械结构相结合的方式实现了半机械半电子化。此时它在计程的同时还完成计价的工作。大规模集成电路的发展又产生了第三代计价器,也就是全电子化的计价器.它的功能也在不断完善。出租车计价器是一种专用的计量仪器,它安装在出租车上,能够连续累加,并只是出行中任意时刻乘客应付费用。随着电子技术的发展以及对计价器的不断改进和完善,便产生了能够自主计费,以及现在的能够打一发票和语音提示、按时间自主变动单价等功能。第2章 工作原理本文设计了一个出租车计费器的模型,其接口信号如图21 所示。图21出租车计费器模型方框图车的状态由传感器传回来当作控制信号,用控制信号来控制计算里程和车费模块,然后分别将里

6、程和车费送到译码模块译码,输出的数据一起送到动态扫描模块,由片选信号控制哪部分译码模块输出的数据用数码管显示。当车启动后,计算里程和车费模块就开始计数,起步价为7。00元,并在车行3Km后按2.20元/Km计费,当计费器达到或超过20元时,每公里回收50%的车费,车停止和暂停时不计费;然后将里程和车费送到译码模块译码和动态显示模块动态显示,最后显示在七段数码管上,动态显示的时间间隔为5秒钟.第3章 设计过程3.1设计方案3.1。1计算里程和车费模块本模块主要是计算里程和车费。按行驶里程计费,起步价为7.00元,并在车行3Km后按2。20元/Km计费,当计费器达到或超过20元时,每公里回收50%

7、的车费,车停止和暂停时不计费。在本模块中,一个脉冲代表是里程要加100米.计算里程和车费的模块的功能结构框图如图3-1所示。图31 计算里程和车费模块的功能结构框图根据模块实现的功能设计Verilog HDL源代码如下:module taxicount(stop,start,clk,pause,chefei,lucheng);input stop,start,clk,pause;output reg19:0 chefei,lucheng;reg3:0 qijia,danjia;reg12:0 ygl;reg yglflag;always (posedge clk)beginif(stop =

8、0) begin danjia=0; qijia=0; ygl=0; lucheng=0; endelse if(start = 0) begin chefei=700; lucheng=0; endelse if(start&pause ) begin lucheng=lucheng+100; ygl=ygl+100; endif(ygl2000) begin if(yglflag) chefei=chefei+330; end endendendmodule3.1.2七段显示译码器模块本模块主要是将4位二进制数转换为十六进制表示.七段显示译码器模块的功能结构框图如图3-3所示:图33 七段

9、显示译码器的功能结构框图根据模块实现的功能设计Verilog HDL源代码如下:module ymq8421(a,hex); input3:0 a; output reg6:0 hex;always (a) begin case(a) 0 : hex=b1000000; 1 : hex=b1111001; 2 : hex=b0100100; 3 : hex=b0110000; 4 : hex=b0011001; 5 : hex=b0010010; 6 : hex=b0000010; 7 : hex=b1111000; 8 : hex=b0000000; 9 : hex=b0010000; 10

10、 : hex=b0001000; 11 : hex=b0000011; 12 : hex=b1000110; 13 : hex=b0100001; 14 : hex=b0000110; 15 : hex=b0001110; default :hex=b1111111; endcase endendmodule3。1.3动态显示模块本模块为动态显示,时间间隔为秒.动态显示模块的功能结构框图如图3-5所示。图3-5 动态显示模块的功能结构图根据模块实现的功能设计Verilog HDL源代码如下:module display(clk,dis0,dis1,dis2,dis3,dis4,dis5,dis

11、6,dis7,HEX0,HEX1,HEX2,HEX3);input clk;input6:0 dis0,dis1,dis2,dis3,dis4,dis5,dis6,dis7;output reg6:0 HEX0,HEX1,HEX2,HEX3;reg2:0 CNT,COUNT;always (posedge clk)case(COUNT)0: begin if(clk) CNT=CNT+1; if(CNT5) begin HEX0=dis0; HEX1=dis1; HEX2=dis2; HEX3=dis3; end else begin CNT=0; COUNT=5; end end5: beg

12、in if(clk) CNT=CNT+1; if(CNT5) begin HEX0=dis4; HEX1=dis5; HEX2=dis6; HEX3=dis7; end else begin CNT=0; COUNT=0; end endendcaseendmodule3。1。4设计出租车计费器电路Verilog HDL具有行为描述和结构描述功能。行为描述是对设计电路的逻辑功能的描述,并不用关心设计电路使用哪些元件及这些元件之间的连接关系。而结构描述是对设计电路的结构进行描述,即描述设计电路使用的元件及这些元件之间的连接关系。本文用行为描述和结构描述分别实现电路系统。(一) 用行为描述实现出租

13、车计费器电路系统设计用行为描述实现出租车计费器电路系统设计的源程序如下:module tcout(stop,start,clk,pause,HEX0,HEX1,HEX2,HEX3);input stop,start,clk,pause;output reg6:0 HEX0,HEX1,HEX2,HEX3;wire 15:0 chefei,lucheng;wire 6:0 dis0,dis1,dis2,dis3,dis4,dis5,dis6,dis7;taxicount U1(stop,start,clk,pause,chefei,lucheng);ymq8421 U2(chefei3:0,dis

14、0);ymq8421 U3(chefei7:4,dis1);ymq8421 U4(chefei11:8,dis2);ymq8421 U5(chefei15:12,dis3);ymq8421 U6(lucheng3:0,dis4);ymq8421 U7(lucheng7:4,dis5);ymq8421 U8(lucheng11:8,dis6);ymq8421 U9(lucheng15:12,dis7);display U10(clk,dis0,dis1,dis2,dis3,dis4,dis5,dis6,dis7,HEX0,HEX1,HEX2,HEX3);endmodule(二)用结构描述实现出租

15、车计费器电路系统设计生成的taxicount、ymq8421和display元件图形符号只是分别代表分立的电路设计结果,并没有形成系统。顶层设计文件就是调用taxicount、ymq8421和display三个功能元件,将它们组装起来,成为一个完整的设计。taxi.bdf是本例的顶层文件,实现的功能是将里程和路程动态显示出来,时间间隔是5秒,如图38所示.图38 taxi顶层设计图在Altera公司的软件工具Quartus (Windows XP环境下)中编译和波形仿真后得到的波形如图39示:图39 taxi。bdf的仿真波形图3。2硬件实现3。2。1引脚锁定对出租车计费器进行实验验证时,需要

16、确定用DE2开发板的哪些输入/输出端口(PIO)来表示设计电路的输入输出。根据DE2开发板提供的实验模式,可选择电平开关SW2SW0作为出租车计费器的控制信号;选择HEX4HEX0作为里程和车费的输出显示。出租车计费器与DE2中的目标芯片引脚连接的全部关系见表3-1。表31 出租车计费器与DE2中的目标芯片引脚连接关系表端口名称PIO名称芯片引脚端口名称PIO名称芯片引脚stopDPDT_SW0PIN_N25hex21HEX21PIN_V22startDPDT_SW1PIN_N26hex22HEX22PIN_AC25pauseDPDT_SW2PIN_P25 hex23HEX23PIN_AC26

17、cinOSC_50PIN_N2hex24HEX24PIN_AB26 cin0OSC_50PIN_N2hex25HEX25PIN_AB25hex00HEX00PIN_AF10hex26HEX26PIN_Y24hex01HEX01PIN_AB12 hex30HEX30PIN_Y23hex02HEX02PIN_AC12hex31HEX31PIN_AA25hex03HEX03PIN_AD11hex32HEX32PIN_AA26hex04HEX04PIN_AE11 hex33HEX33PIN_Y26hex05HEX05PIN_V14 hex34HEX34PIN_Y25 hex06HEX06PIN_V13

18、 hex35HEX35PIN_U22hex10HEX10PIN_V20 hex36HEX36PIN_W24 hex11HEX11PIN_V21hex40HEX40PIN_U9 hex12HEX12PIN_W21hex41HEX41PIN_U1 hex13HEX13PIN_Y22 hex42HEX42PIN_U2hex14HEX14PIN_AA24hex43HEX43PIN_T4 hex15HEX15PIN_AA23hex44HEX44PIN_R7hex16HEX16PIN_AB24 hex45HEX45PIN_R6 hex20HEX20PIN_AB23hex46HEX46PIN_T3 3.2.

19、2 编程下载将程序下载到DE2开发板上,扳动SW0SW2,组成控制信号,从七段数码管HEX4HEX0上观察里程和车费.第4章 仿真过程4。1 建立工程(1)点击filenew project wizard,新建工程目录和工程文件czjf,得如图4-1所示。图41 新建工程和工程文件(2)Next后进入工程文件选择,输入新文件czjf,必须注意该文件名必须与将要编辑的程序模块名相同,如图4-2所示。图42添加新文件(3)然后Next设置器件信息,接下来一直Next直到结束工程建立。4.2 建立Verilog HDL文件(1)单击filenew,进入下面选择界面,选择Verilog HDL Fil

20、eOK 。如图4-3所示。图4-3建立Verilog HDL文件(2)在编辑窗口输入源程序,保存,编译,如图所示.图4-4 输入源程序4。3 建立波形文件(1)单击filenew,进入下面选择界面,选择Vector Waveform FileOK .如图4-5所示。图4-5 建立波形文件(2)设置相关端口信号,设置之后保存波形文件,重新进行编译。4。4 仿真结果各模块模拟仿真结果如下:(1)计算里程和车费模块taxicount模块定义输入输出端口如下: clk: 全局时钟信号,这里为1Hz的时钟。 stop:当stop=0时,车停止;stop=1时,车没停止。 start:当start= 0时

21、,车起动,但没有走;start= 1时,车开动了. pause:当pause =0时,车暂停;pause =1时,车不暂停。 chefei:表示车费. lucheng:表示里程。在Altera公司的软件工具Quartus (Windows XP环境下)中编译和波形仿真后得到的波形如图32所示:、图32 计算里程和车费模块的仿真波形(2)七段显示译码器模块ymq8421程序定义输入输出端口如下: a:输入的4位二进制数。 hex:输出的1位十六进制数。在Altera公司的软件工具Quartus (Windows XP环境下)中编译和波形仿真后得到的波形如图3-4所示:图34 七显示译码器的仿真波

22、形(3)动态显示模块display模块定义输入输出端口如下: Clk:全局时钟信号,这里为1Hz的时钟。 dis0,dis1,dis2,dis3,dis4,dis5,dis6,dis7:译码模块输出的数据. HEX0,HEX1,HEX2,HEX3:七段数码管显示的数据。在Altera公司的软件工具Quartus (Windows XP环境下)中编译和波形仿真后得到的波形如图3-6所示:图36 动态显示的仿真波形(4)出租车计费器电路程序定义输入输出端口如下: clk: 全局时钟信号,这里为1Hz的时钟. stop:当stop=0时,车停止;stop=1时,车没停止. start:当start=

23、 0时,车起动,但没有走;start= 1时,车开动了. pause:当pause =0时,车暂停;pause =1时,车不暂停。 HEX0,HEX1,HEX2,HEX3:七段数码管显示的数据。在Altera公司的软件工具Quartus (Windows XP环境下)中编译和波形仿真后得到的波形如图3-7所示:图3-7 用行为描述的出租车计费器电路系统仿真波形图结论本文主要介绍了出租车计费器的Verilog HDL 的设计与实现,其可以在Altera 公司的DE2开发板等可编程器件来实现。其中介绍了计算里程和车费模块的设计与实现,七段显示译码器的设计与实现,动态显示模块的设计与实现.EDA是电

24、子设计自动化(Electronic Design Automation)的缩写,以前对它的认知只是限于纸面的阶段,没有什么具体概念,这次课设我才真正触摸到它,了解了它。在两周的课程设计中,我学到了很多的东西,从刚开始时的一筹莫展,到后来的渐通关窍,每一步走过来都有豁然开朗的感觉,也对下一步多了一份期待和信心。每解决一个问题,心里都会特别兴奋,特别有成就感。刚开始计划用for循环语句加上case语句来实现功能,但在摸索了好多次仍行不通时不得不放弃这种想法,改用always块和if语句来实现循环.编好程序后,在上箱时,点阵有一行一直不亮,换了两次导线,还是不行,在确定程序和接线都没问题的前提下,于

25、是怀疑锁定该行的管脚有问题,换了一个管脚后,终于成功的作出了预期的结果。通过这次课程设计,我学会了利用Verilog语言编写一些简单的小程序,学会了使用编程软件Quartus II,会了从多个角度思考问题,更学会了寻找问题,分析问题以及解决问题的方法。受益匪浅。参考文献1 阎石,电子技术基础高等教育出版社,2007年2 郑兆兆,艳艳等EDA课程设计指导书,2010年3王金明,数字系统设计与Verilog HDL4 黄正瑾,在系统编程技术及其应用。南京:东南大学出版社,19975 彭介华。电子技术课程设计指导.北京:高等教育出版社,19976 李国丽,朱维勇.电子技术实验指导书。合肥:中国科技大学出版社7 郑家龙,王小海,章安元。集成电子技术基础教程.北京:高等教育出版社,2002

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1