[發明專利]一種高效的車載網路由方法有效
| 申請號: | 201810916256.5 | 申請日: | 2018-08-13 |
| 公開(公告)號: | CN109246596B | 公開(公告)日: | 2020-06-16 |
| 發明(設計)人: | 王曉喃;程宏斌;閆海英 | 申請(專利權)人: | 常熟理工學院 |
| 主分類號: | H04W4/02 | 分類號: | H04W4/02;H04W4/06;H04W4/46;H04L29/08 |
| 代理公司: | 南京瑞弘專利商標事務所(普通合伙) 32249 | 代理人: | 楊曉玲 |
| 地址: | 215500 江蘇省蘇*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 高效 車載 網路 方法 | ||
1.一種高效的車載網路由方法,其特征在于,所述車載網路包括車輛節點,兩個交叉路口之間的道路稱為路段,該路段由坐標二元組源坐標,目的坐標唯一定義,源坐標和目的坐標分別為定義該路段的兩個交叉路口的坐標;所述車載網路覆蓋的道路劃分為兩個以上的路段;
一種類型的數據由一個數據地址唯一標識,一個數據地址由坐標二元組和數據ID構成,坐標二元組唯一定義一個路段,數據ID唯一定義一種數據;
一個交叉路口能夠屬于兩個以上的路段;車輛節點具有定位功能,通過電子地圖能夠獲取每個交叉路口的坐標;如果一個交叉路口屬于n個路段,n為大于1的正整數,所述n個路段成為鄰居路段;
一個車輛節點維護一個鄰居路段表,一個鄰居路段表項包含源坐標和目的坐標域;
在路段RS1由交叉路口I1和I2定義,交叉路口I1的坐標為(xI1,yI1),交叉路口I2的坐標為(xI2,yI2),交叉路口I1屬于c1個路段,交叉路口I2屬于c2個路段,c1和c2為正整數的條件下,位于路段RS1的車輛節點啟動后,對于交叉路口I1所屬于的每個路段,該車輛節點創建一個鄰居路段表項,該鄰居路段表項的源坐標為(xI1,yI1),目的坐標為定義該路段的另一個交叉路口的坐標,對于交叉路口I2所屬于的每個路段,該車輛節點創建一個鄰居路段表項,該鄰居路段表項的源坐標為(xI2,yI2),目的坐標為定義該路段的另一個交叉路口的坐標;該車輛節點刪除源坐標為(xI1,yI1)且目的坐標為(xI2,yI2)的鄰居路段表項以及源坐標為(xI2,yI2)且目的坐標為(xI1,yI1)的鄰居路段表項;
一個車輛節點由一個車輛地址唯一標識,一個車輛地址由地理坐標和硬件ID構成;
如果一個車輛節點位于一個圓形區域內,該圓形區域的中心坐標為(xI1,yI1)即交叉路口I1,半徑為車輛節點的通信半徑,則判定該車輛節點位于交叉路口I1;如果車輛節點的坐標為(x,y),如果滿足下列條件之一則判定該車輛節點位于路段RS1:
條件1:xI1xI2且yI1yI2且xI1≥x≥xI2且yI1≥y≥yI2,
條件2:xI2xI1且yI1yI2且xI2≥x≥xI1且yI1≥y≥yI2,
條件3:xI1xI2且yI2yI1且xI1≥x≥xI2且yI2≥y≥yI1,
條件4:xI2xI1且yI2y1且xI2≥x≥xI1且yI2≥y≥yI1;
如果車輛節點V1的坐標為(xV1,yV1)且硬件ID為HV1,車輛節點V1位于路段RS1,車輛節點V1檢測到數據D1,數據D1由數據地址DA1定義,數據地址DA1的坐標二元組為(xI1,yI1),(xI2,yI2),數據ID為CID1,車輛節點V1則執行下述過程發布數據D1:
步驟101:開始;
步驟102:車輛節點V1構建自己的車輛地址,該車輛節點的坐標為(xV1,yV1),硬件ID為HV1,然后車輛節點V1發送一個數據發布消息,該數據發布消息的源地址為車輛節點V1的車輛地址,目的地址為廣播地址,廣播地址為每個比特位均為1的地址,負載為數據D1和數據地址DA1;
步驟103:其他車輛節點接收到數據發布消息后,保存數據D1和數據地址DA1,如果接收到數據發布消息的其他車輛節點位于交叉路口I1或者交叉路口I2,則執行步驟105,否則執行步驟104;
步驟104:如果接收到數據發布消息的車輛節點位于交叉路口,即除了交叉路口I1或者交叉路口I2以外的交叉路口,則執行步驟106,否則執行步驟105;
步驟105:接收到數據發布消息的車輛節點轉發該數據發布消息,執行步驟103;
步驟106:接收到數據發布消息的車輛節點丟棄該數據發布消息;
步驟107:結束;
車輛節點維護一個鄰居車輛表,一個鄰居車輛表項包含硬件ID域、坐標域和生命周期域;車輛節點V1的硬件ID為HV1,車輛節點V1啟動后,定期執行下述過程建立鄰居車輛表:
步驟201:開始;
步驟202:車輛節點構建一個車輛地址,該車輛地址的坐標為自己當前的坐標,硬件為HV1,發送一個信標消息,該信標消息的源地址為構建的車輛地址,目的地址為廣播地址,負載為空;
步驟203:接收到信標消息的車輛節點查看鄰居車輛表;如果存在一個鄰居車輛表項,該鄰居車輛表項的硬件ID等于該信標消息的源地址的硬件ID,該車輛節點則將該鄰居車輛表項的坐標更新為該信標消息的源地址的坐標,將生命周期設置為最大值,否則,該車輛節點創建一個鄰居車輛表項,該鄰居車輛表項的硬件ID等于該信標消息的源地址的硬件ID,該鄰居車輛表項的坐標等于該信標消息的源地址的坐標,將生命周期設置為最大值;
步驟204:結束;
在車輛節點V1的坐標為(xV1,yV1)且硬件ID為HV1,路段RS1由交叉路口I1和I2定義,交叉路口I1的坐標為(xI1,yI1),交叉路口I2的坐標為(xI2,yI2)的條件下,如果車輛節點V1位于路段RS1,則通過下述過程獲取鄰居路段的數據:
步驟301:開始;
步驟302:車輛節點V1構建一個車輛地址,該車輛地址的坐標為(xV1,yV1),硬件ID為HV1,車輛節點V1發送請求消息,該請求消息的源地址為該車輛地址,目的地址為廣播地址,負載為空;
步驟303:其他車輛節點接收到請求消息后,如果該車輛節點檢測到數據D2,數據D2由數據地址DA2標識,數據地址DA2的數據ID為CID2,坐標二元組為定義該車輛節點所在路段的坐標二元組,則執行步驟304,否則執行步驟305;
步驟304:接收到請求消息的車輛節點查看鄰居車輛表,如果存在一個鄰居車輛表項,該鄰居車輛表項的硬件ID等于該請求消息的源地址的硬件ID,該車輛節點則發送一個響應消息,該響應消息的源地址和目的地址均為接收到的請求消息的源地址,負載為數據D2和數據地址DA2;否則,該車輛節點選擇一個鄰居車輛表項,該鄰居車輛表項的坐標與接收到的請求消息的源地址的坐標距離最近,該車輛節點構建一個車輛地址,該車輛地址的硬件ID和坐標分為等于該鄰居車輛表項的硬件ID和坐標,然后車輛地址發送一個響應消息,該響應消息的源地址為構建的車輛地址,目的地址為接收到的請求消息的源地址,負載為數據D2和數據地址DA2;
步驟305:如果接收到請求消息的車輛節點位于交叉路口I1或者交叉路口I2,則執行步驟307,否則執行步驟306;
步驟306:如果接收到請求消息的車輛節點位于交叉路口,即除了交叉路口I1或者交叉路口I2以外的交叉路口,則執行步驟308,否則執行步驟307;
步驟307:接收到請求消息的車輛節點轉發該請求消息,執行步驟303;
步驟308:接收到請求消息的車輛節點丟棄該請求消息;
步驟309:判斷是否車輛節點V1接收到響應消息,如果是則執行步驟313,否則執行步驟310;
步驟310:判斷接收到響應消息的車輛節點的硬件ID是否等于該響應消息的源地址的硬件ID,如果等于,則執行步驟312,否則執行步驟311;
步驟311:接收到響應消息的車輛節點丟棄該響應消息,執行步驟313;
步驟312:接收到響應消息的車輛節點查看鄰居車輛表,如果存在一個鄰居車輛表項,該鄰居車輛表項的硬件ID等于該響應消息的目的地址的硬件ID,該車輛節點則構建一個車輛地址,該車輛節點的硬件ID和坐標分別等于該鄰居車輛表項的硬件ID和坐標,將該響應消息的源地址和目的地址均更新為構建的車輛地址,轉發該響應消息;否則,該車輛節點選擇一個鄰居車輛表項,該鄰居車輛表項的坐標與接收到的響應消息的目的地址的坐標距離最近,該車輛節點構建一個車輛地址,該車輛地址的硬件ID和坐標分為等于該鄰居車輛表項的硬件ID和坐標,將該響應消息的源地址更新為構建的車輛地址,轉發該響應消息;執行步驟309;
步驟313:車輛節點V1接收到響應消息后,保存該響應消息中的數據;
步驟314:結束;
在車輛節點V1的坐標為(xV1,yV1)且硬件ID為HV1,路段RS1由交叉路口I1和I2定義,交叉路口I1的坐標為(xI1,yI1),交叉路口I2的坐標為(xI2,yI2),車輛節點V1位于路段RS1,源坐標到目的坐標的路徑由兩個以上的路段構成,路徑由坐標二元組集合定義,該坐標二元組集合中的每個坐標二元組定義該路徑中所包含的一個路段的條件下,車輛節點V1通過下述過程發現從源坐標(xV1,yV1)途徑(xI1,yI1)到目的坐標(xd,yd)的所有路徑:
步驟401:開始;
步驟402:車輛節點V1選擇一個鄰居車輛表項,該鄰居車輛表項的坐標距離(xI1,yI1)最近;車輛節點V1構建一個車輛地址,該車輛地址的坐標和硬件ID分別等于該鄰居車輛表項的坐標和硬件ID;車輛節點V1發送路徑消息,該路徑消息的源地址為車輛節點V1的車輛地址,目的地址為構建的車輛地址,負載為坐標(xd,yd)以及坐標二元組集合{(xd,yd),(xI1,yI1)};
步驟403:判斷是否位于坐標(xd,yd)的車輛節點接收到該路徑消息,如果是則執行步驟409,否則執行步驟404;
步驟404:如果接收到路徑消息的目的車輛節點位于交叉路口,且目的車輛節點的硬件ID與該路徑消息的目的地址的硬件ID相同,則執行步驟406,否則執行步驟405;
步驟405:接收到路徑消息的車輛節點選擇一個鄰居車輛表項,該鄰居車輛表項的坐標與該路徑消息負載中坐標二元組集合的最后一個坐標二元組的第二個元素的距離最近;接收到路徑消息的車輛節點構建一個車輛地址,該車輛地址的坐標和硬件ID分別等于該鄰居車輛表項的坐標和硬件ID;接收到路徑消息的車輛節點將該路徑消息的目的地址更新為構建的車輛地址,轉發該路徑消息,執行步驟403;
步驟406:接收到路徑消息的車輛節點查看鄰居路段表,判斷是否存在一個鄰居路段表項,坐標(xd,yd)位于該鄰居路段表項的源坐標和目的坐標所標識的路段上,如果是則執行步驟407,否則執行步驟408;
步驟407:接收到路徑消息的車輛節點將坐標二元組(xs,ys),(xd,yd)加入到該路徑消息的坐標二元組集合中并作為該集合中的最后一個坐標二元組,坐標(xs,ys)為該車輛節點位于的交叉路口的坐標,該車輛節點選擇一個鄰居車輛表項,該鄰居車輛表項的坐標與該路徑消息負載中坐標二元組集合的最后一個坐標二元組的第二個元素的距離最近,該車輛節點構建一個車輛地址,該車輛地址的坐標和硬件ID分別等于該鄰居車輛表項的坐標和硬件ID,該車輛節點將該路徑消息的目的地址更新為構建的車輛地址,轉發該路徑消息,執行步驟403;
步驟408:接收到路徑消息的車輛節點查看所有源坐標等于(xs,ys)的鄰居路段表項,針對每個選中的鄰居路段表項R1,該車輛節點執行下述操作:如果滿足條件5,該車輛節點將坐標二元組(xs,ys),(xR1,yR1)加入到該路徑消息的坐標二元組集合中并作為該集合的最后一個坐標二元組,(xR1,yR1)為鄰居路段表項R1的目的坐標,該車輛節點選擇一個鄰居車輛表項,該鄰居車輛表項的坐標與該路徑消息負載中坐標二元組集合的最后一個坐標二元組的第二個元素距離最近,該車輛節點構建一個車輛地址,該車輛地址的坐標和硬件ID分別等于該鄰居車輛表項的坐標和硬件ID,將該路徑消息的目的地址更新為構建的車輛地址,轉發該路徑消息,執行步驟403;
條件5:
步驟409:位于坐標(xd,yd)的車輛節點接收到該路徑消息后,設置一個坐標二元組集合變量T,變量T的初始值等于該路徑消息負載中的坐標二元組集合,選擇一個鄰居車輛表項,該鄰居車輛表項的坐標與變量T的最后一個坐標二元組的第一個元素距離最近,位于坐標(xd,yd)的車輛節點構建一個車輛地址,該車輛地址的坐標和硬件ID分別等于該鄰居車輛表項的坐標和硬件ID,位于坐標(xd,yd)的車輛節點發送一個確認消息,該確認消息的源地址為該車輛節點的車輛地址,目的地址為構建的車輛地址,負載為接收到的路徑消息負載中的坐標二元組集合以及變量T;
步驟410:如果車輛節點V1接收到該確認消息,則執行步驟414,否則執行步驟411;
步驟411:如果接收到確認消息的目的車輛節點位于交叉路口,目的車輛節點的硬件ID與該確認消息的目的地址的硬件ID相同,則執行步驟413,否則執行步驟412;
步驟412:接收到確認消息的車輛節點選擇一個鄰居車輛表項,該鄰居車輛表項的坐標與該確認消息負載中變量T中的最后一個坐標二元組的第一個元素的距離最近,接收到確認消息的車輛節點構建一個車輛地址,該車輛地址的坐標和硬件ID分別等于該鄰居車輛表項的坐標和硬件ID,將該確認消息的目的地址更新為構建的車輛地址,轉發該確認消息,執行步驟410;
步驟413:接收到確認消息的車輛節點從該確認消息負載中的變量T中刪除最后一個坐標二元組,選擇一個鄰居車輛表項,該鄰居車輛表項的坐標與該確認消息負載中變量T中的最后一個坐標二元組的第一個元素的距離最近,接收到確認消息的車輛節點構建一個車輛地址,該車輛地址的坐標和硬件ID分別等于該鄰居車輛表項的坐標和硬件ID,將該確認消息的目的地址更新為構建的車輛地址,轉發該確認消息,執行步驟410;
步驟414:車輛節點V1接收到確認消息后,保存該確認消息負載中的坐標二元組集合;
步驟415:結束;
在車輛節點V1的坐標為(xV1,yV1)且硬件ID為HV1,路徑P1為源坐標為(xV1,yV1)到達目的坐標(xd,yd)的路徑,路徑P1由坐標二元組集合S1定義的條件下,車輛節點V1通過下述過程獲取路徑P1所產生的數據:
步驟501:開始;
步驟502:車輛節點V1設置坐標二元組集合參數TS和TD,參數TS的初始值為空集,參數TD的初始值等于坐標二元組集合S1;車輛節點V1將變量TD中的第一個坐標二元組加入到變量TS中,選擇一個鄰居車輛表項,該鄰居車輛表項的坐標與參數TS中的最后一個坐標二元組的第二個元素的距離最近,然后車輛節點V1構建一個車輛地址,該車輛地址的坐標和硬件ID分別等于該鄰居車輛表項的坐標和硬件ID,車輛節點V1發送一個數據請求消息,該數據請求消息的源地址為車輛節點V1的車輛地址,目的地址為構建的車輛節點,負載為參數TS和參數TD;
步驟503:其他車輛節點接收到數據請求消息后,如果該車輛節點檢測到數據D3,數據D3由數據地址DA3唯一標識,數據地址DA3的數據ID為CID3,坐標二元組等于參數TS中的最后一個坐標二元組,該車輛節點選擇一個鄰居車輛表項,該鄰居車輛表項的坐標與變量TS中的最后一個坐標二元組的第一個元素距離最近,然后該車輛節點構建一個車輛地址,該車輛地址的坐標和硬件ID分別等于該鄰居車輛表項的坐標和硬件ID,然后一個數據響應消息,該數據響應消息的源地址為該車輛節點的車輛地址,目的地址為構建的車輛地址,負載為參數TS,數據D3和數據地址DA3;
步驟504:判斷是否位于交叉路口的車輛節點接收到數據請求消息,如果是則執行步驟506,否則執行步驟505;
步驟505:接收到數據請求消息的車輛節點選擇一個鄰居車輛表項,該鄰居車輛表項的坐標與該數據請求消息負載中的參數TD中的最后一個坐標二元組的第二個元素距離最近,接收到數據請求消息的車輛節點構建一個車輛地址,該車輛地址的坐標和硬件ID分別為該鄰居車輛表項的坐標和硬件ID,將該數據請求消息的目的地址更新為構建的車輛地址,轉發該數據請求消息,執行步驟503;
步驟506:接收到數據請求消息的車輛節點從該數據請求消息的參數TD中刪除最后一個坐標二元組,如果參數TD為空集,則執行步驟508,否則執行步驟507;
步驟507:接收到數據請求消息的車輛節點將該數據請求消息中的參數TD中的最后一個坐標二元組加到參數TS中并作為參數TS中的最后一個坐標二元組,該車輛節點選擇一個鄰居車輛表項,該鄰居車輛表項的坐標與該數據請求消息負載中的參數TD中的最后一個坐標二元組的第二個元素距離最近,接收到數據請求消息的車輛節點構建一個車輛地址,該車輛地址的坐標和硬件ID分別為該鄰居車輛表項的坐標和硬件ID,將該數據請求消息的目的地址更新為構建的車輛地址,轉發該數據請求消息,執行步驟503;
步驟508:如果車輛節點V1接收到數據響應消息,則執行步驟512,否則執行步驟509;
步驟509:如果位于交叉路口的車輛節點接收到數據響應消息,則執行步驟511,否則執行步驟510;
步驟510:接收到數據響應消息的車輛節點選擇一個鄰居車輛表項,該鄰居車輛表項的坐標與該數據響應消息負載中的參數TS中的最后一個坐標二元組的第一個元素距離最近,接收到數據響應消息的車輛節點構建一個車輛地址,該車輛地址的坐標和硬件ID分別為該鄰居車輛表項的坐標和硬件ID,將該數據響應消息的目的地址更新為構建的車輛地址,轉發該數據響應消息,執行步驟508;
步驟511:接收到數據響應消息的車輛節點刪除該數據響應消息中的參數TS中的最后一個坐標二元組,該車輛節點選擇一個鄰居車輛表項,該鄰居車輛表項的坐標與該數據響應消息負載中的參數TS中的最后一個坐標二元組的第一個元素距離最近,接收到數據響應消息的車輛節點構建一個車輛地址,該車輛地址的坐標和硬件ID分別為該鄰居車輛表項的坐標和硬件ID,將該數據響應消息的目的地址更新為構建的車輛地址,轉發該數據響應消息,執行步驟508;
步驟512:車輛節點V1接收到該數據響應消息后,保存該數據響應中的數據;
步驟513:結束。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于常熟理工學院,未經常熟理工學院許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810916256.5/1.html,轉載請聲明來源鉆瓜專利網。





