基于FPGA的自动售货机控制系统设计与LED亮度PWM控制

需积分: 50 14 下载量 58 浏览量 更新于2024-08-10 收藏 546KB PDF 举报
"这篇文档是河北工业大学2009届电子信息专业张昊的本科毕业论文,主题是基于FPGA的自动售货机控制系统设计。论文主要探讨如何利用EDA技术,特别是通过VHDL硬件描述语言对自动售货机的硬件系统进行设计和FPGA内部电路的编程。" 在自动售货机控制系统的设计中,FPGA(Field-Programmable Gate Array,现场可编程门阵列)起着核心作用。FPGA是一种可重构的集成电路,可以通过编程来定制其逻辑功能,这使得它成为实现复杂控制系统的理想选择。论文中,作者选择了ALTERA公司的FPGA芯片作为目标器件,因为它们提供了高度的灵活性和性能。 控制系统的设计包含了硬件和软件两个主要部分。硬件系统设计主要是围绕选定的FPGA器件进行,确保其能够正确处理各种输入和输出,如硬币识别、商品选择和找零等。硬件电路图虽然没有详细给出,但可以理解为包括了与传感器、电机驱动、显示单元和投币口等相关接口的电路。 软件系统设计方面,论文重点介绍了几个关键模块的设计与实现。首先,投币模块负责识别和计算投入的硬币种类和总额,确保其符合商品价格。这里可能涉及到硬币检测传感器的控制逻辑和金额计算算法。其次,商品选择模块则根据用户的选品操作,匹配相应的商品价格。接着,主控模块作为系统的中枢,协调各个子系统的工作,确保在满足条件时发出正确的控制信号,例如阻止额外的硬币投入,启动商品出货机构,以及执行找零操作。 在软件设计过程中,VHDL(Very High Speed Integrated Circuit Hardware Description Language)被用来描述自动售货机的逻辑功能,这是一种硬件描述语言,允许工程师以接近自然语言的方式描述电路的行为。VHDL代码经过编译和仿真验证,确保设计的正确性和可靠性。 此外,论文还提到了一些具体的功能需求,例如自动售货机应能处理四种商品的销售,每种商品有不同的价格,同时支持不同面额的硬币投入。在用户投入硬币后,系统会实时计算余额,并在总额达到或超过商品价格时,停止接收硬币并启动出货。如果投入的硬币总额不足,系统会退还所有硬币;如果超出,多余的钱将作为找零退回。 最后,设计中还包括了一个时间限制机制,即用户投入硬币的时间限制在30秒内,防止长时间无操作导致系统堵塞。这一限制进一步保证了自动售货机的高效运行和服务质量。 通过FPGA和VHDL的结合,设计实现了自动售货机的智能化和自动化,降低了开发成本,提高了系统的可扩展性和可靠性。这种基于EDA技术的解决方案为自动售货机控制系统带来了更高的灵活性和效率,适应了现代商品市场的需求。