畢潤東,高 博
(四川大學微電子技術省重點實驗室,成都610064)
?
基于FPGA的交通信號燈控制系統設計
畢潤東,高博*
(四川大學微電子技術省重點實驗室,成都610064)
摘要:為了使交通信號燈系統針對車流量變化做出有效應對,設計了一種智能交通信號燈控制系統。該系統結合道路傳感器反饋的車流信息,采用有限狀態機實現了交通信號燈全感應自適應控制方案,得到最優信號燈轉化和時間分配。該系統采用FPGA設計,結合成都科華北路復雜交通路口車輛統計信息,對該系統進行仿真和驗證。結果表明,該系統能減少17.550%的車輛平均延誤時間,保障交通順暢,提高了效率。
關鍵詞:智能控制系統;交通信號燈控制;FSM;FPGA;Verilog HDL
現代城市中十字路口車流量大,而交通控制因素中的信號燈時間分配和狀態轉化不合理是交通系統效率低的主要原因。因此信號燈配時和狀態轉化的最佳選擇成為國內外研究的重點。目前信號燈系統配時方案和狀態轉化的主要方法有:(1)時間分配基于模糊算法或遺傳算法[1-2],但是實際運用中當不同車道內的車輛出現非線性增長時,調節精度較差[3]。(2)信號燈狀態轉化基于車流量[4],但是時間分配不合理。另外信號燈系統的硬件受限于單片機,ASIC兩種設備:(1)單片機控制能力好,但是端口有限,工作不夠穩定[5]。(2)ASIC體積小,性能穩定,卻不能更新,成本較高,設計周期長[6]。
針對以上問題,本文設計了一種基于FPGA的智能交通控制系統。本系統兼顧信號燈狀態轉化和配時,將狀態分為正常,上下班高峰期,深夜車少等3種方案,能實現有車才綠燈,特定時間特定狀態,同時根據車輛排隊長度和無車綠燈停止兩個配時調節機制,實現合理配時。另外由于該系統外接傳感器較多,相應狀態控制復雜,因此利用FPGA在IO接口數、低功耗、性能穩定等方面的優勢,采用有限狀態機設計,使該系統設計方便,易于實現[6-7]。
1.1道路基本情況
根據成都市科華北路實地考察,其路況為南北向道路是進出城方向,也是主干道,東西向道路是環線支路。路口車輛流動性大,道路復雜,在各路口設置水泥基壓電探測器感應路口是否有車等待[8],T1,T3,T5,T7是直行路口探測器,T2,T4,T6,T8是左轉路口探測器。另外在所有路的直行路和轉彎路分別在離路口30 m,40 m,50 m處安裝探測器用來探測對應路段內是否有車排隊[9],如圖1所示。

圖1 道路基本情況
1.2交通系統的方案設計
設有綠燈的狀態為主要狀態,則交通系統一共有6個主要狀態,分別是S0到S5。如圖2所示:箭頭代表車行方向。

