摘要:针对温度变化对于工业无线网络时间同步精度影响较大的问题,提出了一种基于温度动态补偿的时间同步算法。在工业现场,设备工作温度范围大、变化快,为减少整个网络的波动,算法基于主动同步与被动同步,引入温度因子,采用IIR 数字滤波,优化同步策略,提高了网络的可靠性与稳定性。使用工业无线通信平台组网验证了该算法的可行性与有效性,实验表明,在环境温度-40 ℃~85 ℃,变化速率5℃/分的条件下,采用温度动态补偿算法的网络通信重传率降低了40%,网络容量提高了50%。
关键词:时间同步;工业无线网络;温度动态补偿
0 引言
在严酷的工业现场环境下,无线网络的工作温度可低至-40℃,高至85℃[1],并且可能会伴有较快的温度变化,宽泛的工作温度范围与快速的温度变化会产生晶振的温漂,产生晶振频率的急剧变化[2],导致网络节点时间基准的变化,从而影响到整个网络的时钟的同步。同时,随着网络跳数[3]的增加,这种影响将会成倍的放大,网络的稳定性将受到极大的考验[4]。因此,工业无线网络的时间同步机制应当充分的考虑到工作温度与温度变化的影响[5],来保证系统长期稳定的运行。
现阶段,工业无线网络常用的时间同步算法包括RBS、TPSN、DMTS等[6],几种算法在同步精度、能量开销、时间复杂度[7]方面各有优势,但没有一种算法将温度变化因子加入到同步策略中,并能满足工业无线协议对可靠性、功耗和同步精度的要求。一种基于温度动态补偿[8]的工业无线网络时间同步算法可以解决上述的问题,算法采用分段计算、动态平衡等[9]处理方法,引入温度因子,对网络时钟进行渐进平滑的调整,补偿了温度剧烈变化对于晶振等器件的影响[10],从而保持系统网络同步的连续性。当温度变化少于每分钟2℃时,设备应该在30s内发送一次同步报文。使用该算法后,可在同步频率不变的情况下,使工业无线网络工作范围扩大到-40 ℃~85 ℃,网络可适应至少每分钟5℃的温度变化,并且不影响常温时的网络的稳定性。
1 时间同步模型
1.1 通信时隙
工业无线网络的基本通信机理是基于时隙序列通信的[11],其通信时隙模型图如图1所示。无线网络协议将时间分成周期性的超帧(Superframe),又将超帧分成若干个时隙(Slot)[12],时隙是节点设备之间通信的基本单元,固定长度为10ms,且每个时隙仅用于一次通信(接收或发送)。
![064e8135556acae72660d49401c9e387.png](https://i-blog.csdnimg.cn/blog_migrate/44a2b341adabab890046c0bbf8771e37.jpeg)
图1通信时隙模型
当源设备A需发送数据给目标节点B,则源节点A在时隙开始后的TsTxOffset时刻将数据准确发送出去,目标节点B则在时隙开始后的TsRxOffset时刻进入侦听状态,并等待足够长的时间TsRxWait,以确保数据的接收。如果目标节点B需要回复确认ACK给源节点A,则在接收完数据后的TsTxAckDelay时刻将ACK准确发送出去,源节点A则在发送完数据的TsRxAckDelay时刻进入侦听状态,并等待足够长的时间TsAckWait,以确保ACK的接收。若要保证设备间通信时间正确,需要满足下面两个不等式:
![20802f38ff415f30ca409492f7694321.png](https://i-blog.csdnimg.cn/blog_migrate/cdc7bedd903706687c60cea2c20f9b50.jpeg)
其中,△d为两个节点之间的时钟偏差[13],根据工业无线通信标准中对于TsRxOffset、TsTxOffset、TsRxWait值的规定,得出节点间最大通信时钟偏差不可大于800μs。
1.2 时间同步
工业无线网络时间同步依赖于节点间的通信行为而非通信的数据内容,因此节点与时钟源发生的任一次通信都可实现时间同步。如节点A要与节点B取得同步,有两种方法:主动同步和被动同步[14]。一旦节点发送了需回复ACK的数据给节点B,或接收了来自节点B的数据,都可实现节点A与节点B的时间同步。如果节点A与B在规定的最小同步周期内没有通信发生,则节点A需主动发送Keep-alive[15]报文给节点B,以维持节点之间的时间同步。
![6a464830193eb46cd0b3ed8e58103328.png](https://i-blog.csdnimg.cn/blog_migrate/8872fb64f2516d95484916f365add0fa.jpeg)
图2 主动同步流程
主动同步流程如图2所示,主动同步时,节点A在时隙开始后的TsTxOffset时刻发送数据,节点B在检测到有数据包接收之后记录时间t1,待接收数据包后发送ACK,ACK的有效载荷包括节点B计算的时间偏差Tadj,则节点A在接收到这个ACK之后,根据此偏差对本地时钟进行相应的校正。
![836d3422b948fcbb4f3273aa713950d0.png](https://i-blog.csdnimg.cn/blog_migrate/c5f1ff72425b782461654847b0522e7e.jpeg)
图3 被动同步流程
当被动同步时,节点B在时隙开始后的TsTxOffset时刻发送数据,节点A在检测到有数据包接收之后记录时间t2,则可计算得时间偏差Tadj,节点A根据此偏差对本地时钟进行相应的校正。
1.3 网络时钟模型
工业无线网络设备时钟可能是同向的偏移,也可能产生随机的偏移。在实际应用中,作为普通节点的本地时钟振荡器,出于成本考虑基本上只能选择石英晶体振荡器,石英晶振的频率与标准频率之间不可避免的会有误差,从而造成时钟的同向的偏移。同时,石英晶振的频率会随温度、机械因素和老化而漂移,其中最主要的影响是温度的变化,晶振随着温度的波动而上下的波动,造成了时钟随机的偏移。
网络时钟同步的精度受到同步周期与网络规模的影响。两个相邻设备可以利用每次通信来实现时间同步,如果它们在一段时间内没有需要交互的信息,那么它们应该交互Keep-alive报文。在工业无线网络中,网络设备与根时钟源可能相隔几跳,跳数的增加会成倍的增加网络设备与根时钟源之间的误差。根据影响网络时钟的因素,得到如下网络时钟模型:
![127721d1427b2c00a6fa06db0c6c168d.png](https://i-blog.csdnimg.cn/blog_migrate/b586ff334745aadf713802d5a4091315.jpeg)
式中,Cj为网络最大跳数。Ds代表晶振频率在一个同步周期内的偏移值,当同步周期为30s,高精度晶振时钟精度为5×10‑6时,Ds值为150μs。Dd代表晶振频率随温度变化而动态变化值,一般工业现场温度标准为-40℃-85℃,晶振在此范围内的偏移为7.5×10‑6,则Dd值为225μs。将上述参数代入公式(3)中,得到当网络跳为1跳时,网络时钟偏差值△d为375μs。由章节1.1可知工业无线网络通信时钟偏差不可大于800μs,而无线协议规定网络最大跳数为4跳,可见现有的时间同步的算法无法满足工业无线网络在工业现场应用的需求。如果减小时钟同步周期,虽会缓解此问题,但会导致设备功耗增大,占用无线带宽资源。
2 温度动态补偿时间同步算法
为了将时钟偏移控制在要求的范围内,必须对晶振频率进行补偿。根据同步状态、时间间隔、同步值大小等参数对时间同步值进行处理,每次时间同步不仅调整时隙的时间偏差,同时调整时隙长度,用以保证网络在环境温度变化时的稳定性。
2.1 算法原理
同步值代表着当前节点时隙起始与网络时间源时隙起始的偏差,所以将下一个时隙定时器的起始进行偏差的补偿,调整节点时隙起始位置,与时间源时隙对齐。
![5d164977f259f2466aaf03161d9f44f4.png](https://i-blog.csdnimg.cn/blog_migrate/d2ba93dc5919b7796b05e07dd25be407.jpeg)
图4 调整节点时隙起始位置
晶振本身的偏移与环境温度变化导致时隙长度偏离网络时间源,如图4所示,随着时间的推移,偏差会越来越大,通过调整时隙起始位置已不能满足同步的需要,所以在时间同步周期内计算出符合当前温度条件的时隙长度,以尽量减少环境对于整个网络同步的影响。
当前同步时隙与上一次同步时隙间隔的时隙个数为△ASN,时间偏差是在此期间产生的,则时隙长度为:
![9c387e9c3d1e4a645450cf4aaef55c70.png](https://i-blog.csdnimg.cn/blog_migrate/ced080a1315497835af4729b107f9ebb.jpeg)
式中,Tadj为时间同步值,其值根据射频中断与定时器进行计算得出,除以△ASN计算出平均到每个时隙中的偏差值,即时隙长度偏差值,最后进行当前时隙长度的补偿。
2.2 同步策略
针对节点不同的运行状态,我们需对时间同步的策略进行调整。当节点刚开始运行时,为了消除晶振频率与标准值的固有偏差,此时对时隙长度进行比较“大胆”调整;当节点处于稳定运行状态时,为了保证网络的稳定性,此时对时隙长度进行“谨慎”的调整。同时设置同步阀值,根据时隙间隔个数△ASN与同步值Tadj,过滤网络的异常抖动。其同步流程图如图5所示。
![e60ce07c6a0bc7dc5dc447e919d86fc2.png](https://i-blog.csdnimg.cn/blog_migrate/2b23f8e54759155d8a4edd8f3f243f9b.jpeg)
图5 同步策略选择流程图
将节点的同步分为建立时隙、搜索广告、入网运行3个状态,根据不同的状态调整同步阀值,决定时间同步的策略。
2.3 IIR 数字滤波
在实际应用中,为了避免由于硬件的偏差频繁的调整时隙长度,造成网络的异常波动,保证无线网络在温度变化时的稳定性,使用IIR 数字滤波对时隙长度进行处理,其计算公式为:
![dbdc32772c1a419d2fc184d266a488ba.png](https://i-blog.csdnimg.cn/blog_migrate/74de2ece399120f96182336e98dbbd31.jpeg)
式中,F为滤波因子,其值根据时间同步值Tadj计算得出,其公式为:
![65ab3461f2a34829b2f0f1f7c5ec100a.png](https://i-blog.csdnimg.cn/blog_migrate/76f5a675eab5187e219cf4b9b1ce98dc.jpeg)
式中,Tfactor为最大滤波常数,其值为5。Cadj为最小滤波长度单元,其值为192μs。将公式(6)代入公式(5)中,得出时隙长度计算公式为:
![236462bc431c8b6fb1cec916fe7f090b.png](https://i-blog.csdnimg.cn/blog_migrate/e78794c6e0e2236eafd700e430cb4f45.jpeg)
假设当前时隙间隔个数△ASN为384,由公式(7)得知,当Tadj为768μs时,同步幅度Lnew - Lold的值为768/(384 * (5-768/192)) = 2.00;当Tadj为192μs时,同步幅度的值为192/(384 * (5-192/192)) = 0.125。由结果可看出随着时间同步值的变大,时隙长度的调整幅度将呈现阶梯状的增加,实现了时间同步温度动态的补偿,既满足了时间同步对于温度变化的响应速度,也保证了时间同步在常温应用中的稳定性。
3 实验分析
使用工业无线通信网关与模块搭建测试仿真平台,利用温箱进行工作环境温度变化的模拟。在常温下(20 ℃),当网络跳数为4跳时,优化后的时间同步算法与未进行优化的网络通信重传率的对比图如图6所示。优化后的时间同步算法在常温环境中,网络通信重传率比优化前降低了约50%,提高了网络的稳定性。
![a8e5f2bdb4af92087d896fdb74fde874.png](https://i-blog.csdnimg.cn/blog_migrate/415353e8f65221ff72403b341f4e2ee9.jpeg)
图6 常温网络通信重传率对比图
将温箱温度设定为-40 ℃~85 ℃区间内循环运行,温度变化速度大约为5℃/分,当网络跳数为2时,其网络通信重传率的对比图如图7所示。此时,优化前的通信重传率接近30%且波动较大,网络处于不稳定状态。优化后的网络波动较小,通信重传率比优化前降低了约40%。
![2c45aa903b4d2a6674f9f9f21469b41a.png](https://i-blog.csdnimg.cn/blog_migrate/001c01fe37845f5804ea00f332d0075a.jpeg)
图7 高低温通信重传率对比图
扩大网络跳数为4,优化前的网络无法满足同步精度要求,未能测得实验数据。优化后的网络通信重传率如图8所示,其通信最大跳数支持4跳,相较于优化前,网络容量扩大了50%。
![135a2c6a93fcb2f1a3059686379f255d.png](https://i-blog.csdnimg.cn/blog_migrate/f540fd3703416192c02d42351eeda5a7.jpeg)
图8 高低温网络通信重传率
4 结束语
在工业复杂的生产环境中,温度变化会造成很大的无线网络波动甚至会导致网络崩溃,对时间同步进行动态温度补偿可以较好的降低网络波动,提高稳定性。基于主动同步与被动同步,设计了一种动态调整时间同步算法,优化了同步的策略。实验表明,优化后的算法可以有效的降低温度变化对于网络的影响,降低网络重传率,增大网络规模,并且保证常温时的稳定性。
作者:杨祖业,于惠宣,李勇(沈阳中科博微科技股份有限公司)
(来源:自动化与仪器仪表 2019年1期 )