基于FPGA的交通系統(tǒng)遠程網(wǎng)絡控制設計
康維新,李定洋
(哈爾濱工程大學 信息與通信工程學院,黑龍江 哈爾濱150001)
摘要為了緩解城市交通擁堵問題,提出一種基于FPGA平臺遠程網(wǎng)絡控制的城市交通控制系統(tǒng)設計。系統(tǒng)采用TCP/IP傳輸協(xié)議實現(xiàn)控制中心發(fā)送控制信息給交通系統(tǒng)??刂浦行牟捎肣t圖形化界面實現(xiàn),清楚直觀;交通系統(tǒng)依據(jù)控制信息選擇相應配時方案進行顯示。經(jīng)測試,該系統(tǒng)工作穩(wěn)定、控制精確、可靠性高,且成本較低。
關鍵詞FPGA;TCP/IP;Qt;交通系統(tǒng);遠程控制;車流量
收稿日期:2015-01-12
基金項目:黑龍江省交通運輸廳重點基金資助項目(G084812068)
作者簡介:康維新(1963—),男,博士,教授,博士生導師。研究方向:信息智能檢測理論與技術,信號檢測,嵌入式系統(tǒng)等。E-mail:kangweixin@hrbeu.edu.cn。李定洋(1989—),男,碩士研究生。研究方向:嵌入式系統(tǒng),FPGA。
doi:10.16180/j.cnki.issn1007-7820.2015.09.034
中圖分類號TP302.2
Design of Remote Network Control of Traffic System Based on FPGA
KANG Weixin,LI Dingyang
(School of Information and Communication Engineering,Harbin Engineering University,Harbin 150001,China)
AbstractA design of remote control network based on FPGA platform is presented for traffic control systems.The system uses the TCP/IP transmission protocol to realize the transmission of control information from the control center to the traffic system.The Qt graphical interface for control center is clear and straightforward to use.On the basis of control information,transportation system will select the appropriate timing scheme for display.Tests show that the system is stable,accurate,reliable and low in cost.
KeywordsFPGA;TCP/IP;Qt;traffic system;remote control;traffic flow
隨著社會經(jīng)濟的快速發(fā)展和人民生活水平的不斷提高,城市中車流量呈現(xiàn)出急劇增長的趨勢,導致城市交通出現(xiàn)了巨大的壓力。因此,改善十字路口的交通信號燈運行模式,提高十字路口的通行效率,對緩解城市交通堵塞有著重要的現(xiàn)實意義[1-2]。而目前城市的交通控制,是固定的紅綠燈轉(zhuǎn)換周期,不靈活,在不同的時間段,十字路口的兩個方向會出現(xiàn)車流量大小不平衡的情況,同時白天與夜間的車流量相差也較大,如采用固定的定時機制將嚴重降低實際十字路口的通行效率。由此,有人提出使用地感線圈檢測車流量,根據(jù)車流量自動配時,但鋪設地感線圈成本過高,且容易出現(xiàn)誤差,公路網(wǎng)的現(xiàn)有網(wǎng)絡資源也未得到充分利用[3]。
鑒于以上原因,本文提出了基于FPGA的遠程控制交通系統(tǒng),能有效地利用公路網(wǎng)現(xiàn)有的網(wǎng)絡資源,動態(tài)調(diào)節(jié)交通系統(tǒng)中車輛的通行時間,既提高了十字路口的車輛通行效率,又降低了成本。
1系統(tǒng)總體設計與架構(gòu)
該系統(tǒng)主要由交通系統(tǒng)自動配時模塊、顯示模塊和控制中心遠程控制模塊組成,如圖1所示[4]。
圖1 系統(tǒng)總體框圖
交通系統(tǒng)自動配時模塊采用50 MHz時鐘源按照不同的配時方案進行定時計數(shù),采用Altera公司的Cyclone IV代系列EP4CE15F17C8芯片作為主控芯片,利用Verilog HDL硬件語言完成整個交通燈定時配時控制模塊的設計[5];交通系統(tǒng)顯示模塊是根據(jù)配時模塊選擇的方案對交通燈運行狀態(tài)和數(shù)碼管數(shù)字顯示進行控制顯示;控制中心遠程控制模塊使用Qt界面編程技術和TCP/IP傳輸協(xié)議,使得遠程操作方便直觀且控制信息傳輸可靠。
2交通系統(tǒng)自動配時模塊
此部分主要包括配時模塊設計和定時計數(shù)模塊設計兩部分,主要實現(xiàn)配時方案的預存與計時。
十字路口的交通分為主干道和副干道兩個方向。主干道方向具有紅燈(R1)、黃燈(Y1)、直行綠燈(G1)和左轉(zhuǎn)綠燈(L1),副干道方向也具有紅燈(R2)、黃燈(Y2)、直行綠燈(G2)和左轉(zhuǎn)綠燈(L2)。在交通高峰時期,十字路口兩個方向的燈必須按照合理的順序亮滅,根據(jù)十字路口的實際交通運行情況,此時系統(tǒng)的工作情況如下[6]:
主干道方向的交通燈工作順序為:綠燈→黃燈→左轉(zhuǎn)綠燈→黃燈→紅燈→黃燈。
副干道方向的交通燈工作順序為:紅燈→黃燈→綠燈→黃燈→左轉(zhuǎn)綠燈→黃燈。
在實際交通中,兩個方向交通信號燈的狀態(tài)有著密切的聯(lián)系,一個方向的交通信號燈狀態(tài)影響著另一個方向的交通信號燈狀態(tài),只有這樣才能協(xié)調(diào)好兩個方向的車流,若兩個方向的交通信號燈都各自獨立變化,交通系統(tǒng)則會產(chǎn)生混亂。
其一個周期的交通狀態(tài)對應情況如表1所示,狀態(tài)從S0~S7,其中1表示燈亮,0表示燈滅。在文中編程實現(xiàn)時,可將主干道和副干道的狀態(tài)分開進行,所以針對主干道S4~S7狀態(tài)可合并,針對副干道S0~S3狀態(tài)可合并。
表1 交通狀態(tài)對應表
實際交通中,白天和夜間的車流量相差較大,同時白天期間的主副干道車流量也會出現(xiàn)不均衡的現(xiàn)象,這就要求準備多套配時方案,以適應不同的需求。針對白天正常情況下,主干道車流量大于副干道車流量時,配時時間設置如表2所示,視為方案1;針對白天主干道車流量小于副干道車流量時,配時時間如表3所示,視為方案2;針對夜間車流量較小的情況下,配時時間可如表4所示設置,視為方案3;當發(fā)生交通事故或者有救護車、消防車等應急車輛需要優(yōu)先通行時,所有路口均將紅燈置亮,保證應急車輛的通行。這3種配時方案的選擇是由控制中心綜合所得到的交通信息之后,通過網(wǎng)絡遠程控制選擇。
表2 日間主干道車流量多于副干道各信號燈配時時間
表3 日間主干道車流量少于副干道各信號燈配時時間
表4 夜間各信號燈配時時間
系統(tǒng)使用50 MHz時鐘晶振,所以1 s對應50 000 000個時鐘節(jié)拍,每過50 000 000個時鐘節(jié)拍清零再重新計數(shù),之后根據(jù)各盞燈的持續(xù)時間作為預置數(shù)按照1 s為一個單位遞減計數(shù),減到1以后再根據(jù)運行狀態(tài)和配時時間重新預置數(shù),依次循環(huán)[7]。此模塊無需設計單獨的分頻模塊,整個系統(tǒng)可采用同一時鐘信號,設計上更統(tǒng)一且不會出現(xiàn)時鐘不匹配的問題。
3交通系統(tǒng)顯示模塊
顯示模塊部分主要涉及交通紅綠燈的顯示和數(shù)碼管的顯示兩部分,其中交通紅綠燈的顯示比較簡單,FPGA以4位Alamp變量控制主干道上的4盞燈,其中Alamp[0]控制左轉(zhuǎn)綠燈,Alamp[1]控制黃燈,Alamp[2]控制紅燈,Alamp[3]控制綠燈,其值為1則表示相應的燈亮,如Alamp為4’b0001表示左轉(zhuǎn)綠燈亮;同時以4位Blamp變量控制副干道上的4盞燈,其設置與Alamp類似。每個燈的亮滅持續(xù)時間都是按照配時模塊設置的。
數(shù)碼管的顯示相比于交通紅綠燈的顯示更復雜,因為需要加上加碼、動態(tài)掃描等部分。整個交通信號燈系統(tǒng)實際需要4對共8個數(shù)碼管,由于相對的路口倒計時完全相同,所以為了節(jié)省邏輯資源,簡化設計,可讓相對路口共用一對數(shù)碼管,所以只需對2對共4個數(shù)碼管。數(shù)碼管是共陽的,4個數(shù)碼管的段選信號均共用同樣的引腳,且均為低電平有效。文中主干道的倒計時時間設置為Number_Data1,副干道的倒計時時間設置為Number_Data2,數(shù)碼管的顯示設計思路如圖2所示。
圖2 數(shù)碼管顯示設計模塊圖
由圖中可看出,通過“十位取位模塊”分別對Number_Data1和Number_Data2進行取位的操作,將其十位和個位劃分;之后通過“SMG加碼模塊”,即數(shù)碼管顯示加碼模塊,轉(zhuǎn)換成數(shù)碼管顯示碼;最后由“同步動態(tài)掃描模塊”驅(qū)動點亮數(shù)碼管?,F(xiàn)針對每一個模塊進行分析。
(1)十位取位模塊。就是利用數(shù)學運算符“%”和“/”分別取得主副干道計時時間的十位和個位,將十位和個位分開進行處理。
(2)SMG加碼模塊。就是分別將兩個路口倒計時時間的十位與個位的數(shù)字轉(zhuǎn)換成數(shù)碼管可顯示的碼型,每一個數(shù)字均是7段數(shù)碼管a,b,c,d,e,f,g每段置亮置滅組合而成的,數(shù)碼管顯示示意圖如圖3所示。
圖3 數(shù)碼管顯示示意圖
(3)同步動態(tài)掃描模塊。同步動態(tài)掃描模塊利用時分原理和人類的視覺暫留效應,由于每個數(shù)碼管點亮時間為1 ms,輪流驅(qū)動點亮4個數(shù)碼管,人眼無法識別,所以目測為4個數(shù)碼管同時點亮。此模塊由兩部分組成,分別為行掃描模塊和列掃描模塊,由于FPGA是可并行操作的,所以這兩個模塊可并行執(zhí)行,達到真正的同步。列掃描模塊相當于對數(shù)碼管進行片選,每隔1 ms就使能不同的數(shù)碼管;而行掃描模塊是輸出不同的SMG碼,根據(jù)列掃描對數(shù)碼管的片選使能,輸出當前數(shù)碼管的SMG碼。
4控制中心遠程監(jiān)控模塊
此模塊采用以太網(wǎng)技術將接收到的交通信息分析處理后,通過TCP/IP傳輸協(xié)議將控制信息發(fā)送給FPGA,FPGA根據(jù)控制信息選擇配時模塊當中的一套配時方案,將顯示模塊中的交通紅綠燈和數(shù)碼管按照配時方案顯示出來。其中,FPGA控制整個交通系統(tǒng)作為服務端,控制中心作為客戶端,其界面采用Qt編程技術。
服務端采用SOPC技術構(gòu)建軟核,移植TCP/IP協(xié)議棧實現(xiàn)網(wǎng)絡通信[8]。TCP/IP協(xié)議較為復雜,內(nèi)容較多,主要是適合PC機的通信,針對FPGA服務端設計,文中采用精簡的TCP/IP協(xié)議,既能達到設計要求,也能簡化設計的復雜程度[9],其傳輸流程圖如圖4所示。
此協(xié)議棧中,需使用以下幾個主要函數(shù),實現(xiàn)數(shù)據(jù)接收:
(1)void init_ip_arp_udp_tcp(unsigned char *mymac,unsigned char *myip,unsigned char wwwp)。
此函數(shù)為初始化傳輸,主要用于填寫MAC、IP、端口參數(shù)。函數(shù)返回值為空。
(2)unsigned char eth_type_is_arp_and_my_ip(unsigned char *buf,unsigned int len)。
此函數(shù)為數(shù)據(jù)包解析,是否接收到指向本地IP的ARP請求,若是返回值為1,若不是則返回值為0。
(3)chareth_type_is_ip_and_my_ip(unsigned char *buf,unsigned int len)。
此函數(shù)為數(shù)據(jù)包解析,是否接收到發(fā)送給本地IP的IP數(shù)據(jù)包,若是返回值為1,若不是則返回值為0。
(4)unsigned int get_tcp_data_pointer(void)。
此函數(shù)為獲取有效數(shù)據(jù)位置,若有數(shù)據(jù)返回值為有效數(shù)據(jù)位置,若無數(shù)據(jù)則返回值為0。
圖4 FPGA交通系統(tǒng)端網(wǎng)絡傳輸流程圖
Qt是一款跨平臺的C++用戶界面應用程序框架(C++ GUI),能為應用程序開發(fā)者提供藝術級圖形用戶界面所需的所有功能,可以在不同的系統(tǒng)平臺下使用,通用性好,具有良好的信號/槽封裝機制,還有豐富的API函數(shù),能夠降低用戶開發(fā)難度,其豐富的可擴展性使得圖形化界面更加直觀[10]。在客戶端設計中,為了能直觀地顯示IP地址、端口號以及接收到的交通信息等參數(shù),同時能更加方便地發(fā)送控制信息,控制中心客戶端采用Qt Creator工具實現(xiàn)了Qt界面設計。
這里使用QTextBrowser控件作為交通信息顯示框,QLineEdit控件輸入IP地址和端口號,QPushButton控件觸發(fā)網(wǎng)絡連接和相關控制信息的發(fā)送。由于設計中需要使用QTcpSocket網(wǎng)絡套接字編程實現(xiàn)網(wǎng)絡通信傳輸,所以需要在工程的pro文件中添加“QT+=network”,并添加QTcpSocket頭文件,之后需要設置連接的IP地址和端口號,創(chuàng)建QTcpSocket對象tcpclient,連接服務器語句為:tcpclient.connectToHost(*ip,port)。連接成功后,需點擊控制信息按鈕,發(fā)射信號,從而觸發(fā)數(shù)據(jù)發(fā)送槽函數(shù)的執(zhí)行,其發(fā)送函數(shù)語句為:tcpclient.write(msg.toLocal8Bit())??刂浦行牡木W(wǎng)絡傳輸流程如圖5所示。
圖5 控制中心端網(wǎng)絡傳輸流程圖
為了實現(xiàn)更友好的界面顯示,這里在Qt程序中添加了中文顯示,具體設置語句如下:
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")。
5系統(tǒng)調(diào)試
將所有模塊搭建連接好之后,在控制中心界面處,輸入FPGA的IP地址及其間的端口號,點擊“連接”,就建立起了FPGA與控制中心的通信,控制中心的圖形化界面如圖6所示。圖中左邊的文本框顯示的是交通信息,根據(jù)圖中交通信息可知先前主干道車流量大于副干道車流量,所以這里需要點擊“日間模式1”按鈕,FPGA控制交通系統(tǒng)選用方案1,其運行結(jié)果如圖7所示。之后,圖中出現(xiàn)一個車輛的呼救信息,所以需點擊“緊急停止”按鈕,終止交通系統(tǒng)的運行,處理事故,其運行結(jié)果如圖8所示。
圖6 控制中心Qt圖形化界面
圖7 交通系統(tǒng)“日間模式1”運行效果圖
圖8 交通系統(tǒng)“緊急停止”運行效果圖
“日間模式2”按鈕對應配時方案2的運行效果,“夜間模式”按鈕對應配時方案3的運行效果,其實際測試結(jié)果正常,運行穩(wěn)定,達到了控制中心遠程精確控制交通系統(tǒng)的目的。
6結(jié)束語
本設計以FPGA作為開發(fā)平臺,使用Verilog HDL語言完成了交通系統(tǒng)自動配時模塊和顯示模塊的設計,同時采用SOPC技術在FPGA上構(gòu)建軟核實現(xiàn)控制中心通過網(wǎng)絡控制交通系統(tǒng),控制中心的界面采用Qt設計,美觀、操作方便且通用性好。整個設計較好地利用了現(xiàn)有公路的網(wǎng)絡資源,配合智能車載系統(tǒng)車輛信息遠程發(fā)送技術,能精確有效地控制整個交通系統(tǒng),相比于其他依靠傳感器,控制交通系統(tǒng)運行情況的設計,其可靠性更高,然而成本卻相對較低。
參考文獻
[1]Tu Xiaoku.The research of intelligent timing control system for urban traffic signal light [C].Ningbo,China:2011 International Conference on Consumer Electronics,Communications and Networks,CECNet,2011:5425-5428.
[2]Thomas Winters.LITS:Lightweight intelligent trafficsimulator[C].AR,USA:International Conference on Network-Based Information Systems,NBIS’09,2009:386-390.
[3]王維松,王金生,章偉,等.十字路口智能交通燈控制系統(tǒng)的FPGA實現(xiàn)[J].電子科技,2012,25(9):37-39,44.
[4]沈晟.基于FPGA的交通燈控制系統(tǒng)的設計與實現(xiàn)[D].昆明:昆明理工大學,2008.
[5]陳欣波.Altera FPGA工程師成長手冊[M].北京:清華大學出版社,2012.
[6]王維松,章偉.基于FPGA的一種智能交通紅綠燈設計[J].計算機應用與軟件,2013,30(1):200-202,234.
[7]侯辰俊.基于時鐘控制技術的IC低功耗設計研究[D].西安:西安電子科技大學,2013.
[8]謝喆.基于FPGA的TCP/IP數(shù)據(jù)通信的設計與應用[D].武漢:武漢科技大學,2011.
[9]黃云婷,江南,杜承烈.一種跨平臺的實時TCP/IP協(xié)議棧設計[J].計算機工程,2014,40(9):134-137,154.
[10]霍亞飛.Qt Creator快速入門[M].北京:北京航空航天大學出版社,2012.