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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于VHDL的地铁自动售票机系统设计.docx

1、基于VHDL的地铁自动售票机系统设计毕业设计说明书(论文)作 者:学 号: 系:专 业:题 目:基于VHDL的地铁自动售票机系统设计 指导者: (姓 名) (专业技术职务)评阅者: (姓 名) (专业技术职务)2014 年 5 月毕业设计(论文)评语学生姓名: 班级、学号: 题 目: 综合成绩: 指导者评语: 指导者(签字): 年 月 日毕业设计(论文)评语评阅者评语: 评阅者(签字): 年 月 日答辩委员会(小组)评语: 答辩委员会(小组)负责人(签字): 年 月 日毕业设计说明书(论文)中文摘要由于社会的进步,人口都向城市流动,交通也越来越拥挤。为此,出现了地铁。随着科技的发展,人们对出行

2、的要求越来越高,地铁自动售票机就应运而生了。自动售票机实现了乘客自助购票,大大加快了出行速度。本文主要讨论了用VHDL语言设计地铁自动售票系统。VHDL语言有较强的描述能力,可以分模块编写程序再合并,所以能设计复杂、多层次的系统。编写的程序可用Altera公司的Quarts II软件进行调试和仿真。设计的地铁自动售票机最终要实现票价选择、投币状态、余额计算、自动出票、自动找零等功能。关键词 VHDL 自动售票系统 模块 Quarts II 仿真毕业设计说明书(论文)外文摘要Title Design of automatic ticket vending machine system based

3、 on VHDL AbstractDue to the progress of the society,the population flow to cities,traffic is becoming more and more crowded.Because of this,the subway emerged.With the development of science and technology,peoples demand for travel is higher and higher,so the subway ticket machines is developed.Auto

4、matic machines to realize the passenger self-service ticketing,greatly accelerate the speed of travel.This article mainly discussed the design of metro ticketing system with VHDL language.VHDL language has a strong ability of description,can write a program to merge module,so can design complex, mul

5、ti-layered system.Coding can use Altera corporations Quarts II software carries on the debugging and simulation.The subway ticket machines can achieve selection of ticket price,insert_state,balance calculation, automatic ticket,automatic change and so on.Keywords VHDL Metro ticketing system Module Q

6、uarts II Simulation目 次1 引言自动售票机主要的控制模块可以用多种语言设计完成。但这些语言有较大的差异,不利于后期的修改和使用者之间的交流。而VHDL语言是一种功能强大、标准化的硬件描述语言。用VHDL语言设计程序时可以先分块编写再合并,所以能够编写出多层次的程序,与此同时,VHDL语言编写的程序避免了其他语言只能在各自环境中使用的缺陷。 本章主要讨论了地铁的起源、发展,以及随着社会的发展,为了简化购票流程,从而设计出了自动售票机来代替人工售票等。11 研究意义近年来,国民经济快速发展,城市的各项设施也越来越好,进而人们对交通的要求也不断增加。因此,安全又快捷的地铁就出现了

7、。地铁的速度较快,且在行驶过程的载客数较多,这是公交所不具备的,而且它的出现增加了乘客的选择,也可以很好的缓解交通拥挤的情况。如今,我国的地铁都实行售票制,而越来越多的乘客选择地铁出行也增加了售票工作的困难。这也给自动售票机的诞生和创新提供了一个很好的市场潜力和发展空间1。自动售票机系统是可以解决各类轨道交通系统的各个终端设备协同工作的平台2,是基于计算机技术、网络技术 、自动控制技术、大型数据库技术、机电一体化技术、模式识别技术、传感技术、精密机械技术等多项高新技术于一体的大型系统3。乘客可以根据自动售票机显示屏上的操作指示选择要到达的地点以及购票张数,并投币完成购票。它能够实现自主购票,可

8、以减少地铁站的工作员工人数,人工售票的工作强度以及地铁站不必要的售票窗口的花费,同时它还能避免人工售票带来的一些失误,大大提高售票的正确率。12 研究背景1863年,地铁在伦敦建成,是世界上第一条地铁,也是最长的地铁,至今已有一百多年的历史,。而提出要建造这个条地铁的人确是英国的一个律师,叫查尔斯.皮尔逊。他生活的那个年代路上的车辆已经很多,交通也比较拥挤,总是发生车祸,查尔斯暗暗发觉随着车辆的增多,这种情况发生的概率会越来越高,就在他发愁的时候,他发现才出现没多久的铁路时速快,载客量大。于是,他向当地政府提出了将铁路建造在城市街道下面的想法,经过岁月的验证,最后被英国政府采纳,就有了地铁。地

