分布式星群网络组网技术研究*
2021-08-06陈浩澜章小宁付伟达姚雨迎
陈浩澜,张 艺,章小宁,黄 镐,付伟达,姚雨迎
(1.电子科技大学,四川 成都 611731;2.中国东方红卫星股份有限公司,北京 100094)
0 引 言
随着分布式理论和应用的日渐成熟,分布式概念在航空航天领域再次得到了广泛关注。分布式星群由一组分布在同一或邻近轨道上的卫星组成。分布式星群网络(Distributed Satellite Cluster Network,DSCN)利用组网协同、共轨控制技术,整合空间上邻近且独立分布的卫星资源,实现整体大于部分之和的效果。开展基于分布式星群的空间信息网络研究具有重要的国家战略意义。
微纳卫星(Micro-nano Satellite)是微型卫星与纳卫星的统称,通常是指质量100 kg左右,具有实际功能的卫星。它们体积小、功耗低、开发周期短、可编队组网,而且能以更低的成本完成很多复杂的空间任务,使得微纳卫星是成为蓬勃发展的航天事业的一个重点发展方向[1]。
但是,微纳卫星本体的体积、质量和成本大大下降,导致不能携带大的太阳电池帆板以提供大的电功率,也不能承载高增益天线以传输高速率数据,且单星能力较弱。因此,多个微纳卫星组网成分布式星群统一完成航天任务已经成为趋势[2]。
本文提出一种可行的分布式星群组网方案,搭建仿真平台验证,并最终实现硬件平台。本文结构如下:第1节简要说明分布式星群组网架构;第2节讨论了组网的基本流程,包括物理层、数据链路层、网络层的一些基本技术指标和实现方案;第3节展示了分布式星群组网仿真平台的搭建及仿真结果;第4节展示了分布式星群组网硬件平台的搭建;第5节总结全文,并提出对未来的展望。
1 分布式星群组网架构
本文主要研究的是分布式低轨微纳卫星星群组网。低轨微纳卫星星群的构型为子母星群,包括一颗母卫星和多颗子卫星。母卫星除了完成卫星功能还需要释放子卫星。子母卫星可以合作也可以独立完成任务[3]。
分布式星群组网包括星群内组网(直径100 km左右,单个星群包括10颗小卫星)和星群间组网(最多10个星簇)两大类型。本文主要讨论的是星群内组网(如图1所示),即在单个群内,群内的卫星节点形成本群的自组织网络。星间自组织网络体系架构如图2所示。
2 分布式星群组网
2.1 通信基本流程
每个节点入网时,需要先进行初始时间同步。时间同步由数据链路层负责进行,完成时间同步后,才会进入数据通信阶段,此时才可以在节点所属的具体时隙进行数据的发送。
数据通信由不同网络层次配合完成:最底层物理层是现场可编程门阵列(Field Programmable Gate Array,FPGA)实现的无线数据通信;数据链路层采用时分多址(Time division multiple access,TDMA)的同步接入方式传递数据,并在长周期内产生时间同步维护信息,完成周期性时间同步;网络层和传输层周期性通过最优化链路状态路由协议(Optimal Link State Routing,OLSR)维护全网拓扑信息,并封装应用层数据,为数据链路层提供拓扑信息;应用层产生数据报文。最终数据链路层对封装的应用层数据报文、网络层OLSR控制报文、和时钟同步信息提供时隙,完成通信。数据通信阶段基本流程如图3所示。
2.2 物理层
为了使用全向或宽波束天线,需要降低系统的频率。经计算在特高频(Ultra High Frequency,UHF)频段上较为可取[4]。拟选定600 MHz左右频点,若有频点冲突,则可另选。在该频点,天线尺寸可以控制在不超过1 m,因为对于小型卫星,尺寸不显得过大。
在调制解调方式的选择上,正交相移键控(Quadrature Phase Shift Keying,QPSK)和二进制相移键控(Binary Phase Shift Keying,BPSK)的解调Eb/N0门限相等,但BPSK的带宽较大,在1/2信道纠错编码的情况下,使用BPSK的调制速率达到40 MBaud,使用不同滚降系数,中频/射频带宽达到40~80 MHz,对于UHF频段来说,带宽显得很大,不利于天线和滤波器等射频器件的设计。所以最终选用QPSK调制方式。使用0.5的滚降系数,中频/射频带宽为30 MHz。
在选择FEC信道纠错编码时,考虑到媒体访问控制(Medium Access Control,MAC)层使用基于TDMA的多址接入技术,导致时序损耗较大。且低密度奇偶校验码(Low Density Parity Check Code,LDPC)码具有译码复杂度低、可并行译码等优点。因此选择LDPC码作为物理层的信道纠错码。
因此,物理层的大致参数如表1所示。
表1 物理层方案总体核心参数
链路预算:根据QPSK,LDPC(960,1 920),基带峰值速率为20 Mb/s,故单天线接收灵敏度为-94 dBm;自由空间路径损耗按单个星群最大直径100 km,频段600 MHz计算为128 dB;单个节点天线增益5 dB,双边一共10 dB;收发两端接口及馈线损耗以2 dB计算;链路裕量为5 dB;
由此可得发射功率Pt=-94+128-10+2+5=31 dBm≈1.26 W。
2.3 数据链路测层
在网络初始阶段,可以由全网内节点编号或者MAC地址最小的节点(该节点可以被认为是根节点)向其单跳的邻居节点广播同步消息,单跳的邻居节点与根节点完成同步;然后完成新同步的节点又向它们的邻居节点广播同步消息,其邻居节点完成时钟同步。按照上述方式,全网的所有节点都完成了与根节点的时钟同步。这种方式是基于树状拓扑的时钟同步机制。
同步机制采取类似于网络时间协议(Network Time Protocol,NTP)的两阶段握手机制(如图4所示)。其交互过程如下:从节点向主节点发送时间同步请求报文,加上本地时间戳T1;主节点收到请求报文,纪录到达时间戳T2;主节点封装响应报文,加上本地时间戳T3;从节点收到响应报文,加上本地时间戳T4。因此,往返时延tdelay为:
主节点与从节点的时间偏移toffset为:
从节点计算出往返时延和时间偏移后,先检查往返时延是否超过阈值,如果超过则认为主节点不可达,并且不调整本地时钟;如果不超过,从节点根据时钟偏移调整本地时钟,从而与主节点的时钟同步。
时间同步后,各节点按各自固定时隙进行数据发送。时隙分配情况,如图5所示。其中时隙1为信道申请时隙,主要用于新入网节点的异步入网申请。时隙2到时隙n是节点的发送时隙,可以按照动态或者静态的方式将时隙分配给相应的卫星网络节点,节点的发送时隙主要包括时钟同步信息、路由与拓扑控制信息以及自身的数据信息。任何上电启动的自组织网络节点在一开始都会先进行信道侦听,在1~2个通信周期内侦听全网的同步包。
如果能够收到全网的时隙同步报文,说明已经有网络存在并完成了全网时钟建立。此时新入网节点就在时隙1上发起入网申请,通过接收相邻节点的时钟信息完成全网时钟同步。
如果没有收到任何时隙同步报文,说明网络时钟同步未建立,此时就使用完全的异步接入完成路由表建立和网络时钟同步过程。
路由表和全网时钟同步建立之后,数据传输的复杂性就大为降低。为了提高系统运行的可靠性,故采取固定时隙的分配方案,即每个卫星网络节点在预先分配好的时隙上发送数据包。
2.4 网络层
按照路由建立的方式不同,自组织网络可分为先应式路由协议、后应式路由协议[5-6]。先应式路由协议需要周期性地发送Hello报文感知邻居节点并广播路由信息,因此需要发送大量的控制报文。后应式路由协议虽然能够减小控制报文的开销,但存在不确定性,包括目的节点是否可达的不确定性以及路由建立延时的不确定性。现有的研究表明,后应式路由协议的时延远远大于先应式路由建立的时延[7]。考虑到本场景为单个星群,所涉及的星间自组织网络节点数目少,单个星群只有10个节点,这就意味着Hello报文和拓扑控制报文规模有限,故可采用先应式的路由协议,为应用层典型任务提供明确的可预期的时延保障[8]。
OLSR协议是先应式的路由协议[9],其流程包括5个部分,分别是:邻居发现、多点中继(Multipoint Relays,MPR)选择、TC分组消息扩散建立拓扑、路由建立和路由维护[10]。OLSR协议流程中各部分的介绍如下。
(1)邻居发现。OLSR协议通过周期性的广播Hello分组消息来发现邻居,建立邻居表。值得注意的是,OLSR需要寻找对称链路,通过对称链路寻找过程(如图6所示),网络中的节点均建立起了自己的对称一跳邻居集合。
(2)MPR选择。协议选择的MPR选择算法流程图如图7所示。该算法本身是一个贪婪选择算法,当MPR节点覆盖所有二跳邻居时,算法结束。
(3)TC分组消息扩散建立拓扑。当选好MPR后,每个MPR节点均会建立起自己的一个MPR Selectors表。这个表指定了在建立拓扑的时候,MPR节点要转发来自哪些节点的TC分组消息[11]。
(4)路由建立。当拓扑建立起来之后,OLSR的路由算法采用基于跳数的Dijkstra算法,从拓扑结构中找到源节点到目的节点的最短路径。
(5)路由维护。如果有新的节点加入到拓扑中,OLSR则会建立新的拓扑和路由,过程和前面所述步骤相同。OLSR的每一条信息均是周期更新,并且每一条目均有有效时间的概念。若节点丢失,丢失节点的中继节点的邻居信息表有效时间结束后,会首先更新邻居信息,其次再通过TC分组按照上述流程更新。网络会建立起新的拓扑。
3 分布式星群组网仿真平台
针对小规模星群内组网(10颗节点),采用固定时隙TDMA的方式进行接入,采用OLSR进行路由。设定了一种卫星仿真工具包(Satellite Tool Kit,STK)测试场景:半径为100 km的拓扑小规模型群间组网(如图8所示)。因为半径为100 km的拓扑中10颗星在数据链路层是非全连通的,可以观察报文的路由路径和报文的端到端时延。
采用分层网络架构的思想对OPNET的节点模型进行设计,如图9所示,分为物理层、数据链路层和网络层。物理层包含接收机模块、发射机模块、接受天线模块和发射天线模块;数据链路为TDMA模块;网络层为OLSR模块,这些模块通过OPNET的包流线相连,模拟跨层通信。
针对半径为100 km的场景,得到10个节点的路由表,从每个节点的路由表可以发现半径100 km拓扑是一个非全连通的。如图10所示,发现节点0到节点9的下一跳是节点1,节点1的下一跳才是节点9,因而如果有一个报文要从节点0到节点9,必须经过节点1的转发。
此外,在半径100 km场景下,在节点0到节点9之间注入1 Mb/s的数据流时,节点0到9的端到端时延图,如图11所示。由图11可以发现,由于路由会发生切换,所以时延会有所波动。
为了更进一步验证OLSR适应拓扑变化的及时性,在半径100 km的场景中人为制造节点失效的情况。具体操作是让节点2在某时刻失效,观察其他节点路由表的变化。如图12所示,在节点2失效以前,节点9到节点0的报文需要经过节点2的转发,当节点2失效之后,节点9不仅知晓了节点2的失效,而且还重新规划了一条到节点0的路由,全程大约在5 s内完成切换。
4 分布式星群组网硬件平台
4.1 总体架构
物理层硬件实现方案总体框图如图13所示。
整个硬件由以下几个部分构成。
(1)嵌入式处理板:负责网络层协议和应用层的功能,CPU可选ARM核心的A10或相近系列的型号,操作系统使用Linux。
(2)软件无线电处理板:负责数据通信部分和测距部分的物理层和链路层的中频数字化,软件无线电处理板对外直接输出指定频点的射频小信号,电平大约在-15 dBm。
(3)射频组件:包含射频混功放、滤波器、低噪放和双工器。
(4)天线:使用单根收发天线。
(5)软件无线电处理板:结构见图14所示。
(6)网口:嵌入式与软件无线电处理板之间的接口为100 Mb/s网口,网口之间进行数据和命令的交互。
软件无线电处理板内部使用FPGA实现数据链路层和物理层的基带处理。选择Xilinx公司的高密度低功耗产品Artix-7系列,型号为XC7A200T。AD9361芯片在TDD双工支持最大56 MHz射频带宽、数字接口处最高61 Ms/s的I/Q采样率。而需要的基带峰值速率为大约20 Mb/s,使用QPSK映射,1/2信道编码,最终码元速率大约为20 MBaud。滚降系数为0.5时,信号射频带宽为30 MHz左右。物理层实现部分包括调制解调、信道纠错、碰撞检测、时延测量等部分。
4.2 OLSR协议
本文的OLSR在olsr.org OLSR daemon[12]的基础上在Linux系统下实现,该方案同olsr.org OLSR daemon相兼容。
OLSR协议的实现通过端口号为698的UDP端口收发路由控制分组,然后维护邻居表,进行逻辑计算,最后生成路由表并反映到内核路由表中[13-14]。数据分组和协议控制分组按照内核路由表中的最佳匹配表项进行发送和转发。当网络中有分组到达本节点时,内核将判断该分组的目的地是否是自己,如果不是,则“转发功能模块”根据内核路由表转发该分组;如果是,则根据分组的不同交给相应的模块进行处理,当收到OLSR协议控制分组时,转由OLSR路由协议模块处理。
4.3 演示验证环境
将每个节点依次和Linux虚拟机相连,运行OLSR协议。路由收敛后节点0路由表如下,此时全网有3个节点(节点0、1、2),并处于全连通。可见,协议正常运行。
使用iperf进行单端流量测试,结果如图18所示。可见单端流量时延抖动jitter平均为37.5 ms左右。因为每个节点时隙为20 ms,因此较为正常。
使用ping进行往返时延(Round Trip Time,RTT)测试,可以发现节点0到节点1和节点1到节点0的RTT并不一致。这是因为节点0的时隙在节点1的时隙之前,如图19所示,节点0 ping节点1可以在一个时间周期内完成Internet控制报文协议(Internet Control Message Protocol,ICMP)的request和reply。如图20所示,节点1 ping节点0时要等待下一个周期的节点0时隙才会收到节点0发送的ICMP reply报文。
5 结 语
本文对于分布式低轨微纳卫星星群组网,提出了一种可行的通信组网方案:网络层使用OLSR协议建立路由;数据链路层使用TDMA以及物理层的核心参数选取;搭建了软件仿真平台和硬件验证平台进行测试,进一步确定了方案的可行性。
在仿真测试时,也发现了一些问题,如TDMA协议分配的时隙会影响到各个节点的交互时延,不同轨道位置的卫星对通信的需求也有所不同。故TDMA协议的时隙分配与卫星在轨道中不同位置的关系值得进一步思考。此外,微纳卫星自组网中有新节点接入时,从链路层接入到网络层接入的过程是一个值得优化的重要场景。
此外,本文主要讨论的分布式星群场景是节点数量较少的小星群场景,当更多的小星群联合起来组成大规模的分布式星群系统时,单个卫星节点要维护整个星群间网络的拓扑,比如有100个节点,对于星上载荷资源严重受限的微纳卫星是不现实的。
一种可行方案是组网采用分层的路由协议。由于小卫星在执行典型任务时已经进行了分群。因此可以将大规模星群间组网分为两个层次,第一层是星群间组网,第二层是星群内组网。每个星群的簇首节点运行簇间路由信息交互,簇内节点使OLSR进行簇内信息交互。星群间组网和星群内组网可以采取相同的组网模式,用不同发射频率的信道加以区分。在下一步工作中,设计组网方案时还要充分考虑簇首节点的负载瓶颈等问题。