搜索详情-毕业论文网

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回

FPGA平台下饮料自动贩卖机系统的设计与实现毕业论文

 2020-04-04 10:52:51  

摘 要

近年来,随着FPGA技术的发展成熟,FPGA技术的应用场景也变得越来越广泛。同时伴随着零售行业“新零售”概念的产生,能够24小时无人值守的自动贩卖机越来越受零售行业的青睐。此设计旨在探索将FPGA技术应用于自动售卖机的控制,并研发一款能应用于实际的基于FPGA平台的饮料自动售卖机控制系统。

本设计使用Basys3开发板作为承载自动售卖机控制系统的FPGA平台,运用Vivado集成开发环境、Visual Studio 2010集成开发环境等工具进行开发,实现了基于FPGA的饮料自动售卖机系统。在整体系统的设计中,将系统一分为二划分为软硬件两个大的模块。软硬件模块之间通过UART通信的方式进行数据互通,其中硬件模块实现了控制售货功能,软件模块实现了系统的配置与管理功能。使用UART通信的方式不仅解决了FPGA开发板自身存在掉电易失性的缺陷,同时让系统具有更大的可配置性,实用性得到大大的提升。本文将按照软件系统开发流程的进展,对实现基于FPGA的饮料自动售卖机系统过程中系统的分析、设计以及实现与测试工作进行详细的叙述。

关键字:FPGA;自动贩卖机;UART通信;

Abstract

In recent years, with the development of FPGA technology, the application scenario of FPGA technology is becoming more and more extensive. At the same time, with the emergence of the concept of "new retail" in the retail industry, the 24 hour unattended vending machine is increasingly favored by the retail industry. This design aims to explore the application of FPGA technology to the control of vending machines, and to develop a control system for the beverage vending machine based on the FPGA platform.

This design uses the Basys3 development board as the FPGA platform that carries the control system of the vending machine, uses the Vivado integrated development environment, the Visual Studio 2010 integrated development environment and other tools to develop, and realizes the beverage vending machine system based on FPGA. In the design of the whole system, the system is divided into two modules: hardware and software. The software and hardware modules intercommunicate with the UART communication, in which the hardware module realizes the sale function, and the software module realizes the configuration and management function of the system. The use of UART communication not only solves the defect of power-off volatility of the FPGA development board itself, but also allows the system to have greater configurability and practicality. In this paper, according to the development of software system development process, the system analysis, design, implementation and testing in the process of realizing FPGA based beverage vending machine system are described in detail.

Key Words:FPGA;vending machine; UART communication;

目 录

摘 要 I

Abstract II

第1章 绪论 1

1.1 研究背景 1

1.2 国内外研究现状 1

1.3 研究目的及意义 2

1.4 开发环境与平台 2

1.4.1 软件平台 2

1.4.2 硬件平台 3

1.5 论文结构 3

第2章 FPGA平台下饮料自动贩卖机系统的需求分析 4

2.1系统总体功能结构 4

2.2业务功能需求 5

2.2.1投币功能 5

2.2.2售货功能 6

2.2.3出货及找零功能 7

2.2.4后台配置与管理模块 8

2.2 系统非功能需求 9

2.3 可行性分析 10

第3章 FPGA平台下饮料自动贩卖机系统的系统设计 11

3.1 系统的整体设计方案 11

3.2 功能模块设计 11

3.2.1 投币功能 11

3.2.2 售货功能 12

3.2.3 出货及找零功能 14

3.2.4 后台配置与管理模块 15

3.3 通信设计 17

3.3.1 通信协议设计 17

3.3.2 异步串行通信电路设计 17

3.4 系统设计小结 18

第4章 FPGA平台下饮料自动贩卖机系统的实现与测试 20

4.1 模块实现 20

4.1.1 投币功能 20

4.1.2 售货功能 20

4.1.3 出货及找零功能 22

4.1.4 后台配置与管理模块 24

4.2 系统仿真与测试 24

4.2.1 购物功能测试 25

4.2.2 后台配置功能测试 27

第5章 总结与体会 28

参考文献 29

致 谢 30

第1章 绪论

1.1 研究背景

