一、簡介
二、實驗平臺
協議棧版本:BLE-CC254x-1.4.0
編譯軟件:IAR 8.20.2
硬件平臺:Smart RF(主芯片CC2541)
三、版權聲明
聲明:喝水不忘挖井人,轉載請註明出處。
原文地址: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
另外附上蘋果對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 則表示連接參數由主機設置 更從機設置的參數沒有關係(可否這樣理解)?