藍牙模塊廠家 | 低功耗藍牙模塊主從設備如何建立連接
在低功耗藍牙模塊技術建立連接的過程中,設備都是成對出現的:master和slave設備。如果master希望與slave建立連接,master就需要發起連接請求(ConnectionRequest,CONNECT_REQ),因此master可以稱之為連接發起者;同時,slave必須是可連接的并且具有解析連接請求CONNECT_REQ的能力,slave可以稱之為廣播者。

下表連接請求CONNECT_REQ的幀結構。

其中,InitA是連接發起者的藍牙設備地址,長度為6字節;AdvA是廣播者的藍牙設備地址,長度為6字節。除了InitA和AdvA之外,幀格式中最為重要的部分則是LLData,這一部分包含了在連接建立過程中所需要使用的有意義的參數
為了更好的理解連接請求CONNECT_REQ,我們可以在日常生活中找到類似的一個例子,幫助我們理解它的含義。讀者們很多應該都有過工作經驗,在開始新的工作之前,都需要和雇主簽署一份勞動合同,而CONNECT_REQ就是一份由“雇主”master提供的“勞動合同”,只需經過“雇員”slave確認,這份“合同”就開始生效,低功耗藍牙技術的連接也就建立了。接下來我們就對“合同”中的各項條款逐條進行分析(如下表所示)。
這份合同的條款就是為雇員分配一個公司內部的識別碼,類似于工號,雇員可以在公司內部使用這一工號;當雇員離開公司之后,識別碼自動失效;即使是這一雇員再次加入到這家公司,他/她的新工號也與舊的工號不同。類似的,在兩個低功耗藍牙技術設備建立連接之前,master設備負責生成接入地址,這一地址類似于一個4字節的隨機數,當連接建立之后,master和slave都使用這一接入地址進行通信;當連接斷開之后,接入地址自動失效。
(2)CRCInit(CRC初始值)
這份“合同”的第二條款是CRCInit,它就是雇員在公司內部的一個密鑰,通過這個密鑰,雇員可以訪問公司內部的資源。對于低功耗藍牙技術設備,master和slave使用CRCIinit來驗證數據包的完整性。
(3)WinSize和WinOffset
合同的第三條款中規范了雇員首次來公司報到的時間以及今后每次工作的時長。WinSize和WinOffset在低功耗藍牙技術連接中,也做了類似的定義。WinOffset定義了在CONNECT_REQ命令之后的一個通信窗口的偏移量,如圖3所示。在slave設備收到CONNECT_REQ之后,slave設備需要占用一些時間、根據LLData參數進行一些相關的配置,因此,WinOffeset為slave設備進行此種操作提供了時間,transmitWindowOffset= WinOffset×1.25 ms。WinSize定義了設備每次開啟收發機的窗口時間,無論是master還是slave,它們都遵循WinSize的定義,窗口時間transmitWindowSize=WinSize×1.25 ms。
因此,在CONNECT_REQ之后,個由master發送到slave的數據幀,我們稱之為“錨點”(如圖3所示),因為之后的所有的連接事件都以這一時刻為基準,呈現周期性變化。從紅色框圖中我們可以看到,個數據幀的時刻不能早于(1.25ms+transmitWindowOffset),同時也不能晚于(1.25 ms + transmitWindowOffset + transmitWindowSize)。