随着科学技术的发展,以计算机技术、网络技术、自动控制技术等为代表,迅猛发展的技术极大地推动了经济的发展,同时经济的发展也不断催生出新的技术。1985年xilinx推出真正意义上的第一颗FPGA(Field Programmable Gate Array,现场可编程门阵列)芯片XC2064标志了FPGA技术真正进入实际生产生活。这一技术一经发明,后续的发展速度之快,超出大多数人的想象。FPGA先天具备可编程灵活性高、开发周期短、并行计算可编程灵活性高的这些优点,这直接致使在多应用场合产生优异的表现,其在以国防、医疗、工业控制等为代表的行业内产生极大影响,而这些行业对其需求也成为其发展的源动力。如今随着人工智能、深度学习、区块链等新技术的出现,FPGA的硬件并发优势成为这些新技术青睐的支撑技术。将FPGA用于算法硬加速的学术探索逐步成为热门研究方向,AES、深度学习等算法在FPGA加速下也确实显现出更为优异的性能。

在技术发展的同时,技术也推动了经济的发展、行业的变革。在网络技术、控制技术等推动下,零售行业产生了新的发展趋势,“新零售”一改传统零售行业的旧面貌,以方便快捷,无人值守等优点迅速成长。其中以自动售卖机为例,因其24小时服务,无人值守、灵活布设等特点成为零售行业的新宠。

此研究旨在学习使用FPGA完成相对复杂的专用数字电路的设计,同时尝试应用FPGA并使用主从控制方式设计并实现自动售货机数字系统,实现自动售货控制功能。

1.2 国内外研究现状

自FPGA技术产生以来,其应用场景越来越广泛。从国防军事到工业控制,再从医疗设备控制到家庭电气设备的控制,越来越多的应用场景带动了FPGA在技术上的发展,同时勾起了越来越多的人的研究兴趣。在控制方面的研究成果数不胜数,例如将其应用全自动洗衣机的控制、应用于数字电源的控制、应用于步进电机的控制等等;但近几年也有人研究将其应用于算法加速等领域,例如有人使用FPGA对AES等加密、CNN等深度学习算法进行加速优化;此外也有人将其应用于数据采集与传输、网络控制等领域。虽然应用的领域多种多样,但其依赖的基础技术却是相差无几,多依赖诸如全双工UART、FIFO存储结构以及脉宽调制等。在数字电路设计中, FPGA发挥着越来越重要的作用。从简单的接口电路设计到复杂的状态机,甚至系统级芯片(SoC-System On Chip) ,FPGA所扮演的角色已经不容忽视[1]

国外的Muhammad等人曾在论文中提出使用FPGA来实现一种两个硬币输入、四种货物输出的自动售卖机[2];国内范文萍等人也曾在文章中提出了基于FPGA相对完善的自动售卖机数字系统[3]。FPGA凭借其可编程灵活性高、开发周期短、并行计算可编程灵活性高等优点在各个领域表现出优越的性能,但真正将其应用于自助零售的案例却是稀少的。究其原因大致可分以下两点:1、成本较高,目前来讲FPGA应用成本总体上高于常规的单片机等控制芯片;2、在自动售卖应用场景中不要求高速、并行等FPGA具备的优点特性,普通的穿行控制技术能够满足其技术需求,在较高的成本促使下市场自然而然选择传统控制技术作为支撑。当前零售场景对FPGA技术的高成本表现出的消极情绪或许会随着FPGA成本降低,应用场景升级等变化而有所变化,因此探索FPGA在零售领域的应用是有必要的。虽然在一些文献中有将其应用于自助零售的想法,但其设计相对简单功能单一,无法满足实际需要。

1.3 研究目的及意义

自动售货机可以根据投入的货币进行自动售货,是交易中常用的一种智能的自动化设备,几乎不受时间、地点的限制,可以很好的节约人力资源、方便的进行交易[4]。将自动售卖机部署到人们需要消费并且人工售货不适宜部署的地方将大大方便人们的生活。将其零散地部署在景区能够为游人及时的提供其所需的饮料和食物;而将计生用品零售柜部署到小区、酒店等方便需要的人,同时又能避免消费者购买时的尴尬。在当前物联网技术备受追捧,“新零售行业”成为热点的大背景下,便利成为零售行业关注的重点。自动售卖机因为能够24小时提供服务,部署灵活等特性极大地提高了消费便利性,从而越来越受零售行业的青睐。本研究题目旨在从管理者和消费者双重角度研发设计基于FPGA的自助售货数字系统,以求尽可能满足实际需求。

1.4 开发环境与平台

为了更好完成本课题的研究并且更清晰地呈现研究的结果,这里我们将使用到一些由前人设计、生产的工具性平台,按照软硬件特性划分为软件平台与硬件平台两类。

1.4.1 软件平台

在课题研究过程中,所有的开发环境软件都依托于windows 10操作系统,所有的软件正常使用都依赖与windows 10操作系统的正常运行。在windows 10操作系统正常运行的基础啊上,这里需要用到一些主流的软件开发工具,主要有:

  1. Vivado Design Suite 2017.4开发环境套件:

