1.一种车载网的数据通信实现方法,其特征在于,所述车载网包括车辆节点,所述车载网覆盖的面积由两个以上的路段,每个路段由两个交叉路口唯一定义,即该路段为该两个交叉路口之间的道路;一个交叉路口能够属于两个以上的路段;车辆节点具有定位功能,通过电子地图能够获取每个交叉路口的地理坐标;
每个车辆节点保存一个邻居表,一个邻居表项包含硬件ID域、坐标域和生命周期域;车辆节点启动后,定期广播信标消息,该信标消息的源地址为自己的硬件ID,目的地址为广播地址,广播地址为每个比特位都为1的地址,负载为该车辆节点的坐标;如果车辆节点V1从邻居车辆节点V2接收到信标消息,通过下述过程建立邻居表:步骤101:开始;
步骤102:车辆节点V1查看邻居表,如果存在一个邻居表项,该邻居表项的硬件ID等于该信标消息的源地址,则执行步骤103,否则执行步骤104;
步骤103:车辆节点V1选择一个邻居表项,该邻居表项的硬件ID等于接收到的信标消息的源地址,将该邻居表项的坐标域更新为该信标消息负载中的坐标值,将生命周期设置为最大值,执行步骤105;
步骤104:车辆节点V1创建一个邻居表项,该邻居表项的硬件ID等于接收到的信标消息的源地址,该邻居表项的坐标域等于该信标消息负载中的坐标值,将生命周期设置为最大值;
步骤105:结束;
如果一个车辆节点检测到一个邻居表项的生命周期衰减为0,则删除该邻居表项;
一个车辆节点保存一个车辆节点表用于维护一个路段上的车辆节点的信息,该车辆节点表的表名为坐标二元组<源坐标,目的坐标>,其中源坐标和目的坐标分别定义一个路段的两个交叉路口的地址坐标;
一个车辆节点表项包含硬件ID域、速度域和生命周期域。
2.根据权利要求1所述的一种车载网的数据通信实现方法,其特征在于,在路段RS1由交叉路口TS1和交叉路口TS2定义,交叉路口TS1的坐标为(xTS1,yTS1),交叉路口TS2的坐标为(xTS2,yTS2);一个车辆节点的坐标为(x’,y’)的条件下,如果满足下述四种情况之一,则可判断该车辆节点位于路段RS1上:情况1:如果xTS1>xTS2且yTS1>yTS2,则存在xTS1≥x’≥xTS2且yTS1≥y’≥yTS2;
情况2:如果xTS2>xTS1且yTS1>yTS2,则存在xTS2≥x’≥xTS1且yTS1≥y’≥yTS2;
情况3:如果xTS1>xTS2且yTS2>yTS1,则存在xTS1≥x’≥xTS2且yTS2≥y’≥yTS1;
情况4:如果xTS2>xTS1且yTS2>y1,则存在xTS2≥x’≥xTS1且yTS2≥y’≥yTS1;
如果一个车辆节点在路段RS1上,则定期执行下述过程建立车辆节点表:
步骤201:开始;
步骤202:车辆节点发送一个发布消息,该发布消息的源地址为该车辆节点的硬件ID,目的地址为广播地址,负载为该车辆节点的速度;
步骤203:其他车辆节点接收到该发布消息后,如果接收到该发布消息的车辆节点存在一个车辆节点表,该车辆节点表的表名为坐标二元组<(xTS1,yTS1),(xTS2,yTS2)>或者<(xTS2,yTS2),(xTS1,yTS1)>,则执行步骤205,否则执行步骤204;
步骤204:接收到该发布消息的车辆节点创建一个车辆节点表,该车辆节点表的表名为坐标二元组<(xTS1,yTS1),(xTS2,yTS2)>或者<(xTS2,yTS2),(xTS1,yTS1)>;
步骤205:接收到该发布消息的车辆节点查看表名为坐标二元组<(xTS1,yTS1),(xTS2,yTS2)>或者<(xTS2,yTS2),(xTS1,yTS1)>的车辆节点表,如果存在一个车辆节点表项,该车辆节点表项的硬件ID等于该发布消息的源地址,则执行步骤206,否则执行步骤207;
步骤206:接收到该发布消息的车辆节点选择一个车辆节点表项,该车辆节点表项的硬件ID等于该发布消息的源地址,将该车辆节点表项的速度更新为该发布消息负载中的速度值,将生命周期设置为最大值,执行步骤208;
步骤207:接收到该发布消息的车辆节点创建一个车辆节点表项,该车辆节点表项的硬件ID等于该发布消息的源地址,该车辆节点表项的速度等于该发布消息负载中的速度值,生命周期设置为最大值;
步骤208:如果接收到该发布消息的车辆节点位于路段RS1上,则执行步骤209,否则执行步骤210;
步骤209:接收到该发布消息的车辆节点转发该发布消息,执行步骤203;
步骤210:结束;
如果一个车辆节点经过坐标交叉路口TS1的坐标(xTS1,yTS1)进入路段RS1,则该车辆节点的车辆节点表的表名为坐标二元组名称<(xTS1,yTS1),(xTS2,yTS2)>;如果一个车辆节点经过交叉路口TS2的坐标(xTS2,yTS2)进入路段RS1,则该车辆节点的车辆节点表的表名为坐标二元组名称<(xTS2,yTS2),(xTS1,yTS1)>;
车辆节点建立表名为<(xTS1,yTS1),(xTS2,yTS2)>或者<(xTS2,yTS2),(xTS1,yTS1)>的车辆节点表后,保存该车辆节点表中所有车辆节点表项中的速度域中的最大值MSRS1以及该车辆节点表中所有车辆节点表项中的速度域的平均值ASRS1。
3.根据权利要求2所述的一种车载网的数据通信实现方法,其特征在于,一个车辆节点保存一个路段表,一个路段表项包含源坐标域、目的坐标域、最大速度域和平均速度域;
路段RS1由交叉路口TS1和交叉路口TS2定义,交叉路口TS1的坐标为(xTS1,yTS1),交叉路口TS2的坐标为(xTS2,yTS2),交叉路口TS1属于n1个路段,n1≥a≥1,第a个路段由交叉路口TS1和交叉路口Ta定义,交叉路口Ta的坐标为(xa,ya);
交叉路口TS2属于n2个路段,n2≥b≥1,第b个路段,由交叉路口TS2和交叉路口Tb定义,交叉路口Tb的坐标为(xb,yb);
对于交叉路口TS1所属于的每个路段TS’,位于路段RS1上的车辆节点创建一个路段表项,该路段表项的源坐标为交叉路口TS1的坐标(xTS1,yTS1),目的坐标为确定该路段TS’的另一个交叉路口的坐标;车辆节点选择一个路段表项,该路段表项的源坐标为(xTS1,yTS1),目的坐标为(xTS2,yTS2),将最大速度设置为最大值MSRS1,将速度平均值设置为平均值ASRS1;
对于交叉路口TS2所属于的每个路段TS”,位于路段RS1上的车辆节点创建一个路段表项,该路段表项的源坐标为交叉路口TS2的坐标(xTS2,yTS2),目的坐标为确定该路段TS”的另一个交叉路口的坐标;车辆节点选择一个路段表项,该路段表项的源坐标为(xTS2,yTS2),目的坐标为(xTS1,yTS1),将最大速度设置为最大值MSRS1,将速度平均值设置为平均值ASRS1;
在路段RS1上的车辆节点进入坐标(xTS1,yTS1)或者(xTS2,yTS2)的通信区域后,即以坐标(xTS1,yTS1)或者(xTS2,yTS2)为中心,半径为r的圆覆盖的区域定期发送路段发布消息,车辆节点该路段发布消息的源地址为自己的硬件ID,目的地址为广播地址,负载为表名为<(xTS1,yTS1),(xTS2,yTS2)>或者<(xTS2,yTS2),(xTS1,yTS1)>的车辆节点表;
车辆节点V3接收到路段发布消息后,该路段发布消息的负载为表名<(xTS1,yTS1),(xTS2,yTS2)>或者<(xTS2,yTS2),(xTS1,yTS1)>的车辆节点表,车辆节点V3执行下述操作:步骤301:开始;
步骤302:如果车辆节点V3位于路段RS1,则执行步骤303,否则执行步骤304;
步骤303:车辆节点V3丢弃接收到的路段发布消息,执行步骤305;
步骤304:车辆节点V3查看接收到的路段发布消息负载中的车辆节点表,计算该车辆节点表中所有车辆节点表项的速度域值的最大值MS1和平均值AS1,车辆节点V3查看路段表,选择满足条件1或者条件2的路段表项,将该路段表项的最大速度域值设置为MS1,平均速度域值设置为AS1;
条件1:路段表项的源坐标等于接收到的路段发布消息负载中的车辆节点表的表名的第一个元素,路段表项的目的坐标等于接收到的路段发布消息负载中的车辆节点表的表名的第二个元素;
条件2:路段表项的源坐标等于接收到的路段发布消息负载中的车辆节点表的表名的第二个元素,路段表项的目的坐标等于接收到的路段发布消息负载中的车辆节点表的表名的第一个元素;
步骤305:结束。
4.根据权利要求2所述的一种车载网的数据通信实现方法,其特征在于,路段RS1由交叉路口TS1和交叉路口TS2定义,交叉路口TS1的坐标为(xTS1,yTS1),交叉路口TS2的坐标为(xTS2,yTS2);车辆节点V1的坐标为(xV1,yV1),硬件ID为MV1,车辆节点V2的坐标为(xV2,yV2),硬件ID为MV2,车辆节点V1和车辆节点V2都位于路段RS1;车辆节点V1通过下述过程与车辆节点V2通信:、步骤401:开始;
步骤402:车辆节点V1查看邻居表,如果存在一个邻居表项,该邻居表项的硬件ID等于MV2,则执行步骤403,否则执行步骤404;
步骤403:车辆节点V1发送一个请求消息,该请求消息的源地址为自己的硬件ID,目的地址为MV2,负载为硬件ID二元组
步骤404:车辆节点V1选择一个邻居表项,该邻居表项的坐标域值距离车辆节点V2的坐标最近,车辆节点V1发送一个请求消息,该请求消息的源地址为自己的硬件ID,目的地址为该邻居表项的硬件ID,负载为硬件ID二元组
步骤405:判断是否车辆节点V2接收到该请求消息,是则执行步骤409,否则执行步骤
406;
步骤406:接收到请求消息的车辆节点查看邻居表,如果存在一个邻居表项,该邻居表项的硬件ID等于该请求消息负载中的硬件ID二元组中的第二个元素,则执行步骤407,否则执行步骤408;
步骤407:接收到请求消息的车辆节点选择一个邻居表项,该邻居表项的硬件ID等于该请求消息负载中的硬件ID二元组中的第二个元素,将该请求消息的目的地址更新为该邻居表项的硬件ID域值,转发该请求消息,执行步骤405;
步骤408:接收到请求消息的车辆节点选择一个邻居表项,该邻居表项的坐标域值与该请求消息的坐标三元组的第二个元素距离最近,将该请求消息的目的地址更新为该邻居表项的硬件ID,转发该请求消息,执行步骤405;
步骤409:车辆节点V2接收到请求消息后,查看邻居表,如果存在一个邻居表项,该邻居表项的硬件ID等于该请求消息硬件ID二元组中的第一个元素,则执行步骤410,否则执行步骤411;
步骤410:车辆节点V2选择一个邻居表项,该邻居表项的硬件ID等于该请求消息硬件ID二元组中的第一个元素,车辆节点V2发送一个响应消息,该响应消息的源地址为自己的硬件ID,目的地址为该邻居表项的硬件ID,负载为响应数据以及接收到的请求消息负载中的硬件ID二元组和坐标三元组,执行步骤412;
步骤411:车辆节点V2选择一个邻居表项,该邻居表项的坐标域值与接收到的请求消息负载中的坐标三元组的第一个元素距离最近,车辆节点V2发送一个请求消息,该请求消息的源地址为自己的硬件ID,目的地址为该邻居表项的硬件ID,负载为响应数据以及接收到的请求消息负载中的硬件ID二元组和坐标三元组;
步骤412:判断是否车辆节点V1接收到该响应消息,是则执行步骤416,否则执行步骤413;
步骤413:接收到响应消息的车辆节点查看邻居表,如果存在一个邻居表项,该邻居表项的硬件ID等于该响应消息负载中的硬件ID二元组中的第一个元素,则执行步骤414,否则执行步骤415;
步骤414:接收到响应消息的车辆节点选择一个邻居表项,该邻居表项的硬件ID等于该响应消息负载中的硬件ID二元组中的第一个元素,将该响应消息的目的地址更新为该邻居表项的硬件ID域值,转发该响应消息,执行步骤412;
步骤415:接收到响应消息的车辆节点选择一个邻居表项,该邻居表项的坐标域值与该响应消息负载中的坐标三元组的第一个元素距离最近,将该响应消息的目的地址更新为该邻居表项的硬件ID,转发该响应消息,执行步骤412;
步骤416:车辆节点V1接收到响应消息后,保存该响应消息负载中的响应数据;
步骤417:结束。
5.根据权利要求4所述的一种车载网的数据通信实现方法,其特征在于,路段RS1由交叉路口TS1和交叉路口TS2定义,交叉路口TS1的坐标为(xTS1,yTS1),交叉路口TS2的坐标为(xTS2,yTS2);车辆节点V1的坐标为(xV1,yV1),硬件ID为MV1,车辆节点V4的坐标为(xV4,yV4),硬件ID为MV4,车辆节点V1位于路段RS1;车辆节点V4位于路段RS4,路段RS4由交叉路口TS3和交叉路口TS4定义,交叉路口TS3的坐标为(xTS3,yTS3),交叉路口TS4的坐标为(xTS4,yTS4);车辆节点V1通过下述过程与车辆节点V4通信:步骤501:开始;
步骤502:车辆节点V1计算坐标(xV1,yV1)与坐标(xTS1,yTS1)的距离d1,计算坐标(xV1,yV1)与坐标(xTS2,yTS2)的距离d2,如果距离d2大于距离d1,车辆节点V1选择一个邻居表项,该邻居表项的坐标域值与坐标(xTS1,yTS1)的距离最近,发送一个请求消息,该请求消息的源地址为自己的硬件ID,目的地址为该邻居表项的硬件ID,负载为硬件ID二元组
步骤503:判断是否车辆节点V4接收到该请求消息,是则执行步骤511,否则执行步骤
504;
步骤504:如果位于一个交叉路口的车辆节点接收到该请求消息,则执行步骤510,否则执行步骤505;
步骤505:如果接收到请求消息的车辆节点位于路段RS4且存在一个邻居表项,该邻居表项的硬件ID等于该请求消息负载中的硬件ID二元组中的第二个元素,则执行步骤506,否则执行步骤507;
步骤506:接收到请求消息的车辆节点选择一个邻居表项,该邻居表项的硬件ID等于该请求消息负载中的硬件ID二元组中的第二个元素,将该请求消息的目的地址更新为该邻居表项的硬件ID域值,转发该请求消息,执行步骤503;
步骤507:如果接收到请求消息的车辆节点位于路段RS4,则执行步骤508,否则执行步骤509;
步骤508:接收到请求消息的车辆节点选择一个邻居表项,该邻居表项的坐标域值与该请求消息的坐标三元组的第二个元素距离最近,将该请求消息的目的地址更新为该邻居表项的硬件ID,转发该请求消息,执行步骤503;
步骤509:接收到请求消息的车辆节点选择一个邻居表项,该邻居表项的坐标域值与该请求消息的坐标三元组的第三个元素距离最近,将该请求消息的目的地址更新为该邻居表项的硬件ID,转发该请求消息,执行步骤503;
步骤510:位于交叉路口的车辆节点接收到该请求消息后,将该交叉路口的坐标记为(xS1,yS1),该车辆节点查看路段表;如果存在一个路段表项,该路段表项的源坐标和目的坐标分别为(xTS3,yTS3)和(xTS4,yTS4),或者该路段表项的源坐标和目的坐标分别为(xTS4,yTS4)和(xTS3,yTS3),则该车辆节点将该请求消息坐标三元组的第三个元素设置为该路段表项的目的坐标;选择一个邻居表项,该邻居表项的坐标域值与该请求消息坐标三元组的第二个元素距离最近,将该请求消息的目的地址更新为该邻居表项的硬件ID,转发该请求消息,执行步骤503;如果不存在所述路段表项,该车辆节点选择所有源坐标等于坐标(xS1,yS1)的路段表项,针对每个选中的路段表项E1,该车辆节点根据公式(1)计算路段表项E1的权值WE1,该车辆节点选择权值最小的路段表项,将该请求消息坐标三元组的第三个元素设置为该路段表项的目的坐标,选择一个邻居表项,该邻居表项的坐标域值与该请求消息坐标三元组的第三个元素距离最近,将该请求消息的目的地址更新为该邻居表项的硬件ID,转发该请求消息,执行步骤503;
公式(1)中,(xS2,yS2)为路段表项E1的目的坐标,vMax-E1和vAve-E1分别为路段表项E1的最大速度和平均速度域值;
步骤511:车辆节点V4接收到该请求消息后,计算坐标(xV4,yV4)与坐标(xTS3,yTS3)的距离d3,计算坐标(xV4,yV4)与坐标(xTS4,yTS4)的距离d4,如果距离d4大于距离d3,车辆节点V4选择一个邻居表项,该邻居表项的坐标域值与坐标(xTS3,yTS3)的距离最近,发送一个响应消息,该响应消息的源地址为自己的硬件ID,目的地址为该邻居表项的硬件ID,负载为响应数据、硬件ID二元组和坐标三元组,其中硬件ID二元组等于接收到的请求消息负载中的硬件ID二元组,坐标三元组的前两个元素等于接收到的请求消息负载中的坐标三元组的前两个元素,第三个元素等于(xTS3,yTS3);如果距离d4不大于距离d3,车辆节点V4选择一个邻居表项,该邻居表项的坐标域值与坐标(xTS4,yTS4)的距离最近,车辆节点V4发送一个响应消息,该响应消息的源地址为自己的硬件ID,目的地址为该邻居表项的硬件ID,负载为响应数据、硬件ID二元组和坐标三元组,其中硬件ID二元组等于接收到的请求消息负载中的硬件ID二元组,坐标三元组的前两个元素等于接收到的请求消息负载中的坐标三元组的前两个元素,第三个元素等于(xTS4,yTS4);
步骤512:判断是否车辆节点V1接收到该响应消息,是则执行步骤520,则执行步骤513;
步骤513:如果位于一个交叉路口的车辆节点接收到该响应消息,则执行步骤519,否则执行步骤514;
步骤514:如果接收到响应消息的车辆节点位于路段RS1且存在一个邻居表项,该邻居表项的硬件ID等于该响应消息负载中的硬件ID二元组中的第一个元素,则执行步骤515,否则执行步骤516;
步骤515:接收到响应消息的车辆节点选择一个邻居表项,该邻居表项的硬件ID等于该响应消息负载中的硬件ID二元组中的第一个元素,将该响应消息的目的地址更新为该邻居表项的硬件ID域值,转发该响应消息,执行步骤512;
步骤516:如果接收到响应消息的车辆节点位于路段RS1,则执行步骤517,否则执行步骤518;
步骤517:接收到响应消息的车辆节点选择一个邻居表项,该邻居表项的坐标域值与该响应消息的坐标三元组的第一个元素距离最近,将该响应消息的目的地址更新为该邻居表项的硬件ID,转发该响应消息,执行步骤512;
步骤518:接收到响应消息的车辆节点选择一个邻居表项,该邻居表项的坐标域值与该响应消息的坐标三元组的第三个元素距离最近,将该响应消息的目的地址更新为该邻居表项的硬件ID,转发该响应消息,执行步骤512;
步骤519:位于交叉路口的车辆节点接收到该响应消息后,将该交叉路口的坐标记为(xS3,yS3),该车辆节点查看路段表;如果存在一个路段表项,该路段表项的源坐标和目的坐标分别为(xTS1,yTS1)和(xTS2,yTS2),或者该路段表项的源坐标和目的坐标分别为(xTS2,yTS2)和(xTS1,yTS1),则该车辆节点将该响应消息坐标三元组的第三个元素设置为该路段表项的目的坐标,选择一个邻居表项,该邻居表项的坐标域值与该响应消息坐标三元组的第一个元素距离最近,将该响应消息的目的地址更新为该邻居表项的硬件ID,转发该响应消息;如果不存在一个路段表项,该车辆节点选择所有源坐标等于坐标(xS3,yS3)的路段表项,针对每个选中的路段表项E2,该车辆节点根据公式(2)计算路段表项E2的权值WE2,该车辆节点选择权值最小的路段表项,将该响应消息坐标三元组的第三个元素设置为该路段表项的目的坐标,选择一个邻居表项,该邻居表项的坐标域值与该响应消息坐标三元组的第三个元素距离最近,将该响应消息的目的地址更新为该邻居表项的硬件ID,转发该响应消息,执行步骤512;
公式(2)中,(xS4,yS4)为路段表项E2的目的坐标,vMax-E2和vAve-E2分别为路段表项E2的最大速度和平均速度域值;
步骤520:车辆节点V1接收到该响应消息后,保存该响应消息负载中的响应数据;
步骤521:结束。