版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘要本系统采用了Altera的开发软件的Quarts II。该软件平台进行数字电路设计和仿真的方法;阐述了VHDL(Very High Speed Integrated Circuit Hardware Description Language语言的一些特点及语法结构;介绍了自动售货机系统的基本原理、系统组成和主要功能;并分析讨论了用VHDL语言开发自动售货机系统的设计流程。本设计利用Altera公司的开发软件Quartus II平台,采用VHDL硬件描述语言编程的设计方法设计系统核心电路的硬件程序,在Quartus II软件平台上进行编译和电路仿真,最后生成的目标文件下载到实验台内的FPGA
2、芯片以实现该系统,并在实验台上对设计进行了验证。最终完成的自动售货机系统具有投币处理、商品选择、购货撤销、异常退币、计算存货等主要功能,整个系统的开发体现了在Quartus II软件平台上用VHDL设计数字控制系统的实用性。关键词:FPGA,EDA,VHDL,Quarts II,Altera,自动售货机AbstractThis system uses a Altera development software Quarts II .It explains the characters and program structure of VHDL(Very High Speed Integrate
3、d Circuit Hardware Description Language,the basic principle and main functions of the automat system,and the design scheme based on VHDL language.The core circuit of the automat system is implemented by VHDL program,compiled and emulate on Quarus II platform of Altera.Finally,through the object code
4、s of the core circuit are downloaded into test instrument,the automat system is realized completely,and the validity of system design is verafiwd by the test platform.The finished automat system has the main functions of processing the thrown coin,goods choice,purchases abolishing,drawing back the c
5、oin,calculating goods in stock and so on.The whole system development manifests the practicability of designing the numerical control system on the Quartus II software platform with VHDL.Key Words:FPGA,EDA,VHDL,Quarts II,Altera,Vedingmachine目录1引言 (12硬件系统的设计 (12.1芯片的选择 (12.2时钟发生器 (12.3电源电路 (12.4键盘的设计
6、 (22.5显示器设计 (23软件系统设计 (23.1设计思想 (23.1.1功能要求 (23.1.2总体思想 (23.1.3控制状态的设计 (33.1.4设计流程图 (33.2模块分类 (43.2.1投币模块 (43.2.2商品选择模块 (53.2.3分频模块 (63.2.4计数模块 (73.2.5出货模块 (73.2.6显示模块 (83.2.7主控模块 (94结果分析与讨论 (11参考文献 (12致谢 (13附录1:硬件原理图 (14附录2:软件程序 (151 引言自动售货机是能根据投入的钱币自动付货的机器。自动售货机是商业自动化的常用设备,它不受时间、地点的限制,能节省人力、方便交易。一
7、般的自动售货机由钱币装置、指示装置、贮藏售货装置等组成。钱币装置是售货机的核心,其主要功能是确认投入钱币的真伪,分选钱币的种类,计算金额。如果投入的金额达到购买物品的数值即发出售货信号,并找出余钱。指示装置用以指示顾客所选商品的品种。贮藏售货装置保存商品,接收出售指示信号,把顾客选择的商品送至付货口。一般售货机的钱币装置由投币口、选别装置、确认钱币真伪的检查装置、计算金额的计算装置和找钱装置组成。从西欧、北美、日本和韩国等地区和国家的情况来看,自动售货机在人们日常生活中扮演越来越重要的角色。其产品特点是科技含量高;24 小时服务,售货便利;无需专人盯守,省人工,省成本;售货范围广泛;此外还是一
8、种新颖独特的广告媒体。目前,随着移动商务的发展,自动售货机作为一种方便、直观的移动商务工具,开始在全球各地迅速普及和发展1。2 硬件系统的设计本控制系统的硬件外围设备分为:外部存储器,外部电源,晶振信号发生器,以及FPGA芯片,LED外部显示灯,出货装置。2.1 芯片的选择本文所用到的FPGA芯片为,Altera生产的EPF10K10LC84 芯片, EPF10K10LC84-4是一种复杂可编程逻辑器件,另外还有其它类型的管脚和封装,选择性强2。2.2 时钟发生器自动售货机的控制系统需要一个时钟信号,我们选用的是6MHz的时钟信号。其中用两个振荡器以及两个电阻可以完成我们所需要的设定。2.3电
9、源电路日常所用到的电源为220V电压的电源,但是本课题中自动售货机所需要的电压为5V,因此我们需要设定一个变压电路来完成所需的电压。在这部分电路我们用到了一个变压器,一个整流桥,一个滤波电路,一个稳压器完成为5V电压的电源。2.4 键盘的设计为了完成购物自动售货机必须有购物键,本课题所要求的是五个按键,其中四个是商品选择键(热狗,饮料,汉堡,双层汉堡,剩下的一个按键为初始按键3。关于输入按键的信号发生情况将在下文中的软件系统设计中阐述,这里就不多叙述。2.5显示器设计自动售货机需要一个显示灯,当购物结束后显示器显示找零钱数额。对于显示器的显示数字情况,将在下文软件系统中的显示模块进行阐述。3软
10、件系统设计软件系统分为总体思想与模块的分类。3.1设计思想3.1.1 功能要求1.该系统能完成对货物信息的存储、进程控制、钱币处理、余额计算和显示功能。2.举例说明:如果自动售货机能够销售4种商品:热狗(1元,汉堡包(4元,双层汉堡包(8元,饮料(3元数量无限。自动售货机允许投入1元,2元,5元硬币:当总币值等于顾客需要的商品单价时,机器送出需要的商品:若总币值大于顾客需要的商品单价时,机器除提供所需商品外,并将余币退出;若总币值小于顾客需要的商品单价时,机器退出顾客投入的硬币。设机器内1元和2元的找零硬币无限。3.每次投币的时间有限制,不得超过30秒,在时间到时,总币值不足顾客购买的商品单价
11、时,自动售货机按不足钱数处理,退还全部硬币。或者在设定时间内,总币值不足顾客购买的商品单价时,若需要取消交易则可按取消键,售货机按不足钱数处理,退还全部硬币。4.当顾客完成一次购买后或按错按钮后,需要设置一个重新开始按钮,使整个系统恢复到初始状态。5.顾客一次只能购买一种商品的一个,若需要更多商品,需要重复操作4。3.1.2 总体思想自动售货机包括四个商品,依据四种商品分别设为四个按钮,A1,A3,A4,A8。当顾客选择其中的一种商品时,售货机发送出一个信号按钮不再生效,用一个LED 灯显示。设置三个按钮:a1,a2,a5来表示投入的硬币是1元、2元、5元。当顾客投入的硬币大于或等于售价时将不
12、再接受硬币,用一个LED 灯显示。当顾客确定某种商品且投入了足额的硬币,投币时限到时,投币窗口找零,用七段显示管显示找零数,同时送出商品,指示灯out 亮5。3.1.3 控制状态的设计此售货机分为三种状态:初始状态,投币状态,找零状态。1.初始状态:当售货机通电后进入初始状态,顾客购买时,可根据选择xuan_rg,xuan_yl,xuan_hb,xuan_schb 键购买商品,从而进入下一状态。当顾客购买错误或不再购买时按下start 重新进入初始状态。2.投币状态:在这个状态时xuan_rg,xuan_yl,xuan_hb,xuan_schb 键失效。投入钱(1元,2元,5元,当投入硬币等于
13、或者超过商品价格时进入下一状态。投币时间 为30秒超过30秒,售货机拒绝接受钱币。3.找零状态:投币结束,售货机自动判别总钱数,若在时限到来之际,总钱数少于顾客所需商品的单价,则退出钱币,用LED 显示退钱数。若大于或等于商品数则通过控制系统找零,用LED 显示找零数,送出商品6。3.1.4 设计流程图系统设计流程图,如图3-1所示。图3-1 系统设计流程示意图 是是否 否 否 是热狗 饮料 汉堡 投币计算金额 金额>物价 继续投币确认购买 出货找零 退币结束双层汉堡开始3.2 模块分类此售货机模块包括:投币处理模块,商品选择模块,投币模块,分频模块,控制器模块,计时模块,LED灯显示模
14、块,找零模块,出货模块,如图3-2所示。 图3-2 模块示意图3.2.1 投币模块自动售货机能够自动计算投入的钱币数目,需要提供一个寄存器来记录并保存投入的总币值。此模块有六个输入信号以及两个输出信号:qian1,qian2,qian5为不同数额钱币输入信号;en1为主控模块所发出的信号,当en1信号为1的时候,投币模块开始工作;reset为恢复初始信号,当reset信号为1 的时候投币模块不进行工作;en 为给计时器的输出信号,当en为1的时候计时器开始工作;bi为输出的钱币数目。通过程序所得到的仿真图如下所示7。1.当reset输入为0,输入为5元2元1元时,输出结果为7。仿真结果如图3-
15、3所示。 图3-3 reset输入为0时的仿真结果2.当reset输入为1时,输入5元,2元,1元,bi输出应为0。仿真结果如图3-4所示。 图3-4 reset输入为1时的仿真结果3.2.2 商品选择模块自动售货机的商品选择模块,通过自动售货机上的四个选择按键完成商品选择,在接收到对应四个商品之一的一个选择信号时进行编译,将被选择的商品进行编码,输入到主控模块中,在主控模块中与所接受的钱币进行对与计算。输入信号为a1,a2, a3,a8。而xuan_rg,xuan_hb,xuan_yl,xuan_schb为四个输出信号,与出货模块连接。reset 与en2信号来自主控模块,当reset为1时
16、模块进入初始状态,进行选择。当en2为1时,商品可以进行选择,当en2为0时,四个商品选择键无效8。商品选择模块如图3-5所示。 图3-5 商品选择模块通过程序所得仿真结果如下:1.当reset输入为1,en2输入为0,a8输入为1时,d输出应当为0,仿真结果如图3-6所示。 图3-6 reset输入为1,en2输入为0,a8输入为1时的仿真结果2.当reset输入为0,en2输入为0,a8输入为1时,d输出为0,仿真结果如图3-7所示。 图3-7 reset输入为0,en2输入为0,a8输入为1时的仿真结果3.当reset输入为0,en2输入为1,a8输入为1时,d输出为8,xuan_sch
17、b输出为1,仿真结果如图3-8所示。 图3-8 en2输出为2时的仿真结果3.2.3 分频模块分频模块是用来将外来的时钟信号进行分频,由于硬件系统已经知道,选用的时钟信号是由外部的6MHZ的晶振提供的,通过分频模块进行分频以后将得到周期为1HZ的信号9。由于仿真所需时间过长,本文选择100.0ns为一周期的信号,分频后为6.0us为一周期的信号,时钟输入信号为clk,输出信号为newclk,分频模块如图3-9所示。 图3-9 分频模块通过程序所得到的仿真结果如下:当clk第15输出为上升沿时,newclk输出为1,仿真结果如图3-9所示。 图3-10 newclk输出为1时的仿真结果3.2.4
18、计数模块由于课题要求自动售货机控制系统有定时系统,并限定在30s内完成投币,30s 之后投币无效,因此需要设定一个计数模块对投币时间进行限制。en为接受信号,当投币开始时投币模块发出信号,计数模块开始工作,当计数到30时向控制模块发出t信号。Clr为控制器发送给计数模块的一个信号,当clr为1时,计数器归零。Clk 为分频模块发送的时钟信号。计数模块如图3-11所示。 图3-11 计数模块3.2.5 出货模块出货模块是自动售货机给出相关货物的信号,本课题要求货物为四个商品,因此出货模块有5个输入信号,xuan_rg,xuan_sb,xuan_yl,xuan_schb,为所购商品的输入信号,en
19、为控制模块所给的信号当en=1时出货模块开始工作,然后对顾客所选择货物进行出货10。出货模块有四个输出信号为所选择的货物的输出信号。出货模块如图3.12所示。 图3-12 出货模块出货模块的仿真结果如下:1.当输入信号en为1,xuan_rg信号为1时,chu_rg信号为1,仿真结果如图3-13所示。 图3-13 chu_rg信号为1时的仿真结果2.当输入信号en为0,xuan_rg信号为1时,chu_rg信号为0,仿真结果如图3-14所示。 图3-14 chu_rg信号为0时的仿真结果3.2.6显示模块显示模块的作用是对购物结束后的所需找零数目进行显示。找零显示模块的输入端接收来自控制模块的
20、输入信号,输出端外接LED显示灯,由于找零的数目为范围为0至8,因此只需要一个LED显示灯,输出信号为a,b,c,d,e,f,g。找零显示模块如图3-15所示。 图3-15 显示模块当输入信号di为2时,g输出为1,f输出为0,e输出为1,d输出为1,c输出为0,b输出为1,a输出为1,仿真结果如图3-16所示。 图3-16 di输入为2时的仿真结果3.2.7 主控模块主控模块为自动售货机控制系统的核心部分,在主控模块中将输入的钱币数目(b与商品的价格(d进行对比,然后进行找零并发出出货信号。输入信号t为计时信号,当时间超过30s时,商品不再接受货币。Clk为控制系统的时钟信号。输出信号di,
21、c分别为找零显示模块的输入信号与找零信号。en为控制出货模块的信号,当en值为1时,确认出货模块可以输出商品。Start为复位信号,当start值为1时,自动售货机回到初始状态。Clr为计数模块的控制信号,当收货完成后,Clr输出为1,计数模块回到初始状态归零。en1与en2分别为投币模块与商品选择模块的控制信号,当en1为0时,投币模块不工作,当en2为0时商品选择模块不工作。主控模块如图3-17所示。 图3-17 主控模块主控模块的仿真结果如下:1.当start输入为0,t输入为0,b输入为5,d输入为4时,c输出为1,clr输出为1,en输出为1,en1输出为1,reset输出为1,仿真
22、结果如图3-18所示。 图3-18c输出为1,clr输出为1,en输出为1,en1输出为1,reset输出为1时的仿真结果。2.当start输入为0,t输入为1时,b输入为5,当输入为4时(b>=d,c输出为1,en输出为0,en1输出为0,clr输出为1,en2输出为0,仿真结果如图3-19所示。 图3-19 c输出为1,en输出为0,en1输出为0,clr输出为1,en2输出为0 时的仿真结果。4 结果分析与讨论通过设计简单的自动售货机,详细了解了自动售货机的投币模块,商品选择模块,主控模块等模块的软件设计与实现主要功能的模块的仿真。经过仿真与实践,整个系统的工作稳定可靠,具有较强的
23、适应性,当需要增加商品时,此控制系统只需增加相对的输入信号,硬件原有的电路不应改变,因此在自动售货机行业可以得到广泛的应用。不过缺点是只能完成相对比较简单的自动售货机功能,实现金额计算,发放商品,找零,退币等功能。由于其中是商品存货无限,找零无限,因此不会出现找零钱币与商品存货的不足的情况。解决办法是通过增加模块,与输入信号来解决。仿真过程中遇到的问题主要有:1、在仿真过程中由于原有时钟信号分频模块仿真时间过长,因此用频率相对较小的晶振进行代替仿真。2、仿真过程中找零所得钱币数目不能达到预期效果,通过调整主控模块程序已得到解决。参考文献1 袁亚恒,周伟.基于VHDL的自动售货机设计J,武汉理工
24、大学学报,武汉:信息管理工程版, 2007.32 宋潇,李佩佩,韩莹莹.自动售货机控制设计J,科技信息,机械与电子,2009.33 谭卫泽,徐畅.面向FPGA器件的VHDL语言优化设计方法J,南宁职业技术学院学报.2008.44 陈志刚.VHDL语言在电路设计中的优化J, 电子测试.2008.95 周润雅等.基于QuartusII的FPGA/CPLD数字系统设计实例M,北京:电子工业出版社,2007.56 姜雪松,吴钰淳,王鹰.VHDL设计实例与仿真M,北京:机械工业出版社,2006.37 徐光军,徐光辉.CPLD/FPGA的开发与应用M,北京:电子工业出版社,2002.108 PETER R
25、. WILSON. UNDERSTANDING THE FPGA DESIGN FLOW, Electronics world,2008.1 10L.M. Wu; W.B.Hu;N.H.Lai; G.T. Wang The Reconfigurable Embedded Nc System Based On FpgaM,Key Engineering Materials .2009.19 Mark D. Birnbaum .Essential electronic design automation (EDA. China Machine Press, 2005.910 Rusdiansyah
26、 A, Tsao D B.An integratedmodel of the periodic delivery problems for vending - machine supp ly chains J .Journal of Food Engineering, 2005.7致谢本课题在选题及研究过程中得到朱永琴老师的亲切关怀和悉心指导下完成的。她严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。从课题的选择到项目的最终完成,朱老师都始终给予我细心的指导和不懈的支持。在此谨向朱老师致以诚挚的谢意和崇高的敬意。同时我要感谢同学们对我做毕业设计期间的帮助,由于他们的热
27、情帮助促使我能在规定时间内完成我所做的课题,对于同学们的帮助我深怀感激之情。附录1:硬件原理图 附录2:软件程序投币模块主要程序如下:library ieee;use ieee.std_logic_1164.all;entity toubi isport (a1,a2,a5,en1,clk,reset:in std_logic;bi:out integer range 0 to 15;en:out std_logic;end toubi;architecture a of toubi issignal state:integer range 0 to 1;beginprocessvariabl
28、e qian:integer range 0 to 15;beginwait until clk=1and clk' event;if reset=1 then state<=0;bi<=0;qian:=0;en<=0;elsecase state iswhen 0=>if en1=1 then if a1 =1 then state<=1;bi<=1;qian:=1;en<=1;elsif a2=1 then state<=1;bi<=2; qian:=2;en<=1;elsif a5=1 then state<=1;
29、qian:=5;bi<=5;en<=1;end if;end if;when 1=>if en1=1 then if a1=1 then qian:=qian+1;bi<=qian;en<=1; elsif a2=1 then qian:=qian+2;bi<=qian;en<=1;elsif a5=1 then qian:=qian+5;bi<=qian;en<=1;end if;商选择模块主要程序如下:library ieee;USE ieee.std_logic_1164.ALL;ENTITY yima ISPORT( a1,a3,a
30、4,a8,en2,reset : IN STD_LOGIC;xuan_rg,xuan_yl,xuan_hb,xuan_schb:OUT STD_LOGIC;d: OUT integer range 0 to 8 ;END yima;ARCHITECTURE a OF yima ISBEGINprocess(a1,a3,a4,a8beginif reset=0' thenif a1=1' and en2=1' thend<=1;xuan_rg<=1'xuan_yl<=0'xuan_hb<=0'xuan_schb<=0&
31、#39; elsif a3=1'thend<=3;xuan_yl<=1'xuan_rg<=0'xuan_hb<=0'xuan_schb<=0' elsif a4=1' and en2=1' thend<=4;xuan_hb<=1'xuan_yl<=0'xuan_schb<=0'elsif a8=1' and en2=1' thend<=8;xuan_schb<=1'xuan_yl<=0'xuan_rg<=0
32、'xuan_hb<=0' else d<=0;xuan_schb<='0'xuan_yl<='0'xuan_rg<='0;xuan_hb<=0' end if;else d<=0;xuan_schb<='0'xuan_yl<='0'xuan_rg<='0'xuan_hb<='0'end if;end process;END a;分频模块主要程序如下:LIBRARY IEEE;USE IEEE.STD_L
33、OGIC_1164.ALL;ENTITY fenpi ISPORT(CLK:IN STD_LOGIC;NEWCLK:OUT STD_LOGIC;END fenpi;ARCHITECTURE a OF fenpi ISSIGNAL Q:INTEGER RANGE 0 TO 14;SIGNAL DIVCLK: STD_LOGIC;BEGINPROCESS(CLKBEGINIF CLK'EVENT AND CLK='1' THENIF Q < 14 THEN Q <=Q+1;ELSE DIVCLK <= NOT DIVCLK;Q <=0;END IF;
34、END PROCESS;NEWCLK <= DIVCLK;END a;计数模块主要程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jishu isport(clk,en,clr: in std_logic;t: out std_logic;end jishu;architecture a of jishu issignal bcd1n: std_logic_vector(3 downto 0;beginif (clr='1' thenbcd1n<
35、="0000"elsif(clk'event and clk='1' thenif (en='1' thenif (bcd1n="1001" thenbcd1n<="0000"elsebcd1n<=bcd1n+'1'end if;end process;process (clk,en,clrbeginif(clr='1' thencd10n<="000"elsif (clk'event and clk='1
36、39; thenif (en='1' and bcd1n="1001" thenif (bcd10n="011" thenbcd10n<="000"elseif (en='1' and bcd10n="011" thent<='1'elset<='0'end if;end process;end a;此段程序为十位计数的情况,当bcd为011(30时发生进位,然后bcd10n归零。出货模块主要程序如下:library ieee;use
37、 ieee.std_logic_1164.all;ENTITY chuhuo ISPORT(xuan_rg,xuan_hb,xuan_yl,xuan_schb,en3 : IN STD_LOGIC;chu_rg,chu_hb,chu_yl,chu_schb:OUT STD_LOGIC;END chuhuo;ARCHITECTURE a OF chuhuo ISBEGINprocessbeginif en3='0' thenchu_rg<='0' chu_hb<='0'chu_schb<='0'chu_yl<
38、='0'elseif xuan_rg='1'then chu_rg<='1' chu_hb<='0'chu_schb<='0'chu_yl<='0' elsif xuan_hb='1' then chu_rg<='0' chu_hb<='1'chu_schb<='0'chu_yl<='0' elsif xuan_schb='1' then chu_rg<
39、;='0' chu_hb<='0'chu_schb<='1'chu_yl<='0' elsif xuan_yl='1' then end if; end process; END a; 显示模块程序如下: LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY zhaoling IS PORT( Di : IN integer range 0 to 9; a: OUT STD_LOGIC; b : OUT STD_LOGIC; c : OUT STD_L
40、OGIC; d : OUT STD_LOGIC; e : OUT STD_LOGIC; f : OUT STD_LOGIC; g : OUT STD_LOGIC ; END zhaoling; ARCHITECTURE a OF zhaoling IS BEGIN Process (di type data_out is array (0 to 6 of std_logic; variable outp:data_out; begin CASE di IS WHEN 0 => outp:="1111110" WHEN 1 => outp:="0110000" WHEN 2 => outp:="1101101" WHEN 3 => outp:="1111001" WHEN 4 => outp:="0110011" WHEN 5 => outp:="1011011" WHEN 6 => outp:="1111110" WHEN 7 => outp:="1011111" WHEN 8 => outp:="
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年历史事件记忆与理解测试
- 物业公司电梯培训
- 2026年乡镇农村生活污水治理设施运维管理知识测验
- 煤矿溜子工培训
- 员工入职基本培训
- 2026年街道网格心理服务知识测试试题
- 2026年旅游规划与景区管理研究试题
- 科研能力提升培训
- 2026年全国碳排放权注册登记结算系统操作实务题库
- 2026年外来医疗器械清洗消毒灭菌知识题
- 混凝土质量缺陷修补施工方案
- 呼吸道感染护理课件
- 骆驼祥子第7、8章课件
- 自投光伏电合同范本
- 2026届新高考数学冲刺突破复习立体几何
- 氯化工艺的工艺流程
- 2024年青海省中考化学真题(原卷版)
- DB3601∕T 2-2021 居家养老服务设施建设规范
- 合肥建投笔试题目及答案
- 2025年无锡事业单位真题含答案
- JJG 694-2025原子吸收分光光度计检定规程
评论
0/150
提交评论