基于LM3S8962为控制核心的六相位交通信号机设计
扫描二维码
随时随地手机看文章
引言
随着我国城市化飞速发展,路面交通拥堵问题日益严重。交通信号机作为缓解交通拥堵问题的重要手段之一,其核心控制器主要包括两类:一类是单片机控制器,这类控制器基于8/16位单片机,功能简单,控制方式单一;另一类采用工控机作控制器,功能强大,但结构复杂且多冗余,成本高。相位控制方面,传统的信号机主要为两相位和四相位信号控制。两相位控制时,直行方向和左转方向同时放行,左转车辆与对向直行车辆形成冲突,极易造成交通事故;四相位控制时,将右转方向作为常通状态来对待,这显然忽视了没有过街天桥或地下通道的情况下行人安全通行的要求。
针对上述传统信号机的缺陷,本文提出了一种基于ARM芯片LM3S8962的六相位交通信号机的系统控制方案及其软硬件设计方法。
1 六相位信号机控制方案
信号机的控制方案是相位设置、相序设置、信号配时的有序集合,是信号机运行的数据源,因此对信号机控制方案的研究异常重要。
1.1 平面交叉口六相位模型
本文对左转方向、右转方向分别加以考虑,将十字路口的信号相位分为6个相位,如图1所示。其中,相位1,3,4,6用于机动车,相位2,5用于机动车、非机动车和行人。从该模型中可以看出,仅1,4相位放行时产生两个分流点,其余各相位放行时不产生任何接触点,较之传统的两相位、四相位控制模型大幅减少了交通接触点,因此,能够更有效地降低事故隐患。
1.2 控制模式与信号配时
本文采用对交通流时间分割的方法,按照设定的通行相序为每一相位分配一定的通行时间,在一次通行周期中,各个相位的通行对象均会得到一次通行权。考虑到未来交通控制系统的要求,同时兼顾传统信号机的控制方式,本文为信号机设计了多时段、定周期、手动、黄闪四种控制模式。
信号配时方面,为了保证各方向的通行对象能够安全地通过交叉口,每个方向的通行时间不能少于15 s,而为了避免各方向通行对象等待时间过长,信号周期时长不宜超过200 s。表1给出六相位信号机的一种信号配时方案,通行相序为相位1至相位6,黄闪时长3s。
由此得到信号周期时长为192 s,各方向信号灯时长如表2所示。实际控制中,应根据各相位车流量情况对各相通行时间作适当调整。
2 系统硬件设计
2.1 硬件总体设计
信号机作为一个典型的嵌入式系统,其设计应以应用为中心,做到软硬件可裁剪。本文选用LM3S8962作为主控芯片,根据信号机的功能要求,并结合LM3S8962的芯片特性,设计的信号机系统硬件框图如图2所示。
2.2微处理器、存储器模块
嵌入式微处理器是整个嵌入式系统的核心。LM3S8962是Luminary MICro公司的基于ARM Cortex-M3内核具有32位RISC性能的微处理器,提供丰富的片上资源,包括256 KB FLASH,64 KB SRAM,4个32位通用定时器、同步串行接口(SSI)、10/100以太网控制器、6组共42个GPIO端口等,支持嵌入式实时操作系统μC/OS-Ⅱ,适合于关注成本的片上系统级应用。
LM3S8962具有256 KB FLASH空间,FLASH是一种不挥发性内存,由一组可独立擦除的1 KB区块构成。本系统软件占用空间小,使用LM3S8 962自带的FLASH存储空间完全能够满足系统要求。因此,本文将μC/OS-Ⅱ系统内核、控制软件存放于第0~253区块,控制参数存放于第254 255区块。这样能够降低系统复杂度,提高数据访问速度。
2.3 信号灯、倒计时模块
本文为信号机设计了6个相位机动车及人行道共6×2×3+2×2×2=44路信号的控制。由LM3S8962的PB3-PB5,PB0-PB2,PC4-PC6,PD0-PD2,PE0-PE2,PF0/PF1/PG0这6组GPIO端口分别输出1~6相位LED信号灯的控制信号。
本文采用8段LED数码管作为信号机的倒计时显示组件。6个相位及人行道均采用两位数码管,共6×2+4×2=20个两位数码管。利用LM3S89 62自带的同步串行接口(SSI,对应于PA2~PA5 GPIO端口),配置SSI为主模式,使用Freeseale SPI帧格式,通过SSI每次向外发送16位数据(包括8位段码和8位位码),再利用两片级联的74HC595芯片将16位串行数据转换为16位并行数据输出,达到将段码、位码同时输出的目的。
2.4 实时时钟、以太网接口模块
信号机执行多时段控制模式时,需要根据实时时间执行对应时段的控制方案,并且为方便用户校对,需要在液晶界面上显示实时时间。本文选用DALLAS公司的时钟芯片DS1302,该芯片能够对年、月、日、周、时、分、秒计时,具有闰年补偿功能。使用LM3S8962的3个GPIO端口PA0,PA1,PA6分别控制DS1302的RST复位线、I/O数据线、SCLK串行时钟线,将命令或数据按每次1个字节或31个字节的触发模式传入时钟寄存器或移出RAM寄存器,实现LM3S8962与DS1302之间的同步通信,从而为信号机提供实时时钟。
传统的RS 232/RS 485串口,存在通信距离短、传输速率低等缺陷,不能满足未来交通控制系统联网的要求,因此本文为信号机设计了10/100Mb/s以太网接口。LM3S8962自带有10/10以太网控制器,包括完全集成的媒体访问控制器(MAC)和网络物理(PHY)接口器件。为了实现信号电平耦合与阻抗匹配,避免信号机系统与以太网之间相互干扰,本文在PHY和RJ 45接口之间连接网络变压器HR601680,将发送和接收信号线分别与PHY,RJ 45对应连接。以太网接口如图3所示。
2.5 绿冲突检测模块
绿冲突检测是系统自检的重要部分,检测同一时刻6个相位是否有2个或2个以上冲突相位的绿灯信号同时被点亮的情况。本文利用8位数据并入串出芯片74HC165为信号机设计了绿冲突检测电路,使用LM3S8962的3个GPIO端口PB7,PA4,PG1分别控制74HC165的并行数据加载、时钟脉冲输入和串行数据的读取,74HC165的8个输入端0分别接至6个相位及2路人行道的绿灯信号。LM3S8962根据读取的绿灯信号状态及绿冲突判断规则判定是否发生绿冲突。
3 系统软件设计
系统软件包括设备驱动、控制软件以及网络通信协议三部分。
3.1 设备驱动
设备驱动程序作为系统软件的基础,是硬件设备的接口,应用程序通过这个接口才能控制硬件设备的工作。本信号机系统的驱动程序包括:FLASH读写驱动、SSI驱动、以太网控制器驱动、DS1302读写驱动、74HC165驱动等。
3.2 uIP协议
为了实现以太网通信,需要移植网络通信协议。uIP协议栈是为小型嵌入式微处理器设计的微型TCP/IP协议栈,提供必需的网络协议。本文为信号机系统移植uIP0.9协议栈,将信号机系统配置为一个小型WEB服务器。应用程序中监听80端口,从uip_conn结构体中读取当前连接的相关信息,由uip_connected()判断远程主机是否连接上本机,由uip_newdata()判断是否接收到远程主机的新数据,由uip_send()向远程主机发送数据包。
3.3 软件功能模块
系统控制软件是信号机软件的核心,本文采用模块化的设计方法,将控制软件按功能分为初始化、方案处理、秒时段处理、绿冲突检测、按键处理、通信等5个模块。
初始化包括硬件和软件初始化,硬件初始化包括对片内FLASH、DS1302芯片、液晶模块、以太网接口等的测试,软件初始化包括初始化信号机参数、清除标志等。
方案处理从FLASH中读取系统控制模式、工作时段、信号配时、通行相序等信号机的基本工作参数,并存入特定的数据结构,供其他模块调用。
秒时段处理由每秒中断一次的定时器完成各相位灯色信号输出、为各相倒计时时间计数、切换通行相位等任务。
绿冲突检测由定时器每隔特定的时间完成检测各相位是否发生绿灯信号冲突的任务。若发生绿冲突,进行声光报警并进入黄闪控制。
按键处理由外部中断服务程序完成查询系统状态、修改系统参数、更改系统工作模式等任务。
通信部分为信号机与监控中心的以太网通信,完成接收监控中心的控制命令、发送信号机状态参数等任务。
3.4 软件流程
信号机上电后,首先进行初始化,如果初始化能够正常完成,则进入方案处理,从FLASH中取出各控制模式对应的工作参数并存入特定的数据结构中,之后系统默认进入多时段控制模式,根据当前时段的工作参数执行对应的控制。当定时器产生1 s中断时,进入秒时段处理输出灯色、倒计时信号。当接收到按键请求时,进入外部中断处理程序响应用户请求。当接收到远程主机命令或者发送数据给远程主机时,进入通信处理模块。信号机每隔一定的时间间隔进入绿冲突检测模块,检测绿灯冲突。
软件流程图如图4所示。
4 结语
本文介绍了基于LM3S8962的六相位交通信号机相位模型、信号配