車輛間點對點通信方法與流程
2023-04-23 14:16:16
本發明涉及車載網絡,特別涉及一種車輛間點對點通信方法。
背景技術:
為了讓交通運輸的效率得以提升,減緩資源的消耗速度,車輛研發環節中不可避免地採用智能交通系統,而車輛間網絡也已成為優化現代交通的熱點課題。人們可利用配備在車輛上的無線通信設備,完成車輛節點之間的直接或間接通信,同時,車輛節點也可以同路邊固定通信設備在其相對應的無線通信信道上實現無線通訊,以此來達到車輛間網絡在智能交通系統中對各種傳輸信息完成傳輸、處理及交互過程的目的。從提高服務便捷性方面來看,駕駛員能夠將其他車輛廣播出來的各種信息搜集起來,從而很方便的找到附近的一些服務點。同時採用電子不停車收費系統,可以大大縮短車輛在支付等待時間。安裝在道路兩旁的設備與車輛自身攜帶的信息公共作用之後,相關部門能夠充分利用這些信息對交通進行智能的調度。
然而車輛本身是高速移動中的,並且由於城市道路對其限制較大,網絡的拓撲方面也是瞬息萬變的,各個節點之間進行通訊的時間較短,現有的車輛間通信方法不能很好地實時適應車載網絡的拓撲結構頻繁變換的動態特性,因此提高網絡的吞吐量等網絡特性方面沒有發揮出較為優質的表現。在車載節點過多時常常造成網絡堵塞。
技術實現要素:
為解決上述現有技術所存在的問題,本發明提出了一種車輛間點對點通信方法,包括:
車載節點應用層管理模塊採集無線網絡中的數據,分析數據的來源和類型,實現對上層報文信息的收發管理,編碼規則設置和偵聽;路由管理模塊進行路由機制的選擇,路由請求以及偵聽應答;接入管理模塊在路由層獲得數據同時對其分配隨機的目標地址,然後將這些地址信息送到MAC層中;無線傳輸模塊用於發射天線和接收天線管理,使用模擬的方式對其數據的編碼結果進行相應的處理,通過天線將數據在對應的傳輸信道中傳輸。
優選地,所述應用層管理模塊擴展中繼節點的選擇範圍,執行基於位置估計的消息分發;車輛向鄰接節點發送信標消息,通過信標消息獲取鄰接節點的位置信息,不斷更新鄰接表,當車輛的估計位置與實際位置之間的差超出設定的誤差閾值時,同時採用周期性發送和條件驅動的發送方式;
車輛通過GPS獲取自身位置信息,結合車輛移動的歷史記錄和當前位置信息,計算出車輛當前的行駛速度s和方向θ;
提取信標消息中的車輛節點ID,並判斷發送該信標的車輛是否在當前車輛的鄰接表中;如果是當前車輛的鄰接節點,則更新鄰接表;否則,將發送信標消息的車輛加入鄰接表中;
提取信標消息中的車輛位置信息、車輛方向信息、車輛速度信息和時間戳信息;估計鄰接節點的當前時刻t2的位置(Xp,Yp):
Xp=X+s×(t2-t1)×cos(θ)
Yp=Y+s×(t2-t1)×sin(θ)
其中(X,Y)和t1是對鄰接車輛進行估計前最後一次接收的信標攜帶的位置信息和時間戳;而s和θ是車輛進行估計前最後一次接收到的信標中的車輛速度和方向信息;當前車輛根據對鄰接車輛的估計位置,計算出當前節點與其鄰接節點間的通信鏈路的有效時間;
車輛將鄰接點的估計位置與自身位置進行比較,並將位置關係歸為下面四類之一:前方同向、後方同向、前方反向、後方反向;
當前車輛計算自己與其鄰接節點之間的距離D:
D=((Xv-Xp)2+(Yv-Yp)2)1/2
這裡的(Xv,Yv)表示當前車輛的坐標位置,(Xp和Yp)是鄰接節點位置的估計坐標值;位置估計過程停止,直到當前車輛收到新的信標消息再重新開始;
當某一車輛發生異常事件時,異常車輛立刻生成異常消息,選定轉發節點進行廣播;當其他車輛節點收到異常消息後,判斷是否需要對異常消息進行廣播;如果其他車輛節點中的節點之一被選中為轉發節點,則需要轉發消息。
本發明相比現有技術,具有以下優點:
本發明提出了一種車輛間點對點通信方法,適用於車載網絡的拓撲結構頻繁變換的條件,提高網絡的吞吐量,降低網絡擁塞。
附圖說明
圖1是根據本發明實施例的車輛間點對點通信方法的流程圖。
具體實施方式
下文與圖示本發明原理的附圖一起提供對本發明一個或者多個實施例的詳細描述。結合這樣的實施例描述本發明,但是本發明不限於任何實施例。本發明的範圍僅由權利要求書限定,並且本發明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細節以便提供對本發明的透徹理解。出於示例的目的而提供這些細節,並且無這些具體細節中的一些或者所有細節也可以根據權利要求書實現本發明。
本發明的一方面提供了一種車輛間點對點通信方法。圖1是根據本發明實施例的車輛間點對點通信方法流程圖。
車載節點應用層管理模塊採集無線網絡中的數據,分析數據的來源和類型,實現對上層報文信息的收發管理,編碼規則設置和偵聽。路由管理模塊負責路由機制的選擇,路由請求以及偵聽應答和維護等。接入管理模塊存在於路由層與MAC層之間,負責在路由層處獲得數據同時對其分配隨機的目標地址,然後將這些地址信息送到MAC層之中。無線傳輸模塊用於發射天線和接收天線管理,根據數據的編碼結果,使用模擬的方式對其進行相應的處理,通過天線將隊列中的數據在對應的傳輸信道中傳輸,通過其傳輸性能進行控制和管理。
對於應用層管理模塊的消息分發,本發明的實施例擴展中繼節點的選擇範圍,同時採用位置估計,獲得消息廣播的低時延、低負載特性。
車輛向鄰接節點發送信標消息,當車輛的估計位置與實際位置之間的差超出設定的誤差閾值時,同時採用周期性發送和條件驅動的發送方式。通過信標消息,網絡中的車輛可以獲取鄰接節點的位置信息,不斷更新鄰接表。
車輛通過GPS獲取自身位置信息,結合車輛移動的歷史記錄和當前位置信息,計算出車輛當前的行駛速度s和方向θ。
提取信標消息中的車輛節點ID,並判斷發送該信標的車輛是否在當前車輛的鄰接表中。如果是當前車輛的鄰接節點,則更新鄰接表;否則,將發送信標消息的車輛加入鄰接表中。
提取信標消息中的車輛位置信息、車輛方向信息、車輛速度信息和時間戳信息。估計鄰接節點的當前時刻t2的位置(Xp,Yp)。
Xp=X+s×(t2-t1)×cos(θ)
Yp=Y+s×(t2-t1)×sin(θ)
其中(X,Y)和t1是對鄰接車輛進行估計前最後一次接收的信標攜帶的位置信息和時間戳。而s和θ是車輛進行估計前最後一次接收到的信標中的車輛速度和方向信息。
當前車輛根據對鄰接車輛的估計位置,計算出當前節點與其鄰接節點間的通信鏈路的有效時間。
車輛將鄰接點的估計位置與自身位置進行比較,並將位置關係歸為下面四類之一:前方同向、後方同向、前方反向、後方反向。
當前車輛計算自己與其鄰接節點之間的距離D:
D=((Xv-Xp)2+((Yv-Yp))2)1/2
這裡的(Xv,Yv)表示當前車輛的坐標位置,(Xp和Yp)是鄰接節點位置的估計坐標值。
位置估計過程停止,直到當前車輛收到新的信標消息再重新開始。
當某一車輛發生高優先級的異常事件時,異常車輛立刻生成異常消息,選定轉發節點進行廣播。當其他車輛節點收到異常消息後,判斷是否需要對異常消息進行廣播。如果其他車輛節點中的節點之一被選中為轉發節點,則需要轉發消息。
如果異常車輛的同向後方存在車輛節點,異常車輛選擇最遠的車輛作為直接後繼節點,選擇次遠的車輛作為第二後繼節點。如果異常車輛後方反向上存在車輛,選擇最遠的車輛作為直接後繼節點,選擇次遠的車輛作為第二後繼節點。如果在異常車輛反向前方存在車輛,選擇最近的車輛作為直接後繼節點,選擇次近的車輛作為第二後繼節點。如果以上情況都不滿足,則異常車輛存儲異常消息,直到新的車輛進入其無線信息覆蓋範圍內,然後重新按照上述情況選擇轉發。
在異常車輛選定轉發節點後,根據轉發節點與異常車輛節點的位置關係,分兩種情況從轉發節點R向其他節點分發異常消息。當前車輛同向的車輛R被選為轉發節點,在收到異常消息後,R檢測自身的位置,如果自身的位置超出異常車輛所在區域的邊界,則廣播複製的異常消息作為確認信息。如果自身的位置仍然位於異常車輛所在區域邊界內,則轉發節點R通過判斷選擇最優的後繼節點。
(a)如果在轉發節點的行駛方向後方存在同向行駛車輛,轉發節點R選擇最遠車輛作為首選的下一節點,選取次遠的車輛作為轉發節點的第二選擇。
(b)如果在相反的行駛方向上存在車輛節點,則當前的轉發節點選擇最遠的車輛作為直接後繼節點,選擇次遠的節點作為第二後繼節點。
(c)如果兩種情況都不滿足,轉發節點廣播一次異常消息作為確認,然後使用存儲轉發機制對異常消息進行緩存,同時檢測轉發節點的當前位置。如果發現轉發節點正在路過異常車輛,則轉發節點終止轉發過程,否則,轉發節點在遇到其他車輛時,選取下一轉發節點,轉發異常消息。
當反向的車輛R被選為轉發節點時,在收到異常消息後,轉發節點檢測自身的位置,如果超出異常車輛所在區域的邊界,轉發節點R只需廣播重複的異常消息進行確認;否則,轉發節點按照以下過程選擇下一節點。
(a)如果轉發節點R的反向後方不存在任何車輛節點,則它選擇反向前方最遠的車輛節點和次遠的車輛節點作為後繼中繼的第一選擇和第二選擇。
(b)如果在R的同向前方存在車輛節點,則選定最遠車輛和次遠車輛將分別作為直接後繼節點和第二後繼節點。
(c)如果兩種情況都不滿足,轉發節點廣播複製的異常消息作為確認信息,然後切換到存儲轉發模式,並進行位置檢測。如果中繼車輛超出異常車輛所在區域的邊界,則終止轉發,否則,轉發節點繼續選擇下一節點。當轉發節點或者後繼轉發節點接收到異常消息後,選擇不同的車輛作為下一轉發節點。
在上述轉發方式的基礎上,本發明利用具有預定路線的巡遊車載節點的幫助進一步實現數據傳輸,有助於車輛節點向一個或多個目標節點分發數據。巡遊車載節點沿預定義路線行駛,在行駛過程中不斷發送消息,路側節點廣播所接收的消息,車輛節點在經過巡遊節點覆蓋範圍時,接收到相應消息。網絡中的消息都有唯一的消息id號,當目標節點R收到消息後,如果判定之前未曾收到過該消息,則將消息的id號存儲在廣播表中。如果目標節點R在其廣播表中查找接收信息的相同的id號,表示該消息已收到過,確定為冗餘消息,直接丟棄,否則目標節點R對數據進行下一步處理。
根據GPS獲取的位置信息,車輛節點判斷自身是否位於車輛節點密集區。如果目標節點R位於車輛節點密集區或者R屬於路側節點,則R在延遲WD1後,轉發收到的消息。如果接收節點R的位置不在車輛節點密集區但是源節點S位於車輛節點密集區,則R丟棄消息。如果源節點S不是車輛節點密集區節點,則R將自己的方向DR與最後一跳源節點S的方向DS繼續比較,如果它們的移動方向相同,在延遲WD2後,發送消息。如果判定它們的方向相反,則放棄轉發。
其中WD1=(1-Pd)×Tp
WD2=(1-Pd)×2Tp
Tp代表一跳廣播之間的最小時長。
Pd=ds-r/dmax為與距離相關的概率,ds-r為最後一次轉發的源節點和目標節點的距離,dmax為節點覆蓋範圍內的最大值。
本發明的路由管理模塊將源節點和目標節點之間的通信過程分成路由請求,接收應答以及編碼偵聽。
當一個節點接收到路由請求消息時,首先創建或更新路由表項。然後查看在預定義間隔內是否收到相同的源IP位址和路由請求ID消息的路由請求分組,如果有,忽略目前收到的路由請求分組。當收到的路由請求不被忽略時,首先將路由請求中的跳數增1,然後在路由表中搜尋到源節點的反向路徑,使用最長匹配原則,創建新的逆向路由表項,或者用路由請求中的源節點ID更新原有路由表項。當反向路徑被創建或更新時,執行下面的操作:
(1)將路由請求消息源節點ID和對應的反向路由中的目標節點ID作比較,如果前者比後者大,將前者取代後者。
(2)路由項的有效ID值被設為真。
(3)路由項的下一條設為向該節點傳送路由請求的節點。
當一個節點收到路由響應時,首先在路由表中搜尋到前驅的路由項,創建不包含有效的ID的新的表項。然後節點將路由響應中的跳數增1。將路由響應中的目標節點ID和已有ID相比較。如果當前節點不是路由響應中的源節點,則查詢路由表以決定路由響應的後繼。如果節點發送的路由響應的鏈路有錯誤或是單向的,節點使路由響應的接收方回復一個應答信號。
任何轉發路由響應的節點,均將發送路由響應的後繼加入到去往目標節點的路由項前驅表中,在同一時間,修改源節點路徑的生存期為現有的生存時間的較大值。路由響應是通過路由響應的廣播包,進行偵聽判斷,如果有則存儲路由響應中當前流的路徑及偵聽節點信息。通過路由層中報文請求以及控制層中相關判斷條件的判斷,進行是否下一步操作。
編碼偵聽的判斷條件為:
節點隊列中的k個待發送的報文p1,p2,…,pk,相應的後繼節點為v1,v2,…,vk,經過編碼得到編碼報文廣播該編碼報文p至上述節點集v1,v2,…,vk。如果在v1,v2,…,vk中,準備接收報文pi的節點vi已經偵聽到除pi外其它所有的報文,並且滿足兩個條件之一:
節點vi是報文Pj的前驅節點,j≠i,或者
節點vi已偵聽到報文Pj,j≠i;
則節點vi將在一定時間內緩存報文pj以獲得更多的編碼。
編碼過程中,當無線信道有效時,節點則從輸出隊列中取出頭部報文,並檢查頭部報文能否與隊列中的其他初始報文進行編碼。如果能夠進行編碼,則將這些初始報文進行相與運算後,廣播到各鄰接節點。如果無法編碼,節點則直接廣播該初始報文而不等待可匹配的初始報文。如果轉發節點沒有收到鄰接節點發來的接收報告,則該節點使用路由協議來計算後繼節點間鏈路的到達率,並依據到達率來估計後繼節點存儲某初始報文的可能性,並據此決定是否進行網絡編碼。
若某轉發節點一次將n個報文進行相與的編碼,第n個報文的後繼接收節點偵聽到其他某一個報文i的概率為Pi,則該接收節點能正確解碼的概率PD等於這節點能偵聽參與編碼的其他n-1個初始報文的概率:
PD=P1×P2×…×Pn-1
此時判斷這n個初始報文的後繼節點集可解碼的概率PD是否滿足大於一個閾值PG。如果滿足閾值約束,則節點發起路由請求過程,向網絡中廣播路由請求報文,該報文中含有目標節點ID,編碼ID,源節點地址和目標節點地址。當中間節點接收到路由請求報文,時,中間節點首先廣播源節點發送來的路由請求報文,然後遞增修改分組中的編碼ID,將報文廣播給具有編碼的後繼節點集,在包頭中加入節點集的地址列表。如果在一個節點上收到不同的路由請求,首先判斷目標節點ID的大小,用來更新路由;如果目標節點ID相同,則根據編碼ID來判斷具有編碼的路徑。在目標節點接收到的路由請求分組後,直接按原路反饋路由響應給源節點,建立從源節點到目標節點的具有編碼的路由。
在車載網絡中,由於網絡拓撲結構時刻發生變化致使通信鏈路的不確定及時常間斷,存在兩種狀態:當節點u,v處於彼此通信範圍時,鏈路是連通並可傳輸;若不在通信範圍內鏈路不通。
(1)網絡中每個節點u初始化各自本地群體集Cu、頻繁訪問集Fu、節點u和v的相遇時長W(u,v)和局部群體頻繁訪問集Lu。
(2)當節點u和v相遇時,節點相互交換本地信息,包括群體集、頻繁訪問集和局部群體頻繁訪問集。判斷節點v是否屬於Cu,若屬於跳轉7,若不屬於轉3。
(3)統計節點v頻繁訪問集Fv和u群體集共同的節點個數num,如果共同節點個數num>K-1,K為預設閾值,將節點v加入u群體集,v頻繁訪問集Fv加入u局部群體頻繁訪問集Lu。如果num<K-1轉6。
(4)取出節點v群體集中的第i個節點vi,統計節點i頻繁訪問集Fvi和u群體集Cu共同節點Inum,如果Inum≥K-1,將節點vi加入u群體集,vi頻繁訪問集Fvi加入u局部群體頻繁訪問集Lu。如果InumT,T為預設閾值,如果是則將節點v加入u群體集,v頻繁訪問集Fv加入u局部群體頻繁訪問集Lu。如果不是則轉7。
(7)群體更新結束。
在建立群體之後,群體內和群體間的傳輸模式中分別採用不同的數據轉發策略實現。
節點u中所攜帶的報文遇到節點v時:
(1)若報文的目標節點D、所攜帶報文的u和所遇節點v,三個節點屬於同一群體,使用本地活躍度衡量數據是否轉發;若u的本地活躍度比v的大則被轉發報文,否則將報文轉發給v。
(2)若目標節點D和節點u和v不在相同群體,使用全局活躍度衡量報文是否轉發。如果所攜帶報文的當前u節點全局活躍度大於遇到節點v則不轉發,否則將報文轉發給v。
(3)若目標節點D和節點u不在同一群體,卻和節點v屬於同一群體,則u將報文轉發給v。
(4)若目標節點和所攜帶報文的u節點是同一群體,和遇到的節點v在不同群體,則u不轉發報文。
根據上面幾種情況轉發報文,直到遇到目標節點,將報文遞交。
綜上所述,本發明提出了一種車輛間點對點通信方法,適用於車載網絡的拓撲結構頻繁變換的條件,提高網絡的吞吐量,降低網絡擁塞。
顯然,本領域的技術人員應該理解,上述的本發明的各模塊或各步驟可以用通用的計算系統來實現,它們可以集中在單個的計算系統上,或者分布在多個計算系統所組成的網絡上,可選地,它們可以用計算系統可執行的程序代碼來實現,從而,可以將它們存儲在存儲系統中由計算系統來執行。這樣,本發明不限制於任何特定的硬體和軟體結合。
應當理解的是,本發明的上述具體實施方式僅僅用於示例性說明或解釋本發明的原理,而不構成對本發明的限制。因此,在不偏離本發明的精神和範圍的情況下所做的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。此外,本發明所附權利要求旨在涵蓋落入所附權利要求範圍和邊界、或者這種範圍和邊界的等同形式內的全部變化和修改例。