a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 設計應用 > 基于FPGA的交通系統遠程網絡控制設計

基于FPGA的交通系統遠程網絡控制設計

作者: 時間:2016-10-10 來源:網絡 收藏

摘要 為了緩解城市交通擁堵問題,提出一種基于平臺遠程網絡控制的城市交通控制系統設計。系統采用TCP/IP傳輸協議實現控制中心發送控制信息給。控制中心采用圖形化界面實現,清楚直觀;依據控制信息選擇相應配時方案進行顯示。經測試,該系統工作穩定、控制精確、可靠性高,且成本較低。

本文引用地址:http://www.j9360.com/article/201610/306122.htm

關鍵詞 ;TCP/IP;;;;

隨著社會經濟的快速發展和人民生活水平的不斷提高,城市中呈現出急劇增長的趨勢,導致城市交通出現了巨大的壓力。因此,改善十字路口的交通信號燈運行模式,提高十字路口的通行效率,對緩解城市交通堵塞有著重要的現實意義。而目前城市的交通控制,是固定的紅綠燈轉換周期,不靈活,在不同的時間段,十字路口的兩個方向會出現大小不平衡的情況,同時白天與夜間的車流量相差也較大,如采用固定的定時機制將嚴重降低實際十字路口的通行效率。由此,有人提出使用地感線圈檢測車流量,根據車流量自動配時,但鋪設地感線圈成本過高,且容易出現誤差,公路網的現有網絡資源也未得到充分利用。

鑒于以上原因,本文提出了基于交通系統,能有效地利用公路網現有的網絡資源,動態調節交通系統中車輛的通行時間,既提高了十字路口的車輛通行效率,又降低了成本。

1 系統總體設計與架構

該系統主要由交通系統自動配時模塊、顯示模塊和控制中心模塊組成,如圖1所示。

交通系統自動配時模塊采用50 MHz時鐘源按照不同的配時方案進行定時計數,采用Altera公司的Cyclone IV代系列EP4CE15F17C8芯片作為主控芯片,利用Verilog HDL硬件語言完成整個交通燈定時配時控制模塊的設計;交通系統顯示模塊是根據配時模塊選擇的方案對交通燈運行狀態和數碼管數字顯示進行控制顯示;控制中心遠程控制模塊使用界面編程技術和TCP/IP傳輸協議,使得遠程操作方便直觀且控制信息傳輸可靠。

2 交通系統自動配時模塊

此部分主要包括配時模塊設計和定時計數模塊設計兩部分,主要實現配時方案的預存與計時。

2.1 交通系統自動配時模塊設計

十字路口的交通分為主干道和副干道兩個方向。主干道方向具有紅燈(R1)、黃燈(Y1)、直行綠燈(G1)和左轉綠燈(L1),副干道方向也具有紅燈 (R2)、黃燈(Y2)、直行綠燈(G2)和左轉綠燈(L2)。在交通高峰時期,十字路口兩個方向的燈必須按照合理的順序亮滅,根據十字路口的實際交通運行情況,此時系統的工作情況如下:

主干道方向的交通燈工作順序為:綠燈→黃燈→左轉綠燈→黃燈→紅燈→黃燈。

副干道方向的交通燈工作順序為:紅燈→黃燈→綠燈→黃燈→左轉綠燈→黃燈。

在實際交通中,兩個方向交通信號燈的狀態有著密切的聯系,一個方向的交通信號燈狀態影響著另一個方向的交通信號燈狀態,只有這樣才能協調好兩個方向的車流,若兩個方向的交通信號燈都各自獨立變化,交通系統則會產生混亂。

其一個周期的交通狀態對應情況如表1所示,狀態從S0~S7,其中1表示燈亮,0表示燈滅。在文中編程實現時,可將主干道和副干道的狀態分開進行,所以針對主干道S4~S7狀態可合并,針對副干道S0~S3狀態可合并。

實際交通中,白天和夜間的車流量相差較大,同時白天期間的主副干道車流量也會出現不均衡的現象,這就要求準備多套配時方案,以適應不同的需求。針對白天正常情況下,主干道車流量大于副干道車流量時,配時時間設置如表2所示,視為方案1;針對白天主干道車流量小于副干道車流量時,配時時間如表3所示,視為方案2;針對夜間車流量較小的情況下,配時時間可如表4所示設置,視為方案3;當發生交通事故或者有救護車、消防車等應急車輛需要優先通行時,所有路口均將紅燈置亮,保證應急車輛的通行。這3種配時方案的選擇是由控制中心綜合所得到的交通信息之后,通過網絡遠程控制選擇。

