nRf54L15多连接透传通信速率是否可达到5KB/s

Hi,大家好

目前基于nRF54L15芯片,以及基于ncs3.1.1实现BLE主从一体的功能;在BLE主机已实现可支持同时连接3个从机的透传通信。并且,在主从一体的固件上亦是添加上ISO时间同步功能。

在串口波特率为115200,且发送数据长度128字节,BLE主机同一时刻以25ms的间隔循环向三个从机发送数据,而从机接收到数据后立刻向主机返回已接收到的数据。如此测试时,BLE主从均会存在数据丢失的问题;并且ISO时间同步的引脚波形亦是出现不同步的问题。

因此,请教大家帮忙回复以下两个问题:

1. 在nRf54L15 的BLE一对三双向透传通信上速率是否可支持达到5KB/s?

2. 该如何避免BLE透传通信时影响到ISO时间同步的引脚波形问题?

Parents
  • Okay; below is the description of the question in English.

    Can the multi-connected bidirectional transparent communication rate of nRf54L15 reach 5 KB/s?

    Prerequisites:

    Based on the nRF54L15 chip and nRF Connect SDK (NCS) v3.1.1, implement multi-connection BLE functionality where a device acts as both a central and a peripheral; support bidirectional transparent data transmission while the central device is connected to three peripherals.Additionally, an isochronous channel feature has been added to the master-slave integrated firmware.

    Detailed description: 

    After the BLE host module has connected three BLE slave modules, the communication baud rate between the MCU and the BLE host is 115,200, and the communication baud rate between the MCU and each of the three BLE slave modules is also 115,200.

    Under these conditions, the MCU sends 128 bytes of transparent data to the BLE host module at 25 ms intervals; upon receiving the data from the MCU, the BLE host directly forwards it to the three slaves. When a BLE slave receives data sent by the BLE host, it forwards the data to the MCU; upon receiving data sent by a BLE slave, the MCU immediately returns the original data to that slave.

    Add an isochronous channel to the master–slave integrated firmware; its function is to implement the functionality described in the iso_central example, the iso_peripheral example, and the conn_time_sync example in ncs3.1.1; enable the BLE master–slave isochronous channel to output pulses at a rate of 100 ms on pin P1.02.

    Issue Details:
    1. In BLE's bidirectional transparent communication with one master and three slaves, transmitting 128 bytes at 25 ms intervals yields a rate of 5.12 KB/s; with a baud rate of 115,200, the maximum communication rate can reach 11.52 KB/s.However, when the bidirectional transparent communication rate between the BLE master and three slave devices is 5.12 KB/s, data loss occurs upon receipt by the BLE master and slaves.

    2. During transparent communication in a BLE master–slave configuration, the pulse waveforms output by the BLE master and slave on the isochronous channel pins may become unsynchronized; for details, please refer to the image below.

     

    Regarding your inquiry about data loss caused by the throughput of the baud rate of 115,200 reaching its limit, I have taken this into consideration and plan to change the baud rate to 921,600; however, I would like to confirm whether, when operating in BLE multi-connect mode with bidirectional throughput, the data rate can reach 5 KB/s.

    When performing multi-connected bidirectional transparent transmission at a rate above 5 KB/s, could this cause insufficient cache space or delayed processing in the BLE protocol stack, thereby leading to data loss?

    Regarding the ISO time synchronization pins: it is isochronous channel pins.

Reply
  • Okay; below is the description of the question in English.

    Can the multi-connected bidirectional transparent communication rate of nRf54L15 reach 5 KB/s?

    Prerequisites:

    Based on the nRF54L15 chip and nRF Connect SDK (NCS) v3.1.1, implement multi-connection BLE functionality where a device acts as both a central and a peripheral; support bidirectional transparent data transmission while the central device is connected to three peripherals.Additionally, an isochronous channel feature has been added to the master-slave integrated firmware.

    Detailed description: 

    After the BLE host module has connected three BLE slave modules, the communication baud rate between the MCU and the BLE host is 115,200, and the communication baud rate between the MCU and each of the three BLE slave modules is also 115,200.

    Under these conditions, the MCU sends 128 bytes of transparent data to the BLE host module at 25 ms intervals; upon receiving the data from the MCU, the BLE host directly forwards it to the three slaves. When a BLE slave receives data sent by the BLE host, it forwards the data to the MCU; upon receiving data sent by a BLE slave, the MCU immediately returns the original data to that slave.

    Add an isochronous channel to the master–slave integrated firmware; its function is to implement the functionality described in the iso_central example, the iso_peripheral example, and the conn_time_sync example in ncs3.1.1; enable the BLE master–slave isochronous channel to output pulses at a rate of 100 ms on pin P1.02.

    Issue Details:
    1. In BLE's bidirectional transparent communication with one master and three slaves, transmitting 128 bytes at 25 ms intervals yields a rate of 5.12 KB/s; with a baud rate of 115,200, the maximum communication rate can reach 11.52 KB/s.However, when the bidirectional transparent communication rate between the BLE master and three slave devices is 5.12 KB/s, data loss occurs upon receipt by the BLE master and slaves.

    2. During transparent communication in a BLE master–slave configuration, the pulse waveforms output by the BLE master and slave on the isochronous channel pins may become unsynchronized; for details, please refer to the image below.

     

    Regarding your inquiry about data loss caused by the throughput of the baud rate of 115,200 reaching its limit, I have taken this into consideration and plan to change the baud rate to 921,600; however, I would like to confirm whether, when operating in BLE multi-connect mode with bidirectional throughput, the data rate can reach 5 KB/s.

    When performing multi-connected bidirectional transparent transmission at a rate above 5 KB/s, could this cause insufficient cache space or delayed processing in the BLE protocol stack, thereby leading to data loss?

    Regarding the ISO time synchronization pins: it is isochronous channel pins.

Children
  • Hello, and thank you for the translation. It is a little more detailed than my google translate translation Slight smile

    1: It is not entirely clear to me how much data goes in both directions, but let us say that you transmit 128 bytes to 3 devices every 25ms:

    128bytes/message * 8bits/byte * 3 devices * 40 messages/second = 122880 bits per second. And that is without the replies from the peripherals back to the central. Already you are over 115200

    Then, every byte on uart has a stop bit and perhaps a parity bit, so it is really more like 10 bits per byte of actual transfer time. 

    Then you have some additional data. There is more UART data than the actual payload bytes between the host and the controller. And there is more packets than just the payload that you want to send. So indeed, 115200 is too slow.

    2: I am not too familiar with this sample yet, but I suspect that you are dealing with some queuing issues, so I suggest we look into issue 1 first. Try increasing the baudrate to 921600, or perhaps even 1000000.

    Regarding BLE throughput, 3 devices with 128 bytes every 40ms should be fine, but to be sure, please tell me more about your connection parameters. What is your connection interval and MTU? 

    But with the correct parameters, this is perfectly doable. 128 bytes is only one packet if the MTU is sufficiently high. Also, data loss over BLE is almost impossible. Packets will be retransmitted forever, until it is either ACKed or the connection drops. So if you are loosing data between one end and the other, it is probably over the UART link on one of the sides (probably the central, with most traffic).

    Best regards,

    Edvin

Related