圖2 信號燈主要狀態
由于白天和晚上車流量較大,深夜車流量極小,因此設計分為正常,上下班高峰期,深夜車少等3種信號燈狀態方案,其中正常情況和上下班高峰期是結合傳感器實現狀態依次跳變,而深夜情況實現狀態任意跳變。具體如下:
①正常情況信號燈在S0到S3之間依次循環。
②上下班高峰期上班高峰:7:00~9:00在狀態S3和S0之間增加狀態S4,而且S4狀態之后的S4_1_1只有L6轉彎方向變為黃燈3 s,接下來S4_1_2只有L6轉彎方向變為紅燈2 s,L5一直保持綠燈,最后進入S0狀態;下班高峰期:17:00~19:00在S3和S0之間增加S5,之后狀態上同理。
③深夜情況0:00~6:00當所有路口都有車或者都無車時(T1到T8全為1或0),按照S0到S3之間依次循環。而當一些路口無車時按照以下規律:
(a)信號燈狀態在S0~S5之間選擇;
(b)當前狀態綠燈結束時,對應路段30 m內有車,當前狀態綠燈保持除非其他路段有車等待;
(c)判斷順序是S0—S1—S2—S3—S4—S5—S0,當前狀態結束時,從當前狀態開始按判斷循序判斷,下一個狀態是對應路段有車的狀態。比如狀態S2結束時,按S3—S4—S5—S0—S1循序判斷;
(d)S4和S5之后的狀態與正常情況下的轉化相同,與高峰期轉化不同(即深夜增加S4_2_1和S4_2_2,以及S5_2_1和S5_2_2)。
1.3信號燈時間分配
正常情況的4個狀態S0到S3的信號燈時間:信號燈的基本綠燈時間都是30 s,之后是黃燈3 s。從一個主要狀態到下一個主要狀態有2 s的所有信號燈都是紅燈。高峰期兩個狀態S4和S5信號燈時間:同一路段同一方向直行和轉彎綠燈同時亮,持續15 s。針對復雜的車流情況,進行交通時間調節如下:
①由車排隊長度調節綠燈時間,不論是直行路還是轉彎路都符合如下規律:
(a)一般情況車排隊長度在第一個排隊探測器以內,即排隊長度在30 m以內,綠燈時間是30 s基本時間。
(b)輕度擁堵排隊長度在40 m以內大于30 m,綠燈時間是40 s。
(c)擁堵排隊長度在50 m以內大于40 m,綠燈時間是50 s。
(d)當在正常情況下,有且僅有主干道南路或北路中一條路,直行和轉彎同時出現擁堵時,系統進入對應的上班或下班高峰期情況。比如,只有北路的直行和轉彎同時出現擁堵時,進入下班高峰期情況。這樣可以極大地解決同路段車道相對方向車流量不均衡帶來的效率不高問題。
(e)將要綠燈的兩條路,綠燈時間由排隊長度的最大值決定。如南路直行排隊在30 m以內,北路直行排隊在50 m以內,則S0狀態綠燈時間為50 s。
(f)這個調節機制只對正常情況和高峰期的四個基本狀態適用。
②無車綠燈停止機制:
在當前狀態為綠燈的路段,同時綠燈的兩條路30 m處排隊探測器測得30 m內都無車時,綠燈停止。比如,S0狀態南路和北路的直行是綠燈,同時測得南路和北路直行30 m內無車,綠燈馬上停止。但是若只有一條路30 m內無車,綠燈持續。這一機制只對正常情況和高峰期4個基本狀態,以及深夜情況6個狀態適用。
根據以上方案,系統共22個狀態,如圖3所示。其中6個主狀態(S0到S3是基本狀態,S4,S5是高峰期狀態),6個主狀態中信號燈不是綠燈就是紅燈。6個主狀態之間是2個中間態,一個是表示之前的主狀態綠燈變3 s黃燈,一個表示2 s全紅燈安全狀態。在沒有跳變的情況下,狀態自循環。
輸出紅綠燈控制信號為RYG,R代表紅燈,Y代表黃燈,G代表綠燈,且1表示對應燈亮,0表示對應燈滅。圖3中狀態下數值代表信號燈L1到L8的輸出控制信號。如在南北直行通行S0狀態時,L1和L5綠燈,狀態機輸出信號001,用數字“1”表示,其他紅燈輸出信號100,用“4”表示,因此S0下數字為14441444。另外黃燈輸出信號010,用“2”表示。

圖3 狀態圖
系統描述如圖4所示。其中端口定義如下:
①clk:1hz時鐘輸入,作為系統的時鐘。
②res:復位信號。
③times(1:0):深夜,上下班高峰,正常3種情況輸入指令。比如輸入為00代表整個系統是按深夜情況執行狀態轉化。
④n,s,w,e(6:1):北,南,西,東路段車輛排隊長度探測器輸入信號。與圖1對應,比如n(1)=1時,代表北路直行方向30 m內有車等待,s(5)=0時,代表南路左轉方向40 m到30 m內無車等待。
⑤t(8:1):路口是否有車探測器輸入信號。比如,t(1)=1代表北路直行路口有車等待。
⑥L1,L2,L3,L4,L5,L6,L7,L8(2:0):北路,東路,南路和西路的直行和左轉彎信號燈。比如L1=100,010或者001,分別表示北路直行方向紅燈,黃燈,綠燈,L2代表北路左轉方向信號燈。
⑦C1,C2,C3,C4,C5,C6,C7,C8(7:0):分別代表北路,東路,南路和西路的直行和左轉的倒計時顯示。
設計由Verilog HDL語言描述,狀態采用獨熱碼編碼,應用三段式有限狀態機設計[10],以Altera公司EP2C35F672C6作為實現載體,占用了211個LUT單元。

