当前位置:文档之家› 基于FPGA的自动售货机设计

基于FPGA的自动售货机设计

目录

摘要........................................................................................................................................ I II ABSTRACT................................................................................................................................ I V 第一章引言 (1)

1.1自动售货机的简介 (1)

1.2本课题研究的背景及意义 (1)

1.3 设计方案 (1)

第二章 FPGA自动售货机系统设计 (2)

2.1 自动售货机的工作原理 (2)

2.2 自动售货机的系统框图设计 (2)

2.3 具体的实施方案 (3)

第三章芯片的选择和介绍 (4)

3.1 芯片选择 (4)

3.2 CycloneⅡ系列器件概述 (4)

3.3 CycloneⅡ系列器件的下载设计 (4)

第四章自动售货机的硬件电路设计 (6)

4.1 Altium Designer 6.0 简述 (6)

4.2 FPGA芯片主模块电路设计 (6)

4.2.1电源电路 (6)

4.2.2 时钟信号电路 (7)

4.2.3 下载配置电路 (8)

4.2.4 I/O端口引出电路 (8)

4.3外围电路 (9)

4.3.1 开关按键电路 (9)

4.3.2 显示模块电路设计 (10)

4.3.3外围电路端口电路 (11)

4.4 硬件电路的总原理图和PCB图 (12)

4.4.1 FPGA芯片主模块总原理图和PCB图 (12)

4.4.2 外围电路总原理图和PCB图 (12)

第五章硬件电路的调试 (13)

5.1 电路板的测试 (13)

5.1.1 外围电路测试 (13)

5.1.2 FPGA主模块电路板测试 (14)

5.2 程序调试 (15)

结论 (19)

参考文献 (20)

附录 (21)

致谢 (23)

摘要

在当今国内外电子科技高速发展的今天,FPGA已经成为当今电子设计的一个主流。FPGA 利用它的现场可编程特性,将原来的电路板级产品集成为芯片级产品,缩小体积,缩短系统研制周期,方便系统升级,具有容量大、逻辑功能强,而且兼有高速、高可靠性的优点。因此,本课题的设计将采用FPGA芯片作自动售货机的控制核心,并通过搭建外围电路模拟自动售货机的功能。本文将在硬件电路的设计与制作方面作详细的介绍:从开始对电路设计的构思,到原理图的设计和PCB图绘制,再到电路板的制作,最后到实物的调试以及结合软件进行自动售货机的功能模拟。

关键词

FPGA、自动售货机、硬件设计

ABSTRACT

The rapid development of information technology around the world today., FPGA has become a mainstream of the modern electronic design. By using its field programmable features, FPGA changes the original circuit board-level products to the chip-level integration products. Now FPGA has advantages of reduced the size, shorten development cycle, facilitated in system upgrades, highly capacity, strong logic functions,stable system and high speed.SO,this task will use the chip of FPGA to design The vending machine’s control core ,And through the building periphery circuit simulation the function of the vending machine.This article will give a detailed description of the hardware circuit design and production aspects from the beginning of circuit design idea, schematic design and PCB drawing, to the production of circuit boards, finally to the real debugging and combined with the function of the software for automatic vending machine simulation

Keyword

FPGA;Vending machines; hardware design

第一章引言

随着科技的发展及人们生活水平的提高,自动售货机已经逐渐走进了我们的生活。自动售货机市场的发展呈现出多元化及个性化的需求,通过自动售货机进行自助购物正逐渐成为市民的一种新的消费时尚和追求高品质生活的需要。

1.1自动售货机的简介

自动售货机(Vending Machine,VEM)是能根据投入的钱币自动付货的机器。自动售货机是商业自动化的常用设备,它不受时间、地点的限制,能节省人力、方便交易。是一种全新的商业零售形式,又被称为24小时营业的微型超市。能分为三种:饮料自动售货机、食品自动售货机、综合自动售货机。

1.2本课题研究的背景及意义

自动售货机的出现给人们的生活带来了极大的便利,但同时也对其提出了很多要求。而且,随着嵌入式系统技术、多媒体技术和互联网技术的应用,自动售货机也将朝着娱乐化、智能化、信息化方向发展。传统的单一售货功能的自动售货机已经满足不了人们的需求。这对自动售货机内部主控中心的设计带来了新的挑战。

自动售货机内部控制中心的实现方式有多种。传统的自动售货机控制系统采用单片机作为控制核心,虽然电路及程序设计比较灵活,但需要在输入输出接口上做大量的工作,不易于扩展,系统的可靠性及抗干扰性比较差。采用可编程控制器(PLC)设计自动售货机控制系统,可靠性高,易于性能扩展,但编程不灵活,程序设计难度大。

