跨平台访问端传感网络串口通信多线程实现*
2024-03-06许弟建吴云君
许弟建,吴云君,孙 韬
(1.重庆科技大学电气工程学院,重庆 401331;2.重庆大学电气工程学院,重庆 400044)
跨平台泛指程序语言、软件或硬件设备可以在多种作业系统或不同硬件架构的电脑上运作。而传感网络是集数据采集、管理和发送于一体的信息处理技术。随着无线传感技术的发展与成熟,目前该技术已在传感通信领域受到极大的关注与重视,成为目前应用最为广泛的技术之一[1-2],无线传感网络通常以多跳自组织网络形式实现通信[3]。但是,多线程传感网络的通信技术还存在一定的问题,相关学者也在不断地改进方法。
于杨等[4]采用通信流水线方式使相同线程内信息传输和运算保持同步,通过消息集聚方式集聚串口通信线程,引入通信队列方式减少线程切换次数,利用面向依赖环的优化方式避免依赖环限制的影响,实现跨平台访问端电力网络串口通信。Gao等[5]采用基于边缘的跨平台访问端传感网络串口通信多线程分配方法,考虑分配序列的影响提出以循环神经网络为基础的线程估计法并在边缘服务器上执行分配算法,实现跨平台访问端传感网络串口通信。张雪坚等[6]建立跨平台访问端传感网络模型,以最优化效益函数为指标构造目标函数,引入布谷鸟搜索算法生成串口通信多线程分配策略,通过迭代收敛机制优化多线程选择,实现跨平台访问端电力无线网络串口通信。李菲等[7]提出多线程电子通信网络数据流荣誉量消除方法,采用主动采样法计算数据间的特征相似度,得出基本数据特征收缩量,利用数据动态Dynatable 消除算法,实现冗余数据消除。张翠芳等[8]提出基于模糊矩阵的多线程网络通信延迟检测技术,通过建立多线程通信延迟检测模糊矩阵,分析判别通信延迟情况,实现对通信延迟的检测。Kanthavel 等[9]提出基于多希望协作通信的地下无线传感器网络设计,针对通信网络中的节点在通信中协调工作,促进通信资源的有效利用,实现无线传感器网络适应高数据流量下的多跳传输。但是,由于跨平台访问端的传感器数据来自不同平台,具有显著独立性,融合难度较大,直接影响多线程通信效率。由于以上方法中存在只考虑了跨平台访问,或只考虑多线程间的数据传输,忽略了对多线程间激烈竞争对信息传输造成的影响的考虑,导致网络延迟仍然得不到显著缩短,存在所需线程数和进程平均超限步数较多的问题。
为此,设计一种跨平台访问端传感网络串口通信多线程实现方法。通过构建跨平台访问端,采用统计概率置信度算法剔除异常值。从时间相关性和空间相关性两方面,完成传感网络的数据融合。通过分配多线程执行信息传输,实现跨平台访问端传感网络串口多线程通信,所提方法可有效降低网络延迟,提高了传输效率。
1 传感数据异常值剔除
跨平台访问端建立在HTML5-NET 服务器基础上,服务器端严格遵循WebSocket 协议。在跨平台访问端无线传感网络中,同一个数据会被若干节点重复转发,产生大量冗余数据,导致数据信息内爆现象,影响数据传输的整体性能和最终服务质量。为了解决以上问题,所提方法在执行串口通信多线程传输前将传感网络采集到的数据融合处理[10]。由于跨平台访问端传感网络采集数据时受自身设备和外界环境的影响,数据中难免存在部分异常数据,所以在数据融合[11]前剔除数据异常值。
采用统计概率置信度算法检验传感网络采集到数据中的异常值[12]。假设存在具有m个传感器的传感网络,全部传感器对跨平台访问端网络中同一目标参数加以监测,用i、j表示任意两个传感器,i,j∈m,xi表示传感器i的测量值,xj表示传感器j的测量值,wij表示xi与xj的偏差,wij=|xi-xj|,wij越大则xi与xj的偏差越大,因此可建立误差矩阵Wm,用于描述传感器采集到的每两个数据之间的偏差程度,Wm如下所示:
结合实际需求设置一个置信阈值T,若wij>T,则传感器i与j之间误差较大,数据互不支持,可认为信任度rij=0,反之数据相关性较大,两者间相互支持,信任度rij=1,即:
由此设定判别准则pi,如下所示:
在确定阈值T的情况下,若全部采样数据之间均相互信任,则全部数据均为参数值的无偏估计。依据式(3)对全部数据判定,修正异常数据或直接剔除异常数据,在保证相关性同时实现异常数据剔除,为后续数据融合奠定基础,以实现多线程串口通信。
2 基于传感数据融合的多线程串口通信方法设计
2.1 传感数据融合
剔除异常数据后,为了保障传感网络采集数据的真实性,将数据相关性划分为时间和空间两个部分,完成传感网络的数据融合[13]。
2.1.1 时间相关性
用(xi,yi)表示节点在当前时刻前n个时刻获取到的数据组,a=1,2,…,n,依据最小二乘法求解k次拟合多项式Hn(x)[14],k<n,如下所示:
式中:a0,a1,…,ak表示多项式系数,F(·)为多项式相关函数,假设∀ap,aq∈ak,p,q∈k,则依据多元函数极值条件可得方程如下所示:
采用主元素法求解式(5),可得到当前时刻t前n个时刻参数(Gt-n,…,Gt-2,Gt-1)的最小二乘k次拟合多项式,将解得的系数代入计算即可得到当前时刻参数估计值。依据实际需求设置阈值ψt,用Gmax表示参数最大值,Gmin表示参数最小值,则可得到时间相关修正参数St如下所示:
当传感器采集到的数据与估计值差值小于阈值ψt时,可将估计值忽略不计,此时节点时间相关修正系数为1,直接将传感器采集到的数据用于数据融合。
2.1.2 空间相关性
假设存在需要实行空间相关性判断的节点k,该节点具有与其拥有相同父节点的兄弟节点i和j,k处于三者中间,由节点i为基础,遍历全部满足Rikj最近接0 度或180 度的节点j,在该情况下将节点i和j定义为以节点k为中心节点的隶属于节点i的传感器节点组,Rikj为该节点组的夹角,对Rikj与直线的偏差角ΔR加以计算,如下所示:
若ΔR符号为正,则节点i和j与节点k方向相同,否则方向相反。当ΔR>时,则定义为未搜索到符合要求的节点组,令ΔR=π。
根据实际情况设定ΔR的阈值ψp,用Rmax表示接近直线的最大偏差角,ψmin表示设定的最小阈值,ψadd表示阈值最大增量,则ψp如下所示:
若节点k在节点i到节点k方向上的参数变化率与节点k在节点k到节点j方向上的参数变化率差值小于ψp,则定义该节点组支持节点k采集到的数据,令Mreliable数值加1,Mreliable表示参数变化率差值小于ψp节点组总数,用Mline表示搜索到的节点组总数,Ep表示空间支持度调节系数,用于调节空间相关支持度对Mreliable和Mline的敏感程度,则空间相关支持度Sp计算方式如下所示:
2.1.3 传感数据融合的实现
通过上式计算,获取时间相关修正参数和空间相关支持度,完成传感网络的数据融合。用M表示子节点总数,Gsensor,i表示当前时刻子节点i传感器采集到的数值,i=1,2,…,M,St,i表示当前时刻子节点i时间相关修正系数,Sp,i表示当前时刻子节点i空间相关支持度,Mdata,i表示当前时刻子节点i数据丰富度,则当前时刻子节点i传感器融合后数据如下所示:
依据以上计算实现跨平台访问端无线传感网络数据融合,为后续串口通信多线程提供更为优质的数据信息,降低系统负担,提升数据传输实时性。
2.2 多线程串口通信
根据融合后的传感器网络数据融合,通过多线程串口通信方法,实现跨平台数据访问,提升数据的传输性能。为了保障串口通信中信息以最优速率传输,务必保证相同时间下存在至少一个根节点发送信息至Sink 节点[15],但因为路由节点仅能够转发其子节点信息且不能连续向上发出信息,所以需要调度节点传输时序,错落分布各节点的发送和传输状态。由于父节点和子节点具有传输状态相反的性质,因此所提方法采用父子链路时序轮转调度法自上而下逐层确定节点传输时序。
统计传感网络中根节点总数,记作M,由此生成根节点列表,记作Li,其中,Li前端为采集节点。依据信息采集命令在上位机中统计各根节点传输信息量,记作Ui,用Vj表示Li中采集节点j采集的信息量,则Ui=∑Vj,根据Ui将根节点划分为两类,记作Ψa和Ψb,两者满足Ψa的信息总数Ua与Ψb的信息总数Ub大体上相同,从而使Ψa和Ψb轮流发送信息且信息传输时间基本相同。设置Ψa的初始状态为传输状态,Ψb的初始状态为接收状态,如果当下不存在需要传输的信息,则节点进入休眠。
由以上分析可知,依据时序轮转调度方式能够逐层确定节点传输时序,进而实现全网络时序分配。
在跨平台访问端传感网络中节点的部署较为密集,串口节点通信范围内也许会存在其他无关节点,因此信息传输线程的分配中务必对信息多线程并行传输造成的线程邻频干扰情况加以考虑,同时为避免外界环境影响信息传输效果,还需对信息传输线程链路质量加以考虑。
sink 节点对全部线程发起能量扫描任务并记录全部可用线程峰值能量,降序排列能量值,生成可用线程列表,记作Di,为了防止邻频对信息传输的影响,需要满足同时传输的线程之间相隔频段大于2。
构建图1(a)rn fi 的传感网络模型,当sink 入网时为其分配线程D1,依据初始状态将路由节点划分类别R1i和R2j,存储两类路由节点中的传输线程于两个不同列表之中,实现跨平台访问端传感网络串口通信多线程信息传输,线程分配方法如图1(b)所示。
图1 传输时序调度示意图
3 仿真分析
仿真软件采用MATLAB2020b 实现仿真,通过调用Instrument Control Toolbox 中的serial 类函数创建串口对象,设置发送区域的数据类型。
仿真过程的具体步骤为:
步骤1 在MATLAB 中,采用Python 编译数据信息转换程序,搭建无线传感网络中多信道信息融合仿真模型,并设置一个置信阈值T,输入仿真函数。
步骤2 通过serial 函数创建串口对象,设置偏差角的阈值ψp,并设置发送区域的数据类型和a0,a1,…,ak多项式系数,实现数据融合。
步骤3 将传感器融合后的数据Gfusion输入到仿真模型,通过发送握手命令,将多个串口连接起来。
步骤4 使用fwrite 函数,将采集节点Cj采集到的数据发送。
步骤5 将发送的数据信息传输至上机位,实现通信仿真。
为了验证跨平台访问端传感网络串口通信多线程实现整体有效性,需要测试跨平台访问端传感网络串口通信多线程实现。不同线程数量对串口通信信息传输延迟具有不同的影响,分别以数量为1、8和16 的线程检测所提方法、文献[4]方法和文献[5]方法在跨平台访问端传感网络串口通信中的信息传输效果,统计低网络流量负载和高网络流量负载下三种方法的网络延迟,结果如表1 所示。
表1 不同线程数量下网络延迟检测结果 单位:ms
由表1 可以看出,在低网络流量负载和高网络流量负载下,线程数量的增加均有降低网络延迟的效果,在低网络流量负载线程数量为1 时,所提方法网络延迟比文献[4]方法短1.1 ms,比文献[5]方法短0.31 ms;当在线程数量增加至为16 时,所提方法网络延迟比文献[4]方法短0.92 ms,比文献[5]方法短0.18 ms。可见,所提方法在不同情况下均具有更低网络延迟,更能够满足跨平台访问端传感网络串口通信要求。
随机生成进程和相关指标用于信息传输所需线程数对比,在确定传输密度下统计所提方法、文献[4]方法和文献[5]方法的所需线程数,结果如表2所示。
表2 不同传输密度下线程数检测结果
由表2 可以看出,所提方法与文献[4]方法和文献[5]方法相比,在进程数和传输密度相同的情况下,所提方法所需线程数少于文献方法,且随着进程数增加,与另外两种方法所需线程数差值更加明显。
信息传输存在不同概率的错漏,传输错漏率的增大会导致进程平均超限步数的增加,进而造成信息传输失败的问题,相同错漏下超过协方差阈值的平均步数越少则信息传输效果越好,假设传输错漏率服从伯努利分布,统计线程数为8、进程数为30时所提方法、文献[4]方法和文献[5]方法的进程平均超限步数,结果如图2 所示。
图2 不同传输错漏率下进程平均超限步数检测结果
由图2 可以看出,当传输错漏率增大时,所提方法、文献[4]方法和文献[5]方法的进程平均超限步数也会随之上升,但相同传输错漏率下,所提方法的进程平均超限步数始终更低,说明所提方法具有更好的跨平台访问端传感网络串口通信效果。
以平均丢包率和平均吞吐量为指标进一步检测所提方法、文献[4]方法和文献[5]方法串口通信性能,平均丢包率越低、平均吞吐量越高,则对应方法的串口通信效果越好,统计线程为8 时不同节点负载下平均丢包率和不同业务流负载下平均吞吐量,结果如图3 和图4 所示。
图3 不同节点负载下平均丢包率检测结果
图4 不同业务流负载下平均吞吐量检测结果
由图3 和图4 可以看出,所提方法在不同业务流负载下平均吞吐量均高于文献方法,说明所提方法规划的跨平台访问端传感网络串口通信多线程分配方法能够有效提升串口通信性能,因为所提方法提出时钟同步调度串口通信多线程信息传输方法,有效避免了传感网络中节点由于线程竞争造成的信息传输性能下降和传输失败的问题。
4 结束语
为了解决网络延迟、以及所需线程数和进程平均超限步数较多问题,提出跨平台访问端传感网络串口通信多线程实现新方法。通过统计概率置信度算法修正或剔除传感网络采集到数据中的异常值,采用时空关联性融合传感网络数据,依据信标时序补偿网络时钟同步法、父子链路时序轮转调度法和干扰最小化法分配线程执行跨平台访问端传感网络串口通信。该方法能够有效地降低网络延迟、平均丢包率,提高平均吞吐量,减少所需线程数和进程平均超限步数,为跨平台访问端传感网络串口通信的稳定应用奠定基础。