《电子技术应用》
您所在的位置:首页 > 可编程逻辑 > 设计应用 > 基于FPGA的自动售货机主控制系统的设计与实现
基于FPGA的自动售货机主控制系统的设计与实现
范文萍,吴定雪
摘要: 从总体上介绍了自动售货机主控制系统的组成和功能,讨论了自动售货机工作原理,详细阐述了主控制系统FPGA的软、硬件设计及其主要控制模块的仿真实现,并编写了系统程序总框图。实践验证,系统能够在各种条件下持续、平稳、可靠地工作。
Abstract:
Key words :

    摘 要:从总体上介绍了自动售货机主控制系统的组成和功能,讨论了自动售货机工作原理,详细阐述了主控制系统FPGA的软、硬件设计及其主要控制模块的仿真实现,并编写了系统程序总框图。实践验证,系统能够在各种条件下持续、平稳、可靠地工作。
    关键词:FPGA;自动售货机;硬件设计;软件仿真

 

    随着科技的发展及人们生活水平的提高,自动售货机市场的发展呈现出多元化及个性化的需求,通过自动售货机进行自助购物正逐渐成为市民的一种新的消费时尚和追求高品质生活的需要。传统的自动售货机控制系统采用单片机作为控制核心,不仅需要在输入输出接口上做大量的工作,而且系统的抗干扰性也比较差。FPGA具有可靠性高、编程简单、维护方便等优点,已在工业控制领域得到广泛应用。本文详细介绍了一种用FPGA实现的自动售货机主控制系统的硬件设计和软件设计,并进行了软件仿真和硬件设计实验,实验表明该控制系统是可行的。
1 自动售货机系统总体结构
    自动售货机作为一种完全独立的售货设备,集接收货币、顾客自选商品、售出商品和找零等功能于一体[1]。具体的说,一个完整的售货机控制系统[2]一般应包含如图1所示的设备和模块。

 


    (1)人机交互设备:通过显示设备和输入设备实现,顾客通过使用键盘输入需要购买的商品编号,根据液晶显示器LCD给出的提示信息进行投币、取商品、接受找零等操作;系统管理人员可以使用键盘在显示器所提供的可视化界面下对售货机的各种运行参数进行设置;
    (2)MDB(Multi-Drop Bus / Internal Communication Protocol)通信接口[3]:MDB/ICP协议是欧洲售货机制造者协会制定的一套用于协调自动售货机的主控制器(VMC)与多个外设之间的通信协议,用于协调自动售货机的主控制器(VMC)与多个外设之间的通信,所有外围设备与主控制器之间的通信方式都一致。由于其简洁明了、功能强大、可扩展性强,并且对外设数目没有限制,成为理想的自动售货系统内部总线协议;
    (3)主控制器:主要包括对各种外设获取的信息加以处理,对于售货机的整个销售流程进行控制,运行执行机构正常工作所需的各种算法等;
    (4)信息采集模块:主控制器所需采集的信息主要包括自动售货机箱体内的温度,售出的货物是否正常掉落到顾客取货区,电机运行有无异常状态。
    (5)货道电机驱动模块:主要指商品通道的驱动电机阵列。根据输入的所选商品的通道号,主控板驱动相应的小型直流电机转动,将货物推送至顾客取货区。作为自动售货机的最终执行机构,电机驱动控制部分的性能以及可靠稳定性直接影响商品销售,是自动售货机控制器设计中非常重要的一部分。
2 自动售货机系统工作原理
    根据系统控制要求,编写了控制系统的程序总框图,如图2所示。

 


    从投币口送入货币,然后经过传感器采集数据、识别器判别人民币的真伪并判别面值。识别器把信息数据传给通信模块。通信模块与售货机的主控系统通信,主控系统显示面值,启动售货机的面板键,显示出哪个货道有货,哪个货道已售完,并等待顾客按键选择商品。顾客选择商品后,售货机自动把商品送出,等待顾客取走。显示余额,如果金额足够多,顾客可以选择找币或继续买商品;如果款额不足,售货机经过延时予以退币。退币分2种情况:一种是由纸币识别器完成退纸币,另一种是由硬币的通信模块完成退硬币。系统复零,完成售货。
3 主控制系统FPGA[4]的软件设计及仿真
3.1 软件结构
    根据控制系统的工作原理及硬件设计,该系统的软件采用模块化的设计方法,其主要由初始化、投币过程、价格比较过程、商品选择、显示、退币和报警等模块组成,其中一些主要模块的功能如下:
    (1)投币模块:在投币过程中,每投下一枚硬币,经钱币识别传感器把信号传递给PLC,该模块将完成辨别硬币的真伪和判定具体的币值,可以进行钱币的叠加,并显示出相应的币值,余额也增加同样的币值;
    (2)价格比较模块:投币完成后,系统对余额中钱币数据和可以购买的饮料价格进行区间比较:若大于或等于商品的价格,则可以购买该商品,指示灯亮;
    (3)商品选择模块:此模块可以实现用户对商品的选择购买;
    (4)退币模块:系统可在顾客购买完商品后退回余币。在退币过程中,最主要的是要完成退币的运算过程,运算结果放在数据寄存器,根据结果起动退币电动机工作,输出相应的钱币,退币结束时还要给程序中使用到的某些寄存器重新赋零。
3.2 主要模块功能仿真
3.2.1 投币模块功能仿真

    系统可以接受4种钱币的投入,RESET可以复位,系统内部的计数器将对投入的钱币总数,进行自加计数,仿真波形如图3所示。

 


3.2.2 商品选择模块功能仿真
    系统允许顾客对4种物品进行选择。同时系统内部计数器将进行自减计数,内部变量还会自动记录顾客购买的各种物品数目并由LTEM_OUT端口输出顾客购买物品的种类仿真波形如图4所示。

 


3.2.3 退币模块功能仿真
    系统可以找出2种钱币。当顾客键入END_BY后,系统开始找钱,原则为从大往小找,在找钱的同时,不允许顾客投入钱币。系统内部的计数器将进行自减计数,直至到零为止。同时,系统将记录找出各种钱币的数目并输出找出钱币面值。
3.2.4 价格比较模块功能仿真
    投币完成后,系统会将在余额中钱币数据和可以购买的饮料价格进行区间比较:若大于或等于商品的价格,则可以购买该商品,指示灯亮。
    本文介绍了一种基于FPGA的自动售货机主控制器的整体设计方案和工作原理,详细阐述了主控制模块FPGA的软件设计与实现及主要功能模块仿真,在以FPGA为核心的自动售货机控制系统中,当需要增加可选择的商品数量时,该控制系统的硬件只需要增加相应的输入信号,其硬件的原有接线不需要改变,软件则可以根据不同的控制要求进行修改,具有较强的适应性,因此在自动售货机行业中得到广泛的应用。经实践,整个系统工作稳定可靠。
参考文献
[1]  裴进灵.一种新型自动售货机的研制[ J].科技情报开发与经济,2002,13(12):141-142.
[2]  朱军.自动售货机的结构[ J].信息与电脑,1995(10):12-13.
[3]  Multi-Drop Bus / Internal Communication Protocol NAMA vending technology standards committee.
[4]  周美兰.FPGA电气控制与组态设计[M].北京:科学出版社,2003.

此内容为AET网站原创,未经授权禁止转载。