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