1. 程式人生 > >BLE4.0 連線引數說明和使用

BLE4.0 連線引數說明和使用

我們知道BLE最大的特點是低功耗,協議中是如何實現這一目標的呢?重點是減少工作時間,通過某種約定,讓裝置在大部分時間處於休眠狀態從而達到較少功耗的目的。同時BLE中還採用了調頻機制來確保資料的安全性,怎麼跳,多長時間切換通道,看完本文後希望這些問題能得到解答。
Central和Peripheral通過Device Discovery發現彼此的存在,Central可以通過Connection.request來建立連線,實際就是約定了後面雙方工作的步調,什麼時候休眠,什麼時候可以切換通道等等,在Connection.request中包含以下引數:
1 Connection Interval(連線間隔)
該引數規定了兩個裝置之間資料交換的時間間隔,同時也是通道切換的時間間隔,裝置之間的使用者資料只有在時間到了之後才可以傳遞,如果時間到了沒有應用資料需要傳遞則交換link layer資料,以保證裝置之間的連線。該值越大,裝置功耗越低,同時資料傳輸速率越低。該值以1.25ms為一個時間單位(其他應用同此),取值範圍6(7.5ms)-3200(4s)
2 Slave Latency 
為了增強Peripheral的靈活性,該值規定Peripheral裝置可以忽略的連線間隔數目,即當連線時間到了,如果Peripheral沒有資料需要傳遞,可以選擇繼續休眠,減少功耗。Salve latency 取值範圍0-499,需要注意的是要確保effective connection interval(有效連線時間間隔)<16s ,其中Effective Connection Interval = (Connection Interval) * ( 1 + (Slave Latency) ) 。
3 Supervision Timeout 
該值規定了兩個裝置有效連線的最大時間間隔,這就要求 Supervision Timeout >Effective Connection Interval ,如果在Supervision Timeout 時間內沒有發生資料交換則認為斷開連線。Supervision Timeout 以10ms為單位,取值範圍10(100ms)-3200(32s)。
以上都是Central給Peripheral設定的時間規則,有的時候這些引數可能無法滿足Peripheral的應用需求,此時Peripheral可以通過Connection Parameter Update Request請求Central更新
引數配置,該請求中包括以下四個引數:
1 minimum connection interval 最小連線間隔
2 maximum connection interval 最大連線間隔 3 slave latency 連線延遲 4 timeout.  斷開連線時間
Central收到該請求後可以選擇接受或者拒絕引數更新。

連線裝置的雙方隨時都可以請求斷開連線,被請求裝置作出迴應,並修改相應狀態。

ios app連線時,apple公司有自己的規範,這三個引數的設定必須在其規範內才可生效:

    ● Interval Max * (Slave Latency + 1) ≤ 2 seconds
    ● Interval Min ≥ 20 ms
    ● Interval Min + 20 ms ≤ Interval Max Slave Latency ≤ 4
    ● connSupervisionTimeout ≤ 6 seconds
    ● Interval Max * (Slave Latency + 1) * 3 < connSupervisionTimeout