藍牙連接參數說明

一、簡介

本文主要講解藍牙連接參數說明


二、實驗平臺

協議棧版本:BLE-CC254x-1.4.0

編譯軟件:IAR 8.20.2

硬件平臺:Smart RF(主芯片CC2541)


版權聲明

博主:si_zhou_qun_84342712

聲明:喝水不忘挖井人,轉載請註明出處。

原文地址:http://write.blog.csdn.NET/postedit

聯繫方式:[email protected]

開源四軸羣:84342712

開源四軸(淘寶店):

四、關於藍牙連接參數

// Minimum connection interval (units of 1.25ms, 80=100ms) if automatic parameter update request is enabled
#define DEFAULT_DESIRED_MIN_CONN_INTERVAL     40

// Maximum connection interval (units of 1.25ms, 800=1000ms) if automatic parameter update request is enabled
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL     800

// Slave latency to use if automatic parameter update request is enabled
#define DEFAULT_DESIRED_SLAVE_LATENCY         0

// Supervision timeout value (units of 10ms, 1000=10s) if automatic parameter update request is enabled
#define DEFAULT_DESIRED_CONN_TIMEOUT          1000

// Whether to enable automatic parameter update request when a connection is formed
#define DEFAULT_ENABLE_UPDATE_REQUEST         TRUE


 

1.

DEFAULT_DESIRED_MIN_CONN_INTERVAL(最小連接間隔)和#define DEFAULT_DESIRED_MAX_CONN_INTERVAL(最大連接間隔)

這個間隔 是指成功連接後 的週期性通訊時間,主機會根據使用情況 在 這個取值範圍內 選擇合適的 間隔時間,這個具體值是不可控的,所以需要劃定一個範圍使得通訊響應在自己的可控範圍之內。這個具體值會影響到下一次通訊數據包的響應時間,需要根據自己的情況來調整這個範圍達到 既省電又匹配程序響應速度 的目的。

比如:
大數據傳遞時:通訊數據包是連續傳遞的,主機會選擇min值來進行通訊。
 無數據傳遞時:通訊是空閒狀態,主機會選擇max值來定期詢問從機狀態,以保持連接不中斷。(在空閒時,由於使用max的值作爲通訊週期,會影響到程序的下一個命令的發送時間)

2

DEFAULT_DESIRED_SLAVE_LATENCY: (從機所存)
Slaver設備沒有數據要發時,跳過一定數目的ConnectionEvent的值,Rang:0-499.  
跳過的interval個數,設置爲0則每次interval都連接。數字約小通信速度越快,但是功耗越高
注意:這個參數更重要的應用 :比如在距離遠或者干擾大的時候 無數據通信的時候。把這個值設大可以減少掉線概率。
比如防丟器:放在口袋裏面假如這個參數設置爲0 表示規定時間內必須響應從機,不然就以爲是藍牙斷開了。假如設置爲5。假如信號不好的時候,即使中間丟了4個,只接受了1個就表示連接了。因爲他會跳過其中4個 ,保證了不掉線的概率
3.
DEFAULT_DESIRED_CONN_TIMEOUT:(連接超時)
超時時間,就是兩個設備在連接的這段時間沒有發生通訊而導致連接自動斷開的值。Range(10ms-----32s)
連接超時時間,用在信號不太好的情況下, 給對方一點時間。超過這個時間通信就建立失敗
 
 
IOS對連接參數要求

另外附上蘋果對connection interval的要求, 其實還有其他的連接參數要求, 比如slave latency, supervision timeout, 如果不滿足這些, iOS設備會拒絕.

    ● 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

 

DEFAULT_ENABLE_UPDATE_REQUEST:

從機可以向主機發送連接參數更新請求,來請求主機的連接參數 更新到與從機一致。方法是:(參考simpleBLEperipheral.c)

// Whether to enable automatic parameter update request when a connection is formed
#define DEFAULT_ENABLE_UPDATE_REQUEST         TRUE

 uint8 enable_update_request = DEFAULT_ENABLE_UPDATE_REQUEST;

GAPRole_SetParameter( GAPROLE_PARAM_UPDATE_ENABLE, sizeof( uint8 ), &enable_update_request );

更改這3句代碼,來使能或禁止,從機向主機發送連接參數更新請求,只要發送之後 主機就允許 然後連接參數就會變成你 從機端設定的參數 了

假如設置爲FALSE 則表示連接參數由主機設置 更從機設置的參數沒有關係(可否這樣理解)?


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章