版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、毕业设计说明书(论文)作 者:学 号: 系:专 业:题 目:基于VHDL的地铁自动售票机系统设计 指导者: (姓 名) (专业技术职务)评阅者: (姓 名) (专业技术职务)2021 年 5 月毕业设计论文评语学生姓名: 班级、学号: 题 目: 综合成绩: 指导者评语: 指导者(签字): 年 月 日毕业设计论文评语评阅者评语: 评阅者(签字): 年 月 日辩论委员会小组评语: 辩论委员会小组负责人(签字): 年 月 日毕业设计说明书论文中文摘要由于社会的进步,人口都向城市流动,交通也越来越拥挤。为此,出现了地铁。随着科技的开展,人们对出行的要求越来越高,地铁自动售票机就应运而生了。自动售票机实
2、现了乘客自助购票,大大加快了出行速度。本文主要讨论了用VHDL语言设计地铁自动售票系统。VHDL语言有较强的描述能力,可以分模块编写程序再合并,所以能设计复杂、多层次的系统。编写的程序可用Altera公司的Quarts II软件进行调试和仿真。设计的地铁自动售票机最终要实现票价选择、投币状态、余额计算、自动出票、自动找零等功能。关键词 VHDL 自动售票系统 模块 Quarts II 仿真毕业设计说明书论文外文摘要Title Design of automatic ticket vending machine system based on VHDL AbstractDue to the pr
3、ogress 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.Automatic machines to realize the
4、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, multi-layered system.Coding can u
5、se 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 Quarts II Simulation目 次 TOC o 1
6、-2 h z u HYPERLINK l _Toc387415179 1 引言 PAGEREF _Toc387415179 h 1 HYPERLINK l _Toc387415180 11 研究意义 PAGEREF _Toc387415180 h 1 HYPERLINK l _Toc387415181 12 研究背景 PAGEREF _Toc387415181 h 1 HYPERLINK l _Toc387415182 13 研究任务 PAGEREF _Toc387415182 h 2 HYPERLINK l _Toc387415183 14 研究内容 PAGEREF _Toc38741518
7、3 h 2 HYPERLINK l _Toc387415184 2 理论根底 PAGEREF _Toc387415184 h 3 HYPERLINK l _Toc387415185 21 FPGA PAGEREF _Toc387415185 h 3 HYPERLINK l _Toc387415186 22 VHDL语言 PAGEREF _Toc387415186 h 4 HYPERLINK l _Toc387415187 23 Quartus软件 PAGEREF _Toc387415187 h 6 HYPERLINK l _Toc387415188 3 课题设计 PAGEREF _Toc387
8、415188 h 9 HYPERLINK l _Toc387415189 31 设计要求 PAGEREF _Toc387415189 h 9 HYPERLINK l _Toc387415190 32 系统分析与设计方案 PAGEREF _Toc387415190 h 9 HYPERLINK l _Toc387415191 4 程序仿真 PAGEREF _Toc387415191 h 16 HYPERLINK l _Toc387415192 41 自动售票机主控模块的波形仿真 PAGEREF _Toc387415192 h 16 HYPERLINK l _Toc387415193 42 车票选择
9、模块的波形仿真 PAGEREF _Toc387415193 h 17 HYPERLINK l _Toc387415194 43 纸、硬币处理模块的波形仿真 PAGEREF _Toc387415194 h 18 HYPERLINK l _Toc387415195 44 自动找零、出票模块的波形仿真 PAGEREF _Toc387415195 h 19 HYPERLINK l _Toc387415196 45 整个售票机系统的波形仿真图 PAGEREF _Toc387415196 h 20 HYPERLINK l _Toc387415197 5硬件验证 PAGEREF _Toc387415197
10、h 22 HYPERLINK l _Toc387415198 51 上箱过程 PAGEREF _Toc387415198 h 22 HYPERLINK l _Toc387415199 52 上箱结果 PAGEREF _Toc387415199 h 23 HYPERLINK l _Toc387415200 结 论 PAGEREF _Toc387415200 h 25 HYPERLINK l _Toc387415201 致 谢 PAGEREF _Toc387415201 h 26 HYPERLINK l _Toc387415202 参 考 文 献 PAGEREF _Toc387415202 h 2
11、7 HYPERLINK l _Toc387415203 附录 PAGEREF _Toc387415203 h 281 引言自动售票机主要的控制模块可以用多种语言设计完成。但这些语言有较大的差异,不利于后期的修改和使用者之间的交流。而VHDL语言是一种功能强大、标准化的硬件描述语言。用VHDL语言设计程序时可以先分块编写再合并,所以能够编写出多层次的程序,与此同时,VHDL语言编写的程序防止了其他语言只能在各自环境中使用的缺陷。 本章主要讨论了地铁的起源、开展,以及随着社会的开展,为了简化购票流程,从而设计出了自动售票机来代替人工售票等。11 研究意义近年来,国民经济快速开展,城市的各项设施也越
12、来越好,进而人们对交通的要求也不断增加。因此,平安又快捷的地铁就出现了。地铁的速度较快,且在行驶过程的载客数较多,这是公交所不具备的,而且它的出现增加了乘客的选择,也可以很好的缓解交通拥挤的情况。如今,我国的地铁都实行售票制,而越来越多的乘客选择地铁出行也增加了售票工作的困难。这也给自动售票机的诞生和创新提供了一个很好的市场潜力和开展空间1。自动售票机系统是可以解决各类轨道交通系统的各个终端设备协同工作的平台2,是基于计算机技术、网络技术 、自动控制技术、大型数据库技术、机电一体化技术、模式识别技术、传感技术、精密机械技术等多项高新技术于一体的大型系统3。乘客可以根据自动售票机显示屏上的操作指
13、示选择要到达的地点以及购票张数,并投币完成购票。它能够实现自主购票,可以减少地铁站的工作员工人数,人工售票的工作强度以及地铁站不必要的售票窗口的花费,同时它还能防止人工售票带来的一些失误,大大提高售票的正确率。12 研究背景1863年,地铁在伦敦建成,是世界上第一条地铁,也是最长的地铁,至今已有一百多年的历史,。而提出要建造这个条地铁的人确是英国的一个律师,叫查尔斯.皮尔逊。他生活的那个年代路上的车辆已经很多,交通也比拟拥挤,总是发生车祸,查尔斯暗暗觉察随着车辆的增多,这种情况发生的概率会越来越高,就在他发愁的时候,他发现才出现没多久的铁路时速快,载客量大。于是,他向当地政府提出了将铁路建造在
14、城市街道下面的想法,经过岁月的验证,最后被英国政府采纳,就有了地铁。地铁出现后,由于它的轨道不与地面上的车辆以及建筑发生冲突,并且它的行驶速度非常快,没有地面上车辆的车轮滚动的声音和鸣笛声,噪声很小,行驶过程比拟平坦,一次性可以容纳的人数又是公交车的7-8倍,并且它使用电力驱动,不会污染环境,所以赢得了人们的青睐,经过不断改良,一直运行到现在。地铁自从1863年在英国伦敦建成后到如今,随着城乡一体化的构建,大量农民涌入城市。城市人口迅速膨胀, 城市交通也越来越拥挤,而人们的生活节奏却越来越快,对售票系统的要求也越来越高,所以,人工售票被渐渐淘汰,取而代之的是高效快速的自动售票系统。在国外,有一
15、局部城市已经采用了自动售检票系统,并且已经有相当高的技术含量。而中国的这项技术最初是从国外流传而来的,经过不断的研究创新,已开发出了很多新的产品,而这项技术也一直都在提高。到目前为止,国内轨道交通AFC的技术已与城市一卡通接轨,实现城市甚至城市区间的一卡通4。13 研究任务 查阅相关资料,认真学习数字逻辑电路,要了解计时器、触发器等原理并会编写售票机程序中用到的逻辑电路。 分析自动售票机要实现的功能,选择设计方案,并说明其工作原理。 根据课题要求,学习VHDL语言和FPGA的根本知识,利用VHDL语言设计地铁自动售票机系统并对相关的软件程序进行说明。 对地铁自动售票机系统进行仿真。仿真结果要求
16、:票价选择;投币系统;余额计算;出票;自动找零。 将编写好的地铁自动售票机系统上箱进行验证。14 研究内容 首先学习此课题设计需要用到的VHDL语言,对它的结构特点、设计流程、根本语言、描述方式及主要描述语句有一定的了解。 其次学习Altera公司的Quartus 软件的系统特点、设计流程、设计方法以及根本操作。 在学习了VHDL语言和Quartus 软件的根底上用VHDL语言编写地铁自动售票机的程序,完成程序后再用Quartus 软件对编写的程序进行调试和仿真,使其能够实现票价选择,投币系统,余额计算,自动出票,自动找零等功能。2 理论根底21 FPGA 211 FPGA介绍FPGAFiel
17、dProgrammable Gate Array,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的根底上进一步开展的产物5。它是作为专用集成电路ASIC领域中的一种半定制电路而出现的,既解决了定制电路的缺乏,又克服了原有可编程器件门电路数有限的缺点6。FPGA的编程语言有两种,一种是VHDL语言另一种那么是Verilog语言,它们都是用于FPGA,也都比拟常用。而VHDL语言是由美国国防部创立的,并在1987年正式成为IEEE的标准硬件描述语言;而Verilog语言是从一家软件开发企业的开发成果中转移过来的,由于它各方面的特点都比拟突出,在1995年终于成为了IEEE的标准硬件
18、描述语言。用VHDL或是Verilog语言编写的程序经过编译综合、仿真验证、引脚锁定之后将配置好的数据烧录至FPGA上进行测试。在IC设计、验证方面常用到这种方法。它既可以用来设计一些比拟根底的电路模块,比方:门电路、加法器等;也可以设计一些微复杂的时序逻辑电路,比方:移位存放器、计数器等;还可以设计一些更复杂的组合电路,比方:解码器、编码器等。FPGA的开发应用与个人计算机和单片机的差异较大,FPGA主要是通过并行运算和VHDL语言或是Verilog语言完成的,而个人计算机和单片机是用顺序运算的,这也加大了它开发的难度。它的开发涉及顶层设计、模块分层、逻辑实现、软硬件调试等方面,再次说明它的
19、开发并不容易。212 FPGA特点FPGA器件是由Xilinx公司开发并推出的,在推出后它们一直都在不断更新中,长期以来,在FPGA领域保持着领先。FPGA有以下几个特点: FPGA芯片内部的触发器数量比拟多,所以更适合于结构复杂的时序逻辑电路。 FPGA芯片的规模比拟大,布线结构相比照拟复杂,新型器件高达千万门级,所以常用它来完成复杂电路的设计7。 FPGA芯片在出厂之前全部都要经过测试,所以有平安保障。此外,开发FPGA所需的资金与普通的ASIC芯片相比拟要少许多,可以节省一局部开发消费。 FPGA芯片编写的程序信息在每次断电时会丧失,重新通电之后无法自行回复,需要从外部导入。虽然有诸多不
20、变,但使用者可以反复地编程、擦除、使用,实现任意次的编程。 还能使软、硬件协同操作使用。22 VHDL语言221 VHDL语言的简介在开发软件的初期,各个生产商为了减少开发周期,提高效率,开发出了各种不同的具有各自代表性的硬件描述语言,但由于差异大,只能适用于各开发商自己开发软件的环境,这给后期的修改和使用者之间的交流造成了一定的障碍。所以人们想要制定出统一的硬件描述语言。于是,在1981年的时候,美国成立了VHDL工作小组,并提出了一种比拟标准的语言,简称VHDL。1983年的时候,TI公司、IBM公司联合Intermetic公司组建小组,共同开发VHDL语言版本和软件开发环境。到了1986
21、年,VHDL语言开始趋于标准化。一年后,IEEE组织正式宣布此语言版本为硬件描述语言的标准 。但并没有因此结束,在确定之后的的一年左右时间里,美国国防部对其进行强制性的推广及使用。之后的多年时间里,IEEE对其进行过修订,使其涉及范围更广、功能更加强大。并且把修订后的VHDL语言定为新的标准。在VHDL语言产生并成为标准的过程中,它一直都在前进,它用它强大的语言结构适应了EDA技术的开展的同时还促进了它的进步。所以不得不成认它是适用于电路设计的功能强大的硬件语言。VHDL语言的全称是超高速集成电路硬件描述语言Very High Speed Integrated Circuit Hardware
22、 Description Language 8。常用于数字电路的设计。VHDL语言的语言格式、语法和描述方式与一般的计算机编程语言有许多相似的地方。VHDL语言的程序包括实体、结构体、配置、程序包和库5个局部9。其根本结构如图2.1所示。库、程序包 实体结构体进程或其他并行语句配置图 2.1 VHDL程序根本结构其中实体还分成外部和内部。当某个实体定义了外部界面以后,只要完成内部功能的编程,其他局部能够直接使用它,简化了设计过程,表达出了它的优越性。VHDL语言在欧洲使用较为广泛,而Verilog语言那么在中国、美国、日本、台湾等地方用的比拟多。两种语言相比而言,Verilog语言学起来较容易
23、一些,它跟C语言比拟类似,如果有C语言根底的话,不需要花太多的时间就能掌握它。但是VHDL语言比拟抽象,不容易学,需要的时间比拟长。一旦掌握之后,它的优势就凸显出来了,其设计效率比Verilog语言高很多。222 VHDL语言的特点 VHDL语言已经是标准的硬件描述语言,它涉及的范围广,有很强的描述能力,并且可以先分模块进行设计,最后再把各个模块合并起来组成一个完整的程序,所以此语言可以设计结构复杂,层次较多的结构电路。 VHDL语言的描述能力和它本身的程序结构使得它能够分解大规模程序的设计,还能重新利用之前的设计。设计者无法独立设计一个大规模程序,所以这样的程序通常是多人合作完成的。VHDL
24、语句的再利用设计与分解大型程序的功能使共同完成设计成了可能。 VHDL语言有很多仿真语句和库函数,能实现综合仿真,所以在设计系统的过程中能及时进行仿真,检验程序的进展或是发现程序的错误,并进行相应的修改,保证程序的顺利运行。设计者通过这种方法不需做出实际的模型就能比拟出各种方案的可行性及它们之间的优劣,并作出取舍,大大降低了整个设计的开发本钱。 VHDL语言的硬件有相对的独立性,它与制作工艺无关,不会随其而改变,所以使用时间长。一个设计可以在其他的硬件结构中使用,使用过程中也不需要对其结构有深入的了解,总而言之,使用起来比拟简单。 223 VHDL语言的设计流程 设计标准的定义首先设计者要知道
25、设计目的和要求,然后制定整个系统设计的总体方案。这一步是整个系统设计的铺垫,是十分关键的。 采用VHDL进行设计描述设计者先要根据系统设计的要求选择方式,考虑是否要分模块来编写。通常,设计者采用“自顶向下的设计方法。在划分模块的时候一定要仔细划分,确保这样的划分是最好的,不然会直接影响到电路的设计。规划完成后,设计者可以此为依据编写每个模块相应的VHDL程序,再将每个局部程序组装起来,这样就成了一个完整的程序。 VHDL程序仿真程序仿真是编写程序过程中不可或缺的。如果编写好的程序不进行仿真,直接布局布线,假设此时发生错误,那么需要修改VHDL语言再重新布局布线,十分耗时。假设每编写一个程序就对
26、其仿真,可以及时发现错误,节省设计者的时间和金钱。 综合、优化和装配或布局布线综合指的是将设计描述转化成底层电路的表示形式,其结果是一个网表或者是一组逻辑方程10;优化是为了缩小时间延迟,更好的利用资源来提高程序的执行效率;装配就是对特定资源进行分配。而布局布线是将每个模块的程序编译以后生成的元器件重新定位,然后再进行布线。 仿真 这是在程序编写完毕,并且装配完成之后进行的仿真,是对整个程序是否符合其要实现的功能的验证。23 Quartus软件231 Quartus软件简介MAX+plus软件是美国Altera 公司推出的一种EDA 工具,在开发出来后的几年时间里,Altera 公司在推出两种
27、设计芯片同时也在不断改良开发软件,一共经历了四代:第一代A+plus、第二代MAX+plus、第三代MAX+plus II 和第四代Quartus。Quartus软件不但包含了MAX+plus II软件的优势,在面对新技术时同样可以使用。Quartus是一款针对FPGA芯片的综合性的开发软件,它有多种输入方式,例如:原理图输入、AHDL语言输入、VHDL语言输入、Tcl script输入以及Systemverilog HDL语言输入等。同时,它的内部有自己的编译综合器和仿真器,能够进行与程序相对应的输入输出管脚的波形仿真,最后对器件的各个引脚进行分配,是设计器件用的比拟完整的一个软件。Quar
28、tus软件适用于多种系统,像个人电脑的Microsoft Windows XP、Microsoft Windows 7系统,Linux系统以及Unix系统等都支持这款软件。除此之外,这款软件还支持LPM宏功能模块库,设计者可以使用已存在的模块,无需重新编写,简化了设计过程,提高了设计效率。它也支持第三方软件工具的运行,除了自身可以对程序进行波形仿真之外,其他的仿真工具它也能使用。另外,Quartus支持多种可编程逻辑器件的开发、集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,它的软件设计功能强大且容易操作,是一种综合性的开发平台11。232 Quartus软件的特点该软件对Altera 公
29、司之前开发的几代软件去其糟粕,取其精华,再在功能上加以改良才开发出的新产品。所以,之前几代软件的功能它都具备,同时简化了使用者的操作,使用户能很快的入手。在整个逻辑器件设计的过程中,从程序各模块的编写到程序的编译到设计功能的仿真再到编程下载都有这款软件提供,可以说这是一款功能十分强大的软件。该软件支持公司多款MAX系列的器件,与很多EDA供给商开发的软件工具兼容,改良了软件的LogicLock模块设计功能,增添了FastFit编译选项,推进网络编辑性能,提升了调试能力12。233 Quartus软件的设计流程Quartus软件开发的设计流程图如图2.2所示。设计输入综合布线布局时序分析仿真在线
30、校验修改设计器件编程与配置生产图2.3 Quartus软件的设计流程 设计输入 设计者根据程序要实现的功能着手,考虑好思路并设计好各模块的划分,再用VHDL语言或原理图等的形式输入。 综合设计者将之前输入的设计根据软件本身的要求进行编译、优化、配置与综合,生成了网表文件,供下一阶段使用。 布局布线设计者用适配器将上一阶段综合得到的网表文件对应到FPGA器件上。将分开的模块重新定位,之后组合到一起,给其分配引脚,再布局。 时序分析网表的布局布线完成后,即可得到相应的供此阶段用的编程文件。设计者可以看到整个编程文件的时序信息,也可以分析它的时序性能。 仿真它有两种形式,一种是在不考虑外界环境及器件
31、因素的情况下的对电路的直接仿真;另一种是在接近实际环境中对生成的器件的仿真。 器件编程与配置设计者在编译成功之后将编译的程序下载到实际的试验箱上进行进一步验证。 在线校验对配制好的器件在网上测试,看其是否符合原先器件设计要到达的功能。3 课题设计31 设计要求设计一个程序并对它进行仿真验证使它能够模拟地铁站自动售票机的功能。主要内容如下:该自动售票机的主控模块控制其他几个模块,当主控模块的start=1的时候,使能端en0和en1为1,此时车票选择模块与纸、硬币处理模块工作,分别输出总价cost和总票数quantity以及投入总钱数money_insert。当主控模块的start=0的时候,使
32、能端en2为1,此时自动找零、出票模块工作,根据使能端bi为1或0来选择自动售票机是找零出票呢还是退钱不出票。自动售票机的整个功能如下所述:自动售票机有两处可以投币,一处接受硬币另一处接受纸币。硬币接受孔只能识别一元硬币,纸币接受孔可以接受5元和10元的纸币。根据站点的远近,将车站均等的分成三组,第一组的票价为2元,第二组的票价为3元,第三组的票价为4元。乘客一次只能选择一个价位的票,但每次最多可以选择购置三张车票。中选好出站口和购置的车票数以后,乘客就要开始投币,投币过程中可以投入硬币可以投入纸币,也可以两种混投,只要投入的钱数满足本次购票需要的钱数即可。假设投入的钱数不够需要的钱数,售票时
33、机显示钱数不够,要求继续投币,直到到达所需金额为止。投币结束后,自动售票机自动出票并进行找零,交易结束,跳回主界面等代下位乘客。假设是乘客在购票过程取消了购票操作,那么自动售票机立即结束购票进程,并返还已投的钱币。32 系统分析与设计方案321 系统的框架结构根据课题要实现的功能,选择按模块来编写程序,本设计大概分成四个模块,分别是自动售票机主控模块,车票选择模块,纸、硬币处理模块,自动找零、出票模块。总的框架图如图3.1所示。自动售票机主控模块纸、硬币处理模块自动找零、出票模块车票选择模块costenoen1money_inserten2bidfquantity图3.1 自动售票机系统结构框
34、图 自动售票机主控模块:当此模块的start为1的时候,使能端en0和en1为1,en2为0,此时车票选择模块与纸、硬币处理模块工作。当此模块的start为0的时候,使能端en2为1,en0和en1为0,此时自动找零、出票模块工作。假设投入的总钱数大于等于总价的话,使能端bi为1, 自动售票机输出票数quantity,并输出对应的找钱df为money_insert-cost。假设投入的总钱数小于总价的话,使能端bi为0, 自动售票机不出票,并退出乘客负的总钱数,此时df为money_insert。 车票选择模块:受控于主控模块,乘客先启动rest让售票机进入初始状态,然后根据自己的需要选择票价
35、,有2元,3元,4元的可供选择,选定票价后再选择购置张数,乘客一次性至多只能购置3张,选择完毕后输出总价cost和总票数quantity。 纸、硬币处理模块:受控于主控模块,乘客先让rest为0让售票机进入初始状态,等时钟脉冲的上升沿到来时,投入钱币数,有1元硬币,5元和10元纸币,假设投入的钱数缺乏于总票价,那么继续投币,否那么输出投入总钱数。 自动找零、出票模块:受控于主控模块,乘客先让rest为0让售票机进入初始状态,等时钟脉冲的上升沿到来时,假设是使能端bi为1,那么输出票数为车票选择模块输出的票数quantity,并且输出找零为df。假设是使能端bi为0,那么不出票,退回投入的总钱数
36、money_insert。整个操作流程图如图3.2所示。投币数票价计算金额投币选票3元4元2元进入初始状态是否出票找零继续投币退币返回否是交易结束图3.2 操作流程图322 各模块功能分析自动售票机主控模块该模块是自动售票机的核心,它通过控制其余模块的使能端来控制其他几个模块的运行。主控模块的原理图如图3.3所示。图3.3 车票模块原理图 输入端口:rest:复位信号,当rest为0时,所有输出为零,定义为初始状态。clk:时钟脉冲,定义为上升沿时有效。start:选择功能使能端,start为1时,车票选择模块与纸、硬币处理模块工作,start为0时,自动找零、出票模块工作。money_ins
37、ert:乘客投入的总钱数。cost:乘客选择的总票价。 输出端口:en0:使能端,控制车票选择模块工作。en1:使能端,控制纸、硬币处理模块工作。en2:使能端,控制自动找零、出票模块工作。bi:使能端,控制是否出票找零或是退钱。df:根据bi的状态决定退出的钱数。车票选择模块 此模块共有三种票价的车票可供选择,乘客可以根据自己的需要选择票价及票数不超过3张。车票选择模块的原理图如图3.4所示。图3.4 车票选择模块原理图输入端口: rest:复位信号,当rest为0时,所有输出为零,定义为初始状态。 clk:时钟脉冲,定义为上升沿时有效。 jia_2,jia_3,jia_4:分别代表2元,3
38、元和4元的票价,当其中一个为1时,代表该票价被选中。shu_1,shu_2,shu_3:分别代表1张,2张和3张的票数,当其中一个为1时,代表该票数被选中。 输出端口:quantity:代表乘客所选择的票数。cost:代表乘客最终选择的总票价。 其他端口: price:代表乘客所选择的票价。 纸、硬币处理模块此模块主要执行乘客在上一个模块中所选择了总票价后来投入纸、硬币购票的过程,将投入的总钱数送往主控模块进行比拟。纸、硬币处理模块的原理图如图3.5所示。图3.5 纸、硬币处理模块原理图 输入端口:rest:复位信号,当rest为0时,所有输出为零,定义为初始状态。clk:时钟脉冲,定义为上升
39、沿时有效。en1:使能端,en1为1时有效,代表纸、硬币处理模块工作。qian_1,qian_5,qian_10:代表投入的钱数分别为1元,5元和10元,当其中一个为1时,代表投入该钱数。cost:代表车票选择模块中乘客选择的总票价。 输出端口:money_insert:代表乘客在购票时投入的总钱数。 其他端口: qian:代表在投币过程每次投入的钱数。 自动找零、出票模块此模块主要根据乘客所购置车票的价格及其投入的钱数进行相应的出票并找零或是不出票并退钱的操作。车票选择模块的原理图如图3.6所示。图3.6 自动找零、出票模块原理图 输入端口: rest:复位信号,当rest为0时,所有输出为
40、零,定义为初始状态。 clk:时钟脉冲,定义为上升沿时有效。en2:使能端,控制自动找零、出票模块工作。bi:使能端,控制是否出票找零或是退钱。quantity:代表乘客所选择的票数。df:根据bi的状态决定退出的钱数。 输出端口:piaoshu:售票机吐出的票数。change:售票机吐出的所找的零钱数。323 整个系统功能分析当各个模块都设计好并且仿真成功后,建立顶层文件,并将各模块相应的端口连接起来,其中所有模块共用一个时钟信号clk。整个自动售票机程序的顶层文件如图3.7所示。图3.7 整个自动售票机系统原理图4 程序仿真41 自动售票机主控模块的波形仿真此模块波形仿真图如图4.1,4.
41、2所示。图4.1 主控模块波形仿真图Start设定周期为10 ns ,cost设定周期为10ns ,当start为1时,选择en0与en1使能端工作,即选票模式与投币模式共同运行,而start为0时,en2使能端工作,即找零/出票模式运行,开始找零出票或退钱。 money_insert设定周期为10ns 并且延时为5ns,使波形中出现money_insert与cost的价格相同的时间也会出现money_insert比cost的价格小的时间,当cost与money_insert 的价格相同时,总是满足 money_insert=cost的情况,所以此时 bi为1, df的值为money_inse
42、rt与cost两值之差,此时df总是为0,说明此模块程序波形仿真成功。当money_insert的价格小于cost的价格的时候,此时bi为0, df与money_insert的值相等,此时df的输出始终等于输入的价格,即money_insert 的值,说明此模块程序波形仿真成功。图4.2 主控模块波形仿真图将时钟脉冲clk的周期设定为1ns,上升沿有效。当复位脉冲rest为1时,上升沿时钟脉冲到来相应的输出端工作。start设定周期为10 ns ,选择的总票价cost设定周期为10ns ,当start为1时,选择en0与en1使能端工作,即选票模式与投币模式共同运行,而start为0时,en2
43、使能端工作,即找零/出票模式运行,开始找零出票或退钱。 投入的总钱数 money_insert设定周期为5ns,使波形中出现money_insert比cost的价格大的时间,所以此时 bi总为1, df的值为money_insert与cost两值之差,如:start为0时,en0,en1.en2分别为001,cost为2,money_insert为4,所以bi为1,且df为money_insert与cost两值之差,为2,说明此模块程序波形仿真成功。42 车票选择模块的波形仿真此模块波形仿真图如图4.3所示。图4.3 车票选择模块波形仿真图将时钟脉冲clk的周期设定为1ns,上升沿有效。当复位
44、脉冲rest为1时,上升沿时钟脉冲到来,开始选择票价,在设定票价信号时选择20%的占空比,并且将不同票价jia_2,jia_3,jia_4的周期设定为100ns,且逐一延时5ns,使它们之间不发生重合,以同样的方式设定票数shu_1,shu_2,shu_3的周期,要注意,shu_1的周期要覆盖整个jia_2,jia_3,jia_4的周期的并集,保证乘客一次只能选定一个票价和购票数。并且它们为1时有效,代表选中。如仿真图所示,当票价price为4元,购票数quantity为两张的时候,乘客需要付的总票价cost为8元,说明此模块程序仿真成功。43 纸、硬币处理模块的波形仿真此模块波形仿真图如图4
45、.4所示。图4.4 纸、硬币处理模块的波形仿真图将时钟脉冲clk的周期设定为1ns,上升沿有效。 当复位脉冲rest为1且纸、硬币处理模块的使能端en1为1时,上升沿时钟脉冲到来,该模块开始工作。购票需要的总票价cost的周期设为25ns,并且延时20ns。在设定投入钱币信号时选择20%的占空比,同时将投入的钱数qian_1,qian_5,qian_10的周期设定为25ns,并且qian_1,qian_5,qian_10分别延时13ns,33ns和53ns,保证它们之间不会重合但又都在同一个总票价中,并且它们为1时有效,代表选中。如仿真图所示,当总票价cost为9元时,qian_1有效时,投入
46、1元,由于投入钱数money_insert小于总票价cost,所以继续投入一元进行累加,当qian_5有效时,投入5元,累加的7元,还是缺乏,继续投入5元,累加得12元,此时投入充足的钱了,投入的总钱数money_insert就为12,说明此模块程序仿真成功。44 自动找零、出票模块的波形仿真此模块波形仿真图如图4.5所示。图4.5 自动找零、出票模块的波形仿真图将时钟脉冲clk的周期设定为1ns,上升沿有效。当复位脉冲rest为1且自动找零、出票模块的使能端en2为1时,上升沿时钟脉冲到来,该模块开始工作。df的周期与选择的票数quantity的周期都设为5ns,出票或退钱的使能端bi的周期
47、设定为10ns,当bi为1时,开始找零且出票,;例如:df为10,quantity为2时,找零change为10,出两张票,波形仿真正确。当bi为0时,售票机不出票并退回钱,例如:df为4,quantity为4时,退出的钱数为4,输出票数为0,说明此模块程序仿真成功。45 整个售票机系统的波形仿真图该波形仿真图如图4.6,4.7所示。图4.6 整个售票机模块系统的波形仿真图将时钟脉冲clk的周期设定为1ns,且上升沿有效。start为模块选择势能端,当start为1时,车票选择模块和纸、硬币处理模块工作,当start为0时,自动找零、出票模块工作。jia_2,jia_3,jia_4代表选择的票
48、价,shu_1,shu_2,shu_3代表选择的票数,qian_1,qian_2,qian_2代表投入的钱数,当它们其中一个为1时代表选中。上述图中选择了3元的票价,购置了3张票,一共投了10元。在start为1的时候输出选择的票价price为3,投入的钱数qian为10,在start为0时输出票数3和所找的零钱change为1元。验证正确,说明此模块程序仿真成功。图4.7 整个售票机模块系统的波形仿真图将时钟脉冲clk的周期设定为1ns,且上升沿有效。start为模块选择势能端,当start为1时,车票选择模块和纸、硬币处理模块工作,当start为0时,自动找零、出票模块工作。jia_2,j
49、ia_3,jia_4代表选择的票价,shu_1,shu_2,shu_3代表选择的票数,qian_1,qian_2,qian_2代表投入的钱数,当它们其中一个为1时代表选中。上述图中选择了4元的票价,购置了3张票,每次投入的钱数为1元。在start为1的时候,每有一个上升沿来临时,就投入1元,当start为0时不再投钱。由于start为0时投入的钱数缺乏12元,所以在start为0时不出票,并退回投入的钱数3元。验证正确,说明此模块程序仿真成功。5硬件验证51 上箱过程在整个程序的波形仿真成功之后,便可进行下一步操作:上箱验证。步骤如下: 将整个程序的管脚配置好,要保证这些管脚与实验箱上的实际管
50、脚一一对应。管教配置如图5.1所示。图5.1 自动售票机程序管脚配置注意:由于数码管的输入是4位的,而piaoshu的输出只有3位,所以需要将piaoshu的最高位设为0,如图5.2所示。图5.2 自动售票机piaoshu最高位管脚配置 配置好管脚以后再次进行仿真,使管脚信息进入程序中,连接实验箱,将仿真好的程序烧入实验箱进行验证。如图5.3所示。图5.3 程序烧入试验箱52 上箱结果将仿真好的程序烧到实验箱上以后,便可进行验证,其中时钟脉冲clk为0.5HZ。验证结果如下列图5.4,5.5所示。图5.4 投币缺乏退钱且不出票本次实验用四个数码管显示,第一个代表选择的票价price,第二个代表
51、投入的钱数qian,第三个代表吐出的票数piaoshu,最后一个代表吐出的钱数change。除此以外还有8个输入:键8表示start,键7表示qian_5,键6表示qian_1,键5表示jia_4,键4表示jia_3,键3表示jia_2,键2表示shu_3,键1表示shu_1。由于设计的系统除时钟脉冲clk和复位信号rest外共有10个输入,但按键只有8个,所以这里省掉了qian_10和shu_2的输入。当start为1时系统在选择票价票数后投入钱数,当start为0时,系统出票。上图选择的票价jia_2为2,票数shu_1为1,投入的钱数qian_1为1,在这种情况下投入的钱数缺乏,所以系统
52、不出票且退出所投的钱1元,验证成功。图5.5 投币足够找零且出票上图中选择的票价为jia_3为3,票数shu_1为1,投入的钱数qian_5为5,在这种情况下投入的钱数大于总票价,所以系统吐出1张票并且退出所找的零钱2元,验证成功。结 论这次的毕业设计利用的是VHDL语言编程的,所采用的是自上而下的模块化设计地铁站自动售票机的。先将整个课题按要实现的功能合理的分成了四个模块,分别对每个模块进行VHDL编程并进行相应的波形仿真,全部成功之后再把四个模块合起来,生成顶层文件,再对其进行最后的波形仿真看能否实现自动售票机要求的功能,最后下载到试验箱进行最后验证。在设计过程中也有遇到一些困难,在刚开始
53、分模块的时候就出现了错误,分出来只有三个模块,由于模块分的不佳,编写的程序较为复杂且逻辑不通,后来纠正了错误才成功的。通过本次毕业设计,我学到了很多,首先是对VHDL语言有了更深层次的理解,而且也能操作Quartus软件了,这是知识上的收获,此外,也培养了我的逻辑思维以及独立思考的能力,总的来说是一次很好的锻炼。 致 谢这次的毕业设计之所以能够顺利的完成,主要还是要感谢指导老师对我的悉心指导,以及同班同学对我的帮助,没有他们的耐心帮助,我可能无法完本钱次毕业设计。也要感谢身边的朋友和亲人对我的关心,是他们在我不耐烦的时候给了我勇气,让我能坚决的走下去。参 考 文 献1 李开.自动售票机的创新设
54、计与应用J.中国电子商务,2021,(11):117.2 向鹏.地铁自动售票机系统设计J.自动化应用,2021, (11):12.3 张国侯,宗明.南京地铁自动售检票系统(AFC)模式研究J.机电信息, 2005,(22):49.4M.东南大学出版社,2000.5 于宗光. SoC和FPGA技术未来的开展趋势J.电子与封装, 2006,(3):12.6 阎石.数字电子技术根底M.4版.北京:高等教育出版社,1998.7 的VHDL数字系统设计入门与应用实例M.1版. 北京:电子工业出版社,2021.18-19.8软件的可编程逻辑器件应用与开发M.2版. 北京:国防工业出版社,2021.44.9
55、的VHDL数字系统设计入门与应用实例M.1版. 北京:电子工业出版社,2021.54. 10的VHDL数字系统设计入门与应用实例M.1版. 北京:电子工业出版社,2021.53.11 张竟成. 基于解析模型的变电站培训仿真系统D.天津: 天津大学,2021.12的VHDL数字系统设计入门与应用实例M.1版. 北京:电子工业出版社,2021.20-21.附录自动售票机主控模块的VHDL代码如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity zhu_kong isport(start,
56、clk,rest:in std_logic; cost,money_insert:in std_logic_vector(3 downto 0); en0,en1,en2,bi:out std_logic; df:out std_logic_vector(3 downto 0) -定义各输入输出端口 );end zhu_kong;architecture behave of zhu_kong is begin process(clk) begin if (rest=0) then en0=0; en1=0;en2=0; bi=0; df=0000; -先将各状态清零 elsif (clkeve
57、nt and clk=1) then -等待时钟脉冲上升沿的到来 if (start=1) then -选择功能使能端有效时 en0=1;en1=1;en2=0; -车票选择模块,纸、硬币处理模块工作 else en0=0; en1=0;en2=cost) then -当投入的总钱数=总价时 bi=1; df=money_insert-cost; -使能端bi有效,退钱数为总钱数与总价之差 else bi=0; df=money_insert;-否那么使能端无效,退钱数为总钱数 end if; end if; end process;end behave;车票选择模块的VHDL代码如下:lib
58、rary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ticket_select is port(rest:in std_logic; clk:in std_logic; jia_2,jia_3,jia_4:in std_logic; shu_1,shu_2,shu_3:in std_logic; price:buffer std_logic_vector(3 downto 0); quantity:out std_logic_vector(2 downto 0); cost:out std_l
59、ogic_vector(3 downto 0) -定义各输入输出端口 ); end ticket_select;architecture behave of ticket_select is begin process(clk) begin if (rest=0) then price=0000; quantity=000; cost=0000; -先将各状态清零 elsif (clkevent and clk=1) then -等待时钟脉冲上升沿的到来 if (jia_2=1) then price=0010; -选择2元的票价 elsif (jia_3=1) then price=0011; -选择3元的票价 elsif (jia_4=1) then price=0100; -选择4元的票价 else price=0000; -没有选择票价 end if; if (s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 园林与诗画测试题及答案解析
- 生物 高三二轮复习 2016届 实验班卷
- 美术 2015年高考高考前摸底卷 探究题版
- 面向高中生的文员培训考卷及答案
- 湖北省云学联盟2025-2026学年高二下学期期中素养测评试题 历史 版含答案
- 2026年安全生产月员工安全培训测试题(含答案)
- 从叙事医学角度探索中医人文的基本特征-以中医、针灸诊疗为例
- 2026金融合规新规应用实战测评考核试卷及答案
- 2025注册会计师税法考试试题及答案解析真题回忆版
- 2025年临床科室“三基三严”理论考试试题
- 2026年教师资格中学教育心理学考试题目及答案3
- 2026赫章鑫晨建工(集团)有限公司招聘20名工作人员笔试备考试题及答案详解
- 2025年留疆战士考试题(附答案)
- T/CECS 10163-2021纤维增强聚氨酯复合材料杆塔
- 请示汇报制度管理制度
- 义务教育(音乐)课程标准(2022年版)解读
- 急诊与接诊制度
- 医院食源性疾病培训课件
- DL∕T 593-2016 高压开关设备和控制设备标准的共用技术要求
- 人教版高一下学期期末考试数学试题与答案解析(共五套)
- 2022青鸟消防气体灭火控制器JBF5016使用说明书
评论
0/150
提交评论