9、铁出现后,由于它的轨道不与地面上的车辆以及建筑发生冲突,并且它的行驶速度非常快,没有地面上车辆的车轮滚动的声音和鸣笛声,噪声很小,行驶过程比较平坦,一次性可以容纳的人数又是公交车的7-8倍,并且它使用电力驱动,不会污染环境,所以赢得了人们的青睐,经过不断改进,一直运行到现在。地铁自从1863年在英国伦敦建成后到如今,随着城乡一体化的构建,大量农民涌入城市。城市人口迅速膨胀, 城市交通也越来越拥挤,而人们的生活节奏却越来越快,对售票系统的要求也越来越高,所以,人工售票被渐渐淘汰,取而代之的是高效快速的自动售票系统。在国外,有一部分城市已经采用了自动售检票系统,并且已经有相当高的技术含量。而中国的

10、这项技术最初是从国外流传而来的,经过不断的研究创新,已开发出了很多新的产品,而这项技术也一直都在提高。到目前为止,国内轨道交通AFC的技术已与城市一卡通接轨,实现城市甚至城市区间的一卡通4。13 研究任务 查阅相关资料,认真学习数字逻辑电路,要了解计时器、触发器等原理并会编写售票机程序中用到的逻辑电路。 分析自动售票机要实现的功能,选择设计方案,并说明其工作原理。 根据课题要求,学习VHDL语言和FPGA的基本知识,利用VHDL语言设计地铁自动售票机系统并对相关的软件程序进行说明。 对地铁自动售票机系统进行仿真。仿真结果要求:票价选择;投币系统;余额计算;出票;自动找零。 将编写好的地铁自动售

11、票机系统上箱进行验证。14 研究内容 首先学习此课题设计需要用到的VHDL语言,对它的结构特点、设计流程、基本语言、描述方式及主要描述语句有一定的了解。 其次学习Altera公司的Quartus 软件的系统特点、设计流程、设计方法以及基本操作。 在学习了VHDL语言和Quartus 软件的基础上用VHDL语言编写地铁自动售票机的程序,完成程序后再用Quartus 软件对编写的程序进行调试和仿真,使其能够实现票价选择,投币系统,余额计算,自动出票,自动找零等功能。2 理论基础21 FPGA 211 FPGA介绍FPGA(FieldProgrammable Gate Array),即现场可编程门阵

12、列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物5。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点6。FPGA的编程语言有两种,一种是VHDL语言另一种则是Verilog语言,它们都是用于FPGA,也都比较常用。而VHDL语言是由美国国防部创建的,并在1987年正式成为IEEE的标准硬件描述语言;而Verilog语言是从一家软件开发企业的开发成果中转移过来的,由于它各方面的特点都比较突出,在1995年终于成为了IEEE的标准硬件描述语言。用VHDL或是Verilog语言编写的程序经过编译综合

13、、仿真验证、引脚锁定之后将配置好的数据烧录至FPGA上进行测试。在IC设计、验证方面常用到这种方法。它既可以用来设计一些比较基础的电路模块,比如:门电路、加法器等;也可以设计一些微复杂的时序逻辑电路,比如:移位寄存器、计数器等;还可以设计一些更复杂的组合电路,比如:解码器、编码器等。FPGA的开发应用与个人计算机和单片机的差别较大,FPGA主要是通过并行运算和VHDL语言或是Verilog语言完成的,而个人计算机和单片机是用顺序运算的,这也加大了它开发的难度。它的开发涉及顶层设计、模块分层、逻辑实现、软硬件调试等方面,再次说明它的开发并不容易。212 FPGA特点FPGA器件是由Xilinx公

14、司开发并推出的,在推出后它们一直都在不断更新中,长期以来,在FPGA领域保持着领先。FPGA有以下几个特点: FPGA芯片内部的触发器数量比较多,所以更适合于结构复杂的时序逻辑电路。 FPGA芯片的规模比较大,布线结构相对比较复杂,新型器件高达千万门级,所以常用它来完成复杂电路的设计7。 FPGA芯片在出厂之前全部都要经过测试,所以有安全保障。此外,开发FPGA所需的资金与普通的ASIC芯片相比较要少许多,可以节省一部分开发消费。 FPGA芯片编写的程序信息在每次断电时会丢失,重新通电之后无法自行回复,需要从外部导入。虽然有诸多不变,但使用者可以反复地编程、擦除、使用,实现任意次的编程。 还能

