基于信號校驗技術的單片機交通燈控制終端
摘要:根據區域協調型智能交通系統的要求,設計了基于單片機控制的交通燈控制終端。交通燈控制終端與智能協調中樞控制系統進行通信,反饋車流量信息,并按照中樞系統的要求來控制紅綠燈的工作。本終端采用雙單片機信號校驗的方式,配合看門狗的使用,糾正終端運行過程中可能發生的錯誤,并加入警報和自投入備用模塊,在運行出錯情況下發出警報,在設備故障情況下自投入備用控制器,保證路口交通安全穩定。
本文引用地址:http://www.104case.com/article/201610/307243.htm智能交通系統一直是交通系統研究的一個重要方向,智能交通系統研究中一個重要的分支是統籌各路段的車流量信息,統一規劃調控各路口的紅綠燈時間來控制車輛通行,達到智能交通所需要的目的。
現階段的交通燈控制終端一般采用PLC作為控制器,PLC穩定性好,編程和操作簡單,在信號燈亮燈時長不變的交通燈控制中得到廣泛應用。但是PLC通信復雜,參數更改不方便,靈活性差,并不能很好的滿足智能交通系統對于交通燈控制終端的要求。
基于智能交通系統對于交通燈控制終端的特殊要求,提出了以單片機為控制核心的交通燈控制終端。單片機可編程性強,靈活性好,而且價格便宜,可以隨時與智能協調中樞控制系統進行通信,并能在極短的時間內響應智能協調中樞控制系統的控制要求,實現交通燈控制時長的變化。
1 系統總體概況
智能交通系統的結構如圖1所示,智能協調中樞控制系統(以下簡稱“智能控制系統”)與交通燈控制終端進行實時通信,交換紅綠燈時長和車流量信息等數據,交通燈控制終端根據智能控制系統的要求來控制紅綠燈工作。

本文設計的以單片機為控制核心的交通燈控制終端能夠實時響應智能控制系統發出的信號,隨時調整紅綠燈時間,并能將車流量統計信息實時反饋給智能控制系統。智能控制系統發送給單片機的時間信號以及單片機輸出的交通燈顯示信號都會經過合理性校驗,確保信息的合理性,保證交通路口通行安全。如控制單片機出現運行錯誤,系統可自復位并發出警報;如系統發生永久性故障,系統可自動切換備用控制器。
1.1 運行要求
十字路口交通燈系統中,每個路口有4個信號燈,分別為紅、黃、直行、左行。十字路口的交通放行方式會隨路口要求不同而不同,一般情況下,對側路口紅綠燈信號相同,整個路口紅綠燈按照既定的工作順序周期循環工作。
本系統采用最為典型的工作方式,其它情況只需要改變對應控制的燈即可。
1)每個方向的交通燈按智能控制系統設定的方式周期循環工作。
2)東西(南北)信號燈為黃燈或綠燈時,南北(東西)方向必須是紅燈。
3)黃燈固定的工作時長為3 s;綠燈的工作時長由智能控制系統控制,單片機根據智能控制系統發送的綠燈時長來實時更改綠燈時長,在兩組信號發送的間隔時間內按照上一組時間信號工作;每組紅燈時長為另一只的綠燈時長加黃燈時長。
1.2 安全性要求
考慮到交通系統中,安全穩定是第一位,所以對于交通燈控制系統需滿足安全要求;
1)如果智能控制系統遭到入侵或者癱瘓,交通燈控制系統必須保證交通燈能正常工作,不出現錯誤。
2)信號燈顯示必須確保不會出現錯誤,如兩個方向同時綠燈的情況。
3)如果單片機出現故障,必須保證交通燈信號不出現紊亂,并在短時間內投入備用控制終端,同時發出警報通知相關值班人員。
2 設計方案
雖然現在技術成熟,單片機抗干擾能力較強,但是單片機在實際工作中還是有一定幾率出錯,如程序跑飛,還有曾經遇到過的I/O口輸出紊亂等問題。為了系統的安全穩定性,調用看門狗寄存器來糾正程序跑飛,同時加入一片單片機作為信號校驗單片機來糾正I/O輸出紊亂問題。故本系統采用兩片AT89C51單片機作為核心器件,其中一片負責控制交通燈信號顯示,另一片負責對顯示信號進行校驗。
控制單片機(U1)負責接收輸入的綠燈時長信號和車流量計數信號,對綠燈時長進行合理性判斷,進行車流量脈沖計數,輸出控制信號燈的電平,并在收到智能控制系統請求車流量數據的信號后,將車流量數據反饋給智能控制系統。信號校驗單片機(U2)負責對控制信號燈的顯示信號進行合理性校驗,包括校驗兩個路口的紅綠燈是否矛盾以及綠燈時長是否合理,校驗無誤后允許信號燈接收電平信號做出改變;如果校驗不通過,則保持之前信號燈信號不變,復位控制單片機,同時發出警報,如多次校驗不通過,則斷開當前整個系統(包括控制和校驗),投入備用信號燈控制器。
3 硬件設計
整個控制終端要和智能控制系統進行有線或無線通信,然后將數據發送給信號燈,信號校驗單片機對信號進行校驗后判斷是否讓信號燈變化,警報系統需要在收到警報信號后發出警報并持續一段時間,而且在重復收到警報信號后要啟動備用控制器。
3.1 核心模塊
核心模塊包含兩片單片機,其中單片機U1為主控制單片機,單片機U2為信號校驗單片機,主控制單片機負責通信、顯示等功能,信號校驗單片機負責校驗主控制單片機的信號是否合理(詳見本文5軟件設計一節)。U1的信號燈顯示信號通過P2口輸出,輸出的信號同時接入鎖存器74HC573的輸入端和U2的P2口中,U2的P2口作為輸入口,讀取U1輸出的交通燈顯示信號,對其進行合理性校驗。鎖存器74HC573的鎖存控制端LE接U2的P1.0口,如果U2校驗了U1輸出的信號沒有問題后,P1.0會輸出高電平并延時一段時間以打開74HC5 73鎖存端,讓顯示信號輸入鎖存器。同時,U2的P1.1口經非門接U1的復位引腳,如信號校驗不通過,則在P1.1口輸出低電平復位U1,如U2復位則不會造成U1誤復位。鎖存器的輸出端接信號燈,這里用16個發光二極管模擬信號燈,對側信號燈分為一組,兩組信號燈八個引腳分別接入鎖存器的八個輸出端。鎖存器的輸出端同時又接U1的P0口,如果U1因為運行的問題復位后,在程序初始化后通過讀取P0口狀態獲取當前信號燈顯示的狀態,然后從當前狀態開始循環運行,不至于造成信號燈顯示混亂。U1的串口通信引腳P3.0和P3.1可根據實際運用接外部通信模塊,包括串口通信模塊或藍牙通信模塊,實現通信功能。核心模塊電路圖如圖2所示。

