【问题标题】:How can we measure data transmission rate in Arduino for nrf24l01 module?我们如何在 Arduino 中测量 nrf24l01 模块的数据传输速率?
【发布时间】:2018-02-22 11:47:56
【问题描述】:

这些为 nRF24L01 模块开发的 Arduino 代码。它是一个射频模块,提供两点之间的无线通信。而我的目的是测量这两个点之间的数据传输速率。

这是发射器代码的示例:

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(7, 8); // CE, CSN
const byte address[6] = "00001";
void setup() {
  radio.begin();
  radio.openWritingPipe(address);
  radio.setPALevel(RF24_PA_MIN);
  radio.stopListening();
}
void loop() {
  const char text[] = "Hello World";
  radio.write(&text, sizeof(text));      
}

这段代码基本上是通过通道发送一个字符串“Hello World”。首先,我调用了一些与模块相关的库。比我定义模块使用的引脚号。比我命名模块。之后设置一些属性,如监听模式和模块的功率级别。最后通过循环发送消息。下面还提供了接收器代码:

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

RF24 radio(7,8);

const byte address[6] = "00001";
void setup() {


  radio.begin();
  radio.openReadingPipe(0,address);
  radio.setPALevel(RF24_PA_MIN);
  radio.startListening();
  Serial.begin(9600);
  // put your setup code here, to run once:

}

void loop() {

  if (radio.available()){

    char text[32] = "";
    radio.read(&text,sizeof(text));
    Serial.println(text);

  }

  // put your main code here, to run repeatedly:
}

接收器逻辑与发送器相同。

总而言之,问题是我们如何测量这种无线通信的数据速率(比特/秒)?

【问题讨论】:

    标签: arduino wireless telecommunication


    【解决方案1】:

    测量两台设备/计算机之间的比特率很棘手,因为您要么需要同步时钟,要么测量往返行程,然后测量或估计执行“反射”的节点上的周转时间。

    如果您可以设置网络嗅探器或在路由器上进行测量,那么您可能会发现更容易获得一些数据。

    例如,使用 WireShark (https://www.wireshark.org),您可以在“统计”->“端点”中查看所有信息,然后 IPV4 或 IPV6 选项卡应显示设备之间的所有流量,或者更准确地显示这些设备之间的流量作为设备的 IP 接口可能有多个端口。其他工具包括 nTop (https://www.ntop.org/products/netflow/nprobe/)。路由器供应商通常还包括用于测量此类信息的工具 - 例如 TTCP 实用程序 (https://en.wikipedia.org/wiki/Ttcp) 通常在 Cisco 设备上可用。

    还值得注意的是,比特率的测量只告诉您测量时的情况,而不是下次尝试时的情况,因为包括网络流量、节点负载等在内的许多因素都会影响它。

    【讨论】:

      【解决方案2】:

      主要变量是您使用的是 1mb/s 还是 2mb/s。您可以使用 NRF24L01 v2 规范第 38 和 39 页上的公式来接近,但是,测量它的最佳方法是启用自动确认。正如我的 Mick 所提到的,如果你不能同步两个时钟(Tx 和 Rx 设备),你能做的最好的就是使用自动确认让 Rx 发回数据。由于切换时间固定为 130us,IRQ 的时间为 6ns 或 8ns,因此您可以在发送消息之前将引脚设置为高电平,并在收到 ACK IRQ 后将其拉低。这将为您提供发送和确认所需的时间(同样需要额外的 130us 来让每个设备更改角色)。

      【讨论】:

        猜你喜欢
        • 2012-01-26
        • 1970-01-01
        • 2019-04-22
        • 2012-05-07
        • 1970-01-01
        • 1970-01-01
        • 2021-07-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多