APP下载

基于FPGA的自动售货机的设计与仿真

2016-10-22许斌

电子设计工程 2016年17期
关键词:投币数码管端口

许斌

(四川信息职业技术学院四川广元608040)

基于FPGA的自动售货机的设计与仿真

许斌

(四川信息职业技术学院四川广元608040)

对于售卖小商品的自动售货机本文采用自顶向下的设计方法,将整个系统划分为分频、主控制器、译码显示等模块。各模块均采用硬件描述语言VHDL,在Quartus II和Modelsim平台进行设计和仿真。该系统可设定多种类型商品的交易模式,并实现商品信息存储、商品选择、货币识别和找零、钱数和单价的显示等功能。

自动售货机;硬件描述语言;模块设计;仿真

自动售货机可以根据投入的货币进行自动售货,是交易中常用的一种智能的自动化设备,几乎不受时间、地点的限制,可以很好的节约人力资源、方便的进行交易[1]。随着集成电路产业的快速发展,集成电路的规模越来越大,集成度越来越高。对于实现这种大规模集成电路的设计,采用计算机辅助设计和电子设计的智能自动化来设计集成电路已经是一种必然[2]。VHDL、Verilog等硬件描述由于其出色的芯片设计自动化性能,已经被广发的应用到集成电路设计领域[3-4]。用VHDL语言进行系统设计并不涉及底层电路具体电路结构,而只需要给出各单元模块之间的链接关系,这种设计思路可以使设计者都够把注意力集中在顶层结构设计从而使系统整体设计更优化,也可以通过语言描述来自动实现电路结构的设计从而节省设计时间提高设计效率[3]。同时由于Quartus II软件平台生成的电路是自动综合出来,电路具有很高的标准化和正确性。本文对各模块实行独自设计、修正和调试,最终通过模拟仿真进行验证[4]。

1 自动售货机系统设计

为了说明设计原理,系统具有商品的数量和价格存储功能,并设定自动售货机可以出售4种商品,标价分别为3元、4元、5元和6元,可以识别5角和1元两种货币。

1)售货员把商品的数量和价格置入到存储器中,此时系统处于初始状态可供购买者进行商品的选择;

2)购买者可以选择购买4种商品种类,商品种类的选定是按照其存储的顺序依次选择的。商品选择好以后,显示处商品的单价并处于等待投币状态。系统提供2中货币类型的选择,购买者可以投5角或者一元的货币,投币成功后会显示所投货币的数额;

3)购买完成后系统指示购买已完成并进行找零,完成交易。

考虑到自动售货机的运行过程,采用自顶向下[3-4]的方法来实现主控部分的功能,将实际的交易过程转换为各个状态的切换,使得整个设计思想清晰明了。并且采用数码管进行相应的商品单价和所投货币数额的显示。因此,可将自动售货机系统分为多个模块:主控模块、分频模块、二进制译码模块和显示模块。采用VHDL语言对各个模块功能进行描写,最后把各模块整合成顶层设计实体。如图1所示。

图1 整体结构框图

2 系统测试及仿真

2.1主要代码部分

主控模块:此模块是整个设计的最重要的部分,控制着整个设计的商品单价数量存储、投币、显示、找零等功能。总体具有9个如数端口和6个输出端口。其中输入主要端口包含clk、coin0(识别5角货币)、coin1(识别1元货币)、price(商品价格)、quantity(商品数量)。输出端口主要端口y0(已投钱数显示)、y1(商品数量显示)

分频器模块:具有一个输入端口和两个输出端口。输入一个clk时钟经过分频器输出较高频率时钟给数码管扫描模块和低频率时钟给主控模块的状态机。

二进制译码模块:具有一个输入端和两个输出端。从coin和qua端口输出两个4位的二进制码转换为8位的BCD码y0(已投钱数显示)和y1(商品数量显示)并输出到数码管模块动态扫描,其后接显示数码管。根据以上的分析编写代码如下(由于篇幅原因只显示部分):

2.2仿真结果

本节主要系统的功能进行仿真和测试,选择的商品的价格分别为3元、4元、5元、6元对应的商品数量为6件、7件、8件、9件。在QuartusII和Modelsim平台上分别对顶层电路(图2),消费者对商品种类选择(图3),消费者进行投币(图4),系统仿真图-购买、找币结束交易(图5)这几个部分进行仿真,来测试系统各个部分的功能。

图2 顶层系统仿真

图3 商品种类选择

图4 投币

图5 系统仿真图-购买、找币

3 结论

从仿真结果分析,系统可以满足识别两种货币、对商品信息进行存储、投币、选择购满商品和找零等功能。设计中采用了自顶向下[3-4]的设计方法,通过状态的转换,实现了模块化的思想。其中各个模块所具有的相对独立性更好地保证了系统的稳定性,使得设计更加合理,节约了电路资源[4]。可以将本设计下载到FPGA/CPLD芯片中在具体的项目中应用,因此有一定的实用价值[6]。

[1]陆思杰.自动售货系统应用介绍[J].机械研究与应用,2010,23(2):147-148.

[2]张晨亮.电子元件自动售货机设计实现[J].电子测量技术,2014,37(11):4-7.

[3]赵杰.基于VHDL的自动售货机系统设计[J].系统仿真技术,2015,11(2):167-171.

[4]孙延腾,吴艳霞,等.基于VHDL语言的参数化设计方法[J].计算机工程与应用,2010,46(31):68-71.

[5]叶银兰.自动售货机的设计与实现[J].微计算机信息,2008(8):53-55.

[6]陈慧.基于嵌入式单片机的智能自动售货机控制系统[J].华东交通大学学报,2008,25(6):78-82.

Design and simulation of automatic vending machine based on FPGA

XU Bin
(Sichuan Information Technology College,Guangyuan 608040,China)

In this paper,a top-down design method is adopted for the vending machine,which divides the whole system into the frequency dividing,the main controller and the decoding display module.Each module uses hardware description language VHDL,in the II Quartus platform for design and simulation.The system can set various types of commodity trading patterns,and implementation of the goods information storage,commodity and currency recognition and change,the money number and unit price of the display function.

vending machine;hardware description language;module design;simulation

TN409

A

1674-6236(2016)17-0147-03

2015-09-07稿件编号:201509051

许斌(1982—),男,陕西渭南人,硕士,工程师。研究方向:通信与信息处理技术。

猜你喜欢

投币数码管端口
一种端口故障的解决方案
微课教学设计之“数码管动态显示”
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
投币畅饮(图片故事)
交换机生成树安全
我是白骨精
端口阻塞与优先级
放飞诚信的白鸽