Scheduling of Connection Events with multiple peripherals

We are considering using BLE for a multi node network. I have been looking into how bandwidth would be shared between peripheral connections and the scheduling of the connection events. I have questions about the feasibility of a couple scenarios.

First is if we have a mix of higher and lower bandwidth peripheral devices, could we do something as follows:

Have 4 higher bandwidth devices that use a connection event time of 2.5ms and a connection interval of 12.5ms, and have 4 lower bandwidth devices that use a connection event time of 2.5ms and connection interval of 50ms. Thus in each 12.5ms interval, each higher bandwidth device could transmit, and one lower bandwidth device could transmit. Can the lower bandwidth devices be scheduled so each one's connection event falls in a separate 12.5ms interval?

Second question is about adaptability of connection event scheduling. I understand that a connection event must be terminated before the start of the next scheduled connection event. So the relative position of each connection event puts a hard limit on how many packets and thus how much data each connection can transmit (the connection bandwidth). If some connections are not using their available bandwidth, that bandwidth is effectively lost. So I am wondering if it is possible to change the connection event scheduling and timing on the fly in order to adaptively allocate bandwidth to each peripheral device.

For instance, if 4 peripheral devices are connected, each with an initial connection event time of 5ms and connection interval of 25ms, normally only the last scheduled connection event (device 4) could take advantage of the spare 5ms in the connection interval to send additional packets. But if the central was to know that device 2 had a burst of data it needed to send, is there any way its connection event time could be increased to 10ms without requiring additional overhead, or will the fact that the anchor points for the proceeding connection events will shift mean that the central would need to send a bunch of additional packets to make this change?

Parents
  • Hi John, 
    I would suggestion to perform actual tests to have better understanding of the scheduler. 
    As I mentioned it's a very simple scheduling mechanism on the softdevice. It doesn't know where should be the best timeslot to schedule a high bandwidth connection. What it does it to schedule the connection to the nearest available timeslot. 
    When it's fully occupied, there will be collision if a new connection to be made and the scheduler priorities the connection that may get disconnection. 

     If the application layer wanted to ensure there was always a timeslot available for an intermittent connection device, could it allocate 2 slots to scanning while the device is not connected, then reduce it to 1 scanning slot when initiating connection to the intermittent device so there is guaranteed to be one fully open slot? 
    => You can reserve 2 timeslot for the scanner but as I mentioned, the scheduler doesn't know where it is better to schedule the new timeslot for the connection, it simply schedule it to the next available timeslot. So there will be a chance that it will schedule the timeslot that my occupy by longer connection interval. 

    One tip I can give is that if the bandwidth is the top priority, you should choose 2Mbps PHY, it will double the bandwidth and make it easier for the scheduler. The draw back is shorter range. 

Reply
  • Hi John, 
    I would suggestion to perform actual tests to have better understanding of the scheduler. 
    As I mentioned it's a very simple scheduling mechanism on the softdevice. It doesn't know where should be the best timeslot to schedule a high bandwidth connection. What it does it to schedule the connection to the nearest available timeslot. 
    When it's fully occupied, there will be collision if a new connection to be made and the scheduler priorities the connection that may get disconnection. 

     If the application layer wanted to ensure there was always a timeslot available for an intermittent connection device, could it allocate 2 slots to scanning while the device is not connected, then reduce it to 1 scanning slot when initiating connection to the intermittent device so there is guaranteed to be one fully open slot? 
    => You can reserve 2 timeslot for the scanner but as I mentioned, the scheduler doesn't know where it is better to schedule the new timeslot for the connection, it simply schedule it to the next available timeslot. So there will be a chance that it will schedule the timeslot that my occupy by longer connection interval. 

    One tip I can give is that if the bandwidth is the top priority, you should choose 2Mbps PHY, it will double the bandwidth and make it easier for the scheduler. The draw back is shorter range. 

Children
No Data
Related