发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的目的在于提出一种基于公交车的车联网数据传输方法,该方法有助于提高车联网数据传输的可靠性,提升传输效率。
为达到上述目的,本发明提出了基于公交车的车联网数据传输方法,包括以步骤:S1,构架公交站点拓扑图,并获取车载节点生成的数据;S2,根据所述公交站点拓扑图判断目的地是否在所述车载节点预设通信半径内;S3,若不在所述预设通信半径内,则将所述数据转发给距离当前站点最近的公交车,并根据所述公交站点拓扑图和迪杰斯特拉算法,计算公交车从所述当前站点到目的站点的最优路径,其中,所述车载节点为所述当前站点;S4,根据所述最优路径计算所述当前站点到下一站点之间的候选公交集合;S5,根据所述当前站点的预设通信半径,判断所述候选公交集合是否存在候选公交,若存在,则计算所述候选公交集合中全部候选公交的优先级集合;S6,对所述优先级集合进行筛选生成最高优先级候选公交,并将所述数据转发给所述最高优先级候选公交,通过所述最高优先级候选公交携带至下一站点;S7,判断下一站点是否为所述目的站点,若不是,则循环执行步骤S4-S7,若是,则将所述数据转发给社会车辆携带至所述目的地。
本发明实施例的基于公交车的车联网数据传输方法,利用城市场景中存在且广泛分布的公交车已知的线路信息以及到站信息,从众多公交车中选出合适的车辆,来构成数据传输路径,从而实现数据从源端经多辆公交车转发到达目的区域。
另外,根据本发明上述实施例的基于公交车的车联网数据传输方法还可以具有以下附加的技术特征:
在本发明的一个实施例中,所述构架公交站点拓扑图,进一步包括:利用预设研究场景范围内的所有公交点构建无向公交站点拓扑图。
在本发明的一个实施例中,所述步骤S3还包括:若在所述预设通信半径内,则将所述数据直接发送至所述目的地。
在本发明的一个实施例中,所述步骤S5还包括:若不存在,则根据所述最优路径计算所述当前站点到下一站点之间的临时公交集合,并根据所述当前站点的预设通信半径,判断所述临时公交集合是否存在临时公交。
在本发明的一个实施例中,若存在所述临时公交,则将所述数据转发给所述临时公交,通过所述临时公交携带至下一站点;执行步骤S7。
在本发明的一个实施例中,若不存在所述临时公交,则建立多跳链路筛选符合预设条件的下一跳公交节点,并根据所述公交节点确定优选公交,将数据转发给所述优选公交,通过所述优选公交携带至下一站点;执行步骤S7。
在本发明的一个实施例中,所述建立多跳链路寻找符合预设条件的下一跳公交节点,进一步包括:将初始携带数据的公交车记为路径搜索起点;通过所述路径搜索起点发出路径嗅探包ROUTE_REQ,收集所述预设通信半径内全部邻居社会车辆的行驶信息,以确定节点转发优先级非零且最小的邻居社会车辆作为所述下一跳公交节点。
在本发明的一个实施例中,将所述路径嗅探包ROUTE_REQ发给所述下一跳公交节点,以所述下一跳公交节点为当前公交车,判断在所述当前公交车的预设通信半径内,是否存在候选公交,若存在,则将所述路径嗅探包ROUTE_REQ发送给所述最高优先级的候选公交,所述最高优先级的候选公交返回ROUTE_REPLY数据包,若所述路径搜索起点收到所述ROUTE_REPLY数据包,则成功建立多跳链路,根据所述多跳链路确定所述优选公交;否则,判断在所述当前公交车的预设通信半径内,是否存在临时公交,若存在,则将所述路径嗅探包ROUTE_REQ发送给任意一个临时公交,临时公交返回所述ROUTE_REPLY数据包,若所述路径搜索起点收到所述ROUTE_REPLY数据包,则成功建立多跳链路,根据所述多跳链路确定所述优选公交;否则,所述路径搜索起点重新发出路径嗅探包ROUTE_REQ,寻找新的下一跳公交节点。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参照附图描述根据本发明实施例提出的基于公交车的车联网数据传输方法。
图1是本发明一个实施例的基于公交车的车联网数据传输方法流程图。
如图1所示,该基于公交车的车联网数据传输方法包括以下步骤:
在步骤S1中,构架公交站点拓扑图,并获取车载节点生成的数据。
其中,发明实施例利用预设研究场景范围内的所有公交点构建无向公交站点拓扑图,拓扑图中节点代表公交站点,相邻站点之间连边。
在步骤S2中,根据公交站点拓扑图判断目的地是否在车载节点预设通信半径内。
在步骤S3中,若不在预设通信半径内,则将数据转发给距离当前站点最近的公交车,并根据公交站点拓扑图和迪杰斯特拉算法,计算公交车从当前站点到目的站点的最优路径,其中,车载节点为当前站点,目的站点为离目的地最近的公交站点。
进一步地,若在预设通信半径内,则将数据直接发送至目的地。
具体而言,当任意车载节点产生数据需要发送时,若数据的目的地在其通信半径以内,数据将直接发送到目的地;否则,车载节点将数据发向距离当前位置最近的公交站点附近的公交车。以距离当前位置最近的公交站点为信息源站点,距离数据的目的位置最近的公交站点为信息的目的站点。然后通过下述步骤,利用公交车实现数据从源站点到目的站点的传输,并最终传输到目的地。
可以理解的是,本发明实施例以最优路径作为数据传输的基本路径。
在步骤S4中,根据最优路径计算当前站点到下一站点之间的候选公交集合。
其中,候选公交集合表示连续经过最优路径中两个相邻站点的公交集。
在步骤S5中,根据当前站点的预设通信半径,判断候选公交集合是否存在候选公交,若存在,则计算候选公交集合中全部候选公交的优先级集合。
其中,若不存在,则根据最优路径计算当前站点到下一站点之间的临时公交集合,并根据当前站点的预设通信半径,判断临时公交集合是否存在临时公交。
进一步,若存在临时公交,则将数据转发给临时公交,通过临时公交携带至下一站点;执行步骤S7。
若不存在临时公交,则建立多跳链路筛选符合预设条件的下一跳公交节点,并根据公交节点确定优选公交,将数据转发给优选公交,通过优选公交携带至下一站点;执行步骤S7。
在本发明的一个实施例中,建立多跳链路寻找符合预设条件的下一跳公交节点,进一步包括:
将初始携带数据的公交车记为路径搜索起点;
通过路径搜索起点发出路径嗅探包ROUTE_REQ,收集预设通信半径内全部邻居社会车辆的行驶信息,以确定节点转发优先级非零且最小的邻居社会车辆作为下一跳公交节点。
将路径嗅探包ROUTE_REQ发给下一跳公交节点,以下一跳公交节点为当前公交车,判断在当前公交车的预设通信半径内,是否存在候选公交;
若存在,则将路径嗅探包ROUTE_REQ发送给最高优先级的候选公交,最高优先级的候选公交返回ROUTE_REPLY数据包,若路径搜索起点收到ROUTE_REPLY数据包,则成功建立多跳链路,根据多跳链路确定优选公交;
否则,判断在当前公交车的预设通信半径内,是否存在临时公交,若存在,则将路径嗅探包ROUTE_REQ发送给任意一个临时公交,临时公交返回ROUTE_REPLY数据包,若路径搜索起点收到ROUTE_REPLY数据包,则成功建立多跳链路,根据多跳链路确定优选公交;
否则,路径搜索起点重新发出路径嗅探包ROUTE_REQ,寻找新的下一跳公交节点。
需要说明的是,候选公交是数据传输过程中的主要转发节点。
在步骤S6中,对优先级集合进行筛选生成最高优先级候选公交,并将数据转发给最高优先级候选公交,通过最高优先级候选公交携带至下一站点。
其中,候选公交优先级指候选公交经过的公交站与最优路径上后续站点的重合情况。
在步骤S7中,判断下一站点是否为目的站点,若不是,则循环执行步骤S4-S7,若是,则将数据转发给社会车辆携带至目的地。
下面通过具体举例对本发明实施例实现的过程进行详细说明。
首先,对本发明实施例中相关名词进行定义,并设定必要的规则,具体如下所示:
定义1,公交站点集S表示研究区域内的所有公交站点集合,记为S={s1,s2,s3,...,sn}。
定义2,公交线路集B表示研究区域内的所有公交线路的集合,记为B={b1,b2,b3,...,bm}。
定义3,最优路径R是由多个公交站点构成的序列,通过最短路径算法计算得到,它规定了数据基本的传输路径,表示为R=<s′1,s′2,s′3,...,s′k>,s′k∈S。
定义4,线路站点集P
l表示公交线路b
l(1≤l≤m)经过的站点序列,记为
定义5,途径公交集C
i表示途径站点s
i的所有公交线路的集合,记为
定义6,相邻站点是指至少存在一条公交线路连续经过的两个公交站点。相邻站点有公交车可达,故数据可以在这两个站点之间由公交车携带并转发。
定义7,站点间公交重合度Fi,j表示两个相邻站点si和sj之间的可通行公交线路个数,依据si和sj的途经公交集计算,即Fi,j=|Ci∩Cj|。该值越大,表示两个站点之间可通行的公交线路越多,数据通过该段道路成功传输的概率越高。
定义8,站点间距离D
i,j表示两个相邻站点s
i和s
j之间的距离,计算公式为
其中(x
i,y
i)和(x
j,y
j)分别表示站点s
i和s
j的地理位置坐标。该值越大,表示s
i到s
j或s
j到s
i之间行驶时间越长,数据传输时延越长。
定义9,站点间路段代价Q
i,j表示两个相邻站点s
i和s
j之间的路段被用于数据传输的代价,用于计算最优路径。该值由F
i,j和D
i,j两个值确定,计算公式为
其中,α代表权值,0<α<1,Max(F)表示研究范围内所有相邻站点间的公交重合度F的最大值,Min(F)表示研究范围内所有相邻站点间的公交重合度F的最小值;Max(D)表示研究范围内所有相邻站点间的距离D的最大值,Min(D)表示研究范围内所有相邻站点间的距离D的最小值。Q
i,j越小,表示该路段的代价越低。
定义10,候选公交集CB
i,j表示连续经过最优路径R中两个相邻站点s
i和s
j的公交集合,表示为
候选公交是数据传输过程中的主要转发节点。
定义11,候选公交优先级Y
m是指候选公交b
m将经过的公交站点与最优路径上后续站点的重合情况,表示为
其中
表示公交线路b
m在当前站点之后将经过的公交站点的集合,R
→表示最优路径中在当前站点之后的公交站点的集合。当多个候选公交可以充当数据转发节点时,选择候选公交优先级高的车辆优先转发数据。
定义12,临时公交集TB
i,j表示从站点s
i到站点s
j之间路段上的临时公交集合,其中s
i和s
j是最优路径R中连续的两个站点;临时公交是指将到达站点s
j,其经过的上一个站点不是s
i的公交(区别于候选公交),表示为
定义13,路径嗅探包ROUTE_REQ:在多跳传输时,需要向社会车辆(非公交车辆统称“社会车辆”)发送该数据包,该数据包记录经过的每个车辆节点的唯一编号,作为后续数据发送时的发送路径。
定义14,路由返回数据包ROUTE_REPLY:在建立多跳链路过程中,当寻找到合适的下一跳公交过程中,该数据包会沿着ROUTE_REQ数据包中记录的车辆节点,返回源公交车,接下来数据将沿着这条多跳路径进行传输。
定义15,相对速度大小RVz,w表示车辆z和车辆w的相对速度大小,记车辆z的速度为Vz,车辆w的速度为Vw。相对速度大小表示为RVz,w=|Vz-Vw|,相对速度小的车辆优先转发数据。
定义16,相对速度方向RDz,w表示车辆z和车辆w的相对行驶方向,若车辆z和车辆w的行驶方向相同,则RDz,w=1;否则,RDz,w=0。行驶方向相同的车辆优先转发数据。
定义17,相对位置RLz,w表示车辆z和车辆w的相对位置,沿数据传输方向,若车辆w位于车辆z的前方,则RLz,w=1;否则,RLz,w=0。位于数据携带车辆前方的车辆优先被选为转发节点。
定义18,节点转发优先级NRz,w表示车辆w能够为车辆z转发数据的优先级,由参数RVz,w、RDz,w和RLz,w综合计算得到,即NRz,w=RVz,w·RDz,w·RLz,w。
其次,如图2所示,实现数据传输的详细步骤为:
步骤一,构造公交站点拓扑图
步骤1-1,利用研究场景范围内的所有公交站点构建无向图,图中节点代表公交站点,相邻站点之间连边。
步骤1-2,对于任意相邻站点si和sj,计算站点间公交重合度Fi,j=|Ci∩Cj|。
步骤1-3,对于任意相邻站点s
i和s
j,使用公交站点的地理位置信息,计算站点间距离
其中(x
i,y
i)和(x
j,y
j)分别表示站点s
i和s
j的地理位置坐标。
步骤1-4,于任意相邻站点s
i和s
j,计算站点间路段代价
α代表权值,0<α<1。
步骤1-5,对所有相邻站点,执行步骤1-2至1-4,并将站点间路段代价作为相邻站点之间的边权值。
如图3所示,每个节点都代表一个公交站点;公交站点之间的边表示至少存在一条公交线连续经过该边两端的站点;每条边上的权值Qi,j表示两站点间道路的代价,该值越小,该路段越优先传输数据;在本图中S1代表信息传输的源站点,S10代表信息传输目的站点。图中三种虚线分别代表三条不同的公交线路。
步骤二,确定源站点和目的站点
当任意车载节点产生数据需要发送时,若数据的目的地在其通信半径以内,数据将直接发送到目的地;否则,车载节点将数据发向距离当前位置最近的公交站点附近的公交车。以距离当前位置最近的公交站点为信息源站点,距离数据的目的位置最近的公交站点为信息的目的站点。通过下述步骤,利用公交车实现数据从源站点到目的站点的传输,并最终传输到目的地。
步骤三,计算最优路径
在公交站点拓扑图中,采用迪杰斯特拉算法,计算从源站点到目的站点的最优路径R,作为数据传输的基本路径。
步骤四,相邻站点之间的数据传输
步骤4-1,当携带数据的公交车(称为当前公交车)到达最优路径上的站点s
i时,找到最优路径上的下一个站点s
j,计算相邻站点s
i和s
j之间的候选公交集
步骤4-2,若当前公交车不属于候选公交集CBi,j,则执行步骤4-3;否则执行步骤4-5。
步骤4-3,若当前公交车的通信范围内存在候选公交(称为邻居候选公交),则计算邻居候选公交的候选公交优先级
将数据转发给候选公交优先级最大的邻居候选公交,执行步骤4-6;否则,执行步骤4-4。
步骤4-4,计算相邻站点s
i和s
j之间的临时公交集
若当前公交车的通信范围内存在临时公交,则将数据转发给任意一个临时公交,执行步骤4-6;否则,执行“步骤五:建立多跳链路寻找合适的下一跳公交节点”。
步骤4-5,若当前公交车的通信范围内存在候选公交(称为邻居候选公交),则计算邻居候选公交以及当前公交车的候选公交优先级,若存在邻居候选公交的候选公交优先级高于当前公交车,则将数据转发给候选公交优先级最大的邻居候选公交。
步骤4-6,重复执行步骤4-2至4-5,直到数据传输到达站点sj。
步骤4-7,重复执行步骤4-1至4-6,直到数据传输到达目的站点。
步骤五,建立多跳链路寻找合适的下一跳公交节点
步骤5-1,将起始时刻携带数据的公交车记为路径搜索起点。
步骤5-2,当前公交车(携带数据的公交车)发出路径嗅探包ROUTE_REQ,收集邻居车辆(在其通信范围内的社会车辆)的速度和位置信息。为每个邻居车辆计算节点转发优先级NRz,w=RVz,w·RDz,w·RLz,w,选择NRz,w非零且最小的值所对应的车辆作为下一跳节点。
步骤5-3,将ROUTE_REQ数据包发给下一跳节点,以该节点为当前公交车,判断在其通信范围内是否存在候选公交。若存在,则将ROUTE_REQ数据包发送给候选公交优先级最大的候选公交,该候选公交返回ROUTE_REPLY数据包,执行步骤5-4;
否则,判断在其通信范围内是否存在临时公交,若存在,则将ROUTE_REQ数据包发送给任意一个临时公交,该临时公交返回ROUTE_REPLY数据包,执行步骤5-4;
否则,即在其通信范围内不存在候选公交或临时公交,则执行步骤5-2。
步骤5-4,在路径搜索时间阈值内,若路径搜索起点收到ROUTE_REPLY数据包,则表示成功建立了多跳传输路径。沿该多跳链路,进行数据传输。
如图4所示,当合适的下一跳公交处于当前公交车(公交A)通信范围以内,两个公交车可以直接通信,传递信息;例如图中的A,B两个公交。当合适的下一跳公交不在当前公交车(公交B)通信范围以内,则利用社会车辆建立多跳链路进行通信,如图中B,C。
根据本发明实施例提出的基于公交车的车联网数据传输方法,利用公交车在车联网中充当数据传输的转发节点,由于公交车有着固定的运行路线和发车时间,有助于提高车联网数据传输的可靠性;通过计算最优路径和候选公交优先级,选择合适的候选公交或临时公交转发数据,提升传输效率。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。