机械振动无线传感器簇状网络路径感知同步触发方法

2022-03-27 11:56汤宝平
振动与冲击 2022年6期
关键词:计时命令辅助

付 豪, 汤宝平, 黄 艺, 邓 蕾, 何 灏

(重庆大学 机械传动国家重点实验室,重庆 400030)

同步触发采集是无线传感器网络在机械振动监测中的关键问题。在进行机械振动无线传感器网络信号采集时,为保证信号分析结果的准确性需多节点同步触发采集,但由于节点分散,难以保证各个节点同步测量[1-3]。目前同步采集主要采用信标同步[4]、时钟同步[5]或采集节点间通信[6]等方法。信标同步或时钟同步需频繁获取并发送信标、时间戳等,易增加节点功耗,采集节点间通信难以在距离较远时实现同步信息传输[7]。此外,目前大多数节点均采用单控制器与单传输器的设计模式,其功能简单,难以平衡传输速度、传输距离、节点组网、同步采集等需求。

目前,信标或时钟同步采集方法主要有参考广播同步算法[8]、传感器网络时间同步协议 (timing-sync protocol for sensor networks, TPSN)[9]、延迟测量时间同步协议[10]、动态传感器网络时间同步协议 (flooding time synchronization protocol,FTSP)及其改进算法。目前上述方法已在一些领域得到了广泛的应用,但在机械振动测试方面同步触发精度相对较低,如FTSP和TPSN最小同步精度分别为67 μs[11]和50 μs[12]。

本文在设计双模复用基础上,构建伴随组网方法,提出路径感知触发方法,为机械振动无线传感器网络提供了一种不依赖时钟、信标与节点间通信同步的路径感知同步触发方法。

1 节点设计及组网方法

1.1 双模复用节点设计架构

本文采用以ARM(advanced RISC machine)架构为核心辅以恒流源驱动、信号选择、滤波、信号差分、信号采集、数据存储等电路的前端采集节点设计。在传输方面,采用以高效传输为特点的无线传输IEEE802.11协议模块一与以自组网为特点的无线传输IEEE802.15.4协议模块二[13],两种通信模式复用采集前端,以平衡传输、组网与同步等需求。模块一主要负责伴随网络的组建与同步触发,模块二主要负责主网络的组建。

在采集节点内部,数据主要通过USART(universal synchronous and asynchronous receiver/transmitter)、SPI(serial peripheral interface)与SDIO(secure digital input and output)等协议进行有线传输。在无线传输方面,数据收发分为两种:一种是通过IEEE802.15.4协议处理器;另一种是通过IEEE802.11协议。采集命令从终端发出,经辅助器、网关、单个或多个路由或直接到达采集节点,采集节点收到命令后通过USART协议将数据转发至中央处理器,然后开始触发采集。双模复用系统整体架构如图1(a)所示,本文设计的节点如图1(b)所示。

图1 双模复用系统整体架构和双模复用节点实物图

1.2 双模伴随组网方法

实际机械振动测试中存在大单一模式传输效率低与组网困难等问题。为解决组网与传输等问题,提出双模伴随组网方法。双模伴随组网节点包括采集节点、路由节点与网关节点,其分别由IEEE802.15.4协议模1与IEEE802.11协议模2组成,两者可通过有线方式进行拓扑结构信息传递。双模伴随组网示意图,如图2所示。

图2 双模伴随组网

双模伴随组网分为两个步骤:主网络组建与伴随网络组建。主网络组建时只有模1处理器参与,主组网按照其正常方式组网,主网络组建完成后在终端分析主网络拓扑结构,并生成包含模2的SSID(service set identifier)与WPA(Wi-Fi protected access)的伴随网络拓扑结构信息。获得主网络的地址关系就能获得主网络的拓扑信息[14]。当父设备可拥有子设备数量的最大值为Cm,父设备下将路由器作为它的子设备的最大数为Rm,网络最大深度Lm,在给定网络深度为d的条件下,父设备可分配给路由器子设备的地址数Cd计算方法如式(1)所示,第n个节点设备的网络地址如式2所示。

(1)

An=Ap+Cd×Rm+n

(2)

构建Rm= 3,Cm= 8,Lm= 3的簇状网络,根据式(1)计算Cd如下所示

C0=1+Cm(Lm-d-1)=1+8×(3-0-1)=17

(3)

C1=1+Cm(Lm-d-1)=1+8×(3-1-1)=9