15、使软、硬件协同操作使用。22 VHDL语言221 VHDL语言的简介在开发软件的初期,各个生产商为了减少开发周期,提高效率,开发出了各种不同的具有各自代表性的硬件描述语言,但由于差别大,只能适用于各开发商自己开发软件的环境,这给后期的修改和使用者之间的交流造成了一定的障碍。所以人们想要制定出统一的硬件描述语言。于是,在1981年的时候,美国成立了VHDL工作小组,并提出了一种比较标准的语言,简称VHDL。1983年的时候,TI公司、IBM公司联合Intermetic公司组建小组,共同开发VHDL语言版本和软件开发环境。到了1986年,VHDL语言开始趋于标准化。一年后,IEEE组织正式宣布此语

16、言版本为硬件描述语言的标准 。但并没有因此结束,在确定之后的的一年左右时间里,美国国防部对其进行强制性的推广及使用。之后的多年时间里,IEEE对其进行过修订,使其涉及范围更广、功能更加强大。并且把修订后的VHDL语言定为新的标准。在VHDL语言产生并成为标准的过程中,它一直都在前进,它用它强大的语言结构适应了EDA技术的发展的同时还促进了它的进步。所以不得不承认它是适用于电路设计的功能强大的硬件语言。VHDL语言的全称是超高速集成电路硬件描述语言(Very High Speed Integrated Circuit Hardware Description Language) 8。常用于数字电

17、路的设计。VHDL语言的语言格式、语法和描述方式与一般的计算机编程语言有许多相似的地方。VHDL语言的程序包括实体、结构体、配置、程序包和库5个部分9。其基本结构如图2.1所示。图 2.1 VHDL程序基本结构其中实体还分成外部和内部。当某个实体定义了外部界面以后,只要完成内部功能的编程,其他部分能够直接使用它,简化了设计过程,体现出了它的优越性。VHDL语言在欧洲使用较为广泛,而Verilog语言则在中国、美国、日本、台湾等地方用的比较多。两种语言相比而言,Verilog语言学起来较容易一些,它跟C语言比较类似,如果有C语言基础的话,不需要花太多的时间就能掌握它。但是VHDL语言比较抽象,不

18、容易学,需要的时间比较长。一旦掌握之后,它的优势就凸显出来了,其设计效率比Verilog语言高很多。222 VHDL语言的特点 VHDL语言已经是标准的硬件描述语言,它涉及的范围广,有很强的描述能力,并且可以先分模块进行设计,最后再把各个模块合并起来组成一个完整的程序,所以此语言可以设计结构复杂,层次较多的结构电路。 VHDL语言的描述能力和它本身的程序结构使得它能够分解大规模程序的设计,还能重新利用之前的设计。设计者无法独立设计一个大规模程序,所以这样的程序通常是多人合作完成的。VHDL语句的再利用设计与分解大型程序的功能使共同完成设计成了可能。 VHDL语言有很多仿真语句和库函数,能实现综

19、合仿真,所以在设计系统的过程中能及时进行仿真,检验程序的进展或是发现程序的错误,并进行相应的修改,保证程序的顺利运行。设计者通过这种方法不需做出实际的模型就能比较出各种方案的可行性及它们之间的优劣,并作出取舍,大大降低了整个设计的开发成本。 VHDL语言的硬件有相对的独立性,它与制作工艺无关,不会随其而改变,所以使用时间长。一个设计可以在其他的硬件结构中使用,使用过程中也不需要对其结构有深入的了解,总而言之,使用起来比较简单。 223 VHDL语言的设计流程 设计规范的定义首先设计者要知道设计目的和要求,然后制定整个系统设计的总体方案。这一步是整个系统设计的铺垫,是十分关键的。 采用VHDL进

20、行设计描述设计者先要根据系统设计的要求选择方式,考虑是否要分模块来编写。通常,设计者采用“自顶向下”的设计方法。在划分模块的时候一定要仔细划分,确保这样的划分是最好的,不然会直接影响到电路的设计。规划完成后,设计者可以此为依据编写每个模块相应的VHDL程序,再将每个部分程序组装起来,这样就成了一个完整的程序。 VHDL程序仿真程序仿真是编写程序过程中不可或缺的。如果编写好的程序不进行仿真,直接布局布线,若此时发生错误,则需要修改VHDL语言再重新布局布线,十分耗时。若每编写一个程序就对其仿真,可以及时发现错误,节省设计者的时间和金钱。 综合、优化和装配(或布局布线)综合指的是将设计描述转化成底