EDA技术是现代电子领域的一门新技术,利用灵活的硬件描述语言及功能强大的EDA 工具可以完成复杂数字系统的设计。利用VHDL硬件描述语言和FPGA设计自动售货机的主控系统相比传统的设计方式有着很大的优越性。其主要特点就是完全由用户通过软件可以反复进行配置和编程,完成用户所需要的特定功能,缩短了系统设计的周期,提高了实现的灵活性并降低了成本,而且可以很容易进行功能扩展。

在当今人们对自动售货机功能需求越来越丰富,利用FPGA设计其主控系统相比传统的设计方式有着很大的优势,这将会给自动售货机的发展带来很大的促进作用。

1.3 设计方案

本课题将使用FPGA来设计自动售货机的内部控制系统,并通过搭建外围电路来模拟自动售货机的功能。

第二章 FPGA自动售货机系统设计

本章首先介绍了自动售货机的工作原理,并通过自动售货机的工作原理拟定自动售货机的FPGA实现方案。

2.1 自动售货机的工作原理

自动售货机作为一种完全独立的售货设备,集接收货币、顾客自选商品、售出货物和找零等功能于一体。在顾客通过输入器件选择好要买的商品并投币后,售货机的主控系统会根据商品的现有数目和单价做出计算,若所投币的币值大于商品的单价且数量有,售货机会自动出货并找回余额,若不满足则会发出相应的警报,直至一次交易完成。

2.2 自动售货机的系统框图设计

根据自动售货机的工作原理,本课题设计的自动售货机将采用FPGA芯片作为内部的控制中心,并通过搭建外围扩展电路来模拟自动售货机的具体功能,设计的系统框图如下图2-1所示:

图2-1 自动售货机的系统框图

如上图2-1所示,整个自动售货机系统分成两部分:软件部分和硬件部分。软件部分主要是FPGA芯片内部程序的编写,这一部分主要由负责软件部分的同学来完成,本文不再一一赘述。接下来是硬件部分,主要是具体电路的设计与制作,图中电源电路、时钟信号电路和下载电路是FPGA芯片能正常工作必要组成部分,而扩展电路是用来模拟实现自动售货机功能的。本人主要负责硬件部分的设计与制作,具体将在后续几章内介绍。

2.3 具体的实施方案

本文所设计的自动售货机可以出售4种商品,售价分别为:1元、2元、3元、3.5元。购买者可以通过商品选择按键选择标价中的商品,这时选中商品的单价和数量将由两个数码管显示(单价以0.5元为单位),且每次只能购买一件商品。此售货机可以识别1元和0.5元两种硬币。顾客可以通过系统设置的两个不同按键分别代替执行投入0.5元和1元的操作,系统设置一个数码管来显示投入钱币的数量(以0.5元为单位)。如果投入金额总值等于或大于售价,并按下确认按键,系统会自动输出商品,用一个LED灯指示,若还有余额系统将自动找零,用数码管显示(以0.5元为单位)。如果金额不足或放弃购买,则可以按下取消键,系统会无条件退币。本文设计采用50MHZ的系统时钟信号来控制整个买卖行为。

目标:通过实物,能正确模拟整个交易过程。

第三章芯片的选择和介绍

3.1 芯片选择

FPGA芯片的选择要考虑很多的因素,最重要的芯片内部的逻辑单元要能满足设计的所需要求。通过对市场上主流FPGA芯片了解,并考虑到开发工具和成本最终我们选择了Altera 公司的生产的CycloneⅡ系列器件中的EP2C5T144C8N这个型号的芯片。

3.2 CycloneⅡ系列器件概述

CycloneⅡ系列芯片是Altera 公司于2004年推出的继Cyclone之后又一低成本系列FPGA,平衡了逻辑、存储器、锁相环(PLL)和高级I/O接口,是价格敏感应用的最佳选择。 CycloneⅡ器件的制造基于300mm晶圆,采用TSMC90nm、低K值电介质工艺[3]。

CycloneⅡ系列器件各型号性能如下表3-1所示:

表3-1 Cyclone系列芯片性能

EP2C5T144C8N芯片属于EP2C5家族,由上表可知片内有4608个逻辑单元,RAM总量是119808,有144个管脚,最大I/O有89个,足以满足本课题的设计需求。

3.3 CycloneⅡ系列器件的下载设计

CycloneⅡ系列芯片的烧写方法有多种:常见的有JTAG 模式、PS 模式、AS 模式等。下面先介绍本课题中所用到的JTAG模式下载。JTAG接口是一个业界标准,主要用于芯片测试等功能,使用IEEE std 1149.1联合边界扫描接口引脚,支持JAM STAPL标准,可以使用Altera 下载电缆或主控器完成,本课题使用的是Altera的USB Blaster专用的FPGA下载电缆。