2.2 定時計數模塊設計

系統使用50MHz時鐘晶振,所以1 s對應50 000 000個時鐘節拍,每過50 000 000個時鐘節拍清零再重新計數,之后根據各盞燈的持續時間作為預置數按照1 s為一個單位遞減計數,減到1以后再根據運行狀態和配時時間重新預置數,依次循環。此模塊無需設計單獨的分頻模塊,整個系統可采用同一時鐘信號,設計上更統一且不會出現時鐘不匹配的問題。

3 交通系統顯示模塊

顯示模塊部分主要涉及交通紅綠燈的顯示和數碼管的顯示兩部分,其中交通紅綠燈的顯示比較簡單,FPGA以4位Alamp變量控制主干道上的4盞燈,其中Alamp[0]控制左轉綠燈,Alamp[1]控制黃燈,Alamp[2]控制紅燈,Alamp[3]控制綠燈,其值為1則表示相應的燈亮,如Alamp為4’b0001表示左轉綠燈亮;同時以4位Blamp變量控制副干道上的4盞燈,其設置與Alamp類似。每個燈的亮滅持續時間都是按照配時模塊設置的。

數碼管的顯示相比于交通紅綠燈的顯示更復雜,因為需要加上加碼、動態掃描等部分。整個交通信號燈系統實際需要4對共8個數碼管,由于相對的路口倒計時完全相同,所以為了節省邏輯資源,簡化設計,可讓相對路口共用一對數碼管,所以只需對2對共4個數碼管。數碼管是共陽的,4個數碼管的段選信號均共用同樣的引腳,且均為低電平有效。文中主干道的倒計時時間設置為Number_Data1,副干道的倒計時時間設置為Number_Data2,數碼管的顯示設計思路如圖2所示。

由圖中可看出,通過“十位取位模塊”分別對Number_Data1和Number_Data2進行取位的操作,將其十位和個位劃分;之后通過“SMG加碼模塊”,即數碼管顯示加碼模塊,轉換成數碼管顯示碼;最后由“同步動態掃描模塊”驅動點亮數碼管。現針對每一個模塊進行分析。

(1)十位取位模塊。就是利用數學運算符“%”和“/”分別取得主副干道計時時間的十位和個位,將十位和個位分開進行處理。

(2)SMG加碼模塊。就是分別將兩個路口倒計時時間的十位與個位的數字轉換成數碼管可顯示的碼型,每一個數字均是7段數碼管a,b,c,d,e,f,g每段置亮置滅組合而成的,數碼管顯示示意圖如圖3所示。

(3)同步動態掃描模塊。同步動態掃描模塊利用時分原理和人類的視覺暫留效應,由于每個數碼管點亮時間為1 ms,輪流驅動點亮4個數碼管,人眼無法識別,所以目測為4個數碼管同時點亮。此模塊由兩部分組成,分別為行掃描模塊和列掃描模塊,由于FPGA是可并行操作的,所以這兩個模塊可并行執行,達到真正的同步。列掃描模塊相當于對數碼管進行片選,每隔1 ms就使能不同的數碼管;而行掃描模塊是輸出不同的SMG碼,根據列掃描對數碼管的片選使能,輸出當前數碼管的SMG碼。

4 控制中心遠程監控模塊

此模塊采用以太網技術將接收到的交通信息分析處理后,通過TCP/IP傳輸協議將控制信息發送給FPGA,FPGA根據控制信息選擇配時模塊當中的一套配時方案,將顯示模塊中的交通紅綠燈和數碼管按照配時方案顯示出來。其中,FPGA控制整個交通系統作為服務端,控制中心作為客戶端,其界面采用Qt編程技術。

4.1 服務端設計

服務端采用SOPC技術構建軟核,移植TCP/IP協議棧實現網絡通信。TCP/IP協議較為復雜,內容較多,主要是適合PC機的通信,針對FPGA服務端設計,文中采用精簡的TCP/IP協議,既能達到設計要求,也能簡化設計的復雜程度,其傳輸流程圖如圖4所示。

