当前位置:首页 > 工业控制 > 工业控制
[导读]摘要:基于硬件电路设计软件化的思想,根据路口交通灯控制功能要求,以可编程逻辑器件(FPGA)为硬件基础,以有限状态机为设计基础,通过对系统状态及其转移关系的定义,运用多进程方式描述硬件模块的逻辑关系,用VHDL

摘要:基于硬件电路设计软件化的思想,根据路口交通灯控制功能要求,以可编程逻辑器件(FPGA)为硬件基础,以有限状态机为设计基础,通过对系统状态及其转移关系的定义,运用多进程方式描述硬件模块的逻辑关系,用VHDL语言编程实现了交通灯控制系统,经仿真,并在实验箱上进行功能测试,正确实现了预期功能。仅用一片可编程逻辑器件,即完成需要的控制功能,设计思路清晰,实现过程灵活。
关键词:有限状态机;交通灯;控制系统;设计

    实现路口交通灯控制器系统的方法很多,可以用标准逻辑器件、可编程序控制器PLC、单片机等方案来实现。但是这些方法在进行功能修改及调试时,都涉及硬件电路的调整,在一定程度上增加了工作的难度。随着电子技术的迅猛发展,集成电路的设计方法也在不断地更新,传统的“固定功能集成电路+连线”的手工电子设计方法已被现代的对“芯片”进行设计的电子设计自动化(EDA)的设计方法所替代,使用“语言”进行电子电路设计已成为一种趋势。笔者设计开发的交通信号灯控制器系统,采用EDA技术和可编程逻辑器件FPGA,应用VHDL有限状态机来设计控制系统的控制功能,并可根据实际情况对灯亮时间进行自由调整,整个系统通过OuartusⅡ软件平台进行了仿真,并下载到FPGA器件EP1C120240C8中进行调试,验证了设计的交通信号灯控制电路完全可以实现预定的功能。该系统可以较好地缓解交通压力,并可实现对突发事件进行紧急处理,具有一定的实用性。

1 有限状态机的基本特性
    有限状态机FSM(finite state machine)由有限的状态及其相互之间的转移关系构成。从有限状态机的角度看,许多数字系统中的时序电路都可以用其来描述,因此,有限状态机是一种重要的、易于建立的、比较规范、以描述控制特性为主的建模方法,它可以应用于从系统分析到设计的所有阶段。同时,因为有限状态机具有有限个状态,所以可以在实际的工程上实现。但这并不意味着其只能进行有限次的处理。相反,有限状态机是闭环系统,可以用有限的状态,处理无穷的事务。
    在用VHDL语言来设计实用系统的控制功能时,通常会选用有限状态机方法来实现,因为无论与VHDL的其他设计方案相比,还是与可完成相同功能的CPU相比,有限状态机有其独特的、难以超越的优越性,主要表现在以下几个方面:
    1)有限状态机由纯硬件来实现,工作方式是根据控制信号按照预先设定的状态进行顺序运行,在运行和控制方式上类似于控制灵活和方便的CPU,而在设计中能使用各种完整的容错技术,使其在运行速度和工作可靠性方面又都优于CPU。
    2)用VHDL设计有限状态机,设计流程和方案相对固定,程序层次分明,程序结构简单清晰,特别是可以定义符号化枚举类型的状态,使VHDL综合器对状态机具有强大的优化功能。
    3)状态机容易构成性能良好的同步时序模块,为了消除电路中的毛刺现象,在有限状态机设计中有多种设计方案可供选择,相比其他硬件设计方法,电路的完善性更能得到保证。
    因此,在控制灵活、高速、高可靠性要求的系统设计中应用VHDL设计有限状态机将是非常实用的选择。
    利用VHDL的有限状态机设计不同实用逻辑控制系统时,通常采用枚举类型来定义状态机的状态,这样可以获得可综合的、高效的VHDL描述,并且使用多进程方式来描述状态机的内部逻辑。例如:可用两个进程来描述,一个进程描述时序逻辑功能,通常称为时序进程;另一个进程描述组合逻辑功能,即组合进程,必要时还可以引入第3个进程完成其他的逻辑功能,另外还需要相应的说明部分,在说明部分用TYPE定义新的数据类型和状态名,以及在此新数据下定义的状态变量。