Vivado设计套件,是FPGA厂商赛灵思公司发布的集成设计环境。包括高度集成的设计环境和新一代从系统到IC级的工具,这些均建立在共享的可扩展数据模型和通用调试环境基础上。这里我们将使用它和硬件描述语言verilog来开发所有的自动售货机所需要的逻辑电路以及逻辑电路的仿真测试、下载调试等工作[5]

  1. Microsoft Visual Studio 2010开发环境与SQLite数据库:

为了完成后台配置系统的设计与开发,这里将使用到Microsoft Visual Studio 2010开发环境与SQLite轻型数据库。Microsoft Visual Studio 2010开发环境是微软公司推出的开发环境,这里我将使用它来作为后台管理配置程序的开发、调试等工作。SQLite轻型数据库是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,我将使用它来存储由于FPGA开发板掉电易失性导致必须存储在片外的数据,进而为整个系统的正常运行提供保障。

1.4.2 硬件平台

为了验证所设计的数字系统的正确性,这里我将使用Basys3开发板作为硬件验证工具,对所设计的逻辑电路进行验证。Basys3 是围绕着一个Xilinx Artix®-7 FPGA 芯片XC7A35T-1CPG236C 搭建的,它提供了完整、随时可以使用的硬件平台,并且它适合于从基本逻辑器件到复杂控制器件的各种主机电路。它除了拥有XC7A35T-1CPG236C芯片之外,还配备了大量的板载1/O设备,其中包括拨码开关、4位七段数码管、Pmod端口等。同时它还提供了1800Kbit RAM、5个独立的时钟管理单元、USB-UART转换桥等诸多设备。整个系统最终将以Basys3为载体,完成其所有功能的运行。

1.5 论文结构

论文共分为五章,主要内容分别如下。

第一章:绪论。首先介绍基于FPGA平台的自动售货机系统的研究背景与国内外研究现状,随后阐述了本研究的目的及意义,最后交代论文的整体结构;

第二章:FPGA平台下饮料自动贩卖机系统的需求分析。首先对系统设计进行整体需求描述后,然后从系统的功能角度和非功能角度进行需求分析,通过各对功能实现过程中所需要的子功能模块的用例描述来展示系统所要完成任务以及任务的处理方法。

第三章:FPGA平台下饮料自动贩卖机系统的系统设计。在需求分析的基础上对系统进行详细设计,设计系统各个系统功能模块与其子模块的实现流程以及与其他模块协作的控制信号。

第四章:系FPGA平台下饮料自动贩卖机系统的实现与测试。通过对各个功能模块及其子模块的电路原理图的介绍来描述其实现的方法。

第五章:总结与体会。总结本研究成果中的优点与不足,回顾、总结研发过程中所学习和使用到的知识。

第2章 FPGA平台下饮料自动贩卖机系统的需求分析

2.1系统总体功能结构

自动售卖机作为一种24小时无人值守的零售器械,其组成大体上可以分为机械系统与数字系统两部分。其中机械系统主要完成货物传送等机械动力功能,而数字系统主要完成售货控制等逻辑功能。本课题旨在研发自动售买机的数字系统,对于机械系统不在研究范围之内亦不做讨论。自动售卖机的数字系统是其“大脑”,它指挥机械系统完成购物。这里的指挥即是指控制,其中主要包括售货控制、出货控制、找零控制、投币控制等功能,同时自动售卖机的数字系统还应当具备交易过程中产生的最终数据的存储功能以及一些过程中产生的数据显示功能。由于此处选用的硬件支持环境不具备数据持久化的能力,故此将通过串口通信的方式将相关数据发送到PC端进行存储。此外,由于自动售卖机中货物随时可能发生变化,那么其数字系统还应当为其管理人员提供完善的管理与配置功能,其中涵盖且不限于补货、货物下架、取钱、补充零钱等功能,详细功能见图2.1。此处仅对本系统几个主要功能进行概述介绍:

  1. 投币功能:当售货控制对投币功能使能后,对于由机械系统输送到数字系统的投币信号能够正确计数,并将其转化为相应的币值提交给售货控制模块用于交易控制。
  2. 出货控制与找零控制功能:当售货模块通知开启售货或找零功能时,能够正确完成出货或找零工作并且在完成工作后通知售货模块。
  3. 售货功能:完成售货过程的控制,及时通知其他模块完成出货、找零等工作,并且对交易结果数据通过通信功能模块发送到PC端进行存储。
  4. 后台配置与管理功能:接收交易结果数据进行存储,并且提供管理员进行配置以及管理的功能,同时还应当对操作进行日志记录以便于管理员查看运行状态。