3.2 警報模塊
為保證系統的穩定性,警報模塊運用最簡單的RC延時電路,以實現在收到持續時間很短的單片機警報信號后,能夠保持發出警報。模塊設計延時為5 s,此處用LED代替警報燈及時間繼電器等警報器件。若警報模塊收到警報信號,則會持續報警5 s;如單片機出現故障持續輸出警報信號,兩次信號的時間間隔小于5 s,則模塊持續報警,報警持續設定時間后時間繼電器動作,跳開當前系統,切換備用交通燈控制器。警報模塊電路圖如圖3所示。

4 軟件設計
根據方案設計要求和硬件電路,單片機1中為控制程序,單片機2為信號校驗程序,采用C語言為單片機編寫程序。
4.1 控制程序
為了防止程序跑飛,啟用單片機的看門狗寄存器,單片機在初始化或復位后,會向智能控制系統發送信號來獲取當前的綠燈時長信號。單片機通過讀取P0口的狀態,確定當前信號燈運行的狀態系數a,然后跳轉到相應狀態開始循環運行,如果信號燈處于初始狀態時,則順序運行,這樣可保證單片機復位后立刻返回當前狀態繼續循環運行。流程圖如圖4。

在一個周期內交通燈信號變化6次,每種狀態根據相應時長用嵌套延時語句進行延時,同時,在每秒的嵌套語句開始都對看門狗計時器清0(喂狗)。
單片機和智能控制系統的通信包括發送車流量信息和接收綠燈時長。單片機在收到智能控制系統的請求數據信號0xff后,會將T0計數器記錄的車流量數據發送給智能控制系統。如果單片機收到的數據不是0xff,則識別此數據為綠燈時長數據。每次智能控制系統會發送4個綠燈的時長數據,單片機接到全部4個數據后對其合理性進行校驗。如果4個數據都在預設的范圍內,則為合法數據,單片機將其裝入顯示時間數組中;如果存在非法數據,則將4個數據全部舍棄。這樣設計是為了防止智能控制系統紊亂或者被入侵而造成交通癱瘓等嚴重后果。如單片機一直不收到數據請求信號或時長數據,則交通燈控制終端會一直按照現有的時長數據正常循環運行。
4.2 信號校驗程序
信號校驗單片機是為了防止主單片機的I/O口輸出紊亂造成交通燈信號錯誤而設置的,主要是對控制單片機輸出信號進行有效性校驗,校驗無誤后再顯示。同時為了防止信號校驗單片機出錯,啟動看門狗寄存器,并且在單片機初始化時會置P1.2高電平延時0.5 s來啟動警報電路,這樣如果信號校驗單片機跑飛復位,警報信號亦會動作。信號校驗流程圖如圖5。
信號校驗單片機只有在檢測到顯示信號發生變化后才會去判斷信號是否正常,由于兩次信號變化的時間間隔很長,這樣可以保證信號變化時單片機U2正處于判斷信號相同循環中,74HC573處于不可寫入狀態,防止未經校驗的信號寫入鎖存器。
當單片機校驗到顯示信號不正常時,會輸出低電平復位控制單片機,并啟動警報電路。如果顯示信號一直不正常,則警報電路會持續收到警報信號報警,持續一段時間后時間繼電器動作切換備用控制器。如果控制單片機因為看門狗復位,則信號校驗單片機同樣會檢測到然后啟動警報電路。
5 系統調試
按設計把硬件環境搭建出來后,通過在正確程序中加入while(1)語句模擬單片機跑飛,單片機I/O口飛線高低電平來強制拉高或拉低單片機I/O電平模擬單片機I/O口輸出紊亂,進行實物硬件調試。
經多次修改調試,系統在長時間運行中能夠保持穩定;在模擬故障環節中,復位功能及警報功能均正常動作,系統功能達到預定要求。
6 結束語
本文采用單片機作為交通燈控制終端的控制核心,采用信號校驗的方式,彌補了PLC控制器運用于智能交通系統中的不足,同時保證系統運行的穩定性,更方便的滿足智能交通系統對于通信和控制的要求。在本系統的基礎上,亦可通過更換不同種類和功能的單片機,滿足更多不同的交通控制要求。
評論