(4)

C2=1+Cm(Lm-d-1)=1+8×(3-2-1)=1

(5)

C3=1+Cm(Lm-d-1)=1+8×(3-3-1)=-7

(6)

当d为3时,代表该节点为采集节点,不能再进行地址分配,此时,C3=0。接着根据式(2)计算各个节点的短地址如下所示

Addr_0=0

(7)

Addr_1=Addr_0+C0·0+1=0+17×0+1=1

(8)

Addr_2=Addr_1+C1·0+1=1+17×0+1=2

(9)

Addr_01=Addr_0+C0·Rm+n=0+17×2+1=35

(10)

Addr_11=Addr_1+C1·Rm+n=1+9×3+1=29

(11)

Addr_21=Addr_2+C2·Rm+n=2+1×3+1=6

(12)

Addr_22=Addr_2+C2·Rm+n=2+1×3+2=7

(13)

伴随组网在主网络组建完成的条件下进行。伴随组网主要分为两个步骤:首先,获取主网络生成的拓扑结构,将在主网络组建的拓扑信息发送至主网络的各个模1上并分析保存,然后将与模1对应的SSID与WPA拓扑信息经有线方式发送至模2。接着,模2分析并设置自身的SSID与WPA。模2自身SSID设置完成后,各级节点开始进行无线连接各自的父节点SSID,其中网关节点无需连接父节点、采集节点无需设置自身SSID。

2 簇状网络同步触发累积误差原因分析

簇状网络是机械振动无线传感器网络中常用的网络拓扑结构,以此分析命令到达采集节点同步的误差具有典型代表性。同步采集误差主要发生在采集开始时,由于节点处于异构空间网络结构中,采集命令到达采集节点时刻不同;此外,在采集过程中温湿度等环境变化及电磁干扰也会带来时间与空间抖动,但由于在实际采集中,采集时间一般较短且节点所处的环境相对固定,因此在采集过程中影响较小。

典型簇状网络拓扑结构, 如图3所示。在数据采集时,命令到达各个采集节点时刻不同的主要原因是传输路径时间、数据转发时间与程序指令执行时间存在差异。传输路径时间是指命令从终端到采集节点在无线传输过程中消耗的时间,数据转发时间是指数据在网关、路由及采集节点间命令转发的时间,程序指令执行时间是指所有程序指令参与执行的时间。

图3 典型簇状网络拓扑结构

簇状网络同步触发采集时序,如图4所示。命令从网关节点发出,理论上路径越短、中间经过路由数量越少的采集节点越先收到命令。采集节点1先于采集节点2在T1时刻收到触发命令,采集节点2先于采集节点3与采集节点4在T2时刻收到命令,采集节点3与采节点4理论上在T4时刻同时收到触发命令,但实际应用中,由于指令执行的先后顺序会存在细小的误差。

图4 簇状网络同步时序

3 路径感知同步触发方法

3.1 路径感知时间测量方法

路径感知时间测量的作用在于获得命令在不同路径上传输所需要的时间,本文提出了基于采集节点计时、终端和辅助器计时的路径感知时间测量方法。不含辅助器计时测量,如图5(a)所示;含辅助器测量,如图5(b)所示。

图5 采集节点计时测量

当不含辅助器测量时,首先由终端发送第一次测量命令;当采集节点收到第一次测量命令后采集节点开始计时,计时指令执行完成后向终端设备发送第二次测量命令;终端设备收到第二次测量命令后立刻向采集节点发送第三次测量命令;采集节点收到第三次测量命令后立即停止计时,并计算第二次与第三次测量之间的时间差;然后将时间差发送至终端设备,终端收到时间差数据后进行统一处理。其中,第二、第三次为有效测量,在第二、第三次中间需经带有操作系统的计算机处理多条程序指令,指令数量与节点数量成正比。当执行多条指令时,终端操作系统轮询会导致指令毫秒级中断,从而导致发送给各个节点的测量命令时间不连续,降低同步精度。

含辅助器测量时,除需由终端发起一次预测量命令,其余步骤与上述一致。发送正式命令过程不存在操作系统,因此可解决轮询中断指令的问题。但该方法以采集节点的处理器为计时基准,一般频率较低,导致最小时间增量大,难以满足高精度同步需求。