21、层电路的表示形式,其结果是一个网表或者是一组逻辑方程10;优化是为了缩小时间延迟,更好的利用资源来提高程序的执行效率;装配就是对特定资源进行分配。而布局布线是将每个模块的程序编译以后生成的元器件重新定位,然后再进行布线。 仿真 这是在程序编写完毕,并且装配完成之后进行的仿真,是对整个程序是否符合其要实现的功能的验证。23 Quartus软件231 Quartus软件简介MAX+plus软件是美国Altera 公司推出的一种EDA 工具,在开发出来后的几年时间里,Altera 公司在推出两种设计芯片同时也在不断改进开发软件,一共经历了四代:第一代A+plus、第二代MAX+plus、第三代MAX

22、+plus II 和第四代Quartus。Quartus软件不但包含了MAX+plus II软件的优势,在面对新技术时同样可以使用。Quartus是一款针对FPGA芯片的综合性的开发软件,它有多种输入方式,例如:原理图输入、AHDL语言输入、VHDL语言输入、Tcl script输入以及Systemverilog HDL语言输入等。同时,它的内部有自己的编译综合器和仿真器,能够进行与程序相对应的输入输出管脚的波形仿真,最后对器件的各个引脚进行分配,是设计器件用的比较完整的一个软件。Quartus软件适用于多种系统,像个人电脑的Microsoft Windows XP、Microsoft Win

23、dows 7系统,Linux系统以及Unix系统等都支持这款软件。除此之外,这款软件还支持LPM宏功能模块库,设计者可以使用已存在的模块,无需重新编写,简化了设计过程,提高了设计效率。它也支持第三方软件工具的运行,除了自身可以对程序进行波形仿真之外,其他的仿真工具它也能使用。另外,Quartus支持多种可编程逻辑器件的开发、集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,它的软件设计功能强大且容易操作,是一种综合性的开发平台11。232 Quartus软件的特点该软件对Altera 公司之前开发的几代软件去其糟粕,取其精华,再在功能上加以改进才开发出的新产品。所以,之前几代软件的功能它都具

24、备,同时简化了使用者的操作,使用户能很快的入手。在整个逻辑器件设计的过程中,从程序各模块的编写到程序的编译到设计功能的仿真再到编程下载都有这款软件提供,可以说这是一款功能十分强大的软件。该软件支持公司多款MAX系列的器件,与很多EDA供应商开发的软件工具兼容,改进了软件的LogicLock模块设计功能,增添了FastFit编译选项,推进网络编辑性能,提升了调试能力12。233 Quartus软件的设计流程Quartus软件开发的设计流程图如图2.2所示。图2.3 Quartus软件的设计流程 设计输入 设计者根据程序要实现的功能着手,考虑好思路并设计好各模块的划分,再用VHDL语言或原理图等的

25、形式输入。 综合设计者将之前输入的设计根据软件本身的要求进行编译、优化、配置与综合,生成了网表文件,供下一阶段使用。 布局布线设计者用适配器将上一阶段综合得到的网表文件对应到FPGA器件上。将分开的模块重新定位,之后组合到一起,给其分配引脚,再布局。 时序分析网表的布局布线完成后,即可得到相应的供此阶段用的编程文件。设计者可以看到整个编程文件的时序信息,也可以分析它的时序性能。 仿真它有两种形式,一种是在不考虑外界环境及器件因素的情况下的对电路的直接仿真;另一种是在接近实际环境中对生成的器件的仿真。 器件编程与配置设计者在编译成功之后将编译的程序下载到实际的试验箱上进行进一步验证。 在线校验对

26、配制好的器件在网上测试,看其是否符合原先器件设计要达到的功能。3 课题设计31 设计要求设计一个程序并对它进行仿真验证使它能够模拟地铁站自动售票机的功能。主要内容如下:该自动售票机的主控模块控制其他几个模块,当主控模块的start=1的时候,使能端en0和en1为1,此时车票选择模块与纸、硬币处理模块工作,分别输出总价cost和总票数quantity以及投入总钱数money_insert。当主控模块的start=0的时候,使能端en2为1,此时自动找零、出票模块工作,根据使能端bi为1或0来选择自动售票机是找零出票呢还是退钱不出票。自动售票机的整个功能如下所述:自动售票机有两处可以投币,一处接

