基于FPGA的自动售货机控制器设计毕业论文Word下载.docx

上传人:b****6 文档编号:17594094 上传时间:2022-12-07 格式:DOCX 页数:42 大小:2.95MB
下载 相关 举报
基于FPGA的自动售货机控制器设计毕业论文Word下载.docx_第1页
第1页 / 共42页
基于FPGA的自动售货机控制器设计毕业论文Word下载.docx_第2页
第2页 / 共42页
基于FPGA的自动售货机控制器设计毕业论文Word下载.docx_第3页
第3页 / 共42页
基于FPGA的自动售货机控制器设计毕业论文Word下载.docx_第4页
第4页 / 共42页
基于FPGA的自动售货机控制器设计毕业论文Word下载.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

基于FPGA的自动售货机控制器设计毕业论文Word下载.docx

《基于FPGA的自动售货机控制器设计毕业论文Word下载.docx》由会员分享,可在线阅读,更多相关《基于FPGA的自动售货机控制器设计毕业论文Word下载.docx(42页珍藏版)》请在冰豆网上搜索。

基于FPGA的自动售货机控制器设计毕业论文Word下载.docx

1.5本章小结

本章主要介绍了自动售货机的发展历史,发展现状及研究方向,对自动售货机的历史由来、发展有基本了解。

简要说明了本次课题设计的研究任务,对之后设计有一定深度的了解。

第2章开发设计基础

2.1EDA技术简介

EDA(ElectronicDesignAutomation)技术与计算机、集成电路、电子系统设计的发展密切相关,汇集了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,开发出来的一整套电子设计系统软件。

对特定芯片进行适配编译,逻辑映射,编程下载等工作,最后形成集成电子系统或专用集成芯片[6]。

EDA技术使得设计者仅需使用硬件描述语言和EDA软件即只使用软件的方式便能完成对系统硬件功能的设计实现,这是电子设计技术史上的一个巨大进步[7]。

EDA技术具有以下四个特点:

(1)采用硬件描述语言进行设计,语言的标准化,更适合于描述规模大、功能复杂的数字系统。

(2)逻辑综合与优化,提高设计效率。

(3)开放性和标准化,有利于大规模、有组织的设计开发工作。

(4)更完备的库,使EDA工具有更强大的设计能力和更高的设计效率。

EDA技术与传统电子设计对比在产品设计理念,设计技术,系统硬件构成,软件架构和知识产权等方面更具优势,属于高层次的电子设计方法,因此EDA技术能得到更广泛的应用[8]。

2.2FPGA简介

现场可编程门阵列(FieldProgrammableGateArrays,FPGA)是一种新型可编程使用的信号处理器件,经由使用者改变配置信息从而定义其功能。

相较于传统数字电路系统,FPGA具有可编程、高速和高可靠性等优点,过器件内部的可编程输入/输出端口和基本可编程逻辑单元,把电路扳机的设计嵌入至芯片中施行,优化电路性能,本质上增强了设计的灵活性和效率[9]。

基本的FPGA设计流程主要涵盖设计定义,逻辑综合,逻辑仿真验证,板级仿真验证与调试等步骤[10]。

随着微电子技术、EDA技术、以及应用系统需求的发展,FPGA正在逐渐成为数字系统开发的平台,并将在以下方面继续完善和提高:

(1)高集成度、大容量、低成本、低电压、低功耗。

(2)资源多样化。

(3)适用于片上系统:

处理器、高速串行I/O、DSP等。

(4)深亚微米工艺的使用。

目前基于90nm工艺的FPGA已经商用,正向65nm挺进。

(5)各种软硬IP库的发展和完善。

2.3VHDL语言概述

1982年,超高速集成电路硬件描述语言——VHDL(Very-High-SpeedIntegratedCircuitHard-WareDescriptionLanguage)最初是由美国国防部提出的硬件描述语言。

VHDL在1987年底被国际电气电子工程师协会(TheInstituteofElectricalandElectronicsEngineers,IEEE)和美国国防部确定为标准硬件描述语言[11]。