2 基于有限状态机的交通灯控制系统设计
2.1 功能分析
    作为一个十字路口交通信号灯控制系统,每条道路都需要有一组红、绿、黄灯和倒计时计数器,用于指挥车辆的有序通行。为便于区分,将十字路口交通信号灯分为主路a和支路b,应具有以下功能:
    1)主路a和支路b各设置两组(双向)红灯、绿灯、黄灯,以指示通行状态:同时还设置数字式的时间显示,以倒计时方式显示每一路允许通行或禁止通行的剩余时间。
    2)具有复位功能,当出现故障时,可复位回到初始设置状态。
    3)当主路a或支路b出现紧急情况时,按紧急情况键可进入紧急情况状态,各方向(两路)均亮红灯,倒计时停止。当特殊情况结束时,控制其恢复到电路的原来状态继续运行。
    4)主路a或支路b的通行时间可在一定范围自定义设置。
2.2 交通灯控制系统整体设计
    按照功能分析的要求,自顶向下,设计交通灯控制系统的整体组成框图如图1所示,它主要由分频模块,交通灯控制与倒计时模块和动态扫描显示控制模块组成。分频电路用于产生倒计时控制电路所需的周期为1 s的时钟信号频率;倒计时控制电路控制交通信号灯(红、绿、黄)的亮灯时间和亮灯顺序。根据对VHDL的使用熟悉程度,可对各模块继续分解,可视情而定。


2.3 控制与倒计时模块的有限状态机设计
2.3.1 建立状态转移图
    在交通灯控制系统中,交通灯控制与倒计时模块是系统的核心部分,采用有限状态机设计实现。主路a和支路b分别控制该方向上红、绿、黄信号灯的亮灯时间和亮灯顺序,正常工作时共有St0、St1、St2、St3 4种状态,每个状态之间的具体关系如表1所示,其中,red1_cn t、green1_cnt、yellow1_cnt和red2_cnt、green2_cnt、yellow2_cnt分别表示主路a和支路b上红绿黄灯所亮灯的时间,这里可自己定义倒计时时间。其状态转换图如图2所示。ent为倒计时的计数值,同时用它来判断是否进入下一个状态。


2.3.2 控制与倒计时模块的VHDL描述
    用VHDL设计有限状态机并没有固定的格式,但需要遵循一定的编码风格。一般采用进程(process)描述,有限状态机描述方式有如下3种:三进程描述、双进程描述和单进程描述。这里采用双进程描述:一个是时钟进程,控制状态机在时钟有效沿,根据时钟有效沿和某些输入信号条件得到下一状态并进行状态迁移;另一个是组合进程,不受时钟控制,由输出相关的信号触发,该进程根据触发信号决定状态机的输出信号值,即通过简便地定义状态变量,将状态描述成进程,每个状态均可表达为CASE_WHEN语句结构中的一条CASE语句,状态的转移通过IF_THEN_ELSE语句实现,并输出信号以控制其他进程,从而实现状态的转移。
    在时序进程中,状态机是随时钟脉冲信号clk以同步方式工作,同时还受异步复位信号rst的控制。在rst=1时,状态机复位,当rst=0(复位无效)而clk发生变化时,状态机的状态发生变化,转向状态机的下一状态;在组合进程中,状态机根据外部输入的控制信号(如hold),以及来自状态机内部(如cnt)信号,或当前状态机的状态值,确定其下一状态的走向。
    基于有限状态机的VHDL交通灯控制与倒计时模块的源程序的实体和结构体部分如下:
   


    将编译后的程序进行仿真,得到交通灯控制与倒计时模块仿真波形图如图3所示。由仿真波形可以看出,交通灯按St0→*St1→St2→St3 →St0顺序进行状态循环。light按主路红、主路黄、主路绿、支路红、支路黄、支路绿的顺序排列。如在St0状态下,light的值为“001100 ”,当hold紧急情况信号为高电平时,主路、支路均亮红灯,并且停止倒计时。当rst复位信号为高电平时,恢复到初态。



3 顶层文件的设计及仿真
    将分频模块和显示控制模块均分别用VHDL进行编程、仿真,检查其功能正确性,并包装元件入库建立元件符号。在上述3个模块设计完成之后,按照图1所示电路结构,用原理图输入方式进行连接,构成交通灯控制系统的顶层文件,并在Quartus II平台上进行编译、仿真,引脚锁定,得到仿真波形如图4所示,图中信号light、a(b)、dec7sa(dec7sb)分别用二进制、十进制、十六进制表示。


    从仿真波形中可以看出:当复位信号rst=1有效时,电路复位,此时light复位为“001100”状态,置a方向和b方向计数器为最大值24和29;当rst=0无效,紧急信号hold=1有效时,light为“100100”表示两路红灯均亮的状态;当rst=0,hold=0时,恢复电路原来的light为“001100”状态,a和b进行倒计时计数。7段显示译码器a方向的dec7sa和b方向的dec7sb分别显示计数器a和b的数值,如当a计数到21时,dec7sa的高位2和低位1的0gfedcba=01011011B(5B)和00000110 B(06),即5806,同理当b计数到26时,dec7sb的值为5B7D,所以交通灯控制系统的仿真结果完全正确。
    最后将顶层文件下载到可编程逻辑器件EP1C12Q240C8中,经测试,交通灯控制系统正常工作,完全符合设计要求。

