基于NRF2401的标靶数据透传系统的设计

2021-06-24 10:04马苗立倪雪松李香娜
华北科技学院学报 2021年2期
关键词:数据包传输节点

马苗立,倪雪松,李香娜,张 莉

(1.华北科技学院 电子信息工程学院 北京 东燕郊 065201;2.华北科技学院 保卫处 北京 东燕郊 065201)

0 引言

随着物联网和计算机技术的迅速发展,我国的社会生产越来越智能化[1,2]。然而,在许多军事或非军事训练中,报靶依然采用人工报靶,这存在诸多问题如:对报靶者的依赖性比较大;报靶效率比较低下,不利于指导打靶人员射击技术的提高;射击场子弹横飞,存在极大的安全隐患等。为了实现科技强军推进军队现代化,许多智能的设备被引入到部队。为了结束人工报靶,一些部队通过智能设备实现对靶位传感器的远程控制,实现了打靶报靶的电子化[3]。但是这些设备往往是有线通信,需要昂贵的布线成本。一些研究者设计了无线通信设备避免了布线的代价[4],然而这些无线设备在复杂的山区等环境中很难保证网络的稳定性,并且这些网络的通用型较差[5,6]。

为了减少对网络稳定性的依赖并增加其通用性,本文设计了一种基于nRF2401的标靶数据透传系统,它拥有以下优点:①该协议设计了健全的无线透传协议,保证了传输数据不丢失不重复;②所设计的协议实现了一对多的通信传输,可以根据需求随意组建网络拓扑结构;③设计了本地存储机制,可以防止由于网络的不稳定性或者数据的拥挤造成的数据丢失。需要注意的是,本文设计的系统仅限于数据的传输,数据直接来自与现有的智能标靶系统(河北石家庄某公司的生产的智能标靶系统)。

1 TDTS的网络拓扑结构

目前的部队打靶一般配备多个靶位,最后数据汇总到一处(教官处)。本文所设计的标靶数据透传系统的模式是一对多的,即包含了一个主节点和多个从节点,每一个从节点对应一个靶位,主节点是数据的汇总节点。每个从节点与主节点之间建立连接,从节点之间不互通,具体拓扑结构如图1所示。在工作过程中,主节点以一定的频率依次向从节点发送带有待传数据的握手信息,从节点在收到主节点的握手信息后回复带有待传数据的应答信息。握手信息和应答信息里均携带着待传送的数据。详细的数据协议格式在第三部分进行介绍。

图1 系统网络拓扑结构

2 TDTS的硬件实现

2.1 硬件系统的设计

主/从节点硬件由控制中心(单片机stm32f103r8t6),网络单元(无线射频模块nrf2401与信号放大器)组成,还包括了硬件的ID标识,RJ45有线网口(W4500)、RS232接口,RS485等一些外围扩展接口。

图2 系统的硬件框图

2.2 STM32单片机

STM32单片机是目前主流的高性能低成本单片机[7],拥有充足的外设资源。本系统采用STM32作为主控芯片(MCU)。

2.3 网络通信单元

nRF24L01是射频收发芯片[8],载波是2.4G,芯片内集成了频率合成器、功率放大器、晶体振荡器和调制器等功能模块。nRF24L01有四种发射功率,其传输距离为15~50 m。为了扩大通信距离,除nRF24L01内置的放大器,系统还包含了外设放大器,可以根据需要选择不同的型号,以满足不通的通信距离需求。

2.4 数据输入输出单元

主/从节点可以通过一些预留的外围接口与应用的其他环节连接,预留接口包括有线网口,一线制接口,RS484串口、RS232串口等。预留多种接口可以保证系统与多种标靶传感器对接。

2.5 节点ID单元