VHDL语言通常含有以下三个部分:

库(Library),实体(Entity)定义区,结构体(Architecture)定义区[11]。

库(Library)声明区内存放了可供其他程序调用的经编译的数据,实体定义,构造体定义,程序包等资源。

实体(Entity)用来描述所设计芯片外观,有I/O端口和参数的定义,是首要设计单元。

相同的器件可以有不同的实现,但是只能对应一个实体[12]。

结构体(Architecture)描述所设计芯片的逻辑功能,不同描述方式仅体现在编写程序上,其结构体构造是完全相同的。

一个设计实体可能有多个结构体[11]。

2.3.1VHDL语言特点

VHDL语言进行数字逻辑电路的设计与传统电路设计方法相比具有如下的特征[11]。

(1)可移植性好。

对同一硬件电路的语言描述,对于不同模拟器、综合器或是工作平台也采用相同描述。

(2)硬件描述能力强大。

具有多层次的电路设计描述功能,同时支持惯性延迟和传输延迟,能准确建立硬件电路的模型。

(3)易于共享。

将预先设计好的模块可以放在库中,之后的设计便可以直接调用。

(4)功能强大,设计方式多样。

可用于门级、电路级甚至系统级的描述、仿真和设计,随时判断设计系统功能的可行性。

2.3.2VHDL的优势

(1)VHDL的行为描述能力更强,因而成为系统设计领域最佳的硬件描述语言。

(2)丰富的仿真语句和库函数,使其可对设计进行仿真模拟。

(3)具有相对独立性,设计者可不必懂硬件的结构,也不必管理最终设计实现的目标器件是什么。

(4)VHDL语句的行为描述能力和程序结构决定了它具有支持大规模设计的分解和已有设计的再利用功能。

2.4QuartusII软件介绍

Altera的QuartusII可编程逻辑软件属于第四代PLD开发平台。

该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。

Quartus平台与Cadence、ExemplarLogic、MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。

改进了软件的LogicLock模块设计功能,增添了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。

QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;

支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。

QuartusII原理图输入设计的步骤如下:

(1)建立工程项目(工程目录、名称和选择合适器件)

(2)编辑设计图形文件(放置元件、连线、设定输入输出管脚名称)

(3)编译设计图形文件(检查电路是否有错误)

(4)时序仿真设计文件(得到仿真波形验证设计结果)

(5)生成元件符号

2.5硬件介绍

本实验设计硬件部分采用ZY11EDA13BE实验系统来实现,核心芯片是EPF1K30QC208-2。

实验主板布局图如图2.1所示。

本次设计采用了实验系统中的核心芯片EPF1K30QC208-2、电源模块、数字可调信号源、开关按键模块、键盘模块、LED显示模块以及数码管显示模块。

 

图2.1ZY11EDA13BE实验系统图

2.6本章小结

本章主要对本课题研究的自动售货机设计过程中涉及的软硬件平台和工具进行介绍。

了解了EDA技术的作用、实现的功能特点,同时介绍了FPGA的主要功能和原理,EDA综合工具QuartusII软件及对编程需要使用到的VHDL语言进行了介绍,并对本设计所用的教学实验设备ZY11EDA13BE进行了简要介绍。

第3章自动售货机设计方案

3.1自动售货机整体描述

3.1.1自动售货机功能要求

本次设计的基于FPGA的自动售货机在ZY11EDA13BE实验系统中完成功能验证,主要是使用4*4键盘模块来进行自动售货机的购物选择,使用LED指示灯来进行出货找零的信号显示,使用开关按键来进行模拟投币,使用数码管来进行购物选择、商品售价、投币金额、找零金额的显示,使用数字可调信号源来调节时钟信号和分频延时信号。

自动售货机的具体功能要求如下:

(1)共销售24种不同价位的商品。

(2)可以识别:

硬币、纸币,投入的硬币识别金额为1元,投入的纸币识别金额为1元,5元,10元,20元。