(4)Interval, Latency & Timeout
一般情況下,人們的工作時間是朝九晚五,一周工作五天。但是在低功耗藍牙技術的連接機制當中,我們采用了更加靈活的“彈性工作制”。對于低功耗藍牙技術連接的彈性工作制,這里有三個參數需要了解,Interval,Lantency和Timeout。
在連接建立之后,master和slave之間的數據交互我們可以稱之為連接事件,連接事件的發生周期(connInterval)則是由Interval參數來進行設定,connInterval= Interval×1.25 ms, connInterval的取值范圍則是在7.5 ms至4 s秒之間。因此,在確定了錨點之后,master和slave將按照connInterval確定的時間間隔進行數據的交互,如圖4所示。
但是,對于低功耗藍牙技術,低功耗的特性是需要特別考慮的,而且在實際的應用當中,不需要在每次connInterval都產生連接事件,因此引入了參數Lantancy,可以有效的減少連接事件的產生,connSlaveLatency= Latency。connSlaveLatency 定義了slave設備可以忽略多少個連續的連接事件,其不需要在這些被忽略的連接事件中偵聽來自master的數據包,這也意味著slave設備不需要在每個連接事件產生的時刻都喚醒并打開射頻接收機進行偵聽,所以可以有效減少slave設備的功耗。這也是低功耗藍牙技術能夠實現其低功耗特性的一個重要的原因。
Timeout參數定義了連接超時的長度,connSupervisionTimeout= Timeout×10 ms,其取值范圍在100 ms至32 s之間。不論是master還是slave,在其收到一個數據幀之后,如果等待了connSupervisionTimeout時長都沒有下一個數據幀到來,則可以認為連接已經斷開。在這里要強調的是,connSupervisionTimeout必須大于(1 + connSlaveLatency) × connInterval × 2,否則,slave設備即使是在Lantency狀態,也會被誤認為是連接超時,導致連接誤斷開。
(5)ChM & Hop
我們都知道,藍牙使用的是跳頻技術,當連接建立之后,master和slave設備就需要利用某種機制來在預先設定的信道圖譜上、按照預先設定的跳頻跨度進行跳頻工作,信道圖譜就來自ChM參數,每跳的跨度則來自于Hop參數。Hop是一個整數,取值范圍在5至16之間。下面的公式提供了跳頻的工作方式:
fn+1 =(fn+ Hop)mod37
其中,mod為取余操作。
低功耗藍牙技術具有37個數據信道,數據信道索引為0-36,上式中,fn為當前信道索引,fn+1為下一跳信道索引。下表為Hop= 13時的跳頻圖。

ChM為可用數據信道圖譜的位屏蔽碼,長度為5個字節,40比特。由于有37個數據信道,所以只有低37位有效。如果位屏蔽碼的某一比特置1,意味這一比特所代表的數據信道可用;如果置0,則不可用。根據跳頻計算公式以及ChM,跳頻可以為自適應的。如果fn+1信道在ChM中標記為可用,則采納fn+1作為下一跳信道;如果fn+1信道在ChM中標記為不可用,下一跳信道需要重新映射在其他可用信道上進行數據通信。因此,以上機制保證了低功耗藍牙技術具有很好的抗干擾能力。

本文摘自互聯網,僅供參考!

下表連接請求CONNECT_REQ的幀結構。

其中,InitA是連接發起者的藍牙設備地址,長度為6字節;AdvA是廣播者的藍牙設備地址,長度為6字節。除了InitA和AdvA之外,幀格式中最為重要的部分則是LLData,這一部分包含了在連接建立過程中所需要使用的有意義的參數
為了更好的理解連接請求CONNECT_REQ,我們可以在日常生活中找到類似的一個例子,幫助我們理解它的含義。讀者們很多應該都有過工作經驗,在開始新的工作之前,都需要和雇主簽署一份勞動合同,而CONNECT_REQ就是一份由“雇主”master提供的“勞動合同”,只需經過“雇員”slave確認,這份“合同”就開始生效,低功耗藍牙技術的連接也就建立了。接下來我們就對“合同”中的各項條款逐條進行分析(如下表所示)。
這份合同的條款就是為雇員分配一個公司內部的識別碼,類似于工號,雇員可以在公司內部使用這一工號;當雇員離開公司之后,識別碼自動失效;即使是這一雇員再次加入到這家公司,他/她的新工號也與舊的工號不同。類似的,在兩個低功耗藍牙技術設備建立連接之前,master設備負責生成接入地址,這一地址類似于一個4字節的隨機數,當連接建立之后,master和slave都使用這一接入地址進行通信;當連接斷開之后,接入地址自動失效。
(2)CRCInit(CRC初始值)
這份“合同”的第二條款是CRCInit,它就是雇員在公司內部的一個密鑰,通過這個密鑰,雇員可以訪問公司內部的資源。對于低功耗藍牙技術設備,master和slave使用CRCIinit來驗證數據包的完整性。
(3)WinSize和WinOffset
合同的第三條款中規范了雇員首次來公司報到的時間以及今后每次工作的時長。WinSize和WinOffset在低功耗藍牙技術連接中,也做了類似的定義。WinOffset定義了在CONNECT_REQ命令之后的一個通信窗口的偏移量,如圖3所示。在slave設備收到CONNECT_REQ之后,slave設備需要占用一些時間、根據LLData參數進行一些相關的配置,因此,WinOffeset為slave設備進行此種操作提供了時間,transmitWindowOffset= WinOffset×1.25 ms。WinSize定義了設備每次開啟收發機的窗口時間,無論是master還是slave,它們都遵循WinSize的定義,窗口時間transmitWindowSize=WinSize×1.25 ms。
因此,在CONNECT_REQ之后,個由master發送到slave的數據幀,我們稱之為“錨點”(如圖3所示),因為之后的所有的連接事件都以這一時刻為基準,呈現周期性變化。從紅色框圖中我們可以看到,個數據幀的時刻不能早于(1.25ms+transmitWindowOffset),同時也不能晚于(1.25 ms + transmitWindowOffset + transmitWindowSize)。