为了保证每个节点都有一个全球唯一的网络ID,本系统节点设置了节点的ID标识,其网络通信地址信息由ID标识提供。本系统选择的ID标识芯片为DS2411芯片,该芯片可提供64位(8位家族码+48位序列号+8位CRC校验码)的全球唯一序列号[9-10]。本系统利用DS2401芯片中的48位序列号的低40位作为系统节点的网络ID。

2.6 本地数据存储单元

本地数据存储单元主要用于对本地数据的暂时存储。在一些条件恶劣,工况复杂多变的部队环境,无线设备的网络通信稳定性很难保证。为了消除无线设备网络的不稳定性对整个系统带来的不利影响,在本系统中设计了数据的本地存储机制。所有接收的数据按照顺序暂存到本地,当网络空闲或者稳定的时候从本地存储机制里调取待传输数据。主/从节点收发的数据可以通过主/从节点上预留的接口发送到下一个处理单元。同样,其待发送的数据也来源于其预留的接口。

3 TDTS透传协议的设计

TDTS的难点之一是保证所传输的数据不丢失、不重发。为了保证系统数据准备无误的进行传输,所提出的系统在本地暂存的基础上设计了传输协议,协议格式如表1所示。

表1 协议格式

3.1 协议格式

系统中主从节点拥有相同的协议格式,协议长度为32个字节,其中第一个字节为节点待发送的数据包ID,第二个字节为节点已收到的数据包ID。发送和接收数据包ID是一组数据的标签,它们均在1~255之间顺序循环,其中发送数据包ID是本地待发送数据包的ID,接收数据包ID是本地接收到的数据包的ID。第三个字节为发送数据长度,是本地当前待发送数据包所携带的待传数据的长度,其值在0~29之间。发送的数据为当前待发送数据包内所携带的数据。打包时,若待传数据长度M>29,则发送数据长度字节设为29,并按照顺序选取29个数据进行传输;若待传数据长度M≤29,则设置发送数据长度为M,并将所有待传数据打包;若待传数据为0,则数据包第二个字节设为0。为了表述简单,我们把主节点发送的数据包称为握手数据包,从节点发送的数据包成为应答数据包。

3.2 数据包的传输

本系统为了保证数据传输的准确性,对网络传输的协议进行了详细的设计,对于不同的网络故障设置了不同的处理机制。为了更好的理解数据包的传输过程,将整个传输过程分为三种情况:主从节点间不间断连续通信的正常情况,如图3所示;主节点发送成功,从节点应答失败,如图4所示;主节点发送不成功,如图5所示。主/从节点的数据传输过程如下:

图3 主从节点正常发送

图4 主节点发送握手正常,从节点应答不成功

图5 主节点发送握手不成功

步骤1:主节点将发送地址切换到某一个从节点(即切换到准备向其发送握手数据包的从节点地址),按照表1所示的协议格式打包握手数据包向该从节点(以下统称从节点)发送,其中发送数据包ID设置为当前待向从节点发送的握手数据包ID,接收数据包ID设置为已接收到的从节点的应答数据包的ID。

步骤2:主节点发送数据及发送过程中的故障处理,分为以下三种情况:

① 从节点没有接收到主节点发送的握手数据包,从节点不做响应(如图5所示);

② 从节点接收到主节点发送握手数据包,并且接收到的握手数据包ID与已经接收到的握手数据包ID一样(说明该握手数据包在上一次传输时已经接收到了),则从节点用上一次的应答信息进行应答(即再次通知主节点,该数据包信息已收到)(如图4所示)。

③ 从节点接收到主节点发送的握手数据包,并且当前接收到的握手数据包ID比已接收到的数据包ID大1,说明当前接收到的是新的握手数据包,则解析该握手数据包所携带的数据信息,暂存到本地,等待进一步的处理。同时将已接收的握手数据包ID加1,将已发送的应答数据包ID加1,并将从节点按照表1所示的协议格式打包数据包作为应答数据包发送给主节点(如图3所示)。

步骤3:主节点接收数据及接收过程的故障处理,该步骤分为以下四种情况:

