无线网状网信标时钟同步系统设计
2013-11-30徐卫军
徐卫军,焦 蓉
(华北计算技术研究所,北京100083)
0 引 言
本文主要研究和设计无线同步网状网的信标时钟同步系统[1]。从通信协议的实现机制上分,无线网络主要有两种:无线异步网和无线同步网[2]。在高密度大规模的无线网络系统中,同步网络具有灵活的信道分配策略和带宽分配策略,它在实际应用中具有更好的网络性能,而时钟同步系统为无线同步网状网提供满足协议工作要求的高精度同步时钟信号,严格的时钟同步是同步网络工作的前提和基础[3]。同步精度过低会导致时隙分割粒度过大,信道带宽利用低下;同步稳定度过低则会造成通信中断甚至网络失步,最后导致网络瘫痪。只有时钟同步系统达到通信协议的需求,整个网络才能很好的完成时隙分配,完成正常通信[4]。本文针对无线网状网骨干节点与接入节点之间的同步要求设计出一种精度较高、低成本、易实现、软硬件结合的信标同步方案。
1 信标同步技术简介
信标同步技术就是不采用外部同步时钟源,网络节点之间只在特殊的包交换中打上时间戳,以计算本地与上级节点之间的时间差,以此来达到同步。信标同步与卫星同步相比实现复杂,同步精度很难达到很高,同时还会产生很多的网络开销。
现有比较成熟的信标同步技术是NTP同步技术和IEEE1588同步技术。
1.1 NTP同步技术
NTP(network time protocol)用于互联网中需要时间同步的网络节点,这些网络节点需要把时间同步到一个统一的时间标准上,它是标准互联网时间协议。
目前NTP采用的时间标准是UTC(universal time coordinated)。UTC以秒为时间刻度,是一种时间计量系统,各个国家的天文台都是以UTC为准发布实时时间,不同时区的用户加上时差就是本地的UTC时间。下面是NTP的突出特点:
(1)NTP能够为具有复杂性的互联网节点提供时间同步;
(2)NTP可以工作在规模各异、速度不同和连接通路复杂的互联网环境下;
(3)NTP具有很高的灵活性,它采用Server/Client结构,因此能够适应各种互联网环境;
(4)NTP采用UDP协议,因为UDP更适合传输数据量小且频繁的数据,所以NTP产生的网络开销很少;
(5)NTP在同步当前时间后,能够持续跟踪时间的变化,并进行自动调节,所以即使网络发生中断,也能保持时间的稳定性;
(6)NTP使用了识别机制来保证网络安全,NTP检查对时信息是否来自时间服务器,同时检查信息的返回路径,以防止对时间服务器的恶意破坏。
由于NTP具有以上特点,所以它可以获得可靠、精确的时间同步,并成为互联网上公认的时间同步协议。
1.2 IEEE1588同步技术
IEEE1588标准的主要原理是通过一个同步信号周期性的对网络中所有节点的时钟进行同步,是通过软硬件结合的方式实现网络设备的主时钟同步,同步建立时间小于10微秒[5]。IEEE1588从通信关系上又把时钟分为主时钟和从时钟,从时钟与主时钟必须保持同步,由主时钟向从时钟发送同步报文,通过报文传递时钟信息[6]。
IEEE1588基于同步数据包被传播和接收时的最精确的时间戳,每个从时钟通过与主时钟交换同步报文而与主时钟达到同步。一般的同步技术是软件打时间戳,也就是将发送或接收报文的时间填入同步信息中,由于在发送或接收报文时,受到处理器处理速度、操作系统工作方式等因素的影响,同步报文从开始发送到报文准确到达物理传输介质的时间一般无法控制。因此这个软时钟戳与实际发送或接收时间有一定误差,这严重影响了同步精度。因此,IEEE1588提出打硬件时间戳的解决方案[7]。
IEEE1588提出同步报文在MAC层和物理层之间用硬件插入时间戳,即在离出入接口最近的地方插入时间戳,硬件插入时间戳延时抖动一般在数个纳秒之内,大大消除了协议栈等延迟的影响,因此在很大程度上提高了时钟同步精度。
2 信标时钟同步系统架构
在信标同步技术中,设计上参考NTP的授时过程,采用双方向时间信息交换和时间戳的设计,由骨干节点主动发出时间同步申请,接入节点给出应答,然后骨干节点计算网络时延和时钟偏移,并将需要校正的时钟误差传输给接入节点,接入节点根据时钟误差校正本地误差,然后达到与骨干节点的同步。这种设计实现简单,同时避免了NTP误差传递的弊端,因为接入节点只需要与上级骨干节点保持同步,它也是终级节点。
但是NTP是软件插入时间戳,因此它的同步精度相对较低,为了提高同步精度,在设计上参考IEEE1588插入硬时间戳的方案[8],但是由于无线网卡不支持对特殊网络协议包打时间戳,因此设计将插入时间戳的位置放在无线网卡驱动里[9],这样更靠近硬件收发,减小了很多软件延时,可以在很大程度上提高同步精度[10]。
信标时钟同步系统架构如图1所示。
图1 信标时钟同步系统架构
信标时钟同步系统分为以下几部分:
(1)时差测量模块
时差测量模块通过骨干节点与接入节点之间交换同步信标实测出两者之间的时间差Δt。
(2)同步信号生成模块
同步信号生成模块利用CPU内部时钟来产生同步定时,然后用时差测量模块测得的时延Δt对下一个1PPS的起始时刻进行修正,以求达到同步,然后根据1PPS利用本地时钟生成协议需要的同步时钟信号。
(3)时隙管理模块
更新维护当前1秒帧内的微时隙号。根据GPS信号生成模块输入到CPU的1PPS’中断信号和微时隙中断信号更新维护微时隙号,并在每一个微时隙的起始时刻告知相应协议处理任务。此模块的实现简单,在此不作详细描述。
3 时差测量模块设计
3.1 作原理
时差测量模块的设计参考NTP协议的同步过程,要求低层同步报文尽量简单可行。在每个1秒帧内某个时隙 (协议决定的同步时隙)的起始时刻,骨干节点广播1PPS同步定时信标,接入节点一加电便进入监听状态,在某一时刻收到该信标之后附加上本地的接收时间信息回送给骨干节点,骨干节点收到该同步响应信标之后从中提取相关时间信息并计算出两者时间差Δt,这个过程必须在一个微时隙内完成,并将Δt回送给接入节点。其流程如图2、图3所示。
图2 信标同步流程
图3 时差测量
t1是骨干节点发出的同步定时信标的第一个比特的时间戳;
t2是接入节点收到的同步定时信标的最后一比特的时间戳;
t3是接入节点发出的同步响应信标的第一个比特的时间戳;
t4是骨干节点收到的同步响应信标的最后一比特的时间戳;
t′1是骨干节点发出的同步定时信标的第一个比特前打上的时间戳,Δt1=t1-t′1,是同步定时信标在骨干节点设备上的处理时延;
t′2是接入节点收到的同步定时信标的最后一比特后打上的时间戳,Δt2=t2-t′2,是同步定时信标在接入节点设备上的处理时延;
t′3是接入节点发出的同步响应信标的第一个比特前打上的时间戳,Δt3=t3-t′3,是同步响应信标在接入节点设备上的处理时延;
t′4是骨干节点收到的同步响应信标的最后一比特后打上的时间戳,Δt4=t4-t′4,是同步响应信标在骨干节点设备上的处理时延;
delayp在两节点之间的传播时延;
T同步定时骨干节点在当前调制速率下生成同步定时信标的时间;
T同步响应是接入节点在当前调制速率下生成同步响应信标的时间如果同步定时信标与同步响应信标长度相等且两个节点采用相同调制速率发送信标,则T同步定时=T同步响应。
在特定调制速率下生成协议数据包的时间
T的单位是微秒;包长为MAC层协议数据包的长度,单位为字节;16为PLCP头部中服务类型的比特数;6为尾比特数;NDBPS为一个OFDM符号在特定调制速率下包含的比特数,见表1。
表1 调制速率与NDBPS对照
根据上述流程及实测参数,信标在两节点间的传输时延delayp的计算公式如下
其中,
由以上时间参数,可计算出骨干节点与接入节点之间的时差Δt
假设骨干节点在1秒帧的n号 (以0号开始)微时隙的起始时刻发送的同步定时信标,则接入节点收到骨干节点回传的Δt后可根据下面的公式计算出下一个1秒帧的起始时刻tnext_1pps
在有理论的基础上,需要在现有软硬件条件的情况下,做时差测量实验来验证时差测量模块的设计能满足同步精度的要求。
3.2 时差测量实验结果
(1)实验目的
通过实验测出处理时延、传播时延、节点间时钟差异并验证现有的同步方法在具体实际环境下是否可行。
实验环境如图4所示。
图4 时差测量实验环境
实验描述:两台PC使用串口与PowerPC板相连作为PowerPC的终端。另一台PC作为监测机。两台PowerPC分别命名为A机与B机。A机发送时差测量请求包,在发送前记录时间t1。B机接收到时差测量请求包,记录时间t2,在发送时差测量响应包前记录时间t3,回应给A机。A机根据接收到的时间计算处理时延。第二次实验,在A机发送前和接收前利用软件延时模拟传播延时 (模拟传输距离),A机利用接收到的时间参数以及处理时延参数得出传播时延。
(2)实验结果分析
处理时延均值约为22微秒,如果在PowerPC机加入10微秒的模拟传播时延则处理时延均值仍然为大约22微秒,但是方差有所增大,显然是10微秒的模拟传播延时引入的误差。所以可以推测得出,时差测量的误差都由处理时延误差所引入,时差测量时间的标准差约为1微秒,最大误差为3微秒左右,所以时差测量距离的标准差约为300米。因此,在加入保护时间的情况下可以满足同步方案的精度要求。
4 同步信号生成模块设计
4.1 工作原理
接入节点需要两个同步信号:1PPS和微时隙同步定时信号。接入节点由于没有FPGA提供1PPS和微时隙同步定时信号,因此只能利用CPU内部时钟GPT来产生同步定时。需要用时差测量模块测得的时延对下一个1PPS的起始时刻进行修正,以求达到同步。
(1)信号时序
协议通过计算将值写入CMP寄存器,当TBC的值随着时钟信号递增到与CMP的值相等时会向系统触发一个GPT中断。微时隙信号以1PPS信号为起始,对GPT的时钟进行分频产生。根据协议的要求,GPT中断信号时序设计如图5所示。
图5 GPT中断信号时序
为了避免两个同步信号同时到来造成无法及时响应的情况发生,在GTP1中断发生时,GPT2不产生微时隙中断。
(2)算法流程
在当前1秒内,接入节点收到骨干节点发来的Δt后,计算出下一个同步1PPS信号的时刻tnext_1pps,并换算成对应的TBC寄存器值next_pps_period,然后写入GPT1的CMP寄存器,这样就完成了下一秒帧的同步定时。如果当前秒由于出错没有完成信标同步流程,则GPT系统按照当前秒的分频与校准参数产生下一秒的同步信号。
设统计测量得到的GPT时钟基准频率为F,周期为T,每秒钟实际计数值为r。产生的同步中断频率为f,则频差
校准系数p=f/d;
分频系数k=F/f;
在每个中断处理函数中对GPT2的CMP寄存器进行下一次中断发生数值设置便可以逐个产生所要的微时隙中断信号。
4.2 误差分析
主要误差来自GPT时钟基准F的测量以及计算p、k时的除法余数截断误差。
(1)GPT时钟基准F的测量误差
假设F=55MHz,则每个周期T=18ns,测量误差达到10个T时,时钟误差为180ns。
(2)p值误差
误差表达式为
d值本身就存在误差,因为我们是利用了上一秒的测量结果r来做为当前秒的实际频率来处理,因此这连续两秒之间的频率抖动必然引入了不可消除的误差,但目前无有效办法解决这个问题。
(3)k值误差
可以将这部分误差转移到p值误差,统一用频差分摊策略来处理。
5 结束语
本文先对现有同步技术进行研究,以现有理论为基础,提出一种软硬件结合的同步信号产生算法。首先提出一种时差测量算法,测量节点之间的时间差,并通过大量的实验给出测量结果,以验证此算法的可行性,然后用测量的时间差对下一个CPU时钟产生的1PPS信号进行修正,最后利用1PPS信号和本地CPU内部时钟GPT,通过其寄存器设置,共同产生时钟同步信号,最后完成同步。这种软硬件结合的算法实现简单、同步信号精度高、开发周期短。
[1]SUN Xuling.Study on the wireless Mesh network[J].Computer Engineering and Applications (Magazine),2008 (10):20-22(in Chinese).[孙徐玲.无线 Mesh网络研究[J].计算机工程与应用 (旬刊),2008 (10):20-22.]
[2]Lee M J,Zheng Jianliang,Young Bae Ko,et al.Emerging standards for wireless mesh technology[J].Wireless Communications,2006,13 (2):56-63.
[3]ZHANG Yanluo,JI Jun,HU Honglin.Wireless mesh networking:Architectures,protocols and standards[M].New York,NY, USA: Auerbach Publications, Taylor and Francis Group,2006.
[4]LV Renjian.A scalable bandwidth allocation method for synchronous wireless mesh network[J].Journal of Computational Information Systems,2012 (19):8001-8008.
[5]GUI Benxuan,LIU Jinhua.Research and implementation of high precision IEEE1588synchronization algorithm[J].The electro-optic and Control,2006 (13):90-94 (in Chinese).[桂本烜,刘锦华.IEEE1588高精度同步算法的研究和实现[J].电光与控制,2006 (13):90-94.]
[6]SHI Yujuan,ZHAO Jian,FANG Haiyan,et al.Analysis and application of IEEE1588synchronous[J].Clock Instrument Technology,2007 (9):43-44 (in Chinese).[时玉娟,赵建,方海燕,等.IEEE1588同步时钟的分析与应用[J].仪表技术,2007 (9):43-44.]
[7]IEEE.Draft standard for a precision clock synchronization protocol for networked measurement and control systems[S].IEEE P1588TM D2.2,2007.
[8]ZHANG Minyan.The analysis and research of embedded realtime operating system based on VxWorks platform[D].Nanjing:Master Thesis of Nanjing University of Science and Technology,2007(in Chinese).[张敏燕.基于嵌入式实时操作系统VxWorks平台的分析与研究[D].南京:南京理工大学硕士学位论文,2007.]
[9]LV Renjian.A wireless LAN MAC software platform architecture of MADWIFI and its improvement[J].Computer engineering and Applications(Magazine),2008 (10):67-68 (in Chinese).[吕仁健,无线局域网MAC软件平台MADWIFI体系结构及其改进[J].计算机工程与应用 (旬刊),2008(10):67-68.]
[10]Pavan Kumar Design.Implementation,and evaluation of new MAC protocols for long distance 802.11networks[D].Kanpur,Uttar Pradesh,India,2006.