此協議棧中,需使用以下幾個主要函數,實現數據接收:

(1)void init_ip_arp_udp_tcp(unsigned char * mymac,unsigned char * myip,unsigned char wwwp)。

此函數為初始化傳輸,主要用于填寫MAC、IP、端口參數。函數返回值為空。

(2)unsigned char eth_type_is_arp_and_my_ip(unsigned char * buf,unsigned int len)。

此函數為數據包解析,是否接收到指向本地IP的ARP請求,若是返回值為1,若不是則返回值為0。

(3)chareth_type_is_ip_and_my_ip(unsigned char* buf,unsigned int len)。

此函數為數據包解析,是否接收到發送給本地IP的IP數據包,若是返回值為1,若不是則返回值為0。

(4)unsigned int get_tcp_data_pointer(void)。

此函數為獲取有效數據位置,若有數據返回值為有效數據位置,若無數據則返回值為0。

4.2 客戶端設計

Qt是一款跨平臺的C++用戶界面應用程序框架(C++GUI),能為應用程序開發者提供藝術級圖形用戶界面所需的所有功能,可以在不同的系統平臺下使用,通用性好,具有良好的信號/槽封裝機制,還有豐富的API函數,能夠降低用戶開發難度,其豐富的可擴展性使得圖形化界面更加直觀。在客戶端設計中,為了能直觀地顯示IP地址、端口號以及接收到的交通信息等參數,同時能更加方便地發送控制信息,控制中心客戶端采用Qt Creator工具實現了Qt界面設計。

這里使用QTextBrowser控件作為交通信息顯示框,QLineEdit控件輸入IP地址和端口號,QPushButton控件觸發網絡連接和相關控制信息的發送。由于設計中需要使用QTcp So cket網絡套接字編程實現網絡通信傳輸,所以需要在工程的pro文件中添加“QT+=network”,并添加QTcpSocket頭文件,之后需要設置連接的IP地址和端口號,創建QTcpSocker對象tcpclient,連接服務器語句為:tcpclient.connectToHost(* ip,port)。連接成功后,需點擊控制信息按鈕,發射信號,從而觸發數據發送槽函數的執行,其發送函數語句為:tcpclient.write(msg.toLoca18Bit())。控制中心的網絡傳輸流程如圖5所示。

為了實現更友好的界面顯示,這里在Qt程序中添加了中文顯示,具體設置語句如下:

QTextCodec::setCodecForLocale(QTextCodec::codecForName(“UTF-8”));

QTextCodec::setCodecForTr(QTextCodec::codec ForName(“UTF-8”));

QTextCodec::setCodecForCStrings(QTextCodec::codecForName(“UTF-8”)。

5 系統調試

將所有模塊搭建連接好之后,在控制中心界面處,輸入FPGA的IP地址及其間的端口號,點擊“連接”,就建立起了FPGA與控制中心的通信,控制中心的圖形化界面如圖6所示。圖中左邊的文本框顯示的是交通信息,根據圖中交通信息可知先前主干道車流量大于副干道車流量,所以這里需要點擊“日間模式1”按鈕,FPGA控制交通系統選用方案1,其運行結果如圖7所示。之后,圖中出現一個車輛的呼救信息,所以需點擊“緊急停止”按鈕,終止交通系統的運行,處理事故,其運行結果如圖8所示。

“日間模式2”按鈕對應配時方案2的運行效果,“夜間模式”按鈕對應配時方案3的運行效果,其實際測試結果正常,運行穩定,達到了控制中心遠程精確控制交通系統的目的。

6 結束語

本設計以FPGA作為開發平臺,使用Verilog HDL語言完成了交通系統自動配時模塊和顯示模塊的設計,同時采用SOPC技術在FPGA上構建軟核實現控制中心通過網絡控制交通系統,控制中心的界面采用Qt設計,美觀、操作方便且通用性好。整個設計較好地利用了現有公路的網絡資源,配合智能車載系統車輛信息遠程發送技術,能精確有效地控制整個交通系統,相比于其他依靠傳感器,控制交通系統運行情況的設計,其可靠性更高,然而成本卻相對較低。



評論


相關推薦

技術專區

關閉