27、受硬币另一处接受纸币。硬币接受孔只能识别一元硬币,纸币接受孔可以接受5元和10元的纸币。根据站点的远近,将车站均等的分成三组,第一组的票价为2元,第二组的票价为3元,第三组的票价为4元。乘客一次只能选择一个价位的票,但每次最多可以选择购买三张车票。当选好出站口和购买的车票数以后,乘客就要开始投币,投币过程中可以投入硬币可以投入纸币,也可以两种混投,只要投入的钱数满足本次购票需要的钱数即可。若投入的钱数不够需要的钱数,售票机会显示钱数不够,要求继续投币,直到达到所需金额为止。投币结束后,自动售票机自动出票并进行找零,交易结束,跳回主界面等代下位乘客。若是乘客在购票过程取消了购票操作,则自动售票机

28、立即结束购票进程,并返还已投的钱币。32 系统分析与设计方案321 系统的框架结构根据课题要实现的功能,选择按模块来编写程序,本设计大概分成四个模块,分别是自动售票机主控模块,车票选择模块,纸、硬币处理模块,自动找零、出票模块。总的框架图如图3.1所示。 自动售票机主控模块:当此模块的start为1的时候,使能端en0和en1为1,en2为0,此时车票选择模块与纸、硬币处理模块工作。当此模块的start为0的时候,使能端en2为1,en0和en1为0,此时自动找零、出票模块工作。若投入的总钱数大于等于总价的话,使能端bi为1, 自动售票机输出票数quantity,并输出对应的找钱df为mone

29、y_insert-cost。若投入的总钱数小于总价的话,使能端bi为0, 自动售票机不出票,并退出乘客负的总钱数,此时df为money_insert。 车票选择模块:受控于主控模块,乘客先启动rest让售票机进入初始状态,然后根据自己的需要选择票价,有2元,3元,4元的可供选择,选定票价后再选择购买张数,乘客一次性至多只能购买3张,选择完毕后输出总价cost和总票数quantity。 纸、硬币处理模块:受控于主控模块,乘客先让rest为0让售票机进入初始状态,等时钟脉冲的上升沿到来时,投入钱币数,有1元硬币,5元和10元纸币,若投入的钱数不足于总票价,则继续投币,否则输出投入总钱数。 自动找零

30、、出票模块:受控于主控模块,乘客先让rest为0让售票机进入初始状态,等时钟脉冲的上升沿到来时,若是使能端bi为1,则输出票数为车票选择模块输出的票数quantity,并且输出找零为df。若是使能端bi为0,则不出票,退回投入的总钱数money_insert。整个操作流程图如图3.2所示。322 各模块功能分析自动售票机主控模块该模块是自动售票机的核心,它通过控制其余模块的使能端来控制其他几个模块的运行。主控模块的原理图如图3.3所示。图3.3 车票模块原理图 输入端口:1 rest:复位信号,当rest为0时,所有输出为零,定义为初始状态。2 clk:时钟脉冲,定义为上升沿时有效。3 sta

31、rt:选择功能使能端,start为1时,车票选择模块与纸、硬币处理模块工作,start为0时,自动找零、出票模块工作。4 money_insert:乘客投入的总钱数。5 cost:乘客选择的总票价。 输出端口:1 en0:使能端,控制车票选择模块工作。2 en1:使能端,控制纸、硬币处理模块工作。3 en2:使能端,控制自动找零、出票模块工作。4 bi:使能端,控制是否出票找零或是退钱。5 df:根据bi的状态决定退出的钱数。车票选择模块 此模块共有三种票价的车票可供选择,乘客可以根据自己的需要选择票价及票数(不超过3张)。车票选择模块的原理图如图3.4所示。图3.4 车票选择模块原理图1 输入端口: rest:复位信号,当rest为0时,所有输出为零,定义为初始状态。 clk:时钟脉冲,定义为上升沿时有效。 jia_2,jia_3,jia_4:分别代表2元,3元和4元的票价,当其中一个为1时,代表该票价被选中。4 shu_1,shu_2,shu_3:分别代表1张,2张和3张的票数,当其中一个为1时,代表该票数被选中

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

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