基于信号校验技术的单片机交通灯控制终端
扫描二维码
随时随地手机看文章
摘要:根据区域协调型智能交通系统的要求,设计了基于单片机控制的交通灯控制终端。交通灯控制终端与智能协调中枢控制系统进行通信,反馈车流量信息,并按照中枢系统的要求来控制红绿灯的工作。本终端采用双单片机信号校验的方式,配合看门狗的使用,纠正终端运行过程中可能发生的错误,并加入警报和自投入备用模块,在运行出错情况下发出警报,在设备故障情况下自投入备用控制器,保证路口交通安全稳定。
关键词:信号校验;单片机;看门狗;备用模块
智能交通系统一直是交通系统研究的一个重要方向,智能交通系统研究中一个重要的分支是统筹各路段的车流量信息,统一规划调控各路口的红绿灯时间来控制车辆通行,达到智能交通所需要的目的。
现阶段的交通灯控制终端一般采用PLC作为控制器,PLC稳定性好,编程和操作简单,在信号灯亮灯时长不变的交通灯控制中得到广泛应用。但是PLC通信复杂,参数更改不方便,灵活性差,并不能很好的满足智能交通系统对于交通灯控制终端的要求。
基于智能交通系统对于交通灯控制终端的特殊要求,提出了以单片机为控制核心的交通灯控制终端。单片机可编程性强,灵活性好,而且价格便宜,可以随时与智能协调中枢控制系统进行通信,并能在极短的时间内响应智能协调中枢控制系统的控制要求,实现交通灯控制时长的变化。
1 系统总体概况
智能交通系统的结构如图1所示,智能协调中枢控制系统(以下简称“智能控制系统”)与交通灯控制终端进行实时通信,交换红绿灯时长和车流量信息等数据,交通灯控制终端根据智能控制系统的要求来控制红绿灯工作。
本文设计的以单片机为控制核心的交通灯控制终端能够实时响应智能控制系统发出的信号,随时调整红绿灯时间,并能将车流量统计信息实时反馈给智能控制系统。智能控制系统发送给单片机的时间信号以及单片机输出的交通灯显示信号都会经过合理性校验,确保信息的合理性,保证交通路口通行安全。如控制单片机出现运行错误,系统可自复位并发出警报;如系统发生永久性故障,系统可自动切换备用控制器。
1.1 运行要求
十字路口交通灯系统中,每个路口有4个信号灯,分别为红、黄、直行、左行。十字路口的交通放行方式会随路口要求不同而不同,一般情况下,对侧路口红绿灯信号相同,整个路口红绿灯按照既定的工作顺序周期循环工作。
本系统采用最为典型的工作方式,其它情况只需要改变对应控制的灯即可。
1)每个方向的交通灯按智能控制系统设定的方式周期循环工作。
2)东西(南北)信号灯为黄灯或绿灯时,南北(东西)方向必须是红灯。
3)黄灯固定的工作时长为3 s;绿灯的工作时长由智能控制系统控制,单片机根据智能控制系统发送的绿灯时长来实时更改绿灯时长,在两组信号发送的间隔时间内按照上一组时间信号工作;每组红灯时长为另一只的绿灯时长加黄灯时长。
1.2 安全性要求
考虑到交通系统中,安全稳定是第一位,所以对于交通灯控制系统需满足安全要求;
1)如果智能控制系统遭到入侵或者瘫痪,交通灯控制系统必须保证交通灯能正常工作,不出现错误。
2)信号灯显示必须确保不会出现错误,如两个方向同时绿灯的情况。
3)如果单片机出现故障,必须保证交通灯信号不出现紊乱,并在短时间内投入备用控制终端,同时发出警报通知相关值班人员。
2 设计方案
虽然现在技术成熟,单片机抗干扰能力较强,但是单片机在实际工作中还是有一定几率出错,如程序跑飞,还有曾经遇到过的I/O口输出紊乱等问题。为了系统的安全稳定性,调用看门狗寄存器来纠正程序跑飞,同时加入一片单片机作为信号校验单片机来纠正I/O输出紊乱问题。故本系统采用两片AT89C51单片机作为核心器件,其中一片负责控制交通灯信号显示,另一片负责对显示信号进行校验。
控制单片机(U1)负责接收输入的绿灯时长信号和车流量计数信号,对绿灯时长进行合理性判断,进行车流量脉冲计数,输出控制信号灯的电平,并在收到智能控制系统请求车流量数据的信号后,将车流量数据反馈给智能控制系统。信号校验单片机(U2)负责对控制信号灯的显示信号进行合理性校验,包括校验两个路口的红绿灯是否矛盾以及绿灯时长是否合理,校验无误后允许信号灯接收电平信号做出改变;如果校验不通过,则保持之前信号灯信号不变,复位控制单片机,同时发出警报,如多次校验不通过,则断开当前整个系统(包括控制和校验),投入备用信号灯控制器。
3 硬件设计
整个控制终端要和智能控制系统进行有线或无线通信,然后将数据发送给信号灯,信号校验单片机对信号进行校验后判断是否让信号灯变化,警报系统需要在收到警报信号后发出警报并持续一段时间,而且在重复收到警报信号后要启动备用控制器。
3.1 核心模块
核心模块包含两片单片机,其中单片机U1为主控制单片机,单片机U2为信号校验单片机,主控制单片机负责通信、显示等功能,信号校验单片机负责校验主控制单片机的信号是否合理(详见本文5软件设计一节)。U1的信号灯显示信号通过P2口输出,输出的信号同时接入锁存器74HC573的输入端和U2的P2口中,U2的P2口作为输入口,读取U1输出的交通灯显示信号,对其进行合理性校验。锁存器74HC573的锁存控制端LE接U2的P1.0口,如果U2校验了U1输出的信号没有问题后,P1.0会输出高电平并延时一段时间以打开74HC5 73锁存端,让显示信号输入锁存器。同时,U2的P1.1口经非门接U1的复位引脚,如信号校验不通过,则在P1.1口输出低电平复位U1,如U2复位则不会造成U1误复位。锁存器的输出端接信号灯,这里用16个发光二极管模拟信号灯,对侧信号灯分为一组,两组信号灯八个引脚分别接入锁存器的八个输出端。锁存器的输出端同时又接U1的P0口,如果U1因为运行的问题复位后,在程序初始化后通过读取P0口状态获取当前信号灯显示的状态,然后从当前状态开始循环运行,不至于造成信号灯显示混乱。U1的串口通信引脚P3.0和P3.1可根据实际运用接外部通信模块,包括串口通信模块或蓝牙通信模块,实现通信功能。核心模块电路图如图2所示。
3.2 警报模块
为保证系统的稳定性,警报模块运用最简单的RC延时电路,以实现在收到持续时间很短的单片机警报信号后,能够保持发出警报。模块设计延时为5 s,此处用LED代替警报灯及时间继电器等警报器件。若警报模块收到警报信号,则会持续报警5 s;如单片机出现故障持续输出警报信号,两次信号的时间间隔小于5 s,则模块持续报警,报警持续设定时间后时间继电器动作,跳开当前系统,切换备用交通灯控制器。警报模块电路图如图3所示。
4 软件设计
根据方案设计要求和硬件电路,单片机1中为控制程序,单片机2为信号校验程序,采用C语言为单片机编写程序。
4.1 控制程序
为了防止程序跑飞,启用单片机的看门狗寄存器,单片机在初始化或复位后,会向智能控制系统发送信号来获取当前的绿灯时长信号。单片机通过读取P0口的状态,确定当前信号灯运行的状态系数a,然后跳转到相应状态开始循环运行,如果信号灯处于初始状态时,则顺序运行,这样可保证单片机复位后立刻返回当前状态继续循环运行。流程图如图4。
在一个周期内交通灯信号变化6次,每种状态根据相应时长用嵌套延时语句进行延时,同时,在每秒的嵌套语句开始都对看门狗计时器清0(喂狗)。
单片机和智能控制系统的通信包括发送车流量信息和接收绿灯时长。单片机在收到智能控制系统的请求数据信号0xff后,会将T0计数器记录的车流量数据发送给智能控制系统。如果单片机收到的数据不是0xff,则识别此数据为绿灯时长数据。每次智能控制系统会发送4个绿灯的时长数据,单片机接到全部4个数据后对其合理性进行校验。如果4个数据都在预设的范围内,则为合法数据,单片机将其装入显示时间数组中;如果存在非法数据,则将4个数据全部舍弃。这样设计是为了防止智能控制系统紊乱或者被入侵而造成交通瘫痪等严重后果。如单片机一直不收到数据请求信号或时长数据,则交通灯控制终端会一直按照现有的时长数据正常循环运行。
4.2 信号校验程序
信号校验单片机是为了防止主单片机的I/O口输出紊乱造成交通灯信号错误而设置的,主要是对控制单片机输出信号进行有效性校验,校验无误后再显示。同时为了防止信号校验单片机出错,启动看门狗寄存器,并且在单片机初始化时会置P1.2高电平延时0.5 s来启动警报电路,这样如果信号校验单片机跑飞复位,警报信号亦会动作。信号校验流程图如图5。
信号校验单片机只有在检测到显示信号发生变化后才会去判断信号是否正常,由于两次信号变化的时间间隔很长,这样可以保证信号变化时单片机U2正处于判断信号相同循环中,74HC573处于不可写入状态,防止未经校验的信号写入锁存器。
当单片机校验到显示信号不正常时,会输出低电平复位控制单片机,并启动警报电路。如果显示信号一直不正常,则警报电路会持续收到警报信号报警,持续一段时间后时间继电器动作切换备用控制器。如果控制单片机因为看门狗复位,则信号校验单片机同样会检测到然后启动警报电路。
5 系统调试
按设计把硬件环境搭建出来后,通过在正确程序中加入while(1)语句模拟单片机跑飞,单片机I/O口飞线高低电平来强制拉高或拉低单片机I/O电平模拟单片机I/O口输出紊乱,进行实物硬件调试。
经多次修改调试,系统在长时间运行中能够保持稳定;在模拟故障环节中,复位功能及警报功能均正常动作,系统功能达到预定要求。
6 结束语
本文采用单片机作为交通灯控制终端的控制核心,采用信号校验的方式,弥补了PLC控制器运用于智能交通系统中的不足,同时保证系统运行的稳定性,更方便的满足智能交通系统对于通信和控制的要求。在本系统的基础上,亦可通过更换不同种类和功能的单片机,满足更多不同的交通控制要求。