(4)Interval, Latency & Timeout
一般情況下,人們的工作時間是朝九晚五,一周工作五天。但是在低功耗藍牙技術的連接機制當中,我們采用了更加靈活的“彈性工作制”。對于低功耗藍牙技術連接的彈性工作制,這里有三個參數需要了解,Interval,Lantency和Timeout。
在連接建立之后,master和slave之間的數據交互我們可以稱之為連接事件,連接事件的發生周期(connInterval)則是由Interval參數來進行設定,connInterval= Interval×1.25 ms, connInterval的取值范圍則是在7.5 ms至4 s秒之間。因此,在確定了錨點之后,master和slave將按照connInterval確定的時間間隔進行數據的交互,如圖4所示。
但是,對于低功耗藍牙技術,低功耗的特性是需要特別考慮的,而且在實際的應用當中,不需要在每次connInterval都產生連接事件,因此引入了參數Lantancy,可以有效的減少連接事件的產生,connSlaveLatency= Latency。connSlaveLatency 定義了slave設備可以忽略多少個連續的連接事件,其不需要在這些被忽略的連接事件中偵聽來自master的數據包,這也意味著slave設備不需要在每個連接事件產生的時刻都喚醒并打開射頻接收機進行偵聽,所以可以有效減少slave設備的功耗。這也是低功耗藍牙技術能夠實現其低功耗特性的一個重要的原因。
Timeout參數定義了連接超時的長度,connSupervisionTimeout= Timeout×10 ms,其取值范圍在100 ms至32 s之間。不論是master還是slave,在其收到一個數據幀之后,如果等待了connSupervisionTimeout時長都沒有下一個數據幀到來,則可以認為連接已經斷開。在這里要強調的是,connSupervisionTimeout必須大于(1 + connSlaveLatency) × connInterval × 2,否則,slave設備即使是在Lantency狀態,也會被誤認為是連接超時,導致連接誤斷開。
(5)ChM & Hop
我們都知道,藍牙使用的是跳頻技術,當連接建立之后,master和slave設備就需要利用某種機制來在預先設定的信道圖譜上、按照預先設定的跳頻跨度進行跳頻工作,信道圖譜就來自ChM參數,每跳的跨度則來自于Hop參數。Hop是一個整數,取值范圍在5至16之間。下面的公式提供了跳頻的工作方式:
fn+1 =(fn+ Hop)mod37
其中,mod為取余操作。
低功耗藍牙技術具有37個數據信道,數據信道索引為0-36,上式中,fn為當前信道索引,fn+1為下一跳信道索引。下表為Hop= 13時的跳頻圖。

ChM為可用數據信道圖譜的位屏蔽碼,長度為5個字節,40比特。由于有37個數據信道,所以只有低37位有效。如果位屏蔽碼的某一比特置1,意味這一比特所代表的數據信道可用;如果置0,則不可用。根據跳頻計算公式以及ChM,跳頻可以為自適應的。如果fn+1信道在ChM中標記為可用,則采納fn+1作為下一跳信道;如果fn+1信道在ChM中標記為不可用,下一跳信道需要重新映射在其他可用信道上進行數據通信。因此,以上機制保證了低功耗藍牙技術具有很好的抗干擾能力。

本文摘自互聯網,僅供參考!
“推薦閱讀”
- 2020-07-03在選擇藍牙模塊時要考慮到哪些方面
- 2020-07-03藍牙模塊和藍牙芯片的差別在哪
- 2020-05-23低功耗藍牙模塊具有哪些優勢呢
- 2020-05-23影響藍牙模塊性能的因素有哪些呢
- 2020-03-11全方位分析藍牙技術4.0和4.1標準
【本文標簽】:藍牙模塊,
聯系瑞榮達電子

深圳市瑞榮達電子有限公司
服務熱線:0755-27659920
手機聯系:13528885270
傳真號碼:13528885270
客服QQ:
地址:深圳龍華新區華興路龍泉科技園A區B棟二樓