本發(fā)明涉及通信技術領域,特別是涉及一種低功耗藍牙的通信方法以及一種低功耗藍牙的通信裝置。
背景技術:
BLE(Bluetooth Low Energy,低功耗藍牙)由于其待機功耗低等優(yōu)點,最近幾年已經(jīng)呈現(xiàn)出爆發(fā)式增長,不僅成為智能手機、平板電腦等移動設備的標配,也成為了智能手表、防丟器、醫(yī)療監(jiān)護儀等電子設備通訊方式的最佳選擇。
傳統(tǒng)技術中基于BLE的電子設備,通常作為從設備(Slave)僅能夠進行單點連接,不能夠同時被多個手機或者其它主機連接,因此同一時刻只能由一個主機設備(Master)進行控制。以BLE兒童防丟器為例,同一時刻只能連接到一部手機,這意味著只能由一個家長看護,難免會出現(xiàn)看護人因為急事或者突發(fā)情況離開有效監(jiān)視范圍導致防丟器誤報警的尷尬情況。為此針對傳統(tǒng)技術中BLE工作在從機角色時僅能夠被一個主機連接的缺陷,需要提供一種更有效的BLE多主機通訊方式。
技術實現(xiàn)要素:
基于此,有必要針對上述問題,提供一種低功耗藍牙的通信方法以及裝置,能夠?qū)崿F(xiàn)多個BLE主機與BLE從機的連接。
一種低功耗藍牙的通信方法,包括步驟:
啟動BLE從機的廣播,以使各個BLE主機根據(jù)所述廣播發(fā)起與所述BLE從機連接的連接請求;
若接收到各個BLE主機中的第一BLE主機發(fā)起的第一連接請求,通過BLE協(xié)議棧與所述第一BLE主機建立連接,并停止所述BLE從機的廣播;
檢測所述BLE從機當前連接的BLE主機的數(shù)目是否達到所述BLE從機最大支持的連接數(shù)目,若否,返回啟動BLE從機的廣播的步驟,其中所述BLE從機最大支持的連接數(shù)目大于1。
一種低功耗藍牙的通信裝置,包括:
廣播啟動模塊,用于啟動BLE從機的廣播,以使各個BLE主機根據(jù)所述廣播發(fā)起與所述BLE從機連接的連接請求;
連接建立模塊,用于在接收到各個BLE主機中的第一BLE主機發(fā)起的第一連接請求時,通過BLE協(xié)議棧與所述第一BLE主機建立連接,并停止所述BLE從機的廣播;
數(shù)目檢測模塊,用于檢測所述BLE從機當前連接的BLE主機的數(shù)目是否達到所述BLE從機最大支持的連接數(shù)目;其中所述BLE從機最大支持的連接數(shù)目大于1;
所述廣播啟動模塊還用于在所述數(shù)目未達到所述BLE從機最大支持的連接數(shù)目時,重新啟動BLE從機的廣播。
上述低功耗藍牙的通信方法以及裝置,啟動BLE從機的廣播,各個BLE主機向BLE從機發(fā)起連接,如果BLE從機接收到一個BLE連接事件,則與對應的BLE主機建立連接,此時廣播停止,實現(xiàn)BLE從機與一個BLE主機的連接,檢測BLE從機當前連接的BLE主機的數(shù)目是否達到所述BLE從機最大支持的連接數(shù)目,若未達到,還需要再重新啟動BLE從機的廣播,重復上述過程,從而實現(xiàn)BLE從機與最大支持的連接數(shù)目的BLE主機建立連接。因此,本發(fā)明實現(xiàn)了BLE工作在從機角色時能夠被多個主機連接并通信,即實現(xiàn)了多主機通訊方式,有效克服了傳統(tǒng)技術中BLE工作在從機角色時僅能夠被一個主機連接的不足,并且本發(fā)明還減少了設備互聯(lián)過程的復雜性,使設計產(chǎn)品更加人性化。
附圖說明
圖1為一實施例的低功耗藍牙的通信方法的流程示意圖;
圖2為一具體實施例的一個BLE從機與多個BLE主機的連接示意圖;
圖3為一具體實施例的多主機與BLE從機通訊的流程示意圖;
圖4為一具體實施例的多主機與BLE從機通訊的軟件架構示意圖;
圖5為一實施例的低功耗藍牙的通信裝置的結構示意圖。
具體實施方式
為更進一步闡述本發(fā)明所采取的技術手段及取得的效果,下面結合附圖及較佳實施例,對本發(fā)明的技術方案,進行清楚和完整的描述。
如圖1所示,一種低功耗藍牙的通信方法,包括步驟:
S110、啟動BLE從機的廣播,以使各個BLE主機根據(jù)所述廣播發(fā)起與所述BLE從機連接的連接請求;
S120、若接收到各個BLE主機中的第一BLE主機發(fā)起的第一連接請求,通過BLE協(xié)議棧與所述第一BLE主機建立連接,并停止所述BLE從機的廣播;
S130、檢測所述BLE從機當前連接的BLE主機的數(shù)目是否達到所述BLE從機最大支持的連接數(shù)目,若否,返回步驟S110,其中所述BLE從機最大支持的連接數(shù)目大于1。
上述低功耗藍牙的通信方法運行在BLE工作在從機角色的設備中,實現(xiàn)了多主機通訊方式,有效克服了傳統(tǒng)技術中BLE工作在從機角色時僅能夠被一個主機連接的不足,并且減少了設備互聯(lián)過程的復雜性,使設計產(chǎn)品更加人性化。為了更好地理解本發(fā)明,下面對各個步驟的具體實施方式做詳細描述。
在步驟S110中,盡管藍牙技術聯(lián)盟早已公布藍牙4.1標準和藍牙4.2標準,但目前市場占有率比較高的仍是藍牙4.0標準,而能夠應用藍牙4.1或藍牙4.2新標準的設備少之又少。相對藍牙4.0標準的點對點通訊,本發(fā)明將使用藍牙4.1新標準,建立多點連接,實現(xiàn)多主機通訊方式。因此本發(fā)明選擇支持藍牙4.1標準的BLE模塊。需要說明的是,如果其他藍牙新標準支持多點連接,也可選擇支持其他藍牙標準的BLE模塊。
BLE從機為BLE工作在從機(Slave)角色,BLE主機為BLE工作在主機(Master)角色,BLE工作在從機角色還是主機角色可以根據(jù)具體配置實現(xiàn)。如圖2所示,如果要實現(xiàn)BLE從機與多個BLE主機的多點連接,在啟動BLE從機的廣播之前,還需要先配置BLE作為從機(Slave)角色,初始化必要的運行環(huán)境。運行環(huán)境初始化成功后,啟動BLE從機開始廣播。此時可使用工作在主機(Master)角色下的BLE模塊或者其他主機,如手機等,發(fā)起連接。BLE事件處理程序?qū)⑦M行事件分發(fā)。
在步驟S120和步驟S130中,配置BLE從機最大支持的連接數(shù)目,例如BLE從機最大支持的連接數(shù)目為3等。配置BLE從機最大支持的連接數(shù)目可以根據(jù)現(xiàn)有技術中已有的方式實現(xiàn)。
如果BLE從機接收到BLE連接事件,即BLE從機接收到某一個BLE主機發(fā)起的請求,則通過BLE協(xié)議棧內(nèi)部建立連接,同時停止BLE從機的廣播,此時建立的是BLE從機與該BLE主機之間的連接。如果BLE從機當前連接的數(shù)目還未達到最大支持的連接數(shù)目,則重新啟動BLE從機的廣播,各個BLE主機重新發(fā)起連接請求,BLE從機根據(jù)接收到的連接請求建立與對應BLE主機的連接,依次重復,直至BLE從機與每一個BLE主機均建立連接,如此建立BLE最大支持的連接數(shù)目。另外,為了避免BLE從機重復接收到某一個已連接的BLE主機發(fā)起的連接請求,在該BLE主機與BLE從機建立連接之后,該BLE主機停止接收BLE從機的廣播,或者該BLE主機可以接收BLE從機的廣播,但是并不發(fā)起連接請求。
例如,如圖2所示,配置的BLE從機最大支持的連接數(shù)目為3,BLE從機開啟廣播后,先接收到BLE主機1發(fā)起的連接請求,則BLE從機與BLE主機1建立連接,同時停止BLE從機的廣播,設置BLE主機1不再接收BLE從機的廣播。BLE從機檢測到當前連接數(shù)目為1,未達到3,則重新啟動廣播,BLE主機2和BLE主機3發(fā)起連接請求,BLE從機先接收到BLE主機2的連接請求,則與BLE主機2建立連接,同時停止BLE從機的廣播,設置BLE主機2不再接收BLE從機的廣播。BLE從機檢測到當前連接數(shù)目為2,未達到3,則重新啟動廣播,BLE主機3發(fā)起連接請求,BLE從機接收到BLE主機3的連接請求,則與BLE主機3建立連接,同時停止BLE從機的廣播。BLE從機檢測到當前連接數(shù)目為3,至此,BLE從機與3個BLE主機建立連接,實現(xiàn)了多點連接。
在一個實施例中,通過BLE協(xié)議棧與所述第一BLE主機建立連接之后,還包括步驟:為所述BLE從機與所述第一BLE主機的連接建立第一連接句柄,并根據(jù)所述第一連接請求獲取屬性信息;將所述第一連接句柄和所述屬性信息保存到BLE連接信息列表。建立每一個連接時為連接分配連接句柄,以便標識連接。連接請求包含屬性信息,根據(jù)BLE主機發(fā)送的連接請求可以直接獲取到屬性信息。然后將連接句柄和屬性信息保存到BLE連接信息列表中。
另外,可以在將連接句柄和屬性信息保存到BLE連接信息列表之后,重啟BLE從機的廣播;也可以在將連接句柄和屬性信息保存到BLE連接信息列表時,重啟BLE從機的廣播;也可以在重啟BLE從機的廣播后,將上一次連接的連接句柄和屬性信息保存到BLE連接信息列表。本發(fā)明并不對此做出限定。
假設BLE主機發(fā)送數(shù)據(jù)到BLE從機為收數(shù)據(jù)過程,則本發(fā)明還可以實現(xiàn)BLE多主機通信接收數(shù)據(jù)過程,即BLE從機可以同時接收多個BLE主機發(fā)送的數(shù)據(jù)。所以,在一個實施例中,低功耗藍牙的通信方法還包括步驟:
S140、若所述數(shù)目已達到所述BLE從機最大支持的連接數(shù)目,通過協(xié)議棧接收各個BLE主機發(fā)送的數(shù)據(jù),將協(xié)議棧接收到的數(shù)據(jù)發(fā)送到連接數(shù)據(jù)緩存區(qū);
每一個與BLE從機連接的BLE主機均可以向BLE從機發(fā)送數(shù)據(jù)。BLE從機如果收到服務屬性寫事件,即接收到多個BLE主機發(fā)送的數(shù)據(jù),則調(diào)用服務屬性寫事件處理函數(shù)。服務屬性寫事件處理函數(shù)為現(xiàn)有技術中已有的函數(shù)。連接數(shù)據(jù)緩存區(qū)即用于存放連接數(shù)據(jù)的緩存區(qū)。將協(xié)議棧接收到的數(shù)據(jù)發(fā)送到連接數(shù)據(jù)緩存區(qū)可以通過拷貝的方式實現(xiàn),也可以通過剪切的方式實現(xiàn),本發(fā)明并不對此做出限定。
為了保證數(shù)據(jù)的合法性,還需要對發(fā)送數(shù)據(jù)的主機進行驗證,所以,在一個實施例中,通過協(xié)議棧接收各個BLE主機發(fā)送的數(shù)據(jù)之后,將協(xié)議棧接收到的數(shù)據(jù)發(fā)送到連接數(shù)據(jù)緩存區(qū)之前,還包括步驟:根據(jù)所述BLE連接信息列表檢測各個BLE主機與所述BLE從機之間的連接是否合法;若合法,進入將協(xié)議棧接收到的數(shù)據(jù)發(fā)送到連接數(shù)據(jù)緩存區(qū)的步驟。驗證BLE主機與BLE從機的連接信息,通過查找BLE連接信息列表驗證BLE主機與BLE從機連接的合法性,如果合法,則將協(xié)議棧中該主機發(fā)送的數(shù)據(jù)寫入到連接數(shù)據(jù)緩存區(qū),如果不合法,則協(xié)議棧中該主機發(fā)送的數(shù)據(jù)不能寫入連接數(shù)據(jù)緩存區(qū)。
為了及時對寫入連接數(shù)據(jù)緩存區(qū)的數(shù)據(jù)進行顯示,將協(xié)議棧接收到的數(shù)據(jù)發(fā)送到連接數(shù)據(jù)緩存區(qū)后,還包括步驟:發(fā)送所述連接數(shù)據(jù)緩存區(qū)中數(shù)據(jù)有更新的通知信息。即將協(xié)議棧接收到的數(shù)據(jù)拷貝到對應的連接數(shù)據(jù)緩存區(qū),同時發(fā)送BLE連接數(shù)據(jù)更新事件,提醒UART(Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)傳輸器)服務函數(shù)及時顯示連接數(shù)據(jù)緩存中的數(shù)據(jù)。
S150、檢測當前占用UART的第二連接句柄,若所述連接數(shù)據(jù)緩存區(qū)存儲有所述第二連接句柄對應主機發(fā)送的數(shù)據(jù),將所述連接數(shù)據(jù)緩存區(qū)中所述第二連接句柄對應主機發(fā)送的數(shù)據(jù)通過UART進行顯示;
UART服務函數(shù)接收到BLE連接數(shù)據(jù)更新事件后檢測當前占用UART的連接句柄,或者自行檢測當前占用UART的連接句柄。如果連接數(shù)據(jù)緩存區(qū)存儲有當前占用的連接句柄對應主機發(fā)送的數(shù)據(jù),則優(yōu)先顯示該主機的數(shù)據(jù)。
S160、若所述第二連接句柄對應主機發(fā)送的數(shù)據(jù)顯示完成,按照預設的連接句柄的優(yōu)先級順序?qū)⑵渌鳈C發(fā)送的數(shù)據(jù)通過UART進行顯示;
為了防止數(shù)據(jù)顯示沖突,設置有各個連接句柄的優(yōu)先級順序,例如,如圖2所示,連接句柄優(yōu)先級從高到低依次為:BLE主機1、BLE主機2和BLE主機3。如果當前占用的連接句柄對應主機發(fā)送的數(shù)據(jù)顯示完成,UART服務函數(shù)會根據(jù)連接句柄優(yōu)先級順序輪詢將數(shù)據(jù)通過UART打印,這樣每個BLE主機的數(shù)據(jù)都可以通過UART進行顯示。
在一個實施例中,檢測當前占用UART的第二連接句柄之后,還包括步驟:若所述數(shù)據(jù)緩存區(qū)未存儲所述第二連接句柄對應主機發(fā)送的數(shù)據(jù),按照預設的連接句柄的優(yōu)先級順序?qū)⒏鱾€主機發(fā)送的數(shù)據(jù)通過UART進行顯示。如果連接數(shù)據(jù)緩存區(qū)未存儲有當前占用的連接句柄對應主機發(fā)送的數(shù)據(jù),UART服務函數(shù)會根據(jù)連接句柄優(yōu)先級順序輪詢將數(shù)據(jù)通過UART打印,這樣每個BLE主機的數(shù)據(jù)都可以通過UART進行顯示。
例如,如圖2所示,連接句柄優(yōu)先級從高到低依次為:BLE主機1、BLE主機2和BLE主機3,連接數(shù)據(jù)緩存區(qū)存儲有BLE主機1、BLE主機2和BLE主機3發(fā)送的數(shù)據(jù)。UART服務函數(shù)監(jiān)測到當前占用UART的連接句柄對應的主機為BLE主機1,則優(yōu)先顯示BLE主機1發(fā)送的數(shù)據(jù),當BLE主機1發(fā)送的數(shù)據(jù)顯示完成后,再依次顯示BLE主機2和BLE主機3發(fā)送的數(shù)據(jù)。
假設BLE從機發(fā)送數(shù)據(jù)到BLE主機過程為發(fā)送數(shù)據(jù)過程,則本發(fā)明還可以實現(xiàn)BLE多主機通信發(fā)送數(shù)據(jù)過程,即BLE從機可以向多個BLE主機發(fā)送數(shù)據(jù)。所以,在一個實施例中,低功耗藍牙的通信方法還包括步驟:若所述數(shù)目已達到所述BLE從機最大支持的連接數(shù)目,通過UART接收用戶數(shù)據(jù),將所述用戶數(shù)據(jù)發(fā)送到連接數(shù)據(jù)緩存區(qū);將所述連接數(shù)據(jù)緩存區(qū)中的所述用戶數(shù)據(jù)發(fā)送到各個BLE主機。BLE從機采用UART串口中斷接收用戶數(shù)據(jù),接收的用戶數(shù)據(jù)拷貝到連接數(shù)據(jù)緩沖區(qū),之后可以調(diào)用BLE發(fā)送函數(shù)將用戶數(shù)據(jù)以Notifications異步方式發(fā)送到各個BLE主機,實現(xiàn)了BLE從機向多個BLE主機發(fā)送數(shù)據(jù)的過程。
為了更好的理解本發(fā)明,下面結合一個具體實施例進行詳細介紹。
如圖3所示,BLE多主機通信建立連接過程為:初始化BLE從機的配置,啟動BLE從機的廣播,等待BLE事件,如果接收到BLE連接事件,則通過BLE協(xié)議棧建立連接,同時停止BLE從機廣播;建立連接句柄并獲取屬性信息,保存到BLE連接信息列表,之后重新啟動BLE廣播,直至BLE從機與BLE從機最大支持的連接數(shù)目的BLE主機建立連接。
如圖3所示,BLE多主機通信接收數(shù)據(jù)過程為:BLE從機如果收到服務屬性寫事件,則調(diào)用服務屬性寫事件處理函數(shù);驗證連接信息,查找BLE連接信息列表驗證連接合法性,如果合法,則將協(xié)議棧接收到的數(shù)據(jù)拷貝到對應的連接數(shù)據(jù)緩存區(qū),同時發(fā)送BLE連接數(shù)據(jù)更新事件;UART服務函數(shù)會根據(jù)連接句柄優(yōu)先級輪詢將數(shù)據(jù)通過UART打印,這樣每個主機的數(shù)據(jù)都可以通過UART進行顯示。需要說明的是,圖3中發(fā)送BLE連接數(shù)據(jù)更新事件后,先提取數(shù)據(jù)緩存到本地,然后再發(fā)送本地緩存到URAT,本發(fā)明并不限制于此,可以直接將連接數(shù)據(jù)緩存區(qū)中的數(shù)據(jù)發(fā)送到URAT。
為了更有效管理多主機通訊過程,本發(fā)明軟件架構上可以采用RTOS(實時操作系統(tǒng)),任務劃分和任務功能描述如圖4所示。主要分為一個主函數(shù)和三個任務函數(shù)。
主函數(shù)main負責初始化創(chuàng)建GAP角色任務、UART通訊任務、事件分發(fā)處理任務。之后啟動RTOS,進行任務調(diào)度。
GAP角色任務需要處理來自BLE協(xié)議棧的事件,因此它在三個用戶任務中擁有最高的優(yōu)先級,用來保證與BLE主機的正常連接和通訊。GAP角色任務主要控制廣播、處理BLE內(nèi)部事件、保存每個連接信息到連接信息列表、通知事件分發(fā)處理任務進行應用層事件處理等。
事件分發(fā)處理任務作為事件轉(zhuǎn)發(fā)處理中心,一方面接收GAP角色任務發(fā)出的BLE事件進行應用層處理或接收BLE服務屬性值改變事件轉(zhuǎn)發(fā)到UART任務,另一方面處理接收來自UART的數(shù)據(jù)或者錯誤狀態(tài)轉(zhuǎn)發(fā)到GAP角色任務,從而通知BLE主機。
UART通訊任務主要負責接收發(fā)送底層UART的數(shù)據(jù)和錯誤狀態(tài),向事件分發(fā)處理任務發(fā)送消息事件進行處理。
基于同一發(fā)明構思,本發(fā)明還提供一種低功耗藍牙的通信裝置,下面結合附圖對本發(fā)明裝置的具體實施方式做詳細描述。
如圖5所示,一種低功耗藍牙的通信裝置,包括:
廣播啟動模塊110,用于啟動BLE從機的廣播,以使各個BLE主機根據(jù)所述廣播發(fā)起與所述BLE從機連接的連接請求;
連接建立模塊120,用于在接收到各個BLE主機中的第一BLE主機發(fā)起的第一連接請求時,通過BLE協(xié)議棧與所述第一BLE主機建立連接,并停止所述BLE從機的廣播;
數(shù)目檢測模塊130,用于檢測所述BLE從機當前連接的BLE主機的數(shù)目是否達到所述BLE從機最大支持的連接數(shù)目;其中所述BLE從機最大支持的連接數(shù)目大于1;
所述廣播啟動模塊110還用于在所述數(shù)目未達到所述BLE從機最大支持的連接數(shù)目時,重新啟動BLE從機的廣播。
上述低功耗藍牙的通信裝置運行在BLE工作在從機角色的設備中,實現(xiàn)了多主機通訊方式,有效克服了傳統(tǒng)技術中BLE工作在從機角色時僅能夠被一個主機連接的不足,并且減少了設備互聯(lián)過程的復雜性,使設計產(chǎn)品更加人性化。為了更好地理解本發(fā)明,下面對各個模塊的功能進行詳細描述。
如果要實現(xiàn)BLE從機與多個BLE主機的多點連接,在啟動BLE從機的廣播之前,還需要先配置BLE作為從機(Slave)角色,初始化必要的運行環(huán)境。運行環(huán)境初始化成功后,廣播啟動模塊110啟動BLE從機開始廣播。此時可使用工作在主機(Master)角色下的BLE模塊或者其他主機,如手機等,發(fā)起連接。BLE事件處理程序?qū)⑦M行事件分發(fā)。
如果連接建立模塊120接收到BLE連接事件,即BLE從機接收到某一個BLE主機發(fā)起的請求,則通過BLE協(xié)議棧內(nèi)部建立連接,同時停止BLE從機的廣播,此時建立的是BLE從機與該BLE主機之間的連接。數(shù)目檢測模塊130檢測BLE從機當前連接的數(shù)目是否達到最大支持的連接數(shù)目,如果BLE從機當前連接的數(shù)目還未達到最大支持的連接數(shù)目,則廣播啟動模塊110重新啟動BLE從機的廣播,各個BLE主機重新發(fā)起連接請求,連接建立模塊120根據(jù)接收到的連接請求建立與對應BLE主機的連接,依次重復,直至BLE從機與最大支持的連接數(shù)目的BLE主機均建立連接。另外,為了避免連接建立模塊120重復接收到某一個已連接的BLE主機發(fā)起的連接請求,在該BLE主機與BLE從機建立連接之后,該BLE主機停止接收BLE從機的廣播,或者該BLE主機可以接收BLE從機的廣播,但是并不發(fā)起連接請求。
在一個實施例中,還包括與所述連接建立模塊120相連的連接信息獲取模塊,所述連接信息獲取模塊為所述BLE從機與所述第一BLE主機的連接建立第一連接句柄,并根據(jù)所述第一連接請求獲取屬性信息,將所述第一連接句柄和所述屬性信息保存到BLE連接信息列表。建立每一個連接時為連接分配連接句柄,以便標識連接。連接請求包含屬性信息,根據(jù)BLE主機發(fā)送的連接請求可以直接獲取到屬性信息。然后將連接句柄和屬性信息保存到BLE連接信息列表中。
假設BLE主機發(fā)送數(shù)據(jù)到BLE從機為收數(shù)據(jù)過程,則本發(fā)明還可以實現(xiàn)BLE多主機通信接收數(shù)據(jù)過程,即BLE從機可以同時接收多個BLE主機發(fā)送的數(shù)據(jù)。所以,在一個實施例中,低功耗藍牙的通信裝置還包括數(shù)據(jù)接收模塊140,所述數(shù)據(jù)接收模塊140包括:
數(shù)據(jù)寫入單元1401,用于在所述數(shù)目已達到所述BLE從機最大支持的連接數(shù)目時,通過協(xié)議棧接收各個BLE主機發(fā)送的數(shù)據(jù),將協(xié)議棧接收到的數(shù)據(jù)發(fā)送到連接數(shù)據(jù)緩存區(qū);
為了保證數(shù)據(jù)的合法性,數(shù)據(jù)寫入單元1401還需要對發(fā)送數(shù)據(jù)的主機進行驗證,所以,在一個實施例中,數(shù)據(jù)寫入單元1401通過協(xié)議棧接收各個BLE主機發(fā)送的數(shù)據(jù)之后,將協(xié)議棧接收到的數(shù)據(jù)發(fā)送到連接數(shù)據(jù)緩存區(qū)之前,還用于根據(jù)所述BLE連接信息列表檢測各個BLE主機與所述BLE從機之間的連接是否合法;若合法,將協(xié)議棧接收到的數(shù)據(jù)發(fā)送到連接數(shù)據(jù)緩存區(qū)。
為了及時對寫入連接數(shù)據(jù)緩存區(qū)的數(shù)據(jù)進行顯示,數(shù)據(jù)寫入單元1401將協(xié)議棧接收到的數(shù)據(jù)發(fā)送到連接數(shù)據(jù)緩存區(qū)后,還用于發(fā)送所述連接數(shù)據(jù)緩存區(qū)中數(shù)據(jù)有更新的通知信息。
連接句柄檢測單元1402,用于檢測當前占用UART的第二連接句柄;
UART服務函數(shù)接收到BLE連接數(shù)據(jù)更新事件后檢測當前占用UART的連接句柄,或者自行檢測當前占用UART的連接句柄。
顯示單元1403,用于在所述連接數(shù)據(jù)緩存區(qū)存儲有所述第二連接句柄對應主機發(fā)送的數(shù)據(jù)時,將所述連接數(shù)據(jù)緩存區(qū)中所述第二連接句柄對應主機發(fā)送的數(shù)據(jù)通過UART進行顯示,在所述第二連接句柄對應主機發(fā)送的數(shù)據(jù)顯示完成時,按照預設的連接句柄的優(yōu)先級順序?qū)⑵渌鳈C發(fā)送的數(shù)據(jù)通過UART進行顯示;
為了防止數(shù)據(jù)顯示沖突,設置有各個連接句柄的優(yōu)先級順序。如果連接數(shù)據(jù)緩存區(qū)存儲有當前占用的連接句柄對應主機發(fā)送的數(shù)據(jù),則優(yōu)先顯示該主機的數(shù)據(jù)。如果當前占用的連接句柄對應主機發(fā)送的數(shù)據(jù)顯示完成,根據(jù)連接句柄優(yōu)先級順序輪詢將數(shù)據(jù)通過UART打印,這樣每個BLE主機的數(shù)據(jù)都可以通過UART進行顯示。
在一個實施例中,顯示單元1403還用于在所述數(shù)據(jù)緩存區(qū)未存儲所述第二連接句柄對應主機發(fā)送的數(shù)據(jù)時,按照預設的連接句柄的優(yōu)先級順序?qū)⒏鱾€主機發(fā)送的數(shù)據(jù)通過UART進行顯示。如果連接數(shù)據(jù)緩存區(qū)未存儲有當前占用的連接句柄對應主機發(fā)送的數(shù)據(jù),顯示單元1403會根據(jù)連接句柄優(yōu)先級順序輪詢將數(shù)據(jù)通過UART打印。
假設BLE從機發(fā)送數(shù)據(jù)到BLE主機過程為發(fā)送數(shù)據(jù)過程,則本發(fā)明還可以實現(xiàn)BLE多主機通信發(fā)送數(shù)據(jù)過程,即BLE從機可以向多個BLE主機發(fā)送數(shù)據(jù)。所以,在一個實施例中,低功耗藍牙的通信裝置還包括數(shù)據(jù)發(fā)送模塊150,所述數(shù)據(jù)發(fā)送模塊150包括:
數(shù)據(jù)寫入單元1501,用于在所述數(shù)目已達到所述BLE從機最大支持的連接數(shù)目時,通過UART接收用戶數(shù)據(jù),將所述用戶數(shù)據(jù)發(fā)送到連接數(shù)據(jù)緩存區(qū);
數(shù)據(jù)發(fā)送單元1502,用于將所述連接數(shù)據(jù)緩存區(qū)中的所述用戶數(shù)據(jù)發(fā)送到各個BLE主機。
數(shù)據(jù)寫入單元1501采用UART串口中斷接收用戶數(shù)據(jù),接收的用戶數(shù)據(jù)拷貝到連接數(shù)據(jù)緩沖區(qū),之后數(shù)據(jù)發(fā)送單元1502可以調(diào)用BLE發(fā)送函數(shù)將用戶數(shù)據(jù)以Notifications異步方式發(fā)送到各個BLE主機,實現(xiàn)了BLE從機向多個BLE主機發(fā)送數(shù)據(jù)的過程。
上述低功耗藍牙的通信方法以及裝置,實現(xiàn)了一個BLE從設備可同時被多個BLE主設備連接,并能夠與多個主機同時進行雙向數(shù)據(jù)傳輸?shù)姆绞剑炊嘀鳈C通訊方式。這一應用將打破現(xiàn)有的BLE設備同一時刻僅能被一個設備發(fā)現(xiàn)并連接的不足,以BLE兒童防丟器為例,通過本發(fā)明,一個BLE兒童防丟器能夠?qū)崿F(xiàn)被多個家人手機同時監(jiān)控,只要有一個看護人在有效監(jiān)控范圍內(nèi)就不會報警,將會很好的避免誤報警情況。另外這一應用還簡化了多機通訊的設計復雜度,這將大大降低多機通訊的成本,同時這將促使BLE在數(shù)據(jù)采集、設備互聯(lián)等應用中快速發(fā)展。
本領域普通技術人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機存儲記憶體(Random Access Memory,RAM)等。
以上所述實施例的各技術特征可以進行任意的組合,為使描述簡潔,未對上述實施例中的各個技術特征所有可能的組合都進行描述,然而,只要這些技術特征的組合不存在矛盾,都應當認為是本說明書記載的范圍。
以上所述實施例僅表達了本發(fā)明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對發(fā)明專利范圍的限制。應當指出的是,對于本領域的普通技術人員來說,在不脫離本發(fā)明構思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應以所附權利要求為準。