(3)投入的钱币总额数码管实时显示。

(4)每次只能购买一件商品。

(5)通过小键盘顾客可以选择商品的编号,例如选择24号商品,则需要在小键盘上先按下2,然后再按下4,最后按下确认键(A),进而实现商品的选择与购买。

(6)当投入的总金额小于顾客选择商品的售价时,自动售货机可以继续投币,当投入的总金额大于或者等于顾客选择的商品售价时,自动售货机锁定键盘和投币,出货,扣除商品售价,并且找零,找零金额在数码管上显示出来。

(7)在投币状态下13秒内没有任何操作,则自动进入结算状态,退回钱币。

在选择状态下35秒内没有任何操作,则自动回到初始状态,键盘和数码管清零。

(8)有两个LED显示灯,分别显示出货与找零两种状态。

3.1.2自动售货机系统总框图

数码管

显示

模块

购物模块

(扫描)

(按键输入)

(去抖)

图3.1自动售货机系统总框图

本文所设计的自动售货机如图3.1所示,共有8个模块,分别是购物模块,定价模块,投币模块,计时模块,比价模块,复位模块,购物显示模块,数码管显示模块。

其中复位模块主要对投币模块,购物模块,定价模块,比价模块进行重置清零,保证系统的稳定运行,所以该模块是整个系统必不可少的成分。

3.1.3自动售货机基本流程图

自动售货机系统基本流程图如图3.2所示。

图3.2自动售货机基本流程图

系统初始化后先进行自检,然后监测是否投入钱币。

当有钱币投入时,系统则自动累加投币的总额,并在数码管上显示。

当无钱币投入时,若有按键输入则进入商品选择状态。

如果没有选择商品,则13秒后自动退币。

如果选择了商品但是不在选择范围内,则购物模块清零,重新选择。

若选择的商品在选择范围内,系统则会调出卖家定价并显示,而后系统会把投币总额与所选择商品的单价进行比较,如果投币总额低于商品单价时,会给一定的再投币时间。

如果投币总额不低于商品单价时,则系统进入结算状态。

如果选择商品没有按下确认键则13秒后自动退币,如果已经选择了商品并按下确认键,则系统进行相应的出货找零。

本文所设计的自动售货机有8个模块,分别是购物模块,定价模块,投币模块,计时模块,比价模块,复位模块,购物显示模块,数码管显示模块。

下面分别介绍各个模块。

3.2购物模块

购物模块是消费者使用键盘进行商品选择消费的模块。

通过4*4矩阵键盘输入选择商品号数,再按下确认键(A),即可实现商品的选择。

因为本设计能销售01—24号商品,所以选择两个数码管进行显示。

通常矩阵式键盘都是单片机控制,本模块提供的键盘模块完全用CPLD/FPGA控制,I/O分布原理图如图3.3所示:

图3.3I/O分布原理图

3.2.1购物模块整体描述

3.2.1.1购物模块基本流程图

购物模块基本流程图如图3.4所示。

图3.4购物模块基本流程图

3.2.1.2购物模块生成器件

图3.5购物模块基本流程图

购物模块生成器件图如图3.5所示。

输入信号:

(1)start1:

购物重置信号

(2)enin1:

购物使能信号

(3)clk1:

时钟信号(4)kbrow1:

4*4矩阵键盘4位列输入信号

(5)restart1:

购物复位信号

输出信号:

(1)shuju1:

购物8位二进制累加信号

(2)jen1:

购物计时触发信号

(3)scan1:

购物数码管扫描信号(4)kbcol1:

4*4矩阵键盘4位行输出信号

(5)seg71:

购物数码管显示信号

3.2.1.3购物模块总功能描述

购物重置信号有效时,该模块清零重置。

当购物重置信号无效时,购物模块监控购物信号的输入。

若购物使能信号无效,则自动锁定键盘,系统无法接受按键输入信号,此模块不工作。