终端测量过程中,计时与测量命令均由终端设备控制,测量步骤同上述第二、第三次。由于测量命令仍存在多条程序指令,同样存在操作系统轮询导致指令毫秒级中断的问题。辅助器测量只需由终端设备发送一次预测量命令后,测量命令由辅助器控制,其余步骤一致。辅助器在测量中无需任何操作系统干预,不存在指令中断问题;辅助器还可选择超高主频的处理器以降低最小时间增量;且单次测量均为有效测量,可节省测量时间;因此本文采用辅助器测量,终端与辅助器计时测量,如图6所示。

图6 终端与辅助器计时测量

在进行辅助器测量时,每条线路需要进行一次路径感知。由于辅助器不能确定何时发起测量,因此正式测量前需由终端向辅助器发出预测量命令,然后将控制权交给辅助器。测量前,首先为每个采集节点分配一个软件计时辅助器,然后向各个节点依次发出正式测量命令,并立即开始计时;当各个采集节点收到测量命令后立刻发出反馈命令;辅助器收到各个节点的反馈命令后停止计时,并计算时间差。最后将时间差发送至终端设备进行数据处理。

辅助器测量精度主要取决于时钟频率,其最小时间增量Δti计算如式(14)所示,其中Fi为辅助器基准频率。时钟频率较小时路径感知测量出的时间精度较低,同步触发精度较低,反之亦然。

(14)

辅助器计时测量可弥补上述方法的不足,且具有超高的同步精度,本文以辅助器计时测量分析测量方法。开始测量前分别将每个节点编号为i;然后终端设备向节点号为i的节点发送测量命令,并立刻计时,记录初始时间为tsij;采集节点i收到测量命令后立即向终端设备返回测量命令;终端设备收到测量命令,并立即停止计时,并记录收到测量命令时间为trij。以上步骤为单个节点测量一次的路径时间,经大量重复测试试验表明,受时间抖动与空间抖动等影响,每次测量的时间差有较小误差,为降低误差,采用多次测量取平均值的方法,每个节点测量的次数均为m。为避免信道竞争,当一个节点m次测量完成后才进行下一个节点的测量。下标:s为发送正式测量命令;r为接收反馈;i为第i个节点;j为第j次测量。

3.2 最大差值路径时间补偿方法

当所有节点的m次测试完成后,通过记录的数据进行时间补偿计算。首先第i个采集节点的第j次路径感知测量的单程时间Twij,如式(15)所示。然后计算第i个采集节点从第一次到m次测量的平均时间/Twij,如式(16)所示。

(15)

(16)

式中:tcij为采集节点、终端与辅助器的指令执行时间;ttij为数据在路由节点上的中转时间。

路径时间最大值求法为:首先设定一个存储器,存储器初始值为第一个采集节点的平均值,然后将每个节点的平均时间与存储器值比较,若大于存储器的值则交换其值,若小于存储器值则不交换;重复上述步骤,比较的次数为节点数量,最后一次比较后存储器的值则为路径时间最大值Max(Twij)。最大值与每个节点的平均时间相减,即可得到每个节点的单程平均路径时间补偿值Δi,如式(17)所示。

(17)

将式(15)与式(16)代入式(17)可得每个节点的平均路径时间,如式(18)所示。

(18)

将式(15)~式(18)整理可得式(19),由于每次测量时指令执行时间tcij与中转ttij相同,因此可以看出,各节点的补偿时间只与每个节点测试的次数和路径时间差有关,如式(20)所示。

(19)

(20)

3.3 路径感知延时时间分块处理方法

通过式(19)可计算出每个采集节点应当补偿的路径时间,根据补偿时间值可针对对应的采集点依次延时相应的补偿时间后发送采集命令。由于目前辅助器一般采用定时器计时,定时器频率是由辅助器经过多次分频得到,直接使用定时器频率计时将导致最小时间增量较大,难以满足精度要求。针对上述问题,以辅助器主频为最小计时时间增量,通过运行单指令的方式来进行延时。单指令时间Tc计算如式(21)所示。单指令周期由一个机器周期或n个状态周期或q个时钟周期组成,n与q与辅助器的类型有关,当辅助器固定时,n与q为固定值。

(21)

由式(21)可看出,当辅助器主频率越大时,单指令执行时间越短,延时时间增量越小,同步触发精度越高。辅助器长时间运行单指令时将导致辅助器异常,因此还需解决长时间延时的问题。

