一種基于藍牙設備名的相對移動定位方法
【專利摘要】本發明提供一種基于藍牙設備名的相對移動定位方法,包括如下步驟:使用藍牙掃描周圍的藍牙設備,獲得周圍藍牙設備名;選擇周圍藍牙設備名中分組信息字段為所述分組編號信息的藍牙設備名,記為本組藍牙設備名;根據預設的藍牙設備信息與信息域字段的對應關系,提取本組藍牙設備名的信息域字段中的本組藍牙設備信息,將本組藍牙設備信息添加到自身藍牙設備名的信息域字段中。通過本方法,實現了相對移動定位的便捷與低成本,解決了現有相對移動定位繁瑣,成本高的問題。
【專利說明】一種基于藍牙設備名的相對移動定位方法
【技術領域】
[0001]本發明涉及網絡通信領域,具體涉及一種基于藍牙設備名的相對移動定位方法。【背景技術】
[0002]隨著移動設備的普及,如何利用移動設備對移動用戶進行跟蹤和定位顯得十分重要。其中,有一類應用——相對移動定位,即判斷某一個移動用戶是否在特定的其他移動用戶的周圍。比如,一個導游帶領一個老人旅游團去外地旅游,而在旅游景點,一般人會比較擁擠,環境比較復雜,導游想知道他的這些成員是否沒有掉隊或者在人群中走失,即這些成員還在不在自己的周圍。同樣的應用還包括,老師帶領學生們去春游等等。
[0003]就目前而言,主流的定位技術是GPS (全球定位系統)技術,它可以找出移動用戶的絕對位置,如經緯度信息,但是這種絕對地址是不適合相對移動定位這種應用的。就以上的例子來說,首先成員需要把自己的絕對位置發送給導游,這會帶來額外的通信代價;其次,導游還需要確定自己位置,然后再將自己的地址和對成員的地址進行對比,以確定成員的相對位置,這會引入額外的計算代價。另外,GPS模塊比較昂貴,而在室內由于接受信號不好,這也成為GPS技術的一個局限。類似的物理定位技術還有基于基站的定位,如谷歌公司推出的“谷歌縱橫”系統,它依靠預先建立起來的龐大數據庫,使得每個基站對應一個位置信息,當用戶需要定位的時候,用戶的手機可以取得所在基站的ID號,谷歌縱橫根據此ID,在數據庫里找到相應的位置。這種定位技術可以在室內工作,缺點除了與GPS—樣會帶來額外的通信代價外,還有兩個缺點:一是定位不準確,因為基站覆蓋的范圍有幾公里遠;二是需要預先建立數據庫,這需要耗費大量的人力財力。
[0004]綜上所述,現存的定位技術均不能很好的支持相對移動定位,我們的目標是設計一套便宜的、易于實現的、在室內室外都能使用的、節能的解決方案——基于藍牙的相對移動定位方法。
【發明內容】
[0005]本發明要解決的技術問題,在于提供一種基于藍牙設備名的相對移動定位方法,解決現有相對移動定位過程繁瑣,成本高問題。
[0006]本發明是這樣實現的:
[0007]—種基于藍牙設備名的相對移動定位方法,包括如下步驟:
[0008]步驟10、將藍牙設備名劃分為分組信息字段和信息域字段,將分組編號信息寫入自身藍牙設備名的分組信息字段中;
[0009]步驟20、在掃描周期開始時,清空自身藍牙設備名中的信息域字段,根據預設的藍牙設備信息與信息域字段的對應關系,將自身藍牙設備信息寫入自身藍牙設備名中的信息域字段;
[0010]步驟30、使用藍牙掃描周圍的藍牙設備,獲得周圍藍牙設備名;
[0011]步驟40、選擇周圍藍牙設備名中分組信息字段為所述分組編號信息的藍牙設備名,記為本組藍牙設備名;
[0012]步驟50、根據所述的對應關系,提取本組藍牙設備名的信息域字段中的本組藍牙設備信息,將本組藍牙設備信息添加到自身藍牙設備名的信息域字段中;
[0013]步驟60、判斷掃描周期是否結束,如果掃描周期還未結束,則在此次間隔掃描時間結束后,返回步驟30 ;
[0014]步驟70、如果掃描周期結束,提取自身藍牙設備名的信息域字段所包含的周圍的藍牙設備信息。
[0015]進一步地,在步驟20中,所述預設的對應關系具體為根據分組內的藍牙設備信息排列的先后順序的位數,如果存在此設備,則在信息域字段的二進制表達式的倒數上述的位數的二進制位記為I;
[0016]則步驟50中的提取本組藍牙設備名的信息域字段中的本組藍牙設備信息,將本組藍牙設備信息添加到自身藍牙設備名的信息域字段中的具體步驟為:將本組藍牙設備名的信息域字段與自身藍牙設備名的信息域字段進行二進制或運算后再記錄到自身藍牙設備名的信息域字段中。
[0017]進一步地,所述步驟50與步驟60之間,還包括以下步驟:
[0018]將添加了本組設備信息后的自身藍牙設備名與添加前的自身藍牙設備名進行比較,如果相等,則將下次間隔掃描時間加長,否則,將下次間隔掃描時間縮短。
[0019]進一步地,其中將下次間隔掃描時間加長具體為加長一倍,其中將下次間隔掃描時間縮短具體為縮短一半。
[0020]進一步地,所述步驟50與步驟60之間,還包括以下步驟:
[0021]如果添加后的自身藍牙設備名所包含的藍牙設備信息已經包含預設的所有的分組內的藍牙設備信息,則本次掃描周期內不再掃描。
[0022]進一步地,在步驟30到步驟60的任一步驟中,增加如下步驟:將本次間隔掃描時間加上一個隨機時間。
[0023]進一步地,所述的隨機時間為-12秒到+12秒。
[0024]本發明具有如下優點:利用藍牙設備名這樣一種便宜的、簡單的方式進行通信交互,可以實現對移動用戶的相對位置進行定位和跟蹤,現有技術這方面幾乎是空白。藍牙傳輸數據可以適合于各種場合,無論室內或者室外,不基于特定的基礎設施如基站、無線接入點。藍牙模塊十分便宜,大量移動設備都自帶有藍牙模塊,從而易于系統的實現。藍牙傳輸是免費的,用戶不需要支付額外的通信費用。信息通過藍牙設備名字進行傳輸,不需要預先建立連接,并能節省維持連接的代價。通過對藍牙設備間隔掃描時間的調整,從而節省移動設備的能量消耗。
【專利附圖】
【附圖說明】
[0025]下面參照附圖結合實施例對本發明作進一步的說明。
[0026]圖1為本發明方法一實施例的應用場景示意圖;
[0027]圖2為本發明方法一實施例的設備名分割示意圖;
[0028]圖3為本發明節省設備能量消耗的方法執行流程圖;
[0029]圖4為本發明一實施例的系統結構圖。【具體實施方式】
[0030]本發明針對具有相對移動定位的應用,提出了基于藍牙設備的解決方案。為了闡述的方便,本發明先定義兩個名稱。其一是“成員”,它指的是需要被定位或跟蹤的移動用戶,如前面提到的老人或學生。其二是“參照者”,它指的是需要被定位或者跟蹤的成員所參照的移動用戶,如前面提到的導游或老師。成員可以有多個,參照者也可以有多個,為了闡述的方便,本發明的實施例中用多個成員和一個參照者的例子,需要指明的是,根據本發明,很容易推廣到多個參照者的應用上。
[0031]在本發明中,所有的移動用戶都攜帶一個具有藍牙模塊的設備,這可以是智能手機、PDA(個人數字助理)、筆記本電腦等輕便設備,并將藍牙設備設置成“可被查找到”模式。每一個藍牙設備都有一個設備名,根據藍牙國際規范的約定,這個名字一共有248個字節。藍牙設備名可以由用戶隨意設置的,作用是為了便于周圍的藍牙設備找到它以建立藍牙連接,如傳輸文件。本發明即是利用藍牙設備的名字來在藍牙設備之間傳播數據,也就是說,本發明對藍牙設備的名字進行特定的編碼以實現藍牙設備之間的信息交互。具體來說,當一個藍牙設備掃描周圍的藍牙設備的時候,它就可以得到周圍藍牙設備的信息,同時,它可以把這些新收集的信息連同自身的信息一同重新編碼到自己的設備名字了,這樣當它被別的設備掃描到的時候,它的信息也就被傳播出去了。正是通過這種傳遞信息的方式,這些藍牙設備組成了一個多跳的移動網絡。成員的可以感知到自己是否在參照者周圍,參照者也可以感知成員是否在自己周圍。
[0032]本發明將時間分成一個個的周期,每個周期成為一輪,這個周期的長短是可以根據需要設置的,一般以分鐘為單位,對時間敏感的應用可以設置短一點。如將周期設置為10分鐘,就說明參照者可以知道被定位的成員是否在最近10分鐘內活動在自己的周圍。
[0033]每個同組的移動設備都將自己的設備名中的若干位(具體多少位可以根據安全的需要,位數越多,則越不容易被破解和干擾,我們的例子采用的是8位)設置為分組信息字段,在此字段中預先寫入只有組內人員才知道的一個分組信息(Group_ID),設備名中余下的字段作為信息域字段,用來編碼記錄周圍本組設備的信息(Payload)。這樣通過分組信息字段的分組信息,在得到周圍藍牙設備名時,分辨出是否是本組的藍牙設備名,避免了其他的藍牙設備名對本組藍牙設備定位的干擾。分組信息字段也可以作為安全考慮的密碼認證,避免非法的設備獲取到本組設備的定位信息。
[0034]每一輪周期開始的時候,每個移動設備都將所記錄的其他移動設備的信息清零,然后根據一定的算法(下面實施例中有詳細描述)來啟動藍牙模塊來掃描周圍的同組的移動設備,然后把找到的本組的移動設備信息連同自己本身攜帶的信息記錄到自己的設備名里去,這樣別的設備找到它的時候,也能夠將它找到的其他設備的信息一并找到。每一輪周期結束的時候,參照者可以根據自己在一周期內記錄的信息知道這個周期內哪些成員在自己的周圍或者哪些成員不在自己的周圍。
[0035]由于移動設備的能量比較有限,而藍牙設備的掃描操作是本發明中最耗能的操作,因此本發明還設計了一個能量高效的算法,以根據查詢到的信息自動調節查詢的間隔,盡可能的減少藍牙設備掃描的次數以節省能量。主要思想是:當藍牙設備新查找到的周圍設備的信息在這之前并無記錄時,說明持有該設備的用戶可能移動比較活躍,則我們增大其掃描的頻率;反之若新掃描得到的設備信息在這之前都已經記錄了,說明該用戶移動不活躍,我們減小其掃描的頻率。(方法細節后面有進一步描述)。
[0036]以下結合實施例對本發明的方法進行詳細說明。
[0037]在一實施例中的一個應用場景如圖1所示,該應用場景中,有I個參照者和4個成員,如圖所示,參照者目前可以找到成員B,也可以通過成員B找到成員A,但是不能找到成員C和D,而C和D可以互相找到對方。當C和D之中的任何一個(假設是C)運動到參照者的附近(藍牙傳輸距離以內,一般10米左右)的時候,參照者就能知道C和D都在自己的周圍了,因為C身上攜帶了 D的信息。以下將詳細說明如何實現這個過程。
[0038]如圖2所示,為本實施例藍牙設備名的編碼方式。將藍牙設備名劃分為分組信息字段和信息域字段,藍牙設備名一共有248個字節,設備名的前面8個字節用來作為分組信息字段,在這個字段上寫入分組信息(Group_ID),在本實施例中分組信息字段為:Oxfdfdfdfdfdfdfdfd,則參照者、A、B、C、D 的分組信息字段的都為 Oxfdfdfdfdfdfdfdfd。剩下的240個字節作為信息域字段,用來寫入本組藍牙設備信息(Payload)。當然,在其他實施例中,可以根據需要設置更長的分組信息字段,如用前48個字節表示分組信息字段,剩下的200個字節作為信息域字段。
[0039]在本實施例中,在掃描周期開始時,清空信息域字段,根據預設的藍牙設備信息與信息域字段的對應關系,將自身藍牙設備信息寫入自身藍牙設備名中的信息域字段。藍牙設備信息與信息域字段的對應關系為根據分組內的藍牙設備信息排列的先后順序的位數,如果存在此設備,則在信息域字段的二進制表達式的倒數上述的位數的二進制位記為I。具體的是這樣實現的:給組里的每個成員和參照者都分配唯一的一個序列號,該序列號從I開始按順序分配,如參照者記為I號,A記為2號,B記為3號,C記為4號,D記為5號,并將此分配列表預存到每個藍牙設備中。如果存在此設備,則在信息域字段的二進制表達式的倒數上述的位數的二進制位記為1,即每個設備的信息域字段的的二進制表達式的倒數5位二進制用來表示上述的設備是否被掃描到。對于每個設備來說,由于自己對自己來說肯定是可掃描的,則在每個周期開始時,清空信息域信息后,每個設備信息域字段中都應在自己的相應的位上寫上I。對于參照者來說,每輪周期開始時它的初始信息域字段的倒數五位記為00001,A的為00010,B的為00100,C的為01000,D的為10000。信息域字段的240個字節代表1920個位(bits),每個位對應一個藍牙設備,因此可以支持1920個藍牙設備。
[0040]可以使用藍牙掃描周圍的藍牙設備,獲得周圍藍牙設備名;選擇周圍藍牙設備名中分組信息字段為Oxfdfdfdfdfdfdfdfd,記為本組藍牙設備名。掃描后將本組藍牙設備名的信息域字段與自身藍牙設備名的信息域字段進行二進制或運算后再記錄到自身藍牙設備名的信息域字段中。如參照者可以掃描到A,由于A的初始值為00010,參照著本身的初始值為00001,進行或運算后為00011,并將這個00011記錄到自身的設備名中,則結果00011表明掃描周圍具有參照著和A。C可以掃描到D的,由于C的初始值為01000,D的初始值為10000,則C掃描到D后進行或運算得到11000。本實施例中用一個“或”操作來實現設備之間信息更新,簡單有效。
[0041 ] 在其他實施例中,分配方式可以組內口頭約定,也可以采取其他分配方式。在其他實施例中,可將240個字節里的每一個字節看作是一個從0-9的數字,這樣這240個字節可以合起來表示一個從O到(IO24tl-1)的數字,這個數字我們將其轉換為以二進制的方式表示。在該二進制數里,將每一位對應一個組內設備,對應方式是根據設備的序列號,比如序列號是i,則從二進制的低位開始的第i位就是該設備的對應位。具體實現方式是這樣的,在每一輪的開始,將信息位置為1,然后將該信息位左移i位,i就是該設備對應的序列號。這樣只有該對應位為1,其他位都為O。我們規定狀態I表示發現了該位對應的設備,為O則表示沒有發現。當一個設備掃描得到周圍的組內設備后,只需要簡單的對新發現的設備名的信息位和自己的信息位做一個“或”操作,然后將結果保存到分組信息字段中,記為新的信息位(Payload)即可。用這種編碼方式,可以支持1g2(IO24tl-1) =787個移動用戶,這可以適合絕大多數移動團體的需求了。
[0042]判斷掃描周期是否結束,如果掃描周期還未結束,則在此次間隔掃描時間結束后,繼續啟動掃描。如果掃描周期結束,提取自身藍牙設備名的信息域字段所包含的周圍的藍牙設備信息。通過一掃描周期內的多次掃描,就可以獲取到參照者周圍的所有藍牙設備信
肩、O
[0043]在一個掃描周期的第一次掃描中,A掃描到B得到信息域字段00110, B掃描到A和參照者得到00111,參照者掃描到B得到00101,C掃描D得到11000,D掃描C得到11000。第二次掃描中,由于B中為00111,則參照者再次掃描B得到00111,即參照者也知道了 A在附近。在以后的某一次掃描中,C運動到了參照者可以掃描到的范圍,則參照者掃描到C得到11111,即組內所有的設備都被參照者掃描得到,參照者在這個掃描周期中不再掃描。
[0044]所有設備在運行之前,需要進行時鐘同步,以確保上一輪的數據不會被帶到下一輪。本發明的方法可以不需要很精確的時鐘同步,是讓所有移動設備在每輪周期開始(也就是上一輪周期的結束)的前一秒和后一秒都不會掃描,然后只需要將所有設備的時鐘同步到誤差在I秒之內即可,由于在每輪周期開始的時候,設備會將自己的信息域字段重置,上一輪的數據就不會被其他設備掃描到而帶入下一輪。
[0045]圖3是每個掃描周期內的具體方法,該方法引入指數回退機制。初始的單次間隔掃描時間是一個比較小的值(如20秒),通常可以設置為50秒。每個周期開始的時候,每隔一個間隔掃描時間時間設備掃描一次,將新發現的設備的信息域字段和自己信息域字段進行一個或操作,然后將結果更新到自己的信息域字段里,如果新的信息域字段等于(2n-l)則說明該設備在本周期內已經找到了所有的組內設備,因此在本周期內將不再掃描。否則如果新信息域字段與掃描之前的信息域字段相等,則說明本次掃描無新發現,將其掃描間隔增大一倍(不能超過掃描周期),否則找到了新設備,說明該用戶比較活躍,將其掃描間隔減小一倍。通過此方法根據用戶移動活躍情況來自適應調節掃描間隔,引入的回退機制能大大減少能量的消耗。
[0046]由于藍牙設備在掃描的時候,是不會被其他藍牙設備所發現的,因此要盡量避免設備同時掃描,本發明米取的辦法是將每次掃描的時間加上一個介于-12秒到+12秒的隨機時間。
[0047]如圖4所示的一個系統結構圖,此系統結構在微軟公司的windows mobile6.0平臺上基于C#語言實現了一個系統原型。事實上,我們的系統可以在移植到任何平臺上,因為我們用到的都是藍牙設備最基本的操作。該原型分個3個模塊,掃描算法模塊、掃描模塊、數據模塊。掃描算法模塊負責根據歷史數據決定何時掃描;掃描模塊負責控制藍牙模塊完成掃描操作,并更新分組信息字段,同時將新掃描到的數據通過數據模塊以文件形式保存下來,以為掃描算法模塊提供數據,便于設計算法。
[0048]如果藍牙設備掃描周圍的設備,說明該藍牙設備可以作為成員間通信的一個媒介,而對于成員來說,他們持有的藍牙設備不一定要求能掃描其他設備,即他們可以只是被動的被其他設備找到。因為如果需要藍牙設備掃描的話,設備上需要安裝控制軟件,而并不是所有的藍牙設備都可以安裝軟件,本發明的系統也支持這些設備,因為只需要改它們的設備名而不需要它們進行額外的操作。
[0049]雖然以上描述了本發明的【具體實施方式】,但是熟悉本【技術領域】的技術人員應當理解,我們所描述的具體的實施例只是說明性的,而不是用于對本發明的范圍的限定,熟悉本領域的技術人員在依照本發明的精神所作的等效的修飾以及變化,都應當涵蓋在本發明的權利要求所保護的范圍內。
【權利要求】
1.一種基于藍牙設備名的相對移動定位方法,其特征在于:包括如下步驟:步驟10、將藍牙設備名劃分為分組信息字段和信息域字段,將分組編號信息寫入自身藍牙設備名的分組信息字段中;步驟20、在掃描周期開始時,清空自身藍牙設備名中的信息域字段,根據預設的藍牙設備信息與信息域字段的對應關系,將自身藍牙設備信息寫入自身藍牙設備名中的信息域字段;步驟30、使用藍牙掃描周圍的藍牙設備,獲得周圍藍牙設備名;步驟40、選擇周圍藍牙設備名中分組信息字段為所述分組編號信息的藍牙設備名,記為本組藍牙設備名;步驟50、根據所述的對應關系,提取本組藍牙設備名的信息域字段中的本組藍牙設備信息,將本組藍牙設備信息添加到自身藍牙設備名的信息域字段中;步驟60、判斷掃描周期是否結束,如果掃描周期還未結束,則在此次間隔掃描時間結束后,返回步驟30 ;步驟70、如果掃描周期結束,提取自身藍牙設備名的信息域字段所包含的周圍的藍牙設備信息。
2.根據權利要求1所述的一種基于藍牙設備名的相對移動定位方法,其特征在于:在步驟20中:所述預設的對應關系具體為根據分組內的藍牙設備信息排列的先后順序的位數,如果存在此設備,則在信息域字段的二進制表達式的倒數上述的位數的二進制位記為I ;則步驟50中的提取本組藍牙設備名的信息域字段中的本組藍牙設備信息,將本組藍牙設備信息添加到自身藍牙設備名的信息域字段中的具體步驟為:將本組藍牙設備名的信息域字段與自身藍牙設備名的信息域字段進行二進制或運算后再記錄到自身藍牙設備名的信息域字段中。
3.根據權利要求1所述的基于藍牙設備名的相對移動定位方法,其特征在于:所述步驟50與步驟60之間,還包括以下步驟:將添加了本組設備信息后的自身藍牙設備名與添加前的自身藍牙設備名進行比較,如果相等,則將下次間隔掃描時間加長,否則,將下次間隔掃描時間縮短。
4.根據權利要求3所述的基于藍牙設備名的相對移動定位方法,其特征在于:其中將下次間隔掃描時間加長具體為加長一倍,其中將下次間隔掃描時間縮短具體為縮短一半。
5.根據權利要求1所述的基于藍牙設備名的相對移動定位方法,其特征在于:所述步驟50與步驟60之間,還包括以下步驟:如果添加后的自身藍牙設備名所包含的藍牙設備信息已經包含預設的所有的分組內的藍牙設備信息,則本次掃描周期內不再掃描。
6.根據權利要求1到5任一所述的基于藍牙設備名的相對移動定位方法,其特征在于:在步驟30到步驟60的任一步驟中,增加如下步驟:將本次間隔掃描時間加上一個隨機時間。
7.根據權利要求6所述的基于藍牙設備名的相對移動定位方法,其特征在于:所述的隨機時間為_12秒到+12秒。
【文檔編號】H04L29/06GK103442428SQ201310304697
【公開日】2013年12月11日 申請日期:2013年7月19日 優先權日:2013年7月19日
【發明者】王田 申請人:華僑大學