图2.1 系统的总体功能框图

2.2业务功能需求

2.2.1投币功能

  1. 投币模块用例描述:

简单描述

接受7种币值(50、20、10、5、1、0.5、0.1)的投币,分别对个币值个数计数并计算总币值。

前置条件

投币功能使能信号置位。

后置条件

当完成功能后有投币功能复位信号置位时恢复所有计数器到原始状态。

事件流

基流

  1. 当检测到投币使能信号置位后,对所有投币相关的计数器使能;
  2. 检测到有钱币投入后,对相应币值的个数计数器计数,并将总币值计数器增加相应的币值并输出到售货控制器;
  3. 当检测到投币复位信号后,对所有计数器进行复位。

2.2.2售货功能

售货功能的实现主要由售货控制模块、内存读写控制模块以及通信模块三个子模块相互协调完成工作:

  1. 售货控制模块用例描述

简单描述

控制售货流程,确保售货过程流畅稳定

前置条件

系统由管理员完成了配置操作,可以正常运行

后置条件

售货结束后,流程控制回到原点等待再次启动

事件流

基流

  1. 消费者可以任意选择四种货物中的一种进行购买;
  2. 消费者按下确定选货键后货物被选定,并启动购买流程控制;
  3. 购买流程控制启动后开始使能投币功能,并同时开始从RAM中读取需要的价格、余量等信号量的值,并将价格通过数码管显示给消费者;
  4. 依据读取到的相关值控制交易流程,及时通知出货控制、找零控制等模块完成相应功能;
  5. 交易完成后对发生变化的量进行回写保存,并通知通信模块更新PC端保存的值。

分支流

  1. 投币值不足以购买货物时,等待消费者投币直到消费者取消交易;
  2. 消费者取消交易后控制找零模块退还钱币。

业务规则

  1. 消费者提交操作后系统能迅速反应,并保证消费者操作过程中系统正常运行。
  1. 内存读写控制模块用例描述:

简单描述

控制内存读写的安全性,保证读取、写入正确

前置条件

有内存读写请求到来

后置条件

当请求为读请求时输出相应地址寄存器中的数据

事件流

基流

  1. 接收来自通信控制、售货控制、出货控制、找零控制功能模块的读写请求;
  2. 利用上述四个控制过程中产生的信号对读写请求进行多路选择,并送至内存;
  3. 根据选择后的读写请求进行内存读写。
  1. 通信模块用例描述:

简单描述

产生或解析数据包,进行数据通信以完成配置及数据备份

后置条件

完成一次控制后,回到控制起点等待下次启动

事件流

基流

  1. 当消息UART接收队列不为空,且无消费者做购物操作时读取消息数据包并解析成控制指令,对内存进行配置;
  2. 当检测到消费者完成一次购物操作后,将相关操作结果打包成数据包通过UART发送端发送;
  3. 当完成一个数据包的处理后向PC端发送处理完成确认数据包;

分支流

  1. 当发现数据包出错或数据包超出规定长度后向PC端发送出错提示数据包。

2.2.3出货及找零功能

出货与找零功能的实现是由出货控制模块与找零控制模块分别控制相应的步进电机驱动模块开完成出货或找零功能的:

  1. 出货控制模块用例描述:

简单描述

依据控制信号控制出货步进电机转动与停止

前置条件

售货控制模块输出的出货使能信号置位

后置条件

完成出货后通知售货模块已经结束出货可以进行下步操作

事件流

基流

  1. 当检测到出货使能信号置位后,从内存读取出货所需的量;
  2. 将从内存中读取的量逐个写入步进电机寄存器中;
  3. 启动步进电机,等待电机运行结束后通知售货模块

分支流

  1. 出货模块发出出货控制复位信号后,对出货模块进行复位
  1. 找零控制模块用例描述:

简单描述

控制找零电机完成找零功能

前置条件

检测到找零使能信号置位

后置条件

完成出货后通知售货模块已经结束出货可以进行下步操作

事件流

基流

  1. 当检测到找零使能信号置位后,开始读取找零控制过程中所需的量;
  2. 依据读取的量产生步进控制量,将其写入步进电机控制寄存器;
  3. 启动步进电机,等待电机运行结束后通知找零控制模块结束找零。

分支流

  1. 当检测到复位信号后,控制器能够复位
  1. 步进电机驱动模块用例描述:

简单描述

控制步进电机转动与停止转动

前置条件

寄存器写入完成,启动使能信号置位。

事件流