4 结束语
    有限状态机及其设计技术是数字系统中实现高效率、高可靠性逻辑控制的重要途径。在交通灯控制系统设计中,通过对控制功能的分析和实际状态的选择,把交通灯的控制归纳为4种工作状态,并建立状态转移关系,较为准确、直观的反映了实际需求。在用VHDL语言设计实现交通灯控制系统时,既有传统的基于逻辑单元构建的整体组成结构方式,也有利用纯软件编程实现的逻辑模块。设计方法灵活、实现简单、性能稳定的特点。
    以上有限状态机的设计方法具有通用性,对于较为复杂的有限状态机可采用多个进程,分别完成任意复杂组合逻辑和时序逻辑,包括进程间状态值的传递以及状态转换值的输出,对类似含有逻辑控制功能的系统,通过自顶向下设计、分步实现,是切实可行的方法。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

前不久,新思科技已经正式对Ansys完成了整个收购。一家是IP和IC设计方面传统三强之一,一家是仿真与分析领域的老牌技术专家。双方的结合也是呼应整个技术潮流,为客户提供从硅片到系统的完整解决方案。而且,借助Ansys的强...

关键字: Synopsis 新思科技 Ansys 仿真 汽车 AI

在当今高度 自动化的工业生产中 ,搬运机械手应用广泛 。现对搬运机械手液压系统展开研究 ,详细阐述其结构组 成、工作流程与基本原理 ,并基于Fluidsim仿真设计系统的液压和电气回路 ,设置仿真参数并进行仿真分析 。结...

关键字: Fluidsim 搬运机械手 仿真 液压系统

针对现有静电放电测试方法 ,提出了一种基于末端装置变形的六轴机器人模型用于静电放电测试 。用两种方法对模型进行了正、逆运动学分析,通过实例验证了旋量方法计算的优势,为后续进行静电放电测试自动化控制提供了理论基础。

关键字: 机器人 正运动学 逆运动学 变形 仿真 旋量

北京 2025年6月4日 /美通社/ -- 工业仿真软件是智能制造的核心引擎,"智造强国"的核心基础设施。5月27日,北京市经济和信息化局印发《北京市人工智能赋能新型工业化行动方案(2025年)》,...

关键字: SIM 仿真 仿真软件 数字化

数字信号处理(DSP)系统开发,仿真调试是确保算法正确性与硬件可靠性的关键环节。随着DSP芯片功能复杂度的提升,传统调试手段已难以满足需求,而JTAG接口与逻辑分析仪的协同使用,通过硬件级调试与信号级分析的结合,为开发者...

关键字: DSP 仿真 JTAG

随着半导体工艺进入7nm及以下先进节点,器件尺寸的持续缩小导致可靠性问题日益凸显。其中,负偏压温度不稳定性(Negative Bias Temperature Instability, BTI)和热载流子注入(Hot C...

关键字: BTI/HCI 仿真

在嵌入式系统开发中,硬件资源的限制和测试环境的搭建常常成为开发者面临的挑战。QEMU(Quick Emulator)作为一款开源的机器模拟器和虚拟化器,能够在主机系统上模拟目标硬件环境,为嵌入式软件的仿真测试提供了强大的...

关键字: QEMU 嵌入式软件 仿真

按照19英寸标准2U机箱尺寸开展某型电子设备结构热控一体化设计。根据模块化要求完成设备主板、AC/DC电源等子模块设计并确定散热方式;基于传热基本原理完成风道设计 , 结合风道和热耗分布情况完成系统风量计算和风扇选型 。...

关键字: 强迫风冷 热设计 仿真 热测试

上海2025年2月18日 /美通社/ -- Altair(纳斯达克股票代码:ALTR)近日宣布将于 2025 年 3 月 5 日至 6 日举办Future.Industry 2025全球线上直播会议。本届盛会特邀 Goo...

关键字: FUTURE INDUSTRY 仿真 PC

上海2025年2月7日 /美通社/ -- 近期,品牌自制短剧犹如一股强劲的创意风暴,迅速在营销界掀起了巨浪。短剧以其独特的魅力赢得了广大用户与品牌方的热烈追捧。美团、麦当劳、星巴克等纷纷涉足其中,探索这一新型营...

关键字: 仿真 机器人 阿里巴巴 AI技术
关闭