由芯片的数据手册可知JTAG下载电路原理图如下图3-1所示[4]:

图3-1 JTAG下载电路原理图

(1)上拉电阻应该连接在同下载线同一个电源上

(2)管脚 nCONFIG、MSELO和MSEL1 应该连接到支持非JTAG 配置模式下,如果电路中仅有JTAG 配置模式被使用,那就要将nCONFIG 管脚接电源VCC,管脚MSELO 和 MSEL1 连接到GND。

(3 在JTAG模式下nCE脚必须要么接地要么接低电平

(4)nCEO引脚在不需要供给其他设备的nCE脚时,可以悬空获当作I/O脚来用。

第四章自动售货机的硬件电路设计

在硬件电路设计过程中,首先使用Altium Designer 6.0 软件设计电路原理图,然后将原理图传输到 PCB 板中来,在网络表、设计规则和原理图的引导下布局和布线。绘制好PCB图后,将做好的PCB 文件拿去制作电路板,最后在制好的电路板上焊接芯片及各种阻容件。本课题将硬件电路分两部分来设计,第一部分由FPGA芯片构成的主模块,第二部分是外围扩展电路。

4.1 Altium Designer 6.0 简述

Altium Designer 6.0是业界首例将设计流程、集成化PCB设计可编程器件设计和基于处理器设计的嵌入式软件开发功能整合在一起的产品。提供了强大的原理图和PCB图设计功能。在本课题的很多设计工作都使用到它,从设计原理图到PCB 都是由本软件来完成的,其中该软件的设计管理器具有友好的人机接口,而且设计功能强大,使用方便,易于上手。

4.2 FPGA芯片主模块电路设计

根据FPGA芯片的数据手册,一个FPGA主模块应该包括电源供电电路、时钟信号电路、下载配置电路(本课题采用JTAG下载模式,所以未加专用配置芯片以及AS下载端口)、I/O端口引出电路等。

4.2.1电源电路

EP2C5T144C8N FPGA芯片的主要供电电压是3.3V,内核电压是1.2V。本课题采用5V USB 外电源供电,于是这里需要作相应的电压转化。本课题将使用AMS 1117系列稳压芯片来做转化器。AMS1117是一个正向低压降稳压器在1A电流下压降为1.2V。有两个版本:固定输出版本和可调版本。鉴于本课题的设计电压需求我们将使用固定输出版本中的

AMS1117-3.3和AMS1117-1.2型号的芯片,其固定输出电压分别为3.3V和1.2V,正好满足需要。设计的原理图如下图4-1所示:

图 4-1电源电路原理图

图中C6、C9、C7、C10、C8、C11为去耦滤波电容。此电源电路除了给芯片提供电源外,其余模块的电源都有此电路提供。

4.2.2 时钟信号电路

EP2C5T144C8N芯片的时钟源是50M,于是时钟信号电路由50M的有源晶振构成,电路

图如下图4-2所示:

图 4-2 时钟信号电路原理图

图中C34、 L1、和C35组成π型滤波器,防止振荡器干扰电源。电源稳定振荡器的频率较高。产生的时钟信号经R9进入芯片17脚。

4.2.3 下载配置电路

本课题采用JTAG下载配置模式,电路图如下4-3所示:

图 4-3 JTAG下载电路原理图

图中R7、R8为上拉地电阻。

4.2.4 I/O端口引出电路

本电路将芯片的所有可用的I/O端口用引出到插针,电路图如下图4-4所示

图4-4 I/O端口电路原理图

图中将芯片的所有可用的I/O端口引出到插针上,以待后续做自动售货机功能模拟时使用,具体的连接将在第五章调试时介绍。

4.3外围电路

4.3.1 开关按键电路

本课题设计的自动售货出售4种物品,当系统开始时,可以在设置阶段对4种物品的单价和数量进行设置。一个物品的单价和数量共占8个位宽,于是,这里采用两个4P拨码开关来模拟。拨码开关就相当于一个开关量,拨到ON 就表示接通,OFF 就是断开,拨到ON 时相当于输入“1”,拨到OFF时相当于输入“0”。电路图如图4-5所示:

图 4-5 开关电路

本课题设计的自动售货机接收1元和0.5元的两种硬币,硬件通过两个按键来模拟, 商品选择也由4个按键模拟,按下去两端就形成短路,松开手就形成开路。短路相当于输入1,开路为0。另外需要说明的是,由于按键属于机械开关,按动过程不可避免存在抖动的现象,所以用户按下按键的时间可以稍微长一点。电路图如图4-6所示下:

图4-6 按键电路原理图

4.3.2 显示模块电路设计

此模块主要用来显示信息分两个部分。第一部分主要用来指示,用5支发光二极管来实现,其中4支分别指示4种商品,另外一支用作警报(如投币不足等)时指示,电路图

如下图4-7所示:

图 4-7 LED显示电路原理图

第二部分主要用来显示信息,用4个7段数码管来实现,分别显示商品的单价和数量,以及找零时的钱币数。电路图如下图4-8所示:

图 4-8 数码管显示电路原理图

4.3.3外围电路端口电路

该端口通过插针将上诉的开关电路、按键电路和显示电路需要的连接点引出,在做自动售货机功能模拟时连接芯片的I/O口。电路原理图如下图4-9所示:

图 4-9 端口电路原理图

4.4 硬件电路的总原理图和PCB图

4.4.1 FPGA芯片主模块总原理图和PCB图

FPGA芯片主模块的电路原理图和PCB图见附录一。

4.4.2 外围电路总原理图和PCB图

外围电路的总原理图和PCB图见附录二。

第五章硬件电路的调试

5.1 电路板的测试

5.1.1 外围电路测试

将做好的PCB图发工厂制作电路板,做好之后自己动手焊接元器件。完工后用万用表检查板子上有无虚焊、漏接、短路等地方并排除一切因焊接疏忽而造成的故障。最后上电查看电路板是否能正常工作。外围电路实物图测试如下图5-1所示:

图 5-1外围电路实物图

上电后各数码管和LED都能正常显示,按键和拨码开关也能正常使用,外围电路板能正常工作。

5.1.2 FPGA主模块电路板测试

随着FPGA芯片的密度和性能不断提高,电路调试的复杂程度也越来越高。所以在调试FPGA电路时要遵循一定的原则和技巧,以免误操作损坏电路。经查阅资料一般按照以下的步骤来测试。

(1)首先在焊接电路时,只焊接电源电路部分。使用万用表进行测试,排除电源短路等情况后,上电测量电压是否正确。

(2)然后焊接FPGA及相关下载电路。再次测量电源地之间是否短路,上电调试电压是否正确,然后将手排除静电后触摸FPGA有无发烫现象。

(3)以上步骤通过后,将电路板上电运行。然后把下载电缆接到JTAG接口上,在主机上运行QuartusⅡ软件,并打开Programmer编程器,单击其中的“Auto Detect”按钮进行FPGA下载链路自动检测。若能检测到FPGA,说明配置电路是正确连接的。

(4)最后焊接时钟电路和其余的组件,然后下载程序进行调试。

测试结果如下

(1)5V电源接通后,闭合开关,电源指示灯亮了,经万用表测得AMS1117-3.3稳压芯片的输入端电压为5。12V,输出端电压为 3.28V,AMS1117-1.2稳压芯片的输入端电压为3.28V,输出端电压为1.19V,电源模块能正常工作(实物图如下图5-2所示)。

图5-2 实物图

(2)焊接好JTAG接口后,用万用表检测电源地之间无短路,接口各线连接也无异常。

(3)用USBblaster下载电缆把电路板和电脑连接好之后(驱动已安装),并上电后,用QuartusⅡ检测下载链路,提示检测不到芯片,下载电路有故障。

故障分析:用万用表检测到JTAG端口与芯片的各管脚的连接都没有问题,上电后,测得TCK脚的电压为0,TDI脚的电压为3.3V,TDO脚的电压为0,TMS脚的电压为3.3V,经查阅资料发现TDO脚的电压不符合,检查电路板发现TDO脚的焊接有问题。于是把TDO 脚从新焊接后再次检测,结果,能检测到芯片EP2C5,下载链路也没问题了。

(4)用示波器检测有源晶振的输出端,示波器上显示的是杂乱无章的频率为200Khz的信号,明显不符合理论上的输出。

故障分析:用万用表测得有源晶振的输入端电压为3.28V,输入端无异常,怀疑有源晶振有问题,后在查看电路板时发现由于晶振的管脚焊接错了,是在画PCB板时有源晶振的封装画错的原因造成的最后从新焊好晶振后,再用示波器检测得到了50Mhz的正弦波,晶振模块能正常工作了。

5.2 程序调试

做好电路板之后,就要开始和做软件部分的同学一起进行程序调试了。首先,打开QuartusⅡ软件,结合程序和实物用管脚分配器进行管脚绑定,结果如下图5-3和5-4所示:

图 5-3 I/O脚绑定图

图5-4 I/O脚绑定图

如上图所示将输入信号和输出信号做好绑定之后,就开始按需要连接电路,连接结果如下图5-5所示:

图5-5 实物连接图

相关主题
文本预览
相关文档 最新文档