① 在规定时间内主节点没有接收到步骤2中从节点发送的应答数据包,此时,这节点认为与步骤2中的从节点通信失败。主节点切换到与下一个从节点进行通信,等下一轮切换到该从节点继续发送步骤1中的握手数据包(如图4~5所示)。

② 主节点接收到步骤2中从节点发送的应答数据包,若该数据包为已接收的应该数据包,则主节点丢弃该应答数据包,并等待下一次轮候时,继续发送步骤2中的握手数据包;若应答数据包为新数据包,则解析该握手数据包所携带的数据信息,暂存到本地,等待进一步的处理。同时将已接收的应答数据包ID加1,将待发送握手数据包ID加1。并切换到与下一个节点进行通信(如图3所示)。

需要注意的是,虽然无线通信的速度可以达到光速,但是nRF2401与单片机之间通过SPI接口进行通信,这对于网络通信是比较耗时的,为了给主从节点足够的收发时间,保证网络的稳定性,建议主节点向从节点发送握手信息的间隔不要少于3毫秒。

4 效果验证

为了验证所提出的系统的有效性,设计了以下两个实验。其中,实验一为实验室测试,实验二是实际测试。

4.1 实验一

将所设计的系统按照图6所示的模型进行测试,两台PC机通过RS232与主/从节点相连,并进行数据对传。主节点以5ms的间隔向从节点发送握手信息。在实验过程中,通过调节放大器的放大倍数、外接功率放大器、加遮挡物和断电等方式来获得不同通信距离(能力)的网络节点。如图7所示。为了充分验证所设计的TDTS通信的稳定性,本文做了7组实验,实验结果如表2所示。其中,第一组实验是系统在正常情况下的通信情况,实现了数据无差错的传输。第二组和第三组实验分别模拟了主从节点故障时,系统的通信情况。第四组实验模拟了节点好时坏时系统的通信能力。第五组实验,模拟了系统的应对节点通信故障的能力。第六组和第七组实验模拟了系统外接功率放大器扩充通信距离的能力。从实验结果可以看出,对于主从节点的各种故障,系统具有足够的应对能力。

图6 测试模型1

表2 测试结果

4.2 实验二

为了验证所设计系统的实际应用的稳定性。将所设计的标靶数据透传系统应用到甘肃某部队靶场。具体的应用结构如图7所示,从节点1-6连接不同的靶位,其中一号靶位通过SPI接口采集数据,2号靶位通过RS485采集数据,其余靶位通过RS232接口采集数据。为了满足实际需要,按照靶场规模,主节点在nRF24L01与天线之间级联了两级放大器,使通信距离达2 km。设备在该部队正常运行一年的时间,经历了不同天气(晴,大风,大雾,雨、雪)情况。实验中系统均能正确传输靶位数据。本实验验证了所设计的系统在实际应用中的有效性。

图7 应用实例拓扑结构

5 结论

(1) 网络的拓扑结构灵活,可根据需要随意组建网络结构。

(2) 系统的数据本地暂存机制克服了无线网络通信拥堵引起的数据丢失问题。同时,完善的数据通信协议避免了无线网络通信不稳定引起的漏传、错传、重复传等问题,保证了数据传输的可靠性。

(3) 实验结果表明,所设计的系统可以保障数据传输的可靠性和稳定性,通过级联放大器的方法,可以扩充传输距离,目前实际中已扩充至2 km。

猜你喜欢
数据包传输节点
二维隐蔽时间信道构建的研究*
轨道交通信号系统无线传输应用
基于图连通支配集的子图匹配优化算法
特斯拉的接班人:电力可以通过空气传输
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
结合概率路由的机会网络自私节点检测算法
面向复杂网络的节点相似性度量*
采用贪婪启发式的异构WSNs 部分覆盖算法*
C#串口高效可靠的接收方案设计
浅谈垂直极化天线在地面数字电视传输中的应用