基于CAN总线交通信号灯动态调整系统的设计
3.2 控制器软件设计
控制器软件由主程序、中断处理、数据上传、拥堵判定、命令处理和红绿灯控制模块组成。
3.2.1 主程序
主程序根据中断程序返回的状态循环调用命令处理、交通状态判定和红绿灯控制模块,并定时调用数据上传模块。其流程图见图5。
3.2.2 交通状态判定
交通状态的判定方法在第3.1节算法原理中已经阐述,这里不再赘述。在该模块中,系统若发现单位时间中通过不同方向的汽车相差较多或下游有发生拥堵的可能时,自动修改红绿灯间隔,由红绿灯控制模块调用。
3.2.3 中断处理
系统将环形线圈振荡器所连接的STR7lO的4个外部中断设置为FIQ,以降低中断反应时间。在车辆通过时,中断子程序计数后退出,主要的计算在拥堵判定中完成,以提高系统响应速度。系统以中断方式接收控制中心的命令,在接收到命令时,只将命令转存后退出,进一步的处理由命令处理程序执行。由于STR710的CAN控制器只有AMR,没有ACR,因此,STR710在接收到数据后需要根据ID判断是否是发给自己的,只有在AMR和ID相同时,才开始接收命令。
3.2.4 数据上传
程序先将数据打包成CAN帧格式,再写入缓冲区,由硬件自动发送出去。
3.2.5 命令处理
系统根据中断处理程序设置的标记,对时间间隔缓冲区进行刷新。由红绿灯控制模块执行调整。
3.2.6 红绿灯控制
红绿灯控制模块框图见图6。该模块根据命令处理或拥堵判定所做的标记,执行调整红绿灯间隔时间。
4 结语
根据交通拥挤和消散过程的特征,给出了利用微机技术自动判定道路交通状况的算法,并试图在此基础上实时地控制红绿灯的变换周期,实现在无人工干预情况下改善交通状况,同时将路况信息通过CAN总线发送到控制中心,控制中心可以在特殊情况下进行远距离人工干预。该系统具有高效、实时、客观的特点,且简单易于实现,具有良好的应用前景。
评论