当购物重置信号无效、购物使能信号有效,且有时间触发时,系统经由输出键盘行动态扫描信号获取按键的键值并输出键盘的行扫描信号。

当有按键按下时,扫描到所选的列信号,把列信号与状态信号进行比对,最终确定键盘的行扫描信号,确定按键的键值。

若检测到已按下确认按键(A),先判断按下键值是否符合设定,若检测值大于24,即超过设计的限定范围,该模块将输出“00111111”给购物数码管显示信号和相对应的购物数码管扫描信号,同时购物计时使能信号会输出给计时模块,此时购物数码管清零,顾客可以重新输入。

若检测值不大于24,则把键值编译成BCD码再经译码后输出给数码管,同时把对应的数码管扫描信号输出给数码管,将购物8位二进制累加信号输出给价格模块,把购物计时使能信号输出给计时模块。

如果没有按下确认按键(A),则只把键值编译成BCD码通过译码后输出给数码管,同时把相应的购物数码管扫描信号输出给数码管,不把键盘8位二进制累加信号输出给定价模块。

为了解决顾客在购物选择过程中可能会按下错误数字的问题,特别设定一个购物复位信号,当购物复位信号有效时,对应数码管清零,顾客可以重新选择。

另外,此模块内带有的按键消抖的功能可以提高键值键入的准确性。

3.2.1.4购物模块组成元件

购物模块是由扫描元件,编译元件,数据处理元件,购物数码管译码元件这四个元件组成。

接下来分块介绍各元件。

3.2.2扫描元件

3.2.2.1功能描述

扫描元件的作用是将输出相对应的4*4矩阵键盘4位行输出信号给4*4矩阵键盘。

3.2.2.2主要信号

(1)clk:

时钟信号

(2)kbrow:

(1)en:

使能信号

(2)state:

购物状态信号

(3)kbcol:

3.2.2.3仿真结果

图3.6扫描元件波形仿真图

扫描元件波形仿真图如图3.6所示。

当kbrow为“1000”(相当于按键按下不松开),en的输出信号为“0”,kbcol为“0001”,state为“00”。

仿真波形符合设计要求。

3.2.3编译元件

3.2.3.1功能描述

编译元件的作用是把4*4矩阵键盘4位列输入信号通过与4*4矩阵键盘4位行输出信号的对应编译成相应的4位二进制码。

3.2.3.2元件主要信号

时钟信号

(2)brow:

(3)tate:

at:

3.2.3.3仿真结果

图3.7编译元件波形仿真图

编译元件波形仿真图如图4.4所示。

kbrow为“0001”,state为“10”,即kbcol为“0100”,所以得到at为“01111111”,即等于7。

3.2.4数据处理元件

3.2.4.1功能描述

数据处理元件的作用是先对按键进行消抖,而后接受编译元件的4位二进制码,进行二进制相加后得到购物8位二进制信号后逐位输出满足限定的4位BCD码数据,购物8位二进制信号及购物数码管扫描信号。

3.2.4.2元件主要信号

时钟信号

(2)n:

使能信号

(3)enin:

购物使能信号(4)da:

4位二进制译码

(5)start:

购物重置信号

(1)data:

BCD码

(2)shuju:

购物8位二进制累加信号

(3)scan:

时扫描信号(4)jen:

3.2.4.3仿真结果

图3.8数据处理元件波形仿真图

数据处理元件波形仿真图如图3.8所示。

da输入“0001”,进行移位数码管输出,data输出“0000”时,scan对应为“111”;

data输出“0001”时,scan对应为“110”,因为clk设定的不精确,仿真存在一定误差。

由于存在消抖延时,所以在延时结束时,jen有效。

仿真波形基本符合程序设计要求。

3.2.5购物数码管译码元件

3.2.5.1功能描述

购物数码管译码元件的作用是把数据处理元件生成的4位BCD码编译成适合数码管显示的购物数码管显示信号,且输出相对应的购物数码管扫描信号。

本文所设计的自动售货机要求这两个数码管要能显示0—9这9个数字。

