基于ARM的六相位交通信号机设计
2.5 绿冲突检测模块
绿冲突检测是系统自检的重要部分,检测同一时刻6个相位是否有2个或2个以上冲突相位的绿灯信号同时被点亮的情况。本文利用8位数据并入串出芯片74HC165为信号机设计了绿冲突检测电路,使用LM3S8962的3个GPIO端口PB7,PA4,PG1分别控制74HC165的并行数据加载、时钟脉冲输入和串行数据的读取,74HC165的8个输入端分别接至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所示。
本文介绍了基于LM3S8962的六相位交通信号机相位模型、信号配时、软硬件设计及实现技术。该信号机改进了传统信号机的控制方式,能够实现高性能、多相位、多模式、联网控制,系统可靠性高、操作简单、升级扩充性好。测试表明,该六相位信号机能够有效减少交叉口冲突点、减少车辆延误、提高交叉口安全程度和服务水平、保护行人安全通行、车辆畅通运行,其社会效益十分明显。
- 基于ARM智能交通信号机控制板开发(01-28)
- linux内核中的信号机制--信号发送(11-22)
- linux内核中的信号机制--信号处理(11-22)
- linux内核中的信号机制--从用户层到内核层(11-22)
- 基于S3C44B0X智能交通信号机的设计(04-12)
- 基于FPGA的DSP设计方法(08-26)