1.一种满足实时数据带宽需求的时隙分配方法,其特征在于,所述时隙分配方法包括下列步骤:
S1、源节点u通过广播Request包的方式发起路由建立过程,路由的连续三跳链路由四个节点组成,使用所述Request包记录路由信息,在Request包定义字段index表示当前节点在路由最新一段未分配链路中的序号,定义字段N为节点在路由中的序号,令N=0和index=0;
S2、在所述Request包中定义数组free记录路由最新一段未分配链路中各节点的可用时隙集合,将源节点u的可用时隙集合记录到free[index=0]中,将所述Request包广播到源节点的邻居节点w;
S3、邻居节点w接收到所述Request包,判断是否已经接收所述Request包,若已经接收所述Request包,则丢弃不做额外处理,否则执行步骤S4的操作;
S4、更新字段N=N+1、index=index+1,将当前邻居节点w的可用时隙集合记录到数组free[index]中;
S5、判断当前邻居节点w是否为路由目标节点,若当前邻居节点w是目标节点,进行路由最后一段链路的时隙分配,执行步骤S6的操作;若当前邻居节点w是到达目标节点的中继节点,通过所述Request包index字段的值判断是否需要执行三跳链路时隙分配算法,若index的值不等于3,继续广播所述Request包到节点w的邻居节点,执行步骤S3的操作;若index的值等于3,在节点w执行步骤S7的操作;
S6、进行路由最后一段未分配链路的时隙分配,根据所述Request包记录的信息,计算当前路由最新一段未分配链路的链路数hops和各链路的可用时隙集合保存在数组link,执行步骤S9的重复时隙去重操作,执行步骤S10的三跳链路时隙分配算法,若最后一段链路时隙分配成功,则建立满足实时数据带宽需求的路由,否则路由建立失败;
S7、进行路由当前一段未分配链路的时隙分配,根据所述Request包记录的信息,计算当前路由最新一段未分配链路的链路数hops和各链路的可用时隙集合保存在数组link,执行步骤S9的重复时隙去重操作,执行步骤S10的三跳链路时隙分配算法,若当前一段链路时隙分配成功,执行步骤S8的操作,否则当前一段链路时隙分配失败,路由建立失败,停止继续广播所述Request包;
S8、当前一段链路的链路数为3,将当前一段链路第二跳和第三跳链路的时隙分配结果保存在所述Request包的assign数组用于下一段未分配链路的重复时隙去重操作,将所述Request包字段index的值重置为0,即index=0,将当前节点的可用时隙集合记录到free[index=0]中,将所述Request包广播到当前节点的邻居节点,执行步骤S3的操作;
S9、重复时隙去重操作,在所述Request包定义数组assign记录上一段三跳链路最后两跳链路的时隙分配结果,数组assign的长度为2,当序号为N的节点是路由的目标节点,执行包含目标节点的最后一段未分配链路的重复时隙去重操作,否则序号为N的节点是到达路由目标节点的中继节点,执行当前一段未分配链路的重复时隙去重操作;
S10、进行三跳链路时隙分配,假设路由的带宽需求为r个时隙,定义数组allocate保存最新一段未分配链路各链路分配的时隙集合,针对数组link,对每一跳链路可用时隙集合的时隙进行干扰程度统计,每个时隙的干扰程度factor为该时隙在三跳链路范围内出现的次数,在三跳链路范围内分配时隙,选择可用时隙集合元素最少的链路L,在链路L分配干扰程度factor最小的时隙S,将时隙S保存在allocate[L]对应的时隙集合,为使路由连续三跳链路分配不相交的时隙集合,在链路L分配时隙S后,需要在当前一段链路各链路的可用时隙集合link中将时隙S移除,若能使当前一段链路各链路均分配到r个时隙,则返回当前一段链路时隙分配成功,将当前一段链路各链路的时隙分配结果保存在当前节点,否则返回当前一段链路时隙分配失败。
2.根据权利要求1所述的一种满足实时数据带宽需求的时隙分配方法,其特征在于,
所述执行包含目标节点的最后一段未分配链路的重复时隙去重操作具体为:对于所述Request包字段N的值,当运行三跳链路时隙分配算法的节点序号N的值大于3,表示当前一段需要分配时隙的链路不是路由的第一段链路,执行link[0]=link[0]-assign[0]-assign[1],表示当前一段链路的第一跳链路的可用时隙集合不能与上一段链路的第二跳和第三跳链路的分配时隙集合相交;若hops的值大于等于2,表示当前一段链路的链路数多于两跳,对于当前一段链路的第二跳链路,执行link[1]=link[1]-assign[1],表示当前一段链路的第二跳链路的可用时隙集合不能与上一段链路第三跳链路的分配时隙集合相交。
3.根据权利要求1所述的一种满足实时数据带宽需求的时隙分配方法,其特征在于,
所述执行当前一段未分配链路的重复时隙去重操作具体为:对于所述Request包字段N的值,当运行三跳链路时隙分配算法的节点序号N的值大于3,表示当前一段需要分配时隙的链路不是路由的第一段链路,并且当前一段链路的链路数为3,当前一段链路的第一跳链路的可用时隙集合不能与上一段链路的第二跳和第三跳链路的分配时隙集合相交,执行link[0]=link[0]-assign[0]-assign[1],对于当前一段链路的第二跳链路,执行link[1]=link[1]-assign[1],表示当前一段链路的第二跳链路的可用时隙集合不能与上一段链路第三跳链路的分配时隙集合相交。
4.根据权利要求1所述的一种满足实时数据带宽需求的时隙分配方法,其特征在于,所述步骤S1中使用AODV协议进行路由建立,使用TDMA协议访问无线信道,使用IFQ队列缓存数据包,使用全向天线使得在一个时隙内只能发送或者接收数据。
5.根据权利要求4所述的一种满足实时数据带宽需求的时隙分配方法,其特征在于,节点的时隙状态信息保存在TDMA协议。
6.根据权利要求4所述的一种满足实时数据带宽需求的时隙分配方法,其特征在于,节点的时隙分为数据帧时隙和控制帧时隙,在所述控制帧时隙只能发送路由控制包,在所述数据帧时隙只能发送实时数据包,并且所述数据帧时隙只服务于指定的实时数据流。
7.根据权利要求6所述的一种满足实时数据带宽需求的时隙分配方法,其特征在于,
所述TDMA协议加入两个FIFO数据包缓存队列,包括实时数据包缓存队列和路由控制包缓存队列,所述TDMA协议的每个发送时隙均从IFq队列取出一个数据包,根据数据包的类型存入相应缓存队列,当需要进行数据发送时,根据发送时隙的类别从相应缓存队列中取出数据包,在所述控制帧时隙,从所述路由控制包缓存队列中取出一个路由控制包进行发送,在所述数据帧时隙,根据数据帧时隙服务的数据流在所述实时数据包缓存队列中取出相应实时数据包进行发送。
8.根据权利要求4所述的一种满足实时数据带宽需求的时隙分配方法,其特征在于,所述节点的时隙状态信息在路由控制包保存时采用轻量级存储方法,通过使用二进制整数记录节点时隙集合。
9.根据权利要求1所述的一种满足实时数据带宽需求的时隙分配方法,其特征在于,所述数组free的长度为4。
10.根据权利要求1所述的一种满足实时数据带宽需求的时隙分配方法,其特征在于,所述干扰程度factor的取值为1、2或3。