基于EDA的自动售货机设计毕业论文
2020-04-12 08:47:40
摘 要
自动售货机是一种能识别投入的货币并售卖商品的商业化机器,因其便捷性和全天候工作的特性而得到人们的喜爱,并被广泛投放于公共场所进行使用。本文先对自动售货机的硬件、描述语言、开发环境方面进行方案选择;即在EDA工具quartus2中,基于FPGA使用Verilog HDL语言对系统进行设计。在总控模块中使用三段式法对状态机进行设计,实现系统中各工作状态之间的跳转,并使系统的输出稳定;同时用高电平检测程序对投币信号进行处理,只选取第一个周期作为有效信号,加快系统反应速度。再通过数码管真值表对应系统的输入输出关系并设计出BCD码译码模块,使其能通过数码管进行显示。最后将总控模块和BCD码译码模块连接在一起得到的总程序进行编译后,再使用quartus外接的modelsim软件进行仿真,得到相应结果。
关键词:EDA、quartus2、FPGA、Verilog、状态机
Abstract
The vending machine is a kind of commercial machine that can identify the input currency and sell goods. It is popular with people because of its convenience and characteristics of all-weather work, and is widely used in public places. In this paper, the hardware, description language and development environment of the vending machine are selected firstly. That is, in the EDA tool quartus2, the system is designed based on FPGA using Verilog HDL language. The three-stage method is used in the master control module to design the state machine to realize the jump between the various working states in the system and to make the system output stable. At the same time, the high level detection program is used to process the coin signal, only Select the first cycle as a valid signal to speed up the system response. Then through the digital tube truth table corresponding to the system's input and output relations and design a BCD code decoding module, so that it can be displayed through the digital tube. Finally, the total program obtained by connecting the master control module and the BCD code decoding module is compiled, and then the modelsim software of quartus is used for simulation to obtain the corresponding result.
Key Words:EDA、quartus2、FPGA、Verilog、State Machine
目录
摘要 I
Abstract II
第1章 绪论 1
1.1 背景 1
1.2 目的和意义 1
1.3 国内外研究现状 2
第2章 系统结构设计与方案选择 3
2.1 系统结构 3
2.1.1 自动售货机主要功能 3
2.1.2 系统的模块划分 3
2.1.3 系统流程图 3
2.2 方案设计 4
2.2.1 硬件选择 4
2.2.2 硬件描述语言选择 5
2.2.3 设计环境选择 6
2.3 小结 8
第3章 自动售货机的设计及仿真 9
3.1 自动售货机总控模块设计 9
3.1.1 状态机 9
3.1.2 状态机设计 10
3.1.3 内部算法设计 12
3.1.4 总控模块仿真 13
3.2 BCD码译码模块 16
3.3 系统设计与仿真 18
3.4 小结 21
第4章 总结 22
致谢 23
参考文献 24
附录 25
第1章 绪论
- 背景
随着时代的进步,人们的日常生活也有了许多新的需求,其中也包括了快捷购物方面的需求,于是自动售货机这种能全天候贩卖商品的机器便应运而生。自动售货机是一种能自动识别投入的货币并贩卖商品的一种商业化机器,也被称为全天候营业的便利店。它不仅不受限于时间和地点,还解放了人力,便于交易。由于只需要一些零钱和硬币便能全天候买到饮料等商品,自动售货机刚问世便受到了许多人的欢迎,迅速地发展起来。可以看到,在学校、车站、公园、医院、银行、超市等公共场所都有着自动售货机的影子。在这个快节奏的时代,自动售货机因其新颖的售货方式而被广泛投放于各种公共场所中,满足了各种人群的需求。尤其是在日本、美国等发达国家,自动售货机的发展势头更是迅猛,从起初的售卖邮票、口香糖发展到现在的香烟、车票、饮料、新鲜食品、药品等各种零售商品。目前,已经有50多个国家和地区通过自动售货机贩卖各种商品。据不完全统计,在日本,自动售货机售出了大约全国七成左右的罐装饮料。同时在自动售货机数量上,平均下来每20人就拥有一台。由此可以看出,自动售货机在日本的受欢迎程度。在日本、美国还有欧洲的许多发达国家中,关于自动售货机方面的技术已经日趋成熟,而我国由于起步较晚,现在仍然处于上升阶段。但是,可以预见随着社会的不断发展,为了适应快节奏的现代生活,我国的自动售货机行业必将在不久的未来迅速的发展起来。
- 目的和意义
当今社会已经进入到了互联网信息时代,信息时代造就了各种电子成品,时代的发展也同样离不开他们。电子成品的研究与发展在新时代就显得尤为关键。电子成品其核心一般是由许多晶体管集成而成的芯片。而在一块微小的芯片上对几百万甚至更密集的晶体管进行集成之前,还需要对集成电路进行电子设计。电子产品发展的关键就在于设计上的不断改进。自动售货机当然也少不了内部系统的电子设计。而电子设计方面最主要的技术就是EDA技术。利用EDA技术可以对所需系统进行大规模集成电路的设计。
在社会整体的自动化与智能化上,自动售货机的数量与质量俨然已经是一座城市发展繁荣的重要指标。但我国自动售货机的发展比起国外等先发国家还是较为落后,主要原因还是在于我国EDA技术的不成熟和专业人才培养的缺失。为了赶上先发各国的技术,我国在EDA技术上的研究还需要更加努力,对自动售货机的研究也要更加重视。本课题基于EDA设计了一个简易的自动售货机,其程序代码是使用Verilog HDL硬件编程描述语言进行撰写的。程序中采用了状态机的设计思路对自动售货机的主要功能进行设计,能完成钱数处理、找零、退币以及显示等功能。在各个模块的程序编写完成后,在quartus2软件上对各个模块进行编译以及仿真,然后再将各个模块整合连接在一起形成系统的整体电路图,再对系统的总程序进行仿真。
通过本次设计,可以了解EDA设计的基本流程和设计思路,掌握EDA设计的基本方法。学习Verilog HDL语言可以丰富对编程语言的认识,了解各种编程语言的优势,掌握硬件编程的方法。使用quartus2软件对系统各个模块以及总体进行仿真调试能够熟悉掌握quartus2软件的各方面功能,并且对所学的一些专业课程进行了综合运用,做到学以致用。
- 国内外研究现状
目前,国内部分厂商使用单片机对自动售货机进行设计。其控制中心从起初的8位、16位单片机变成了如今的32位arm微处理器,向着微型、高效的方向发展。安徽双凯智能科技有限公司是国内著名的自动售货机供应商,其最新设计的SK-YL-01型号自动售货机相对于过去传统的自动售货机增加了许多强大的功能。在传统投币支付的基础上引进了支付宝、微信等支付方式;在后台管理方面,可以多台机器共用一套GPRS远程控制系统,其构成的物联网可以随时查询每一台售货机的销售数据和运营状况;在防盗方面,可以进行远程监听监管,并且在停电的情况下仍然可以发出远程无线报警信息;其旋转式货道还可以适应不同尺寸的各类商品。而国外的自动售货机则已经向着商品保鲜的方向发展。意大利的necta公司已经设计出了能销售新鲜食物的自动售货机,necta公司的这款Melodia自动售货机可以在三个区域内设计不同的温度,实现了从销售速食到新鲜事物的完美转换;还能分类设置不同的按键功能,更好地区别小食品、罐装饮料、瓶装饮料和新鲜食物;同时还配备了GIGA系统,可以简单快捷的对机器进行管理,可以和necta公司的另一款concerto机型自动售货机进行组合。自动售货机发展到如今,已经向着更加智能化的方向发展,无论是支付方式的进步还是商品可选性的提高,都是为了方便人们的生活,在之后也会向着更加人性化的方向发展。
第2章 系统结构设计与方案选择
- 系统结构
- 自动售货机主要功能
本课题设计了一种能完成钱数处理、找零、退币以及显示等功能,并且能多次交易的自动售货机,能够识别五角和一元的硬币,当投入的钱数总值大于或者等于商品价格时,自动售货机就会将商品售出,并且会找还相应的零钱。
- 系统的模块划分
系统总体按各部分功能分为两个模块,一是总控模块,二是BCD码译码模块。如图2.1所示。
投币
商品选择
CLK时钟
图2.1 自动售货机功能模块图
总控模块采用状态机的编程思想,设计成7个状态:a、b、c、d、e、f、g,交易状态则外接3个LED灯表示。在clk作用下,用按键模拟投入1元、5角硬币,a为初始状态,当选择商品后即进入b状态等待用户投币,当超时不投币即进入e状态,交易失败,e状态延时后返回a状态,当已投币但已付钱币不足时,即进入c状态,显示仍需投币数,若超时不投币,即进入g状态退回钱币,交易失败,若投币总数大于或等于商品价格时,即进入d状态出货找零,之后进入f状态,交易成功,f状态延时后返回a状态。总控模块输出的paying、paydec、paytotal、ptodec、payreturn和predec信号经BCD码译码模块由4位二进制数转换为7位BCD码,以便能用7段显示数码管显示出来。
- 系统流程图
系统的流程图如图2.2所示,系统在初始状态下等待消费者选择商品,选择商品后等待投币,未投币则返回初始状态,否则自动对投入钱币进行计算,已投钱币大于或者等于商品价格时,进行出货找零,小于等待继续投币,超时未完成购买操作则退还钱币并返回初始状态。
图2.2 自动售货机内部工作流程图
- 方案设计
- 硬件选择
自动售货机的硬件设计通常情况下有两种选择,一是使用单片机进行设计,另一种是使用FPGA进行设计。两种方法有各自的优势,也有各自的不足。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: