本发明涉及通信技术领域,尤其涉及一种无线保真wi-fi测距方法、相关设备及系统。
背景技术:
精细时间测量(英文:finetimingmeasurement,简称:ftm)协议是无线保真(英文:wirelessfidelity,简称:wi-fi)技术中测量目标节点与参考节点之间距离的协议,图1为现有技术中基于ftm协议测量目标节点与参考节点之间距离的流程示意图;各个步骤的详细描述如下:
步骤一:目标节点向参考节点发送初始ftm请求帧(initialftmrequest)以请求该参考节点执行ftm。
步骤二:该参考节点接收该目标节点发送的初始ftm请求帧,并在接收完该初始ftm请求帧后向该目标节点发送确认消息(英文:acknowledgement,简称:ack),确认执行ftm。
步骤三:该参考节点向该目标节点发送第一ftm帧并记录发送该第一ftm帧的时间t1。
步骤四:该目标节点接收该第一ftm帧并记录接收该第一ftm帧的时间t2,在接收完该第一ftm帧后向该参考节点发送ack并记录发送该ack的时间t3。
步骤五:该参考节点接收该ack并记录接收该ack的时间t4,向该目标节点发送包含上述t1和t4第二ftm帧。
步骤六:该目标节点接收该第二ftm帧并向该参考节点反馈ack,以告知接收到了该第二ftm帧。
步骤七:该目标节点获取该第二ftm帧中的t1和t4,根据图1a所示的t1~t4的时序关系计算该参考节点与该目标节点间的距离d,计算公式为:d=[(t4–t1)–(t3–t2)]/2*c。
现有技术的缺陷在于,在执行ftm的过程中参考节点与目标节点之间交互的次数较多用时较长,导致测量距离的效率低。
技术实现要素:
本发明实施例公开了一种无线保真wi-fi测距方法、相关设备及系统,能够提高测量距离的效率。
第一方面,本发明实施例提供一种无线保真wi-fi测距方法,该方法包括:
目标节点向参考节点发送测距请求帧,指示所述参考节点发送第一空数据包ndp,所述ndp不包含数据;那么,该参考节点接收到该测距请求帧后,就会向该目标节点发送第一ndp,由于该第一ndp不携带数据单元,因此参考节点发送该第一ndp的过程不会持续太长时间。
所述目标节点接收所述参考节点发送的第一ndp并记录接收所述第一ndp的第一ndp接收时间,向所述参考节点发送第二ndp并记录发送所述第二ndp的第二ndp发送时间。
所述目标节点接收所述参考节点发送的测距响应帧,所述测距响应帧包含所述参考节点发送所述第一ndp的第一ndp发送时间和接收所述第二ndp的第二ndp接收时间;当存在多个第一ndp发送时间和多个第二ndp接收时间时,该参考节点可以将该多个第一ndp发送时间和多个第二ndp接收时间时通过一个测距响应帧一次性发送给该目标节点,也可以通过多个测距响应帧分批发送给该目标节点(每个测距响应帧至少包含一个第一ndp发送时间和一个第二ndp接收时间)。
所述目标节点根据所述第一ndp接收时间、所述第二ndp发送时间、所述第一ndp发送时间和所述第二ndp接收时间计算所述目标节点与所述参考节点之间的距离。具体是结合信号在参考节点与目标节点之间传输的时间(由第一ndp发送时间、第一ndp接收时间、第二ndp发送时间和第二ndp接收时间计算得到)和速度(等于电磁波在空气中传输的速度)计算出目标节点和参考节点之间的距离。
通过执行上述步骤,参考节点接收到目标节点发送的测距请求帧后不向该目标节点发送ack,而是直接向该目标节点发送第一ndp,该目标节点接收到该第一ndp后向该参考节点发送第二ndp,该参考节点接收到该第二ndp后再向该目标节点发送测距响应帧,该目标节点接收到该测距响应帧后不向该参考节点发送ack,而是直接基于交互过程中的时间信息计算该目标节点与该参考节点之间的距离,该测距过程信息交互的次数较少耗时较短,提高了测距效率。
结合第一方面,在第一方面的第一种可能的实现方式中,所述目标节点接收所述参考节点发送的第一ndp并记录接收所述第一ndp的第一ndp接收时间,向所述参考节点发送第二ndp并记录发送所述第二ndp的第二ndp发送时间包括:
所述目标节点执行接收所述参考节点发送的第一ndp并记录接收所述第一ndp的第一ndp接收时间,向所述参考节点发送第二ndp并记录发送所述第二ndp的第二ndp发送时间的步骤至少两次。
执行上述步骤执行多次可以避免计算误差,使得计算结果精确度更高。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述目标节点接收所述参考节点发送的测距响应帧,包括:
所述目标节点每次向所述参考节点发送第二ndp并记录发送所述第二ndp的第二ndp发送时间之后,接收所述参考节点发送的测距响应帧。
也即是说,目标节点每发送一次该第二ndp,都会收到参考节点发送的测距响应帧,例如,目标节点向参考节点先后发送了m(m为大于1的自然数)个该第二ndp,那么该参考节点分m次向该目标节点发送测距响应帧(该测距响应帧包含最近一次发送所述第一ndp的第一ndp发送时间和最近一次接收所述第二ndp的第二ndp接收时间),而不是一次性将所有发送所述第一ndp的第一ndp发送时间和所有接收所述第二ndp的第二ndp接收时间通过一个测距响应帧发送给该目标节点,减小了发送该第一ndp发送时间和第二ndp接收时间的风险。
结合第一方面的第一种可能的实现方式,或者第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述目标节点根据所述第一ndp接收时间、所述第二ndp发送时间、所述第一ndp发送时间和所述第二ndp接收时间计算所述目标节点与所述参考节点之间的距离包括:
当所述第一ndp接收时间、所述第二ndp发送时间、所述第一ndp发送时间和所述第二ndp接收时间的个数均有多个时,计算所述第一ndp接收时间的平均值、所述第二ndp发送时间的平均值、所述第一ndp发送时间的平均值和所述第二ndp接收时间的平均值;
根据所述第一ndp接收时间的平均值、所述第二ndp发送时间的平均值、所述第一ndp发送时间的平均值和所述第二ndp接收时间的平均值计算所述目标节点与所述参考节点之间的距离。
具体地,通过求平均值的方式来计算目标节点与参考节点之间的距离,避免了出现较大误差。
第二方面,本发明实施例提供一种无线保真wi-fi测距方法,该方法包括:
参考节点接收目标节点发送的用于指示发送第一空数据包ndp的测距请求帧,所述ndp不包含数据。
所述参考节点向所述目标节点发送第一ndp并记录发送所述第一ndp的第一ndp发送时间,接收所述目标节点发送的第二ndp并记录接收所述第二ndp的第二ndp接收时间。
所述参考节点向所述目标节点发送包含所述第一ndp发送时间和所述第二ndp接收时间的测距响应帧,以使所述目标节点根据接收所述第一ndp的第一ndp接收时间、发送所述第二ndp的第二ndp发送时间、所述第一ndp发送时间和所述第二ndp接收时间计算所述目标节点与所述参考节点之间的距离。当存在多个第一ndp发送时间和多个第二ndp接收时间时,该参考节点可以将该多个第一ndp发送时间和多个第二ndp接收时间时通过一个测距响应帧一次性发送给该目标节点,也可以通过多个测距响应帧分批发送给该目标节点(每个测距响应帧至少包含一个第一ndp发送时间和一个第二ndp接收时间)。
通过执行上述步骤,参考节点接收到目标节点发送的测距请求帧后不向该目标节点发送ack,而是直接向该目标节点发送第一ndp,该目标节点接收到该第一ndp后向该参考节点发送第二ndp,该参考节点接收到该第二ndp后再向该目标节点发送测距响应帧,该目标节点接收到该测距响应帧后不向该参考节点发送ack,而是直接基于交互过程中的时间信息计算该目标节点与该参考节点之间的距离,该测距过程信息交互的次数较少耗时较短,提高了测距效率。
结合第二方面,在第二方面的第一种可能的实现方式中,所述参考节点向所述目标节点发送第一ndp并记录发送所述第一ndp的第一ndp发送时间,接收所述目标节点发送的第二ndp并记录接收所述第二ndp的第二ndp接收时间包括:
所述参考节点执行向所述目标节点发送第一ndp并记录发送所述第一ndp的第一ndp发送时间,接收所述目标节点发送的第二ndp并记录接收所述第二ndp的第二ndp接收时间的步骤至少两次。
执行上述步骤多次可以避免计算误差,使得计算结果精确度更高。
结合第二方面的第一种可能的实现方式中,在第二方面的第二种可能的实现方式中,所述参考节点向所述目标节点发送包含所述第一ndp发送时间和所述第二ndp接收时间的测距响应帧,包括:
所述参考节点每次接收所述目标节点发送的第二ndp并记录接收所述第二ndp的第二ndp接收时间之后,向所述目标节点发送包含所述第一ndp发送时间和所述第二ndp接收时间的测距响应帧。
也即是说,该参考节点每接收一次该第二ndp,都会向该目标节点发送测距响应帧,例如,该参考节点先后接收该参考节点发送的m(m为大于1的自然数)个该第二ndp,那么该参考节点分m次向该目标节点发送测距响应帧(该测距响应帧包含最近一次发送所述第一ndp的第一ndp发送时间和最近一次接收所述第二ndp的第二ndp接收时间),而不是一次性将所有发送所述第一ndp的第一ndp发送时间和所有接收所述第二ndp的第二ndp接收时间通过一个测距响应帧发送给该目标节点,减小了发送该第一ndp发送时间和第二ndp接收时间的风险。
第三方面,本发明实施例提供一种设备,所述设备为目标节点,所述目标节点包括输入装置、输出装置、存储器和处理器,所述处理器调用所述存储器中的测距程序,用于执行如下操作:
通过所述输出装置向参考节点发送测距请求帧,指示所述参考节点发送第一空数据包ndp,所述ndp不包含数据;那么,该参考节点接收到该测距请求帧后,就会向该目标节点发送第一ndp,由于该第一ndp不携带数据单元,因此参考节点发送该第一ndp的过程不会持续太长时间。
通过所述输入装置接收所述参考节点发送的第一ndp并记录接收所述第一ndp的第一ndp接收时间,通过所述输出装置向所述参考节点发送第二ndp并记录发送所述第二ndp的第二ndp发送时间。
通过所述输入装置接收所述参考节点发送的测距响应帧,所述测距响应帧包含所述参考节点发送所述第一ndp的第一ndp发送时间和接收所述第二ndp的第二ndp接收时间;当存在多个第一ndp发送时间和多个第二ndp接收时间时,该参考节点可以将该多个第一ndp发送时间和多个第二ndp接收时间时通过一个测距响应帧一次性发送给该目标节点,也可以通过多个测距响应帧分批发送给该目标节点(每个测距响应帧至少包含一个第一ndp发送时间和一个第二ndp接收时间)。
根据所述第一ndp接收时间、所述第二ndp发送时间、所述第一ndp发送时间和所述第二ndp接收时间计算所述目标节点与所述参考节点之间的距离。具体是结合信号在参考节点与目标节点之间传输的时间(由第一ndp发送时间、第一ndp接收时间、第二ndp发送时间和第二ndp接收时间计算得到)和速度(等于电磁波在空气中传输的速度)计算出目标节点和参考节点之间的距离。
通过执行上述操作,参考节点接收到目标节点发送的测距请求帧后不向该目标节点发送ack,而是直接向该目标节点发送第一ndp,该目标节点接收到该第一ndp后向该参考节点发送第二ndp,该参考节点接收到该第二ndp后再向该目标节点发送测距响应帧,该目标节点接收到该测距响应帧后不向该参考节点发送ack,而是直接基于交互过程中的时间信息计算该目标节点与该参考节点之间的距离,该测距过程信息交互的次数较少耗时较短,提高了测距效率。
执行上述操作多次可以避免计算误差,使得计算结果精确度更高。
结合第三方面的第一种可能的实现方式中,在第三方面的第二种可能的实现方式中,所述处理器通过所述输入装置接收所述参考节点发送的测距响应帧,具体为:
所述处理器每次通过所述输出装置向所述参考节点发送第二ndp并记录发送所述第二ndp的第二ndp发送时间之后,通过所述输入装置接收所述参考节点发送的测距响应帧。
也即是说,目标节点每发送一次该第二ndp,都会收到参考节点发送的测距响应帧,例如,目标节点向参考节点先后发送了m(m为大于1的自然数)个该第二ndp,那么该参考节点分m次向该目标节点发送测距响应帧(该测距响应帧包含最近一次发送所述第一ndp的第一ndp发送时间和最近一次接收所述第二ndp的第二ndp接收时间),而不是一次性将所有发送所述第一ndp的第一ndp发送时间和所有接收所述第二ndp的第二ndp接收时间通过一个测距响应帧发送给该目标节点,减小了发送该第一ndp发送时间和第二ndp接收时间的风险。
结合第三方面的第一种可能的实现方式,或者第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述处理器根据所述第一ndp接收时间、所述第二ndp发送时间、所述第一ndp发送时间和所述第二ndp接收时间计算所述目标节点与所述参考节点之间的距离,具体为:
当所述第一ndp接收时间、所述第二ndp发送时间、所述第一ndp发送时间和所述第二ndp接收时间的个数均有多个时,计算所述第一ndp接收时间的平均值、所述第二ndp发送时间的平均值、所述第一ndp发送时间的平均值和所述第二ndp接收时间的平均值;
根据所述第一ndp接收时间的平均值、所述第二ndp发送时间的平均值、所述第一ndp发送时间的平均值和所述第二ndp接收时间的平均值计算所述目标节点与所述参考节点之间的距离。
具体地,通过求平均值的方式来计算目标节点与参考节点之间的距离,避免了出现较大误差。
第四方面,本发明实施例提供一种设备,所述设备为参考节点,所述参考节点包括输入装置、输出装置、存储器和处理器,所述处理器调用所述存储器中的测距程序,用于执行如下操作:
通过所述输入装置接收目标节点发送的用于指示发送第一空数据包ndp的测距请求帧,所述ndp不包含数据;
通过所述输出装置向所述目标节点发送第一ndp并记录发送所述第一ndp的第一ndp发送时间,通过所述输入装置接收所述目标节点发送的第二ndp并记录接收所述第二ndp的第二ndp接收时间。
通过所述输出装置向所述目标节点发送包含所述第一ndp发送时间和所述第二ndp接收时间的测距响应帧,以使所述目标节点根据接收所述第一ndp的第一ndp接收时间、发送所述第二ndp的第二ndp发送时间、所述第一ndp发送时间和所述第二ndp接收时间计算所述目标节点与所述参考节点之间的距离。当存在多个第一ndp发送时间和多个第二ndp接收时间时,该参考节点可以将该多个第一ndp发送时间和多个第二ndp接收时间时通过一个测距响应帧一次性发送给该目标节点,也可以通过多个测距响应帧分批发送给该目标节点(每个测距响应帧至少包含一个第一ndp发送时间和一个第二ndp接收时间)。
通过执行上述步骤,参考节点接收到目标节点发送的测距请求帧后不向该目标节点发送ack,而是直接向该目标节点发送第一ndp,该目标节点接收到该第一ndp后向该参考节点发送第二ndp,该参考节点接收到该第二ndp后再向该目标节点发送测距响应帧,该目标节点接收到该测距响应帧后不向该参考节点发送ack,而是直接基于交互过程中的时间信息计算该目标节点与该参考节点之间的距离,该测距过程信息交互的次数较少耗时较短,提高了测距效率。
结合第四方面,在第四方面的第一种可能的实现方式中,处理器通过所述输出装置向所述目标节点发送第一ndp并记录发送所述第一ndp的第一ndp发送时间,通过所述输入装置接收所述目标节点发送的第二ndp并记录接收所述第二ndp的第二ndp接收时间,具体为:
执行通过所述输出装置向所述目标节点发送第一ndp并记录发送所述第一ndp的第一ndp发送时间,通过所述输入装置接收所述目标节点发送的第二ndp并记录接收所述第二ndp的第二ndp接收时间的步骤至少两次。
执行上述步骤多次可以避免计算误差,使得计算结果精确度更高。
结合第四方面,在第四方面的第二种可能的实现方式中,所述处理器通过所述输出装置向所述目标节点发送包含所述第一ndp发送时间和所述第二ndp接收时间的测距响应帧,具体为:
所述处理器每次通过所述输入装置接收所述目标节点发送的第二ndp并记录接收所述第二ndp的第二ndp接收时间之后,通过所述输出装置向所述目标节点发送包含所述第一ndp发送时间和所述第二ndp接收时间的测距响应帧。
也即是说,该参考节点每接收一次该第二ndp,都会向该目标节点发送测距响应帧,例如,该参考节点先后接收该参考节点发送的m(m为大于1的自然数)个该第二ndp,那么该参考节点分m次向该目标节点发送测距响应帧(该测距响应帧包含最近一次发送所述第一ndp的第一ndp发送时间和最近一次接收所述第二ndp的第二ndp接收时间),而不是一次性将所有发送所述第一ndp的第一ndp发送时间和所有接收所述第二ndp的第二ndp接收时间通过一个测距响应帧发送给该目标节点,减小了发送该第一ndp发送时间和第二ndp接收时间的风险。
结合第一方面的实现方式,或者第二方面的实现方式,或者第三方面的实现方式,或者第四方面的实现方式,在一些可能的实现方式中,所述测距请求帧的物理层帧头或者媒体访问控制层帧头包括用于指示所述参考节点执行向所述目标节点发送第一ndp并记录发送所述第一ndp的第一ndp发送时间,接收所述目标节点发送的第二ndp并记录接收所述第二ndp的第二ndp接收时间的步骤的次数信息。
具体地,在所述测距请求帧的物理层帧头或者媒体访问控制层帧头指示执行上述步骤的次数,使得参考节点能够快速地获得该次数信息并基于该次数信息来执行相应步骤。
在第一方面的一些可能的实现方式中,或者第二方面的一些可能的实现方式中,或者第三方面的一些可能的实现方式中,或者第四方面的一些可能的实现方式中,所述测距请求帧的物理层帧头或者媒体访问控制层帧头包括用于指示所述参考节点发送所述第一ndp的信息。
具体地,在所述测距请求帧的物理层帧头或者媒体访问控制层帧头指示了参考节点发送该第一ndp,使得该参考节点能够及时根据该指示来发送该第一ndp。
第五方面,本发明实施例提供一种设备,所述设备包括用于执行本发明实施例第一方面任一实现方式的部分或全部步骤的功能单元。
第六方面,本发明实施例提供一种设备,所述设备包括用于执行本发明实施例第二方面任一实现方式的部分或全部步骤的功能单元。
第七方面,本发明实施例提供一种无线保真wi-fi测距系统,所述测距系统包括目标节点和参考节点,其中:
所述目标节点,用于向参考节点发送测距请求帧;
所述参考节点,用于接收所述目标节点发送的上述测距请求帧,根据所述测距请求帧向所述目标节点发送第一空数据包ndp并记录发送所述第一ndp的第一ndp发送时间;
所述目标节点,还用于接收所述参考节点发送的所述第一ndp并记录接收所述第一ndp的第一ndp接收时间,向所述参考节点发送第二ndp并记录发送所述第二ndp的第二ndp发送时间;
所述参考节点,还用于接收所述目标节点发送所述的所述第二ndp并记录接收所述第二ndp的第二ndp接收时间;向所述目标节点发送包含所述第一ndp发送时间和所述第二ndp接收时间的测距响应帧;
所述目标节点,还用于接收所述参考节点发送的所述测距响应帧,解析得到所述测距响应帧中的所述第一ndp发送时间和所述第二ndp接收时间;根据所述第一ndp接收时间、所述第二ndp发送时间、所述第一ndp发送时间和所述第二ndp接收时间计算所述目标节点与所述参考节点之间的距离。
可选的,第七方面描述的目标节点可以为第三方面的任一种可能的实现方式或者第五方面的任一种可能的实现方式所描述的设备;第七方面描述的参考节点可以为第四方面的任一种可能的实现方式或者第六方面的任一种可能的实现方式所描述的设备。
通过实施本发明实施例,参考节点接收到目标节点发送的测距请求帧后不向该目标节点发送ack,而是直接向该目标节点发送第一ndp,该目标节点接收到该第一ndp后向该参考节点发送第二ndp,该参考节点接收到该第二ndp后再向该目标节点发送测距响应帧,该目标节点接收到该测距响应帧后不向该参考节点发送ack,而是直接基于交互过程中的时间信息计算该目标节点与该参考节点之间的距离,该测距过程信息交互的次数较少耗时较短,提高了测距效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1是现有技术中测量目标节点与参考节点之间距离的流程示意图;
图1a是现有技术中目标节点与参考节点之间的时序示意图;
图2是本发明实施例提供的一种无线保真wi-fi测距方法的交互示意图;
图2a是本发明实施例提供的又一种无线保真wi-fi测距方法的交互示意图;
图2b是本发明实施例提供的又一种无线保真wi-fi测距方法的交互示意图;
图3是本发明实施例提供的一种设备的结构示意图;
图4是本发明实施例提供的一种设备的结构示意图;
图5是本发明实施例提供的一种设备的结构示意图;
图6是本发明实施例提供的一种设备的结构示意图;
图7是本发明实施例提供的一种无线保真wi-fi测距系统的结构示意图。
具体实施方式
本发明实施例所描述的参考节点和目标节点均为基于wi-fi技术进行通信的终端设备(例如,接入点(英文:accesspoint,简称:ap)、站点(英文:station,简称:sta)等)。下面将结合本发明的附图,对本发明实施例中的技术方案进行详细描述。
请参见图2,图2是本发明实施例提供的一种wi-fi测距方法的流程示意图,该方法包括但不限于如下步骤。
步骤s201:目标节点向参考节点发送测距请求帧,指示所述参考节点发送第一空数据包ndp。
具体地,可以人为触发该目标节点向参考节点发送测距请求帧,也可以在目标节点判断出自身的某项指标参数达到预先设定的条件时向参考节点发送测距请求帧,当然还存在其他方式来触发该目标节点向参考节点发送测距请求帧,此处不一一举例。该测距请求帧中包含用于指示参考节点向该目标节点发送第一空数据包(英文:nulldatapacket,简称:ndp)的指示信息,该指示信息可以封装在该测距请求帧的物理(英文:physical,简称:phy)层帧头,或者媒体访问控制(英文:mediaaccesscontrol,简称:mac)层帧头,或者mac层协议数据单元(英文:macprotocoldataunit,简称:mpdu)中,当该指示信息封装在该测距请求帧的phy层帧头或者mac层帧头时,该参考节点能够更加及时地获取到该指示信息,并基于该指示信息作出响应。
进一步地,当上述指示信息在phy层指示时,该指示信息可以具体在phy帧头部中的高效wi-fi(英文:highefficientwi-fi,简称:hew)信号a(英文:signala,简称:siga)he-siga域中以一个或者多个比特来表示。当上述指示信息在mac层指示时,该指示信息可以具体在mac帧头的帧控制(framecontrol)域或高吞吐量(英文:highthroughput,简称:ht)控制(htcontrol)域中通过一个或者多个比特来表示。例如,在ht控制域的保留(reserved)域中通过一个比特来指示,该保留域的值为1用于指示“向该目标节点发送第一空数据包ndp”。该ht控制域的结构如表1所示:
表1
步骤s202:所述参考节点接收所述测距请求帧。
步骤s203:所述参考节点根据该测距请求帧的指示向目标节点发送第一空数据包ndp并记录发送该第一ndp的第一ndp发送时间。
具体地,该参考节点接收到该目标节点发送的测距请求帧时对该测距请求帧进行分析,得知该测距请求帧指示自身发送第一ndp时,立即向该目标节点发送该第一ndp,本发明实施例中发送该第一ndp还起到了ack的作用,因此参考节点接收到测距请求帧后不发送ack;进一步地,该第一ndp以及后续描述的第二ndp均不携带数据,因此传输时长相较于现有技术中的“初始ftm帧”和“确认消息(ack)”要短;该参考节点发送该第一ndp的时间为第一ndp发送时间,可选的,该参考节点发送该第一ndp会持续一段时间,该一段时间的起点即为该第一ndp发送时间。
步骤s204:所述目标节点接收所述参考节点发送的所述第一ndp并记录接收该第一ndp的第一ndp接收时间。
具体地,该参考节点接收该第一ndp的时间为第一ndp接收时间,可选的,该目标节点接收该第一ndp会持续一段时间,该第一段时间的起点即为该第一ndp接收时间。
步骤s205:所述目标节点向所述参考节点发送第二ndp并记录发送该第二ndp的第二ndp发送时间。
具体的,该目标节点接收完该第一ndp后,立即向参考节点发送第二ndp,该目标终端发送该第二ndp的时间为第二ndp发送时间,可选的,该目标节点发送该第二ndp会持续一段时间,该第一段时间的起点即为该第二ndp发送时间。本发明实施例中,该目标终端接收到第一ndp后无需回复ack,该第二ndp即可充当该ack的作用。
步骤s206:所述参考节点接收所述目标节点发送的所述第二ndp并记录接收所述第二ndp的第二ndp接收时间。
具体的,该参考终端接收该第二ndp的时间为第二ndp接收时间,可选的,该参考节点接收该第二ndp会持续一段时间,该一段时间的起点即为该第二ndp接收时间该。
步骤s207:所述参考节点向所述目标节点发送包含第一ndp发送时间和第二ndp接收时间的测距响应帧。
具体的,该参考节点通过测距响应帧将记录的第一ndp发送时间和第二ndp接收时间发送给目标节点,用于目标节点计算该目标节点与该参考节点之间的距离。
在一种可选的方案中,上述步骤s203、s204、s205和s206可以按顺序重复执行n次,例如,顺序执行完s203、s204、s205和s206后返回执行s203,以此规律循环执行n次(n为大于1的整数),该n次可以为该参考节点和该目标节点共同使用的测距协议中预先定义的一个数值,该参考节点和该目标节点在执行s203、s204、s205和s206时,会默认执行n次;该n次还可以为该目标节点向该参考节点发送上述测距请求帧时封装在该测距请求帧中的信息,那么该参考节点接收到该测距请求帧后即可知道要与目标节点共同执行s203、s204、s205和s206的次数,进一步地,指示执行s203、s204、s205和s206的次数的信息可以封装在测距请求帧的phy层帧头,或者mac层帧头,或者mpdu中,优选的,本发明实施例将其封装在该测距请求帧的phy层帧头或者mac层帧头以便于参考节点及时获取对执行步骤s203、s204、s205和s206的次数的指示。
当步骤s203、s204、s205和s206循环执行n次时,步骤s207至少存在两种方式,两种方式的详细描述如下:
方式一:在循环执行步骤s203、s204、s205和s206n次后,参考节点将n次记录的第一ndp发送时间和第二ndp接收时间一并通过上述测距响应帧发送给该目标节点,具体流程如图2a所示。
方式二:在循环执行步骤s203、s204、s205和s206的过程中,每次执行完步骤s206后通过上述测距响应帧向目标节点发送此轮循环中记录的第一ndp发送时间和第二ndp接收时间,如果步骤s203、s204、s205和s206循环了n次,则参考节点会向该目标节点发送n个该测距响应帧,具体流程如图2b所示。将n次的第一ndp发送时间和第二ndp接收时间分n次发送,避免了集中在一起发送的过程中信号丢失带来的风险。
步骤s208:所述目标节点接收所述参考节点发送的测距响应帧,得到该测距响应帧中的第一ndp发送时间和第二ndp接收时间,并根据第一ndp发送时间、第一ndp接收时间、第二ndp发送时间和第二ndp接收时间计算与该参考节点之间的距离。
具体的,设第一ndp发送时间为t1,第一ndp接收时间为t2,第二ndp发送时间为t3,第二ndp接收时间t4,计算该目标节点与该参考节点之间的距离d的方式存在以下几种可能性:
如果上述步骤s203、s204、s205和s206只执行了一次,那么d可以通过公式1-1计算得到:
d=[(t4-t1)-(t3-t2)]×c1-1
在公式1-1中,[(t4-t1)-(t3-t2)]为一个ndp从参考节点发送到目标节点(或者说目标节点发送到参考节点)所经历的时长,c为ndp在空气中传输的速度(等于电磁波在空气中传输的速度),c在现有技术中为已知量。
如果上述步骤s203、s204、s205和s206执行了n次,那么将n次得到的n个t1取平均值作为公式1-1中的t1,将n个t2取平均值作为公式1-1中的t2,将n个t3取平均值作为公式1-1中的t3,将n个t4取平均值作为公式1-1中的t4,然后基于上述公式1-1来计算d。如果上述步骤s207为“方式二”,则最终得到的t1和t4的数量可能没有n个,但不管t1和t4的数量为多少个,计算时均根据实际个数取平均值,取平均值后同样通过公式1-1来计算得到d。
需要说明的是,上述描述的计算方式是先对t1、t2、t3和t4取平均值,再将平均值带入公式1-1计算得到d,可理解的是,还可以先根据每一次循环的t1、t2、t3和t4通过公式1-1计算出d,最后对每一次循环计算出的d取平均值作为本发明实施例中目标节点与参考之间的距离d。
在图2所描述的方法中,参考节点接收到目标节点发送的测距请求帧后不向该目标节点发送ack,而是直接向该目标节点发送第一ndp,该目标节点接收到该第一ndp后向该参考节点发送第二ndp,该参考节点接收到该第二ndp后再向该目标节点发送测距响应帧,该目标节点接收到该测距响应帧后不向该参考节点发送ack,而是直接基于交互过程中的时间信息计算该目标节点与该参考节点之间的距离,该测距过程信息交互的次数较少耗时较短,提高了测距效率。
上述详细阐述了本发明实施例的方法,为了便于更好地实施本发明实施例的上述方案,下面参照图3~6描述本发明实施例的相关装置。
请参见图3,图3是本发明实施例提供的一种设备30,该设备30为目标节点(如接入点ap、站点sta等),该设备30包括输入装置301、输出装置302、存储器303和处理器304(处理器304的数量可以一个或多个,图3中以一个处理器为例),在本发明的一些实施例中,输入装置301、输出装置302、存储器303和处理器304可通过总线或者其它方式连接,其中,图3中以通过总线连接为例。所述处理器304调用所述存储器303中的测距程序,用于执行如下操作:
通过所述输出装置302向参考节点发送测距请求帧,指示所述参考节点发送第一空数据包ndp;
通过所述输入装置301接收所述参考节点发送的第一ndp并记录接收所述第一ndp的第一ndp接收时间,通过所述输出装置302向所述参考节点发送第二ndp并记录发送所述第二ndp的第二ndp发送时间;
通过所述输入装置301接收所述参考节点发送的测距响应帧,所述测距响应帧包含所述参考节点发送所述第一ndp的第一ndp发送时间和接收所述第二ndp的第二ndp接收时间;
根据所述第一ndp接收时间、所述第二ndp发送时间、所述第一ndp发送时间和所述第二ndp接收时间计算所述目标节点与所述参考节点之间的距离。
通过执行上述操作,参考节点接收到目标节点发送的测距请求帧后不向该目标节点发送ack,而是直接向该目标节点发送第一ndp,该目标节点接收到该第一ndp后向该参考节点发送第二ndp,该参考节点接收到该第二ndp后再向该目标节点发送测距响应帧,该目标节点接收到该测距响应帧后不向该参考节点发送ack,而是直接基于交互过程中的时间信息计算该目标节点与该参考节点之间的距离,该测距过程信息交互的次数较少耗时较短,提高了测距效率。
在一种可选的方案中,处理器304通过所述输入装置301接收所述参考节点发送的第一ndp并记录接收所述第一ndp的第一ndp接收时间,通过所述输出装置302向所述参考节点发送第二ndp并记录发送所述第二ndp的第二ndp发送时间,具体为:
执行通过所述输入装置301接收所述参考节点发送的第一ndp并记录接收所述第一ndp的第一ndp接收时间,通过所述输出装置302向所述参考节点发送第二ndp并记录发送所述第二ndp的第二ndp发送时间的步骤至少两次。
处理器304执行上述操作多次可以避免计算误差,使得计算结果精确度更高。
在又一种可选的方案中,所述处理器304通过所述输入装置301接收所述参考节点发送的测距响应帧,具体为:
所述处理器304每次通过所述输出装置302向所述参考节点发送第二ndp并记录发送所述第二ndp的第二ndp发送时间之后,通过所述输入装置301接收所述参考节点发送的测距响应帧。
也即是说,目标节点每发送一次该第二ndp,都会收到参考节点发送的测距响应帧,例如,目标节点向参考节点先后发送了m(m为大于1的自然数)个该第二ndp,那么该参考节点分m次向该目标节点发送测距响应帧(该测距响应帧包含最近一次发送所述第一ndp的第一ndp发送时间和最近一次接收所述第二ndp的第二ndp接收时间),而不是一次性将所有发送所述第一ndp的第一ndp发送时间和所有接收所述第二ndp的第二ndp接收时间通过一个测距响应帧发送给该目标节点,减小了发送该第一ndp发送时间和第二ndp接收时间的风险。
在又一种可选的方案中,所述处理器304根据所述第一ndp接收时间、所述第二ndp发送时间、所述第一ndp发送时间和所述第二ndp接收时间计算所述目标节点与所述参考节点之间的距离,具体为:
当所述第一ndp接收时间、所述第二ndp发送时间、所述第一ndp发送时间和所述第二ndp接收时间的个数均有多个时,计算所述第一ndp接收时间的平均值、所述第二ndp发送时间的平均值、所述第一ndp发送时间的平均值和所述第二ndp接收时间的平均值;
根据所述第一ndp接收时间的平均值、所述第二ndp发送时间的平均值、所述第一ndp发送时间的平均值和所述第二ndp接收时间的平均值计算所述目标节点与所述参考节点之间的距离。
具体地,通过求平均值的方式来计算目标节点与参考节点之间的距离,避免了出现较大误差。
在又一种可选的方案中,所述测距请求帧的物理层帧头或者媒体访问控制层帧头包括用于指示所述参考节点执行向所述输入装置301发送所述第一ndp并记录发送所述第一ndp的第一ndp发送时间,接收所述输出装置302发送的所述第二ndp并记录接收所述第二ndp的第二ndp接收时间的步骤的次数信息。
具体地,在所述测距请求帧的物理层帧头或者媒体访问控制层帧头指示执行上述步骤的次数,使得参考节点能够快速地获得该次数信息并基于该次数信息来执行相应步骤。
在又一种可选的方案中,所述测距请求帧的物理层帧头或者媒体访问控制层帧头包括用于指示所述参考节点发送所述第一ndp的信息。
具体地,在所述测距请求帧的物理层帧头或者媒体访问控制层帧头指示了参考节点发送该第一ndp,使得该参考节点能够及时根据该指示来发送该第一ndp。
需要说明的是,图3所示的设备30的具体实现可以对应参照图2所示的方法实施例,此处不再赘述。
请参见图4,图4是本发明实施例提供的一种设备40,该设备40为目标节点(如接入点ap、站点sta等),该设备40包括输入装置401、输出装置402、存储器403和处理器404(处理器404的数量可以一个或多个,图4中以一个处理器为例),在本发明的一些实施例中,输入装置401、输出装置402、存储器403和处理器404可通过总线或者其它方式连接,其中,图4中以通过总线连接为例。所述处理器404调用所述存储器403中的测距程序,用于执行如下操作:
通过所述输入装置401接收目标节点发送的用于指示发送第一空数据包ndp的测距请求帧;
通过所述输出装置402向所述目标节点发送第一ndp并记录发送所述第一ndp的第一ndp发送时间,通过所述输入装置401接收所述目标节点发送的第二ndp并记录接收所述第二ndp的第二ndp接收时间;
通过所述输出装置402向所述目标节点发送包含所述第一ndp发送时间和所述第二ndp接收时间的测距响应帧,以使所述目标节点根据接收所述第一ndp的第一ndp接收时间、发送所述第二ndp的第二ndp发送时间、所述第一ndp发送时间和所述第二ndp接收时间计算所述目标节点与所述参考节点之间的距离。
通过执行上述操作,参考节点接收到目标节点发送的测距请求帧后不向该目标节点发送ack,而是直接向该目标节点发送第一ndp,该目标节点接收到该第一ndp后向该参考节点发送第二ndp,该参考节点接收到该第二ndp后再向该目标节点发送测距响应帧,该目标节点接收到该测距响应帧后不向该参考节点发送ack,而是直接基于交互过程中的时间信息计算该目标节点与该参考节点之间的距离,该测距过程信息交互的次数较少耗时较短,提高了测距效率。
在一种可选的方案中,处理器404通过所述输出装置402向所述目标节点发送第一ndp并记录发送所述第一ndp的第一ndp发送时间,通过所述输入装置401接收所述目标节点发送的第二ndp并记录接收所述第二ndp的第二ndp接收时间,具体为:
执行通过所述输出装置402向所述目标节点发送第一ndp并记录发送所述第一ndp的第一ndp发送时间,通过所述输入装置401接收所述目标节点发送的第二ndp并记录接收所述第二ndp的第二ndp接收时间的步骤至少两次。
处理器404执行上述操作多次可以避免计算误差,使得计算结果精确度更高
在又一种可选的方案中,所述处理器404通过所述输出装置402向所述目标节点发送包含所述第一ndp发送时间和所述第二ndp接收时间的测距响应帧,具体为:
所述处理器404每次通过所述输入装置401接收所述目标节点发送的第二ndp并记录接收所述第二ndp的第二ndp接收时间之后,通过所述输出装置402向所述目标节点发送包含所述第一ndp发送时间和所述第二ndp接收时间的测距响应帧。
也即是说,该参考节点每接收一次该第二ndp,都会向该目标节点发送测距响应帧,例如,该参考节点先后接收该参考节点发送的m(m为大于1的自然数)个该第二ndp,那么该参考节点分m次向该目标节点发送测距响应帧(该测距响应帧包含最近一次发送所述第一ndp的第一ndp发送时间和最近一次接收所述第二ndp的第二ndp接收时间),而不是一次性将所有发送所述第一ndp的第一ndp发送时间和所有接收所述第二ndp的第二ndp接收时间通过一个测距响应帧发送给该目标节点,减小了发送该第一ndp发送时间和第二ndp接收时间的风险。
在又一种可选的方案中,所述测距请求帧的物理层帧头或者媒体访问控制层帧头包括用于指示所述处理器404执行通过所述输出装置402向所述目标节点发送第一ndp并记录发送所述第一ndp的第一ndp发送时间,通过所述输入装置401接收所述目标节点发送的第二ndp并记录接收所述第二ndp的第二ndp接收时间的步骤的次数信息。
具体地,在所述测距请求帧的物理层帧头或者媒体访问控制层帧头指示执行上述步骤的次数,使得参考节点能够快速地获得该次数信息并基于该次数信息来执行相应步骤。
在又一种可选的方案中,所述测距请求帧的物理层帧头或者媒体访问控制层帧头包括用于指示所述参考节点发送所述第一ndp的信息。
具体地,在所述测距请求帧的物理层帧头或者媒体访问控制层帧头指示了参考节点发送该第一ndp,使得该参考节点能够及时根据该指示来发送该第一ndp。
需要说明的是,图4所示的设备40的具体实现可以对应参照图2所示的方法实施例,此处不再赘述。
请参见图5,图5是本发明实施例提供的一种设备50,该设备50为目标节点(如接入点ap、站点sta等),该目标节点包括发送单元501、执行单元502、接收单元503和计算单元504,各个单元的详细描述如下:
发送单元501,用于向参考节点发送测距请求帧,指示所述参考节点发送第一空数据包ndp;
执行单元502,用于接收所述参考节点发送的第一ndp并记录接收所述第一ndp的第一ndp接收时间,向所述参考节点发送第二ndp并记录发送所述第二ndp的第二ndp发送时间;
接收单元503,用于接收所述参考节点发送的测距响应帧,所述测距响应帧包含所述参考节点发送所述第一ndp的第一ndp发送时间和接收所述第二ndp的第二ndp接收时间;
计算单元504,用于根据所述第一ndp接收时间、所述第二ndp发送时间、所述第一ndp发送时间和所述第二ndp接收时间计算所述目标节点与所述参考节点之间的距离。
通过运行上述单元,参考节点接收到目标节点发送的测距请求帧后不向该目标节点发送ack,而是直接向该目标节点发送第一ndp,该目标节点接收到该第一ndp后向该参考节点发送第二ndp,该参考节点接收到该第二ndp后再向该目标节点发送测距响应帧,该目标节点接收到该测距响应帧后不向该参考节点发送ack,而是直接基于交互过程中的时间信息计算该目标节点与该参考节点之间的距离,该测距过程信息交互的次数较少耗时较短,提高了测距效率。
在一种可选的方案中,执行单元502具体用于执行接收所述参考节点发送的第一ndp并记录接收所述第一ndp的第一ndp接收时间,向所述参考节点发送第二ndp并记录发送所述第二ndp的第二ndp发送时间的步骤至少两次。
通过执行上述操作多次可以避免计算误差,使得计算结果精确度更高。
在又一种可选的方案中,所述接收单元503具体用于每次向所述参考节点发送第二ndp并记录发送所述第二ndp的第二ndp发送时间之后,接收所述参考节点发送的测距响应帧。
也即是说,目标节点每发送一次该第二ndp,都会收到参考节点发送的测距响应帧,例如,目标节点向参考节点先后发送了m(m为大于1的自然数)个该第二ndp,那么该参考节点分m次向该目标节点发送测距响应帧(该测距响应帧包含最近一次发送所述第一ndp的第一ndp发送时间和最近一次接收所述第二ndp的第二ndp接收时间),而不是一次性将所有发送所述第一ndp的第一ndp发送时间和所有接收所述第二ndp的第二ndp接收时间通过一个测距响应帧发送给该目标节点,减小了发送该第一ndp发送时间和第二ndp接收时间的风险
在又一种可选的方案中,所述计算单元504包括第一计算子单元和第二计算子单元,第一计算子单元和第二计算子单元的详细描述如下:
所述第一计算子单元,用于在所述第一ndp接收时间、所述第二ndp发送时间、所述第一ndp发送时间和所述第二ndp接收时间的个数均有多个时,计算所述第一ndp接收时间的平均值、所述第二ndp发送时间的平均值、所述第一ndp发送时间的平均值和所述第二ndp接收时间的平均值;
所述第二计算子单元,用于根据所述第一ndp接收时间的平均值、所述第二ndp发送时间的平均值、所述第一ndp发送时间的平均值和所述第二ndp接收时间的平均值计算所述目标节点与所述参考节点之间的距离。
具体地,通过求平均值的方式来计算目标节点与参考节点之间的距离,避免了出现较大误差。
在又一种可选的方案中,所述测距请求帧的物理层帧头或者媒体访问控制层帧头包括用于指示所述参考节点执行向所述目标节点发送所述第一ndp并记录发送所述第一ndp的第一ndp发送时间,接收所述目标节点发送的所述第二ndp并记录接收所述第二ndp的第二ndp接收时间的步骤的次数信息。
具体地,在所述测距请求帧的物理层帧头或者媒体访问控制层帧头指示执行上述步骤的次数,使得参考节点能够快速地获得该次数信息并基于该次数信息来执行相应步骤。
在又一种可选的方案中,所述测距请求帧的物理层帧头或者媒体访问控制层帧头包括用于指示所述参考节点发送所述第一ndp。
具体地,在所述测距请求帧的物理层帧头或者媒体访问控制层帧头指示了参考节点发送该第一ndp,使得该参考节点能够及时根据该指示来发送该第一ndp。
需要说明的是,图5所示的设备50的具体实现还可以对应参照图2的方法实施例的相应描述,此处不再赘述。
请参见图6,图6是本发明实施例提供的一种设备60,该设备60为参考节点(如接入点ap、站点sta等),该参考节点包括接收单元601、执行单元602和发送单元603,各个单元的详细描述如下:
所述接收单元601用于接收目标节点发送的用于指示发送第一空数据包ndp的测距请求帧;
所述执行单元602用于向所述目标节点发送第一ndp并记录发送所述第一ndp的第一ndp发送时间,接收所述目标节点发送的第二ndp并记录接收所述第二ndp的第二ndp接收时间;
所述发送单元603用于向所述目标节点发送包含所述第一ndp发送时间和所述第二ndp接收时间的测距响应帧,以使所述目标节点根据接收所述第一ndp的第一ndp接收时间、发送所述第二ndp的第二ndp发送时间、所述第一ndp发送时间和所述第二ndp接收时间计算所述目标节点与所述参考节点之间的距离。
通过运行上述单元,参考节点接收到目标节点发送的测距请求帧后不向该目标节点发送ack,而是直接向该目标节点发送第一ndp,该目标节点接收到该第一ndp后向该参考节点发送第二ndp,该参考节点接收到该第二ndp后再向该目标节点发送测距响应帧,该目标节点接收到该测距响应帧后不向该参考节点发送ack,而是直接基于交互过程中的时间信息计算该目标节点与该参考节点之间的距离,该测距过程信息交互的次数较少耗时较短,提高了测距效率。
在一种可选的方案中,所述执行单元602具体用于执行向所述目标节点发送第一ndp并记录发送所述第一ndp的第一ndp发送时间,接收所述目标节点发送的第二ndp并记录接收所述第二ndp的第二ndp接收时间的步骤至少两次。
通过执行上述操作多次可以避免计算误差,使得计算结果精确度更高。
在又一种可选的方案中,所述发送单元603具体用于每次接收所述目标节点发送的第二ndp并记录接收所述第二ndp的第二ndp接收时间之后,向所述目标节点发送包含所述第一ndp发送时间和所述第二ndp接收时间的测距响应帧。
也即是说,该参考节点每接收一次该第二ndp,都会向该目标节点发送测距响应帧,例如,该参考节点先后接收该参考节点发送的m(m为大于1的自然数)个该第二ndp,那么该参考节点分m次向该目标节点发送测距响应帧(该测距响应帧包含最近一次发送所述第一ndp的第一ndp发送时间和最近一次接收所述第二ndp的第二ndp接收时间),而不是一次性将所有发送所述第一ndp的第一ndp发送时间和所有接收所述第二ndp的第二ndp接收时间通过一个测距响应帧发送给该目标节点,减小了发送该第一ndp发送时间和第二ndp接收时间的风险。
在又一种可选的方案中,所述测距请求帧的物理层帧头或者媒体访问控制层帧头包括用于指示所述参考节点执行向所述目标节点发送第一ndp并记录发送所述第一ndp的第一ndp发送时间,接收所述目标节点发送的第二ndp并记录接收所述第二ndp的第二ndp接收时间的步骤的次数信息。
具体地,在所述测距请求帧的物理层帧头或者媒体访问控制层帧头指示执行上述步骤的次数,使得参考节点能够快速地获得该次数信息并基于该次数信息来执行相应步骤。
在又一种可选的方案中,所述测距请求帧的物理层帧头或者媒体访问控制层帧头包括用于指示所述参考节点发送所述第一ndp的信息。
具体地,在所述测距请求帧的物理层帧头或者媒体访问控制层帧头指示了参考节点发送该第一ndp,使得该参考节点能够及时根据该指示来发送该第一ndp。
需要说明的是,图6所示的设备60的具体实现还可以对应参照图2的方法实施例的相应描述,此处不再赘述。
上述详细阐述了本发明实施例的方法和装置,为了便于更好地实施本发明实施例的上述方案,下面参照图7描述本发明实施例的相关系统。
请参见图7,图7是本发明实施例提供的一种无线保真wi-fi测距系统70,该测距系统70包括目标节点701和参考节点702,其中,目标节点701为图3所示实施例中的设备30,或者图5所示实施例中的设备50;参考节点702为图4所示实施例中的设备40,或者图6所示实施例中的设备60。
综上所述,通过实施本发明实施例,参考节点接收到目标节点发送的测距请求帧后不向该目标节点发送ack,而是直接向该目标节点发送第一ndp,该目标节点接收到该第一ndp后向该参考节点发送第二ndp,该参考节点接收到该第二ndp后再向该目标节点发送测距响应帧,该目标节点接收到该测距响应帧后不向该参考节点发送ack,而是直接基于交互过程中的时间信息计算该目标节点与该参考节点之间的距离,该测距过程信息交互的次数较少耗时较短,提高了测距效率。