基于CAN總線(xiàn)的紅綠燈動(dòng)態(tài)調整系統
3.2 控制器軟件設計
控制器軟件由主程序、中斷處理、數據上傳、擁堵判定、命令處理和紅綠燈控制模塊組成。
3.2.1 主程序
主程序根據中斷程序返回的狀態(tài)循環(huán)調用命令處理、交通狀態(tài)判定和紅綠燈控制模塊,并定時(shí)調用數據上傳模塊。其流程圖見(jiàn)圖5。
3.2.2 交通狀態(tài)判定
交通狀態(tài)的判定方法在第3.1節算法原理中已經(jīng)闡述,這里不再贅述。在該模塊中,系統若發(fā)現單位時(shí)間中通過(guò)不同方向的汽車(chē)相差較多或下游有發(fā)生擁堵的可能時(shí),自動(dòng)修改紅綠燈間隔,由紅綠燈控制模塊調用。
3.2.3 中斷處理
系統將環(huán)形線(xiàn)圈振蕩器所連接的STR7lO的4個(gè)外部中斷設置為FIQ,以降低中斷反應時(shí)間。在車(chē)輛通過(guò)時(shí),中斷子程序計數后退出,主要的計算在擁堵判定中完成,以提高系統響應速度。系統以中斷方式接收控制中心的命令,在接收到命令時(shí),只將命令轉存后退出,進(jìn)一步的處理由命令處理程序執行。由于STR710的CAN控制器只有AMR,沒(méi)有ACR,因此,STR710在接收到數據后需要根據ID判斷是否是發(fā)給自己的,只有在A(yíng)MR和ID相同時(shí),才開(kāi)始接收命令。
3.2.4 數據上傳
程序先將數據打包成CAN幀格式,再寫(xiě)入緩沖區,由硬件自動(dòng)發(fā)送出去。
3.2.5 命令處理
系統根據中斷處理程序設置的標記,對時(shí)間間隔緩沖區進(jìn)行刷新。由紅綠燈控制模塊執行調整。
3.2.6 紅綠燈控制
紅綠燈控制模塊框圖見(jiàn)圖6。該模塊根據命令處理或擁堵判定所做的標記,執行調整紅綠燈間隔時(shí)間。
4 結語(yǔ)
根據交通擁擠和消散過(guò)程的特征,給出了利用微機技術(shù)自動(dòng)判定道路交通狀況的算法,并試圖在此基礎上實(shí)時(shí)地控制紅綠燈的變換周期,實(shí)現在無(wú)人工干預情況下改善交通狀況,同時(shí)將路況信息通過(guò)CAN總線(xiàn)發(fā)送到控制中心,控制中心可以在特殊情況下進(jìn)行遠距離人工干預。該系統具有高效、實(shí)時(shí)、客觀(guān)的特點(diǎn),且簡(jiǎn)單易于實(shí)現,具有良好的應用前景。
評論