在开始测量前,首先获取辅助器基准频率,每条指令执行的时间计算公式如式(21),该指令时间一般可为到达微纳秒级。因此可采用补偿时间除以单指令时间的方式,获得需要执行单指令时间的次数N,其计算如式(22)所示。

(22)

当N值较大时,单指令程序长期占用处理器操作系统时间片较长会触发“看门狗”,且占用运行内存较大引起系统栈内存溢出,从而引发系统故障,无法获得精确延时。因此在单指令时间基础上进行封装处理,即将单指令执行次数N拆分成执行M个时间段,执行K次。每执行K次单指令后清理一次栈内存,可解决辅助器栈内存问题。

Ni=Mi·Ki

(23)

将式(22)代入式(23)得

Δi=Mi·Ki·Tci

(24)

将式(21)代入式(24)得

(25)

将式(20)代入式(25)得

(26)

由式(26)可以看出,当每个节点路径感知时间测量结束后,时间补偿为固定值,即各个节点用于延时的单指令执行次数MK固定。当封装的时间段M较大、K较小时,容易导致辅助器栈资源占用较多;当封装的时间段M较小、K较大时,将频繁清除栈内存,占用处理器时间。因此在实际应用中,需根据不同的辅助器基准频率平衡M与K的取值。通过上述延时时间封装方法,可有效解决普通定时器精度较低的问题。

进行开始采集时,首先每个节点在网络组建完成的基础上进行m次路径感知,获得各个节点的路径时间。当全部节点测量完成后,经辅助器分析处理得到各个节点的补偿时间。然后根据各个节点的延时补偿值进行延时后,依次发送同步采集触发命令。由于各个节点的路径时间不同,经过补偿延时后,采集命令最终到达各个采集节点的时间在同一时刻,最终可同步触发采集。

4 试验与应用

4.1 路径感知次数试验

为降低测量误差,采用多次测量路径感知时间取平均值的方法。为确定先行测量次数m的具体值,对每个节点进行了多次测量。每个节点的平均路径时间与补偿时间,如图7所示。

图7 路径感知测量

可以看出,随着基础测试次数的增加,同步触发平均路径时间与补偿时间均先大致趋于平稳,后在1 000次时有所增加。在基础测试次数为500次左右时,所有节点的平均路径时间与补偿时间综合来看处于较低值。因此,路径时间测量次数在500次左右较为适合。

4.2 同步触发精度应用测试

为比较实际工况下路径感知同步触发精度,在无同步方法和有本文提出的路径感知同步方法下进行一组随机测试,测试位置分别齿轮箱的X、Y方向,测试环境如图8所示。辅助器向各个节点发送正式采集命令后,用逻辑分析仪捕捉各个采集节点数模转换器上引脚的时序,分别测试有无同步方法下的误差。

图8 同步触发精度应用平台

无同步方法下采集的误差,如图9(a)所示。4个采集节点间命令触发的最大时间误差约为节点1与节点3的49.632 649 ms,最小误差为节点3与节点4的10.001 258 ms。路径感知同步触发采集方法下的同步误差,如图9(b)所示。4个采集节点间命令触发的最大时间误差约为节点1与节点3的56.139 μs,最小误差为节点3与节点4的11.300 μs。

图9 无同步方法和含同步方法

为避免随机测量带来的偶然性,使用上述方法重复测量50次,并统计最大与最小误差,统计结果绘制如图10所示。可以看出,最大同步误差在50~60 μs,最小同步误差在10~16 μs,满足机械振动高精度同步触发要求。

图10 多节点同步误差测试统计

5 结 论

为解决无线传感器机械振动信号采集时依赖信标时钟同步触发及精度问题,提出了簇状网络下的路径感知时间补偿同步触发方法。通过试验表明在:路径感知同步触发方法下的多跳同步精度最大同步误差在50~60 μs,最小同步误差在10~16 μs。相对于无同步方法提高了800多倍,相对于信标时钟同步触发300 μs提高了约6倍~10倍,最小同步误差相对于FTSP和TPSN的精度提高了约6倍,结果表明路径感知时间同步触发方法具有良好的效果。

猜你喜欢
计时命令辅助
只听主人的命令
畅游计时天地
倒开水辅助装置
腕表计时2.0
安装和启动Docker
12时计时法与24时计时法的互化
基于大数据分析的易混淆车辅助识别系统设计与实现
计时工具
移防命令下达后
例谈何时构造辅助圆解题