本发明涉及车载网络,特别涉及一种车辆间点对点通信方法。
背景技术:
为了让交通运输的效率得以提升,减缓资源的消耗速度,车辆研发环节中不可避免地采用智能交通系统,而车辆间网络也已成为优化现代交通的热点课题。人们可利用配备在车辆上的无线通信设备,完成车辆节点之间的直接或间接通信,同时,车辆节点也可以同路边固定通信设备在其相对应的无线通信信道上实现无线通讯,以此来达到车辆间网络在智能交通系统中对各种传输信息完成传输、处理及交互过程的目的。从提高服务便捷性方面来看,驾驶员能够将其他车辆广播出来的各种信息搜集起来,从而很方便的找到附近的一些服务点。同时采用电子不停车收费系统,可以大大缩短车辆在支付等待时间。安装在道路两旁的设备与车辆自身携带的信息公共作用之后,相关部门能够充分利用这些信息对交通进行智能的调度。
然而车辆本身是高速移动中的,并且由于城市道路对其限制较大,网络的拓扑方面也是瞬息万变的,各个节点之间进行通讯的时间较短,现有的车辆间通信方法不能很好地实时适应车载网络的拓扑结构频繁变换的动态特性,因此提高网络的吞吐量等网络特性方面没有发挥出较为优质的表现。在车载节点过多时常常造成网络堵塞。
技术实现要素:
为解决上述现有技术所存在的问题,本发明提出了一种车辆间点对点通信方法,包括:
车载节点应用层管理模块采集无线网络中的数据,分析数据的来源和类型,实现对上层报文信息的收发管理,编码规则设置和侦听;路由管理模块进行路由机制的选择,路由请求以及侦听应答;接入管理模块在路由层获得数据同时对其分配随机的目标地址,然后将这些地址信息送到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。如果Inum<K-1则转5。
(5)判断i是否大于节点v群体集的大小,如果是则转7;如果不是则转4。
(6)计算节点u和v累计相遇时长W(u,v),判断是否W(u,v)>T,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不转发报文。
根据上面几种情况转发报文,直到遇到目标节点,将报文递交。
综上所述,本发明提出了一种车辆间点对点通信方法,适用于车载网络的拓扑结构频繁变换的条件,提高网络的吞吐量,降低网络拥塞。
显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。