3.2.5.2元件主要信号

data:

BCD码

seg7:

数码管显示信号

3.2.5.3仿真结果

图3.9购物数码管译码元件波形仿真图

购物数码管译码元件波形仿真图如图3.9所示。

data输入为“0000”时,购物数码管译码元件把该信号编译成seg7为“00111111”,在数码管上显示为“0”,仿真波形符合程序设计要求。

3.3定价模块

定价模块是将商家事先给货物定价调出的模块。

当顾客在键盘上输入符合限定范围内的商品号数时,购物模块将购物8位二进制累加信号输出给定价模块。

定价模块将对应的商品价格输出,并通过数码管显示。

3.3.1定价模块整体描述

3.3.1.1定价模块基本流程图

定价模块基本流程图如图3.10所示。

开始

图3.10定价模块基本流程图

3.3.1.2定价模块生成器件

图3.11定价模块生成器件图

定价模块生成器件图如图3.11所示。

(1)en1:

价格使能信号

(2)start1:

价格重置信号

(3)xuanze1:

选择商品信号(4)clk1:

时钟信号

(1)seg71:

价格数码管显示信号

(2)scan1:

价格数码管扫描信号

(3)jiawei1:

价格8位二进制信号(4)ren1:

价格计时触发信号

3.3.1.3定价模块总功能描述

当价格重置信号有效时,定价模块重置清零。

当价格重置信号无效时,定价模块监控商品选择信号的输入。

当价格使能信号无效时,商品信号无法被接收,此模块不工作。

当价格重置信号无效且价格使能信号有效,并有时钟触发时,系统读取选择商品信号,并给其赋原先定价,即价格8位二进制信号输出给比价模块,价格计时触发信号输出给计时模块。

同时将价格8位二进制信号进行BCD码的编译,先将价格8位二进制信号转换成十进制信号,而后对该十进制信号进行10的取模,得到该十进制信号的十位数。

对十进制信号进行10的取余则能得到该十进制信号的个位数,最后把得到的十位数和个位数分别转换成4位二进制码,得到对应的BCD码后把价格数码管扫描信号和价格数码管显示信号输出给购物显示模块。

表3.1为本次设计设定的商品售价。

卖家可通过改变程序代码改变定价。

表3.1商品价格

商品号

D2

零售价/元

D0

f

01

1

09

5

17

7

02

10

6

18

03

11

19

13

04

12

20

05

15

21

06

2

14

22

23

07

3

30

08

4

16

28

24

8

3.3.1.4定价模块组成元件

定价模块主要是由3个元件组成的,分别是定价元件,价格BCD译码元件,价格数码管译码元件。

3.3.2定价元件

3.3.2.1功能描述

定价元件的作用是把不同选择的8位二进制信号赋予具体数额的8位二进制信号,并把这些8位二进制信号传递给价格BCD译码元件。

3.3.2.2主要信号

时钟信号

(2)xuanze:

选择商品信号

price:

价格8位二进制信号

3.3.2.3仿真结果

图3.12定价元件波形仿真图

定价元件波形仿真图如图3.12所示。

当xuanze为“00000110”(即选择6号商品)且有时钟触发时,price为“00000010”(即2元),在数码管上显示为“02”。

仿真波形符合程序设计要求。

3.3.3价格BCD译码元件

3.3.3.1功能描述

价格赋值元件的作用是把定价元件传递来的具体数额的8位二进制金额信号传输给比价模块,同时编译其所对应的BCD码,并把该BCD码传递给价格数码管译码元件。

3.3.3.2主要信号

使能信号

(2)clk:

(3)start:

重置信号(4)da:

8位二进制信号

(1)jiawei:

价格8位二进制信号

(2)scan:

数码管扫描信号

(3)data:

BCD码

3.3.3.3仿真结果

图3.13价格BCD译码元件波形仿真图

价格BCD译码元件波形仿真图如图3.13所示。

da输入“00000010”,进行移位数码管输出,data输出“0000”时,scan对应

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

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

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