基于RTOS的智能交通灯设计方法
摘要:介绍一种基于车流量变化动态调节时间的智能交通灯的设计方法;在进行流量统计的同时,对违章情况进行监测;根据模糊算法分配各车道的绿灯时间,实现车流动态调节。分析其中存在的多种任务,用传统的前后台编程方法实现难度较大,使用实时操作系统可简化程序设计,并使程序具有良好的可读性、可维护性和可移植性。介绍车流量检测的原理与绿灯时间分配方案。
关键词:智能交通灯车流量实时多任务实时操作系统
引言
随着城市汽车保有量的越来越多,城市的交通拥挤问题正逐渐引起人们的注意。交通灯是交管部分管理城市交通的重要工具。目前绝大部分交通灯其时间都是设定好的,不管是车流高峰还是低谷,红绿灯的时间都固定不变;还有一些交通灯能根据简单划分的时间段来调整时间,但控制起来都不是很灵活,这使得城市车流的调节不能达到最优。本文所述设计正是针对这一弊端进行了改进,根据实时车流量对各路口的绿灯时间进行动态调节,大大加强了其灵活性和实时性;软件编程采用了实时操作系统RTX51,在确保实时性要求的同时,简化了复杂的软件设计工作。
1方案论证
图1是一个典型的十字路口示意图。分别用1、2、3、4表明四个流向的主车道,用a、b、c、p分别表示各主车道的左行车道、直行车道、右行车道以及人行横道。
通过分析很容易得知,除了四个右行车道外,在同一时间,最多只能有两个车道通行,如1a、1b通行时,其它车道都会被阻断。所以在设计红绿灯时,可以两两组合,共有四组(如la-1b、2a-2b、3a-3b、4a-4b);而各车道的红灯时间和人行横道通停时间都由这四个组合的绿灯窗口时间决定。本文将以广泛采用的图2所示的通行顺序来讲述智能交通灯的设计。
2系统软硬件设计
本系统硬件上采用上位机和下位机设计,其中下位机四个,均采用AT89C52单片机,分别控制图2所示的四个组合。AT89C52单片机具有MCS-51内核,片内有8KBFlash、256字节RAM、6个中断源、1个串行口、最高工作频率可达24MHz,完全可以满足本系统的需要。
上位机和下位机之间的串行通信采用RS-485标准接口。在通信频率为9600bps的情况下,有效通信距离可达2.1km。
软件设计中,采用RTX51小型实时操作系统。它是一个专用于8051系列处理器的多任务实时操作系统,能使用四个任务优先权完成同时存在时间片轮转调度和抢先的任务切换,并可以简化那些复杂而且时间要求严格的工程软件设计工作。
2.1下位机设计
以控制1a-1b-3c-4c-2p组合的下位机为例说明。
下位机外接动态车辆检测电路、LED和数码相机。各下位机通过对车辆检测电路定时扫描,读取各车道当前信息,判断是否有车通过;LED显示各车道方向箭头及剩余时间;数码相机则对违章车辆进行抓拍。
动态车辆检测电路结构如图3所示。
埋设在各车道安全线前方路面下的环形线圈传感器与振荡器匹配,形成一定频率的周期信号。该信号经施密特整形电路转化为脉宽信号后可作为计数脉冲。当有车辆通过该环形线圈时,线圈磁场发生变化,从而导致计数脉冲数量的变化。将100ms时间内没有车通过时的频率计数作为基准计数Base,实际计数为Num。当NumBase>0时,就可判定有车辆通过。
下面是下位机中多任务的分析与实现。
(1)初始化任务
初始化串行接口,并开始全部其它任务。最后删除自身,因为初始化只需要一次。
(2)数据采集任务
每隔100ms顺次读取四个车道(1a、1b、3c、4c)动态车辆检测电路的信息,判断Num-Base是否大于0。若为真,则置相应Flag为1,否则置0(Flash表示某一车道有无车辆通过的标识)。令FLAG1、flag1分别标志1a车道上一次和本次的检测结果。若FLAG1-flag1=1,则表明有车通过(同样,可以令FLAG2、flag2标识1b车道,FLAG3、flag3标识3c车道、FLAG4、flag4标识4c车道前后两次的检测结果)。若任一车道有车通过,则向流量统计及违章监测任务发送信号。程序如下:
voidjob2()_task_job2{
while(1){
读取车辆检测电路信息,通过判断给flag1、flag2、flag3、flag4赋值;
《基于RTOS的智能交通灯设计方法》
本文链接地址:http://www.oyaya.net/fanwen/view/172382.html
关键词:智能交通灯车流量实时多任务实时操作系统
引言
随着城市汽车保有量的越来越多,城市的交通拥挤问题正逐渐引起人们的注意。交通灯是交管部分管理城市交通的重要工具。目前绝大部分交通灯其时间都是设定好的,不管是车流高峰还是低谷,红绿灯的时间都固定不变;还有一些交通灯能根据简单划分的时间段来调整时间,但控制起来都不是很灵活,这使得城市车流的调节不能达到最优。本文所述设计正是针对这一弊端进行了改进,根据实时车流量对各路口的绿灯时间进行动态调节,大大加强了其灵活性和实时性;软件编程采用了实时操作系统RTX51,在确保实时性要求的同时,简化了复杂的软件设计工作。
1方案论证
图1是一个典型的十字路口示意图。分别用1、2、3、4表明四个流向的主车道,用a、b、c、p分别表示各主车道的左行车道、直行车道、右行车道以及人行横道。
通过分析很容易得知,除了四个右行车道外,在同一时间,最多只能有两个车道通行,如1a、1b通行时,其它车道都会被阻断。所以在设计红绿灯时,可以两两组合,共有四组(如la-1b、2a-2b、3a-3b、4a-4b);而各车道的红灯时间和人行横道通停时间都由这四个组合的绿灯窗口时间决定。本文将以广泛采用的图2所示的通行顺序来讲述智能交通灯的设计。
2系统软硬件设计
本系统硬件上采用上位机和下位机设计,其中下位机四个,均采用AT89C52单片机,分别控制图2所示的四个组合。AT89C52单片机具有MCS-51内核,片内有8KBFlash、256字节RAM、6个中断源、1个串行口、最高工作频率可达24MHz,完全可以满足本系统的需要。
上位机和下位机之间的串行通信采用RS-485标准接口。在通信频率为9600bps的情况下,有效通信距离可达2.1km。
软件设计中,采用RTX51小型实时操作系统。它是一个专用于8051系列处理器的多任务实时操作系统,能使用四个任务优先权完成同时存在时间片轮转调度和抢先的任务切换,并可以简化那些复杂而且时间要求严格的工程软件设计工作。
2.1下位机设计
以控制1a-1b-3c-4c-2p组合的下位机为例说明。
下位机外接动态车辆检测电路、LED和数码相机。各下位机通过对车辆检测电路定时扫描,读取各车道当前信息,判断是否有车通过;LED显示各车道方向箭头及剩余时间;数码相机则对违章车辆进行抓拍。
动态车辆检测电路结构如图3所示。
埋设在各车道安全线前方路面下的环形线圈传感器与振荡器匹配,形成一定频率的周期信号。该信号经施密特整形电路转化为脉宽信号后可作为计数脉冲。当有车辆通过该环形线圈时,线圈磁场发生变化,从而导致计数脉冲数量的变化。将100ms时间内没有车通过时的频率计数作为基准计数Base,实际计数为Num。当NumBase>0时,就可判定有车辆通过。
下面是下位机中多任务的分析与实现。
(1)初始化任务
初始化串行接口,并开始全部其它任务。最后删除自身,因为初始化只需要一次。
(2)数据采集任务
每隔100ms顺次读取四个车道(1a、1b、3c、4c)动态车辆检测电路的信息,判断Num-Base是否大于0。若为真,则置相应Flag为1,否则置0(Flash表示某一车道有无车辆通过的标识)。令FLAG1、flag1分别标志1a车道上一次和本次的检测结果。若FLAG1-flag1=1,则表明有车通过(同样,可以令FLAG2、flag2标识1b车道,FLAG3、flag3标识3c车道、FLAG4、flag4标识4c车道前后两次的检测结果)。若任一车道有车通过,则向流量统计及违章监测任务发送信号。程序如下:
voidjob2()_task_job2{
while(1){
读取车辆检测电路信息,通过判断给flag1、flag2、flag3、flag4赋值;
《基于RTOS的智能交通灯设计方法》