圖4 HDL模型控制器
4.1系統仿真
圖5是在正常情況下的仿真結果,結果表明:在各路口一直都有車,車輛排隊長度30 m以內時,在S1狀態綠燈15 s時(圖5中50 s),滿足綠燈停止條件,之后恢復每個路口都有車,車輛排隊長度一直在30 m以內??梢娤到y從一個基本狀態到另一個基本狀態依次跳變,且在S1綠燈15 s后,南北左轉無車情況下綠燈停止。實現了S0到S3之間4個主狀態之間的依次循環跳變。
圖6仿真結果表明:在上班高峰期,且每個路口一直都有車,車輛排隊長度30 m以內的情況。在圖中140 s處,實現了從S0到S34個基本狀態的跳變以后,主狀態變為上班高峰期狀態S4,實現了主狀態在S0到S4之間依次循環跳變。
圖7仿真結果表明:在深夜情況下的仿真結果,當只有T1和T5,T3和T7有車,且都是輕度擁堵(有車路口都是40 m內有車等待),因此綠燈時間都是40 s(初始態S0任然是30 s綠燈)??梢娭鳡顟B實現了僅在S0和S22個之間的依次跳變,而系統實現了有車才綠燈和根據車輛排隊長度配時。

圖5 正常情況

圖6 上班高峰期情況

圖7 深夜情況
4.2系統驗證
以科華路口南路直行車道為樣本,分別在下午3點和凌晨0點多次調查取平均值,可以得到南路直行車流量分別為845輛每小時和567輛每小時。根據韋伯斯特模型法[11],計算出傳統系統和本文新系統的車輛平均延誤時間,結果如表1所示。表1的分析結果表明新系統相對于傳統系統在車輛平均延誤時間上有所下降。當車流量極小時和車流量較大時,新系統的優勢更明顯。

表1 新系統與傳統系統比較
本文設計了一款新型智能交通信號燈控制系統。與現有的交通系統不同,該系統增加車流探測器,基于現場可編程邏輯器件,采用有限狀態機設計三種信號燈狀態轉化方案和兩種信號燈時間分配調節機制,實現了針對交通復雜路口的高效智能控制。仿真與驗證結果表明,當車流量達到567輛每小時時,該系統較傳統系統減少了車輛17.550%的平均延誤時間。
參考文獻:
[1]曹海峰,葉朝輝.交通信號配時方案實時仿真系統設計與實現[J].傳感器與微系統,2014,33(12):91-93,97.
[2]田豐,杜富瑞.基于WSN的智能交通燈控制系統設計[J].測控技術,2009,28(12):56-59.
[3]許春善.基于線性規劃的城市交通流優化調度模型[J].控制工程,2014,21(6):977-981.
[4]王維松,章偉,王金生,等.基于FPGA的一種智能交通紅綠燈設計[J].計算機應用與軟件,2013,30(1):200-202,234.
[5]王春玲,吳順偉. FPGA/CPLD選型及與其他技術的融合[J].現代電子技術,2007(16):30-33,40.
[6]El-Medany W M,Hussain M R. FPGA-Based Advanced Real Traf?fic Light Controller System Design[C]//Proceeding of 4th IEEE Intelligent Data Acquisition and Advanced Computing Systems:Technology and Applications. Dortmund:IEEE,2007:100-105.
[7]羅勇,韓曉軍.基于FPGA的交通燈控制與實現[J].電子器件,2008,31(3):976-978.
[8]楊曉明,李宗津.基于水泥基壓電傳感器的車輛監測研究[J].傳感技術學報,2013,26(2):266-270.
[9]楊永輝,黃磊,劉昌平.基于視頻分析的車輛排隊長度檢測[J].計算機應用研究,2011,28(3):1037-1041.
[10]夏宇聞. Verilog數字系統設計教程[M]. 3版.北京:北京航空航天大學出版社,2013:166-173.
[11]尹安東,閻耀雙.城市道路信控交叉口車輛延誤分析與治理對策[J].合肥工業大學學報(自然科學版),2007,30(3):353-356.
畢潤東(1993-),男,漢族,四川宜賓,四川大學微電子技術省重點實驗室,本科,主要研究方向為集成電路設計,bi?rundong_scu@163.com;

高博(1975-),男,漢族,四川成都,四川大學微電子技術省重點實驗室,副教授,博士,研究方向為集成電路芯片設計和生物醫學成像等,gaobo@scu.edu.cn。

收稿日期:2015-03-28修改日期:2015-04-22
中圖分類號:TP332.1
文獻標識碼:A
文章編號:1005-9490(2016)01-0229-06