基流

  1. 当检测到转动使能信号置位后,启动步进电机;
  2. 对电机转动的圈数做计数,当转动圈数达到预设值后停止转动;

2.2.4后台配置与管理模块

后台配置与管理功能是一套完整的服务系统,它包括了日志记录功能、配置与管理功能、管理员登录登出功能以及串口通信功能等诸多子功能。由于其不是本研究的核心所在,此处仅对其中重要的子功能加以分析与阐述。

  1. 配置与管理功能用例描述:

简单描述

对收到的数据包解包翻译并执行,对收到管理员的配置指令进行解释并打包

前置条件

收到数据包或有管理员触发配置操作

后置条件

按照解析好的指令操作数据库或将数据包送到消息队列发送

事件流

基流

  1. 对于收到的数据包进行解包;
  2. 将解包得到的指令翻译成数据库操作指令,并执行;
  3. 将管理员的配置操作指令解释为售卖机可识别的指令,并进行打包;

分支流

  1. 收到应答包后解析为应答结果,写入日志;
  1. 串口通信功能用例描述:

简单描述

打开串口进行读写

前置条件

串口已连接并可打开

后置条件

收到的数据存入数据包接收队列

事件流

基流

  1. 打开串口,设置串口相关属性;
  2. 当发送消息队列不为空,读取发送消息队列中的数据并发送;
  3. 收到数据写入到消接收息队列等待提取;

分支流

  1. 打开串口出错时,在日志中记录错误并在控制台输出错误提醒;
  2. 接消息队列写入时发生溢出,使用日志记录溢出。
  1. 日志记录功能用例描述:

简单描述

记录后台管理工具运行时需要记录的事件

前置条件

日志文件可以被正常创建或已存在

事件流

基流

  1. 当日志文件不存在时尝试创建;
  2. 循环读取日志消息队列,将日志消息写入日志文件中;
  3. 按照预设的时间粒度,创建新的日志文件;

分支流

  1. 日志创建失败,在控制台输出日志创建错误的提示。

2.2 系统非功能需求

系统的非功能性需求一般指指依一些条件判断系统运作情形或其特性,而不是针对系统特定行为的需求。包括安全性、可靠性、互操作性、健壮性、易使用性、可维护性、可移植性、可重用性、可扩充性等。本系统的非功能性需求主要有以下几个:

  1. 安全性与可靠性:在系统运行过程中发生于经济相关的操作,所以系统要尽可能地保障操作是安全的、可靠的。
  2. 易实用性:在消费者或者管理员操作的过程中使用尽可能简单的操作方式来与系统进行交互。

2.3 可行性分析

经过调研与分析,基于FPGA平台的饮料自动贩卖机系统的设计与实现相关的可行性分析可以总结为以下两点:

  1. 经济可行性:从经济角度来说,本系统将使用到一些软硬件资源以及知识资源。其中硬件资源包括FPGA开发板、PC机、步进电机等,这些是自我拥有或可以从学校实验室借取的;软件资源包括软硬件开发工具以及PC机操作系统等,这些可以从网络获取或硬件资源自身携带;知识资源包括书籍、学术成果论文等,可以从网络或学校图书馆借取。综上所述,基于FPGA的饮料自动贩卖机系统的设计与实现在经济角度上是可行的。
  2. 技术可行性:从技术的角度来说,本系统的设计与实现将使用到verilog语言、C 语言、以及数字电路设计相关的知识、UART通信协议等技术。上述所提到的基本都在大学本科期间进行过基础学习或实践,虽然存在部分技术难点但不至于导致研发无法进行。故此,于FPGA的饮料自动贩卖机系统的设计与实现在技术角度上同样是可行的。

第3章 FPGA平台下饮料自动贩卖机系统的系统设计

3.1 系统的整体设计方案

FPGA平台下饮料自动贩卖机系统的系统设计按照功能实现过程中的软硬件特性分为硬件功能设计与软件功能设计两部分。其中硬件部分设计时将使用硬件描述语言Verilog在Vivado Design Suite 2017.4开发环境中来进行设计开发硬件数字电路[6],并将其通过仿真验证后搭载至Basys3开发板上来完成其应有的功能。软件部分将使用C 语言、SQLite数据库在Microsoft Visual Studio 2010开发环境中进行开发并调试,开发其包括对硬件配置与管理功能等在内的控制台应用程序。最后软硬件的交互工作由双方的通信模块配合协调完成,配置与管理系统通过发送配置或管理数据包到硬件通信控制模块,由硬件控制模块解析成指令对RAM进行读写操作,最后由通信控制器打包成反馈包回送给配置系统完成配置工作,系